The 25MHz oscillator for the sensor is mounted on the camera module board, not on the Pi. Therefore if you have two camera modules, you have two oscillators. With the best will in the world, they will not stay perfectly synchronised. The sensors solely use that clock (via PLLs and register settings) to determine the rate at which they produce pixel data, so the pixel rate will drift too.Kozuch wrote:Thanks for your answer. Ok, so you say there only will be a delay due to the independent clocks on both camera modules. How much can this be? Given the cameras clock at about 25 MHz I guess this may be in a range of microseconds at worst?
Also, I am interested to know how the whole image capture pipeline works in detail (both software and hardware). In the stereoscopic camera capture that you implemented in C (this thread), are the cameras actually triggered sequentially in the code (first line = first camera, second line = second camera) or is the chipset able to trigger them both by a single line of C code? And are the cameras actually read sequentially by the chipset or are there two HW imaging pipelines that will do this simultaneously? I am not technically savvy enough to be able to read this out from some datasheets...
Gordon, if you really want to start playing, then feel free!gsh wrote:It may be possible to add a little patch to the code that I implemented a while back that synchronises the left and right frames by adding / removing a blanking interval line from one of the cameras. Unfortunately I've not got it to hand and would have to pick it back up again but it is possible... This would then make the cameras sync up to the nearest line (approximately)
Free time - I've heard of that, but it's generally in fairly short supply for me toogsh wrote:Yeah,
Might have to hang until I've got some free time (not had a minute in the last two years but you never know!)
Can we get a more concrete delay value than that "order of 1ms" (does this actually mean a sub-1ms?)? I mean, if we know the speed of the I2C bus then it may be possible to say what the delay may be more precisely. I am looking for a sub-1ms synchronization, possibly on a microsecond level. I would really appreciate if anyone knows more about this. Thanks!The I2C commands are sent to the sensors via the same peripheral (using pin muxing to select which sensor to talk to as they share the same I2C address), so yes they are started one after the other. The delay is probably in the order of 1ms though, so not massive.
Did anyone get any figures to this question?Can we get a more concrete delay value than that "order of 1ms" (does this actually mean a sub-1ms?)? I mean, if we know the speed of the I2C bus then it may be possible to say what the delay may be more precisely. I am looking for a sub-1ms synchronization, possibly on a microsecond level. I would really appreciate if anyone knows more about this. Thanks!
Can you guess what will the drift be after 1 hour (if they were started in perfect sync)? I mean a rough guess given the grade of oscillator that the camera board is equipped with... Will it be in the range of us, single digit ms, tenths/hundreds of ms etc? Will the drift depend on FPS and image resolution used?6by9 wrote:As stressed before, the sensors are running off independent oscillators so they will drift once started. You're probably OK for a few minutes, but don't try hours.
No because it will depend on the exact oscillator frequencies and PLL accuracies in the particular pair of modules you are trying to use.
Users browsing this forum: No registered users and 2 guests