Good day
I`ve ordered SparkFun OpenLog Artemis to use in my project with DSLR camera.
My goal is to catch precise timestamps of camera´s shutter events on OpenLog´s SD card, along with precisely time stamped IMU data for further processing in 3D reconstruction software. The main thing is to associate IMU XYZ data with photos.
It is theoretically possible when using a Hot Shoe adapter like this.
https://www.seagulluav.com/manuals/Seag … Manual.pdf
https://www.3dxr.co.uk/product/1776/
When DSLR camera takes a picture, at the exact moment when the shutter is fully opened, it shorts the central pin on the Hot Shoe to ground (the sides of the hot shoe).
Normally when external flash is installed on top of the camera, the flash itself supplies voltage to the central pin. When the camera shortens central pin to the ground, it lets current flow through the camera back to the flash, which triggers the flash´s discharge circuit.
All the process takes 1/250 of a second.
What I want to do is somehow connect the mentioned above Hot Shoe adapter to my SparkFun OpenLog Artemis´s AD input and get the timestamp in the log file.
This Hot Shoe adapter is designed to work with AD inputs of Pixhawk controller.
https://ardupilot.org/copter/docs/commo … rview.html
It has 3 wires: ground, power and signal that connect to one of Pixhawk´s configurable AD inputs/outputs (each one is 3pin, numbered from 1 to 6).
Hot Shoe adapter manual says the Pixhawk must be configured to register Trigger LOW events. See https://www.seagulluav.com/manuals/Seag … Manual.pdf
I´m not 100% sure but seems that this Hot Shoe adapter constantly passes through itself input voltage from Pixhawk´s power pin back to Pixhawk´s signal pin. And when camera triggers it briefly shortens signal to ground and Pixhawk registers Trigger Low event.
OK, that´s fine. Now I have to somehow register this event using AD input of OpenLog Artemis.
OpenLog´s datasheet does not provide much information about configurability of AD ports.
All I know is:
• Supported voltages 0-2v (to register value with AD), 3.3v limit not to burn something
• Supported refresh rate 1000Hz and above
• Configurability: only to turn on/off registering AD input
Knowing that I see two global ways to register Hot Shoe data:
-
Inefficient. Pass through Hot Shoe adapter VCC voltage from OpenLog Artemis back to OLA AD pin. Constantly register voltage values (99,97% will be 3.3v). Register voltage drops (0,03% will be ~0v). Photo session duration time will be 10-30 minutes (with 1000Hz that’s a lot of data). After that process all data with Python script to filter out 3.3v and get only voltage drop events
-
Efficient (maybe). Make some circuit that will output 2v square signal to OpenLog Artemis every time the Hot Shoe triggers low. Log file gets only events´ data. This approach assumes that OpenLog Artemis does not register 0v values.
Which one is better, what do you think?
Or maybe it is possible to open a new feature request (would be awesome!)
I mean somehow modify behavior of the OpenLog Artemis AD input logger through firmware or configuration. Add functionality to trigger low, trigger high and also add a way to set voltage filter, in order to register only needed levels.
If it´s possible, I kindly ask to create a new feature request.
I´m ready to participate in implementing and testing this feature and share my results here.
Additional questions:
• If input voltage is 0v does the OpenLog Artemis continue to write zeroes to SD card? Or it logs data only if voltage is above 0v?
• Will the OpenLog Artemis be capable of registering high rate IMU data (200Hz), along with high rate AD input data (1000Hz) and along with other sensors (GPS, etc.)? What SD card will you recommend to eliminate possible bottle neck? Or it writes to some RAM buffer and only periodically saves data on SD card?
• What are the input current limitations of AD pins of OpenLog Artemis. Obviously I have to protect them from overcurrent and overvoltage events. I also consider buy something like this adapter https://www.amazon.com/Vello-TTL-Off-Ca … B005GMWEI8 and cut down the wire to use it as a Hot Shoe adapter. I´m a network engineer and junior level Python programmer with limited knowledge in electronic engineering. Would appreciate any advice on creating custom cable using this and protecting it with additional circuit (Zener diode etc.)
• From what pin it´s better to take voltage from the OpenLog Artemis board to power Hot Shoe adapter in order not to burn anything
P.S. Sorry if my English is not perfect, this is my 3-rd language
Thank you
Regards
Max P.