Does the PPS code work for the new INS example for OpenIMU?


I have put break points on TIM2_IRQHandler and I am never seeing this code called.

I have set the the following as per the docs:

void initUserDataProcessingEngine()
InitUserAlgorithm(); // default implementation located in file user_algorithm.c
platformEnableGpsPps(TRUE); // Init PPS sync engine

What am I doing wrong?



Hi Simonrob,

Could you tell me more details about what you want to do? So, I can get a firmware engineer to help you.



I am trying to work out if the pps code actually works and what it is doing, I have the IMU connected to a Ublox zed-f9p with the pps connect to pin 2 . I now can see that the interrupt is being serviced, but I can't work out in the code as bits are commented out if the timestamp is being adjusted accordingly.

Looking at in DataAcquisitionSupport.c and ONE_PPS_EXTI_IRQHandler.

Why is ppsDetected commented out?

void ONE_PPS_EXTI_IRQHandler(void)


// ppsDetected = 1;

EXTI->PR = ONE_PPS_EXTI_LINE;  ///< Clear the interrupt bit




@dong bump

@simon-rob , I will find the firmware engineer to answer your question.

1 PPS signal is processed inside timer5 interrupt routine.
ppsDetected is set inside function platformSetPpsTimeStamp(ts)

@Andrey Bondarev,

I can see how ppsDetected is set in Timer5, but as far as I can tell timer5 isn't triggered by the pps input on pin 2.

Timer0 gets trigger by the input on pin 2.

My question as I can't figure it out, is how is the timestamp being synchronised by the pps input?

Many thanks,


@Andrey-Bondarev @Dong-xiaoguang

Are you guys still working?

Please can you confirm that the time stamp is being synchronised by the external PPS signal as I cannot see how it is?

Please correct me if I am wrong?

PPS sync should work properly as long as 1PPS pulse provided to PPS pin.
Proper timestamp so far supported only for ublox binary nav-pvt message.

Log in to reply