How to trigger-sync camera video frames from arduino?

I'm a more-or-less advanced MCU programmer and user: can anyone shed some light (pardon the pun!) on how best to record camera frames (at the highest possible shutter speed) which are synchronized to an external event?

I want to record "stopped motion" for propeller analysis, a bit like these guys do: https://youtu.be/N3WwQKZ05Uk?t=139

I'm seeking advice on the camera hardware that might be needed. I'll be using a hall sensor on the motor shaft and FETs to trigger the strobe and camera, then grabbing and writing the frame data to an SD card (and using perl+FFMPEG to assemble them into a video later on my PC). If a 328p isn't fast enough, I'll move to ESP32 or better - but for now - knowing the right camera to use is where my skills are non-existent.

Looks like you need a high-speed camera and a LOT of light. How many frames per second? The cheapest Phantom camera is about $25,000.

Hi John,

It's the shutter speed that's important, not the frame rate - I don't care about the frames, even 1 per second is enough, this is a periodic motion, so more-or-less every frame will appear identical (imagine "freezing" the water from a dripping tap with a strobe - it doesn't matter how many drips you miss, so long as every time the flash goes off, they're all in the right place)

The "lot of light" is easy - a strobe should do. LEDs are easier, but strobe might give more intense light for the tiny amount of time I need. I'm hoping for a fraction of a millimeter movement on things going almost the speed of sound.

I'm aware of the high-frame-rate camera costs, yes, and that's out of my budget... but what about high shutter speed stuff - got any ideas ?

I don’t see why a 328 shouldn’t work, but I’d be inclined to not use the full Arduino framework, so you can have complete control, without timer interrupts messing up the timing

cndg: It's the shutter speed that's important, not the frame rate

If you use a Xenon strobe for lighting then the shutter speed is also irrelevant.

cndg: can anyone shed some light (pardon the pun!) on how best to record camera frames (at the highest possible shutter speed) which are synchronized to an external event?

I want to record "stopped motion" for propeller analysis, a bit like these guys do:....but for now - knowing the right camera to use is where my skills are non-existent.

I need to do something similar for engine valve gear analysis. I have achieved useful results by using a strobe synchronised to a frequency slightly higher than cam rotation speed to give the impression of slow motion. The camera is free running at 60 Hz. so it takes a lot of frames in the "dark". However, enough frames coincide with the strobe to give usable results. The timing of the strobe is controlled by an Arduino 328. It receives engine synchronised pulses and outputs slightly higher frequency pulses to the strobe. I would like better results and for that I would like a max. frame rate of 120 Hz (although I could live with 60) but the important feature is the ability to take frames on command up to those frequencies, so that I do not get the "dark" frames. It was a couple of years back when I searched for such a beast and I found nothing to suit my budget at that time. I found some cheap cameras sold for the PI that could be triggered on demand but their frame rates were not high enough. Maybe they would be for your job? Here is a video of my first results, engine running at 6000 rpm. Normally, the strobe frequency would be closer to the cam frequency to give a slower effect but it shows the possibilities of a very simple setup; https://www.dropbox.com/s/vpimlsbnmn33ssc/DSC_0197.MOV?dl=0