Silent (touch) controls for 5D Mark III

Started by a1ex, April 01, 2018, 09:00:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

a1ex

If you have played with the broken camera from the homepage, you already knew this is coming :)

That was one of my oldest pet peeves since the 5D Mark III was announced. I had several unsuccessful attempts to understand how it works, but as I didn't really know what I was doing, it was a complete mystery for me. Until some days ago - I've applied this knowledge and got a successful proof of concept. I was like - whoa, it was THAT easy?!

Background

There are four finger sensors on the rear scrollwheel - touch them lightly to get an event similar to a button press. During this process, the camera does move slightly, but in any case, the movement is a LOT less than with a full button press. Therefore, it's desirable (although far from perfect) while shooting video, but also during other situations where camera movement should be avoided - such as extreme macro without a sturdy fixture. Or, even during a timelapse, when you want to make sure you've enabled some setting in menu and you don't want to risk having to align everything in post.

It's probably a very underrated feature, since the only videos I could find on this were in Korean. However, I find it very useful - and also fun to explore.

With Canon's implementation, this feature only works while recording video (H.264), and... you have to press Q during video recording (!) in order to activate it. Why? Beats me...

Under the hood

I could not trigger events with another object (metallic or not) and I could not trigger them without moving the camera slightly. However, after registering the "press" event, you can sometimes move your finger back by 1-2 mm and the camera would consider the "button" is still "pressed".

This feature is controlled by the MPU - it sends events similar to the direction keys (actually coded much like the joystick events: regular up/down/left/right = 0x0B followed by 02/09/06/05, silent control = 0x28 followed by the same direction code). The analog side is not under our control; it's actually beyond our understanding limit, since we don't even know the processor architecture of the MPU on DIGIC 5.

Unfortunately, there's no SET event - just 4 direction keys and one (common) unpress event. Pressing two "buttons" at the same time does not give any event (so we can't, for example, use 2-finger taps to assign various functions). However, we can use gestures - slide the finger from top to right, for example, and you get two "press" events and one "unpress" at the end. That way, you can detect:

- 8 "small" gestures (45 degrees): top->right, right->bottom, bottom->right etc.
- larger gestures would work as well: top->right->bottom (180 degrees) or any other combinations.

Properties

I've mentioned before that, with Canon's implementation, this kind of control was only available while recording (and only after pressing Q). Turns out, the controls weren't tied to any of these. They are controlled by property 0x80030047 PROP_SILENT_CONTROL_STATUS (MPU message 03 46). Control values: 0 = enable, 2 = disable. Status values: 1 = enabled and 3 = disabled. There's also 0x8000004B PROP_SILENT_CONTROL_SETTING (the setting from Canon menu).

Limitations

Unfortunately, this feature is guarded very well by the dragons in the MPU:

- it only works in GUI modes 41 (Q dialog), 84 (sound level adjustment) and a few others
- it does not work during regular standby or recording (so it's hard to use it to open ML menu or to change exposure parameters)
- it disables the rear scrollwheel (could not find a way around it)
- it disables the top scrollwheel in GUI mode 41, but works in 84
- GUI mode 84 has other issues, e.g. it doesn't come back cleanly to standby...
- for some reason it does not send unpress events for long touches while recording (what the...)

Proof of concept code

https://bitbucket.org/hudson/magic-lantern/branch/silent-control

It's not without side effects, sorry.

Button assignments

I'm not sure what's the best way to assign these gestures to functions, because (1) there are just 4 direction events and (2) they are very easy to trigger by mistake. I was tempted to start enabling them using a gesture (or even using just gestures for all the actions).

First PoC (0352ba0):
- direction keys for navigation
- works nice, but how do you change values?!

Second PoC (cb9c6ce):
- hold direction pads for at least 0.3 seconds: navigation
- top->right or right->top: Q in ML menu, MENU key in Canon menu (this "gesture" is closest to the Q button)
- right->down or down->right: SET (opposite corner)

Proposals welcome.

Side note

While looking into this, I've found a solution for the menu timeout issue on 6D/M/100D/70D (fix available in the lua_fix experimental build). Nobody bothered to report back, besides dfort.

Future

Does any newer Canon camera still have this feature? (5D IV maybe?)

domasa

QuoteDoes any newer Canon camera still have this feature?
Probably only EOS-1D C, EOS-1D X and EOS 5D Mark III has this feature.
(http://www.canon.com.hk/cpx/en/technical/va_Silent_Control_in_EOS_Movie.html)

5D Mark IV has touch screen display ("Touch pad" is not in manual)

There is another english video about this feature:
https://www.youtube.com/watch?v=AzUaMLoJV4g

Markus

Could it change ISO?  I have ISO set to rotating thumbweel on my 5D3. Maybe just tapping silent would be nicer. How Canon locks the thumbwheel so you have to half press the shutter to unlock it again is coubersome and prone to bugs like the "busy bug" that locks/blocks all exposure change. Or maybe there is a way to stop canon from locking thumbwheel in the first place, so that it's active all the time :-).

a1ex

Quote from: Markus on April 09, 2018, 10:58:14 AM
Could it change ISO?

That's available with plain Canon firmware while recording H.264.

Quote from: Markus on April 09, 2018, 10:58:14 AM
How Canon locks the thumbwheel so you have to half press the shutter to unlock it again [...]

I don't get this one, can you rephrase and/or show a video?

Markus

Oki, maybe I just missed that you can set ISO control to the silent touch buttons. I only film raw though.

The problem I have with iso control is that the thumbwheel isn't active all the time. Canon locks it if it's inactive for a few seconds. So you always have to press halfshutter to make it active before turning the wheel to make your iso adjustment. I'm searching for a way to have direct input of ISO like you have of the of the aperture with your long finger. That total control is really useful for documentary and live event work.

Sorry if this a little bit off topic.

a1ex

Silent controls are not yet available for raw recording; this is just the first proof of concept for using these "keys".

Main problem: they are not available during "idle" mode - Canon requires you pressing the Q button to enable them; however, that can probably be worked around (possibly with a fake MPU message). However, doing that will lock the rear scrollwheel (it will no longer send click events); see the Limitations section.

Regarding ISO timing out when assigned to rear scrollwheel - try increasing the "Metering timer" in Canon menu. It will still time out after 30 minutes if you don't adjust anything during this time.

Markus

Metering timer, great tip!
If the faked MPU message works direct silent control sounds very useful aswell!