Femto Bolt doesn't keep exactly 30.0 FPS

Hello,
I tried 3 different Femto Bolt and they have different FPS. We’re using the last firmware available: 1.0.9.

  1. FPS_CAM1: 30.14
  2. FPS_CAM2: 30.028
  3. FPS_CAM3: 30.063

We have measured these values via ‘Orbbec Viewer’ software looking at FrameIndex and Device Timestamp in two different moment T1 and T2:
T1: after 30 seconds the channels Color and Depth have been opened.
T2: after 240 seconds the channels Color and Depth have been opened.
FPS = (FrameIndex@T2 - FrameIndex@T1) / (DeviceTS@T2 - DeviceTS@T1)

I also compared the values of DeviceTimestamp with different stopwatches and it is quite precise, the problem is that I receive a different amount of frames than expected.

We want to replace Microsoft K4Azure with Femto Bolt in all our manufacturing lines but we can’t if the camera doesn’t have a precise FPS of 30.00, because we synchronize it with other sensors and after 1 minute it goes out of sync.

Is there a way to get a precise FPS, at least between 29.999 and 30.001?

Thanks

1 Like

thank for your message,
we will look into this issue and reproduce it

Hello @xuchongyan,
do you have any update on this issue?

We have made the same test on 10 Femto Bolt and every camera has different FPS values, so it’s very important for us that this problem will be fixed to allow the synchronization of the camera with other sensors.

Thanks

I too am eager to see this resolved. Being able to keep it in sync with other sensors is very important in my application for the Femto Bolt.

Received, I will give my verification results this week

The issue you reported regarding the framerate not consistently being 30FPS, I have been able to successfully reproduce it. After analyzing the problem together with our engineers, we’ve come to the following conclusions:

  1. Although a single Bolt unit’s framerate is not exactly 30FPS, the frame intervals are stable and can be fixed at a certain value.
  2. Indeed, when multiple Bolt units are in operation, maintaining a consistent 30FPS across all of them is not possible. This instability is due to variations in the hardware clock signals (crystal oscillators) across different units.
    This two AzureKinect Frame interval :

This is two Bolt Frame intervals:


Dear @xuchongyan,
thanks for your reply.
Unfortunately I cannot see you images with any browser.

Could you please re-upload them?
Thanks

sorry,It might be a network issue that’s preventing the image from loading; I’ve already re-uploaded the picture

Yes, thank you @xuchongyan now I can see them.

I’m glad that you can reproduce the problem, this is exactly what I’ve found with my Bolts.
If you print also the timestamp from the camera and the timestamp from a stopwatch of a pc you’ll find that the camera’s timestamp it’s very precise.
So IMHO the quartz oscillator inside the Bolt is very precise.

The good thing is that the FPS of the camera is always above 30.000 Hz so your team can easily change the code in the Bolt firmware to wait until 33333 microseconds have elapsed and then make the frame available for reading.
We could also do this in our software but it is not precise as doing it in the camera firmware.
This fix would greatly improve the Bolt camera and allow us to use it in a multisensor environment as we need.

Let me know if you need any more information or I can help in any way.

Thanks

I am trying to understand the ramification of this issue. Do I understand it correctly?

If you record video at 30fps using the bolt will simultaneously recording video on a broadcast camera at 30 fps and then playback the two video files simultaneously will the Bolt Video drift out of sync with the Broadcast video over time in playback at 30 fps?

Hi @Valis,
yes the Femto Bolt record more frame than the broadcast camera so during playback the Bolt Video stays behind the broadcast video.