Author Topic: Tell an external electronic devices when the shutter is open (in video mode)  (Read 4363 times)

Scipione205

  • New to the forum
  • *
  • Posts: 28
Hi, I want to do some experiments with my 600D; even tough I think that it can be helpful for a series of applications (such as cine strobo lights), I would like to know if there's a practical way to send an electronic signal to an external electronic device (in my case, just an Arduino) to tell when the electronic shutter starts to scan the sensors lines, and when it finishes.
At least when the electronic shutters opens.

I thought that the flashmount or the mic jack (using Low-Level I/O scripting) can work? However I need the fastest synchro possible.

Thank you very much.

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
The simplest way is to toggle the LED from the LiveView vsync hook. You may want to create a module for that.

Scipione205

  • New to the forum
  • *
  • Posts: 28
thank you. what's the vsync hook? however I need to tell the sync to an arduino (I saw the low-level I/O APIs for scripting). Can you address me better?

Thanks

dmilligan

  • Developer
  • Hero Member
  • *****
  • Posts: 3218
  • 60Da / 1100D / EOSM
It's a callback (CBR) that you can register from a module (look in module.h). It gets executed for each LV frame. Look at the code in just about any module to see how to register a callback. All you would need to do in the callback is flash the LED.

Scipione205

  • New to the forum
  • *
  • Posts: 28
thank you. I will see. However flashing a LED is ussless xD

Walter Schulz

  • Contributor
  • Hero Member
  • *****
  • Posts: 8419
Flashing the LED might be almost everything you need (+ photodiode + amplifier or phototransistor and a little bit arduino programming).

Ciao
Walter

Scipione205

  • New to the forum
  • *
  • Posts: 28
Ciao walter,
potrei complicarmi meno la vita usando il jack del microfono (low level I/O, attivando/disattivando l'alimentazione - sta nelle API di scripting). Vi farò sapere xD

I hink it would be an easier and better solution to use the mic jack (low level I/O, using scripting APIs). I will tell you in the future...

Carlo

arrinkiiii

  • Hero Member
  • *****
  • Posts: 1104
  • ML ADDICTED 7D & 5D III

I remember that someone in this forum have manage where you connect  the timer remote shutter release output in the camera for sending signal to one arduino. The purpose is every time that camera take photo send message to arduino and arduino move motor... So, with ML/camera and arduino you can make timelapse with movement.

I have ask if he can share the code from arduino and the modified ML... but never more hear about him again  :-\   


dmilligan

  • Developer
  • Hero Member
  • *****
  • Posts: 3218
  • 60Da / 1100D / EOSM
I hink it would be an easier and better solution to use the mic jack (low level I/O, using scripting APIs). I will tell you in the future...

Yes, you can use the mic jack to send a rudamentary signal, people have used that for timelapse, but screwing with audio amps while recording video may not be possible or feasible IDK (I'm not sure how fast you can turn off and on the audio amp, video is much faster than timelapse), and it's going to screw up your audio if you're trying to record sound. It certainly would be less likely to give you acurate timing, and you might not be able to do it directly from the CBR since VSYNC has to operate very quickly.

Hooking up a photodiode to the arduino should be super simple and only cost a couple of cents, and it's nice b/c you are optically isolated from the camera, so there is no danger of you accidentally damaging your camera.

This is also something you're not going to be able to do from a script, I think it would actually be a lot harder from a script if it were even possible. A module to do this would be super simple, and you don't have to wait for the scripting API to be ported to tcc (which is still hasn't, so you'd be stuck on an old build), and there's no script equivalent of a vsync cbr (in other words, there's no way to know when a frame has been triggered from a script, so you wouldn't know when to send your trigger).