Hi dizcza,
I'd like to ask you how you managed to receive UBX-TIM-SMEAS messages in LEA-M8? Are they sent automatically after a fix or you send a configuration command (UBX-CFG-SMGR)?
I enabled the UBX-TIM-SMEAS message in uBlox u-Center after configuring UBX-CFG-ESRC and UBX-CFG-SMGR. The UBX-CFG-MSG command can be used to enable UBX-TIM-SMEAS every second, and this is what I did.
To calibrate the SiT5721, I mostly figured out the math using 2-point linear algebra in a spreadsheet. My SiT5721 is operating in the linear aging region now, so it works well enough so far. I can get 0.8 ppb precision easily. It is all manual so far, but I will likely try to automate it using Python at some point. I'm in no rush, so I'll check out the PID implementation you mentioned! It would be nice to have the pull value and aging compensation to auto-set!
I learned that to use GPS as a frequency standard transfer mechanism, you need to use one exact day (86400 seconds) for measurements, meaning one adjustment per day with accuracy. I found that I could use a 1h measurement to set a coarse pull value, and then wait 86400 seconds to get the accurate pull value. This sets the frequency offset to zero at the time I set the accurate pull value, so I need another 86400 seconds to measure crystal aging compensation. I believe it is the 24h drift/86400s, this is where I am now!
If I was a math genius, I'd use something more advanced than 2-point linear equations, but the simplicity helps grasp the principles at play. Maybe this will be easier to do once I start using Python to pull uBlox messages and set the SiTime device!
Martin