Hi @erik ,
Just checking in to see if you heard anything back - I notice there is an identical issue mentioned in this Github issue:
luxonis/depthai-core784
Based on that Github issue and some recent discussions in this forum, and a Discord thread in the #synchronization channel from Nov 2022, I printed out the host timestamps for each packet (rgb, left, right, depth output) for each OAK I am syncing. I noticed the sync pulse is triggering the depth data at twice the sync pulse frequency!! So I modified my setup slightly as follows:
- we have a sync pulse that stays high (12V) and pulses low (0V) for 1ms at a frequency of 5Hz
- set rgb, left, right to FrameSyncMode INPUT as previously described
- the sync pulse is actually triggering the depth twice! so to compensate I set fps as follows (for a 5Hz pulse):
camRgb.setFps(5.0)
left.setFps(2.5)
right.setFps(2.5)
So now I am getting much more reliable sync operation, the timestamps from rgb and depth stream from all of my OAKD cameras are within 1ms of each other… but the mono camera exposure flickering which causes bad depth data still persists! So there is still a very annoying firmware bug where the FSYNC signal is causing the left/right cameras to flicker/reset their exposure times which corrupts the depth data.
See here, with no FSYNC and normal operation, three OAKDs produce good depth data, but the timestamps are not sync'd at all (as expected), so while depth is good here, the unsync'd cameras are not usable for my application:
Here, the FSYNC is syncing the rgb,left,right of each OAK, and the timestamps of all all packets are within 1ms of each other - which is great! But the depth data is now unusable:
Important side note:
Not to distract from the main critical bug, but there is a secondary bug where I setup output queues for left, right, and depth streams while using FSYNC , and the depthai driver (or perhaps OAKD firmware?) crashes after 39 messages received. It is very odd but very consistent behavior. I work around this by only reading rgb and depth stream and not using left/right raw camera streams at the same time as the depth stream.
So back to my main issues:
1) Why does the depth image trigger at twice the FPS of the FSYNC pulse?
2) Why does the FSYNC pulse cause the left/right mono cameras to flicker their exposure and corrupt the depth data?
The Github issue is unanswered, and this forum is full of questions about this topic also unanswered - please provide some insight here. I would love to schedule a call with the firmware team to discuss in more detail if that would be helpful.
Cheers,
-Amir