[DONE] Enable AUDIO_REMOTE_SHOT on EOS M

Started by dfort, April 08, 2015, 08:01:07 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

dfort

This was working fine in Tragic Lantern but left out when the fork was merged.
https://builds.magiclantern.fm/#/features

There was some excitement a while ago on YouTube when it was discovered that Triggertrap was able to fire the shutter on the EOS M with just a simple cable that has 3.5mm male phone plugs at each end. It also works with various other wired remotes and intervalometers. One ML user was "cuffed as beans" with the AUDIO_REMOTE_SHOT feature.

What prompted me to write this feature request was because I'll be taking a time lapse workshop and wanted to have some intervalometer options. Sure, I have used the intervalometer in ML and it works great but sometimes you just want a simple wired remote and other times you want to do something beyond the scope of ML or the camera hardware. For example, using Triggertrap on an iPhone or android phone allows you fire the shutter every time you move a certain distance as measured by the GPS. I tested Triggertrap with this version of TL on my iPhone and it indeed worked with just a simple audio cable as the interface--no dongle or adapter cable needed. Some of the Triggertrap features won't work with the EOS M hooked up this way but according to their website, there is no dongle/cable combination available for the EOS M.

Hope I sold this as a worthwhile project for someone who can code it.

dfort

I looked through the code and tried lots of things until I found a way to get this working. Basically, all that was needed was to add
#define FEATURE_AUDIO_REMOTE_SHOT
to platform/EOS.202/features.h

However it wouldn't work unless the audio menu was active, like when turning on mlv_snd module. Digging further it looks like other cameras may have this same issue and in src/shoot.c I found this:
#ifdef FEATURE_AUDIO_REMOTE_SHOT
#if defined(CONFIG_7D) || defined(CONFIG_6D) || defined(CONFIG_650D) || defined(CONFIG_700D)
            /* experimental for 7D now, has to be made generic */

I added defined(CONFIG_EOSM) to the list and it worked without having to turn on the audio menu.

Of course I tested to make sure this didn't break anything that was already working and it seems like everything checks out fine.

Disclaimer--I'm not a programmer and don't know my way around ML code so I might have left out something important. Even though I didn't end up needing it, I found lots of stuff in the previous EOSM stubs.S that are not in the current version. Maybe they were bogus? Maybe they weren't and there's more that this little camera can do?

https://bitbucket.org/hudson/magic-lantern/pull-request/645/enable-feature_audio_remote_shot-on-eosm/diff

Licaon_Kter

Genius, you just enabled it and it works!  :o

I wonder why was this not enabled on the M in the first place?  :-X

And a test build for you M users: https://mega.co.nz/#!4URwyTSQ!rt2PhD_RCTjvVJAB0zGgD61FU28BH5D1PiQr9zwPvuM
I'll just keep it up for a few days to test it properly.

On that note, I find the maximum value of 20 pretty low leading to false triggering, or maybe I miss the point and this is an audio cable intended feature anyway?

dfort

Quote from: Licaon_Kter on June 30, 2015, 03:07:48 PM
On that note, I find the maximum value of 20 pretty low leading to false triggering, or maybe I miss the point and this is an audio cable intended feature anyway?

I noticed that too. Maybe the max level should be increased but I didn't want to tweak anything that was already working fine on other platforms. Users that strictly shoot still will probably have the mic automatic gain control turned on and will find that adjusting the Audio RemoteShoot Trigger level on the ML menu doesn't make much of a difference but if you put the camera in movie mode and navigate to the Canon movie menu and set the "Sound recording" option to "Manual" you have control over the "Rec. level" that seems to carry over when you switch back to photo mode.