Express kit (ZEP-F9P) Time output data format

Hey everyone,

I’m using the Express Kit for a road survey project along with a GoPro camera. Right now, I have the system running at a 10 Hz update rate.

Just wanted to ask — are the timestamps accurate to three decimal places? Like, for example: H:M:S.700?

Because currently, the output I’m getting looks like this:

H:M:S.000  
H:M:S.100  
H:M:S.200  
...  
H:M:S.900

Is this expected behavior for 10 Hz? Or is there a way to get more precise timestamps (with full millisecond resolution)?

Appreciate any insights!

Hi Syed (@Syed_Shujat_Ali ),

Yes, this is expected. With the navigation rate set to 10Hz, the ZED will produce and output solutions every 100ms. The time of the solution will be 000, 100, 200 milliseconds etc..

If you want to capture / timestamp an “event”, you need to use the EXT_INT pin and the UBX-TIM-TM2 message. The TIM-TM2 message will contain the time of the most recent rising and falling edge EXT_INT events - with nanosecond resolution.

I hope this helps,
Paul

Hi Paul,
Thanks for your response.

Understood — however, we’re expecting a random trigger or GNSS signal that provides timestamps accurate to three decimal places. Ideally, this would start at a point like .666 seconds and continue from there — e.g., .666, .766, .866, etc.

Do you have any insight into why the timestamps are consistently aligned to .100, .200, and so on? Why not more varied intervals like .121 or .221?

The precision down to the third decimal place is important in our case, as we’re working on a time-syncing process where the camera timestamp needs to be accurately aligned with GNSS time.

Best regards,
Syed Shujat Ali

Hi Syed (@Syed_Shujat_Ali ),

The UBX-NAV-PVT message and the NMEA GGA/RMC message contain the time and position of each solution. The GNSS is saying “At exactly H:M:S.900, my position was this Latitude and this Longitude”. If you know your camera frame was taken at exactly H:M:S.921, you can interpolate the position from the previous (.900) and next (.000) solutions.

How do you plan to synchronise the camera to GNSS? That’s the critical thing…

Triggering the camera shutter from the GNSS timing pulse output is one possibility.

Or, you could generate an interrupt on the GNSS EXT_INT pin when the camera frame starts to arrive. The TIM-TM2 message will give you the accurate time of that event - down to the nanosecond. You would need to manually calibrate out the delay between the image being recorded and the data starting to arrive.

Best,
Paul