Is it possible to achieve accurate multi-camera start record synchronization across two PCs using arduino?

I’m working on a multi-camera recording setup with two computers, each capturing four cameras (8 total). The cameras are genlocked for frame synchronization, but I’m struggling to align the start time of recording between the two PCs. Here’s my current setup and issues:

Current Setup:

  • Two client PCs running custom capture software.

  • A third PC acts as an NTP server to send "start recording" commands over LAN.

  • Genlock ensures frame alignment once recording starts.

Problem:

  • Network latency causes inconsistent command arrival times (PC1 vs PC2), leading to misaligned initial frames.

  • Attempted syncing system clocks via NTP and starting at the next full second, but clock drift remains (50-100ms offsets).

Would an Arduino-based hardware trigger (e.g., GPIO pulse sent via USB/RS232) provide microsecond-level accuracy? How to interface Arduino with PCs to trigger recording (e.g., serial command, emulating keyboard input)?

Well, GPT suggested using PTP (Precision Time Protocol) IEEE 1588, which I plan to explore next to see if it helps. However, I’m still curious whether there’s a straightforward way to implement a hardware-based approach using a microcontroller like an Arduino. Any advice is very much appreciated!

I moved your topic to an appropriate forum category @iambatman3.

In the future, when creating a topic please take some time to pick the forum category that best suits the subject of your topic. There is an "About the _____ category" topic at the top of each category that explains its purpose.

This is an important part of responsible forum usage, as explained in the "How to get the best out of this forum" guide. The guide contains a lot of other useful information. Please read it.

Thanks in advance for your cooperation.

I would look to a custom PCB, perhaps, but there may be an off-the-shelf one. What you need basically is a single 'clock' to send a pulse to all PC's at once to command them to start. Of course, Windows overhead itself may cause small/tiny differences. I would be more inclined to use Linux.
I assume there is some reason you can't use the camera's remote release mechanism which does away with the PCs altogether.

1 Like

Operating systems are in general not real-time. The one that I know that states to be real-time is QNX.

Is one Genlock implemented across both computers (all 8 cameras locked)?

As opposed to transmitting a start signal, you might be able to use the PPS output of a $10 GPS module to trigger the start at the exact beginning of a second. Each computer, or even each camera, could have its own GPS module, all of which would have a positive edge at the very beginning of a second.

But I'm curious why it's necessary to start all the cameras at the same time. If they are all genlocked, couldn't you sync them after the fact? Maybe use something like a movie clapboard (actually "clapperboard"), or an optical equivalent, like a flash going off that all cameras can see.

1 Like

That was new to me and looks quite interesting.
Microsoft systems are basically chaotic systems and do things on their own time. I wonder if using Apple systems would be more predictable?