Use scene modes as custom modes

Started by calle2010, March 15, 2019, 07:30:40 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

calle2010

This is mainly relevant for cameras without C1/C2/C3 modes.

One of the features of 400plus was to store all the settings (AV, TV, M) mode, exposure, ISO, flash, and some 400plus settings. Then you could assign these settings to a scene mode on the mode dial, e. g. Sports, Landscape, Portrait. When the mode dial was turned to that scene mode the 400plus changed all the settings to the assigned preset within a second.

This effectively gave me more custom modes on the 400D than I could ever use. I never needed more than three.

Related seem to be Exposure Presets and Config Presets.

I haven't seen the assignment of presets to the mode dial.
Another main difference to exposure presets seems to be that the mode shall be changed (AV, TV, M).

Use case: I shoot backstage at an event where lighting is known (and difficult), but in the breaks I encounter different situations (inside, outside, different light). So I quickly want to toggle between M and Tv with some other settings, flash and ISO related, as well. Since the event location is very dark I avoid to use the LCD screen as much as possible, another advantage of the mode dial!

As I own a 77D now that has no custom modes that was my motivation to check out ML. I can live without this capability, I'm no pro photographer, or else I would have bought another camera... But still it would be so nice to be able to reassign the scene modes, which are useless for me.

a1ex

That's definitely useful, but... might be tricky. Previously, I had trouble (ERR70) with a remapped video mode, so I ended up removing that feature.

Of course, I had no way to diagnose it, back then (e.g. no QEMU, no understanding of MPU communication, very limited debug logging). So, all I could do was to perform the mode switch from minimal code (without the full ML loaded), and confirmed the ERR70 appeared in the software-switched video mode, but not on the native one. After that, I've cleared Canon settings, the error went away and... I'm not sure how to reproduce it.

The mode switches are handled by the MPU. Main questions:

- is a software-switched shooting mode going to be the same as a hardware-switched one? [ my previous experience with ERR70 suggests it's not the case ]
- are the differences going to be significant?
- what are the chances of this putting the camera into some persistent ERR70 condition and how easy is to recover from there?

Currently, ML remaps shooting modes for bracketing or bulb exposures, between M and BULB. Still having the feeling this mode switch is not handled properly, but... at least we should now have the tools to investigate (emulation, MPU logging).

I wonder how 400plus does this. Got a ROM dump from 400D (as the portable ROM dumper works there too), but didn't attempt to emulate it beyond what already happened to work. It boots the GUI (I didn't do anything special for that), but the buttons are not working, as the MPU messages use a different format. I can ask Edu to capture diagnostic logs or whatever else I need to understand how it works, so it should be doable.

eduperez

Quote from: a1ex on March 15, 2019, 08:02:41 AMI wonder how 400plus does this. Got a ROM dump from 400D (as the portable ROM dumper works there too), but didn't attempt to emulate it beyond what already happened to work. It boots the GUI (I didn't do anything special for that), but the buttons are not working, as the MPU messages use a different format. I can ask Edu to capture diagnostic logs or whatever else I need to understand how it works, so it should be doable.

Did I hear my name...? 8)
This is what we did in 400plus:

* Users can write a complete dump of the current camera configuration (mode, exposure, aperture, iso, ...) to the card; there is a structure in RAM called "DPData" that contains that info.
* Users can also assign each one of those dumps to one of the scene modes (this is done purely in 400plus, the original firmware is not aware of this).
* We intercept intercom messages, and when we detect that the user moved the wheel to a scene mode, we recall the configuration we had dumped previously, and then we apply it as if the user was navigating the menus.
* We also save the configuration from the manual modes and recall them when the user goes back from an override scene mode to a manual mode.
* If the user moves the wheel too fast, weird things happen...

All the interesting code is in those two files:

* https://github.com/eduperez/400plus/blob/master/cmodes.c
* https://github.com/eduperez/400plus/blob/master/snapshots.c

I made lots of mistakes during the development of that feature (we did not have an emulator back then :(), and I never experienced any ERR70 or (soft)bricks... perhaps the 400D is more resilient than other cameras :).

scrax

c-modes (sort of) on rebel module posted here :D
note: not done wheel mode override because I remember alex removed for the problem with video remap on 600D
Now your turn, find GUIMODE for your cam :P
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

scrax

Quote from: eduperez on March 15, 2019, 02:31:51 PM
Did I hear my name...? 8)
This is what we did in 400plus:

* Users can write a complete dump of the current camera configuration (mode, exposure, aperture, iso, ...) to the card; there is a structure in RAM called "DPData" that contains that info.
* Users can also assign each one of those dumps to one of the scene modes (this is done purely in 400plus, the original firmware is not aware of this).
* We intercept intercom messages, and when we detect that the user moved the wheel to a scene mode, we recall the configuration we had dumped previously, and then we apply it as if the user was navigating the menus.
* We also save the configuration from the manual modes and recall them when the user goes back from an override scene mode to a manual mode.
* If the user moves the wheel too fast, weird things happen...

All the interesting code is in those two files:

* https://github.com/eduperez/400plus/blob/master/cmodes.c
* https://github.com/eduperez/400plus/blob/master/snapshots.c

I made lots of mistakes during the development of that feature (we did not have an emulator back then :(), and I never experienced any ERR70 or (soft)bricks... perhaps the 400D is more resilient than other cameras :).
sorry if OT but what about ML port for 400D? By the way I use 400Dplus a lot but just curious about your opinion on porting ML
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

calle2010

Many thanks for the replies. The experts are here!

Yes, 400plus can be a bit weird if modes dial is turned too quickly, but never anything bad happened.

I don't know what the issue with the remapped video mode were. The links are dead.

In this case i would limit it to the fixed scene modes. The 77D has a special SCN mode where additional scene modes (group picture, kids, food, portrait without flash at night, also multiple exposures at night and HDR) are available and can be selected through menu. I could imagine that analyzing this would help to understand how the software can set shooting parameters. Not sure if any of the ML supported models have this SCN mode already.

eduperez

Quote from: scrax on March 15, 2019, 05:03:43 PM
sorry if OT but what about ML port for 400D?

I am not going to tell you not to do it, but... there are big differences between the 400D and ML-supported cameras (VxWorks vs DryOs, or no video/live-view support for starters) and the user base for that camera is now close to zero. I see a daunting task with little benefits: most of what ML can do but 400plus cannot do is because the hardware just cannot do it.

Quote from: scrax on March 15, 2019, 05:03:43 PM
By the way I use 400D+ a lot but just curious about your opinion on porting ML

I do not want to seem anal about this, but the project is called "400plus"; I just do not want to infringe on any trade marks, and risk waking up the sleeping giant.

scrax

Quote from: eduperez on March 18, 2019, 12:33:04 PM
I am not going to tell you not to do it, but... there are big differences between the 400D and ML-supported cameras (VxWorks vs DryOs, or no video/live-view support for starters) and the user base for that camera is now close to zero. I see a daunting task with little benefits: most of what ML can do but 400plus cannot do is because the hardware just cannot do it.

I do not want to seem anal about this, but the project is called "400plus"; I just do not want to infringe on any trade marks, and risk waking up the sleeping giant.

thanks I understand, sorry :P
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-