[time-nuts] Re: PRS-10 sawtooth correction with microcontroller

James Wilson jmw at fastmail.com
Thu Dec 22 06:20:09 UTC 2022


Thanks Jim - I wouldn’t mind having a look at the code you wrote to see if I understand the ublox commands correctly.

I’ve done the survey-in step with the LEA-M8T module I have - I’ll probably have this program do it as part of startup if the GNSS module is on a cold boot and doesn’t have saved survey data.

> On Dec 21, 2022, at 16:42, Jim Harman via time-nuts <time-nuts at lists.febo.com> wrote:
> 
> I have not interfaced to the PRS-10, but I have Arduino code to extract the
> qErr data from the UBX-TIM-TP messages. It also extracts the clock time
> from that message in case that is of interest . It is implemented as a C++
> Class and is easily extensible if you need to read more uBlox messages.
> 
> One thing you also may want to consider in working with the uBlox T series
> modules is the need to do a Survey-in to determine the exact location and
> put the module in Fixed mode, to reduce the errors in the timepulse.
> 
> I would be happy to share my code and setup instructions for the uBlox
> modules if that would be helpful.
> 
> On Wed, Dec 21, 2022 at 6:49 PM James Wilson via time-nuts <
> time-nuts at lists.febo.com> wrote:
> 
>> After running in many of the familiar problems of connecting a GPS timing
>> module 1PPS signal to a PRS-10, I want try building a software sawtooth
>> correction board. I’ve seen previous discussion of some of the commands to
>> use for adjusting the PLL and PPS control on the PRS-10 and getting the
>> sawtooth error from ublox GNSS modules, but not a start-to-finish
>> description of how to put everything together.
>> 
>> My idea to use a microcontroller with multiple UART ports; one connected
>> to the ublox module and the other connected to the PRS-10, with level
>> shifters as needed. The microcontroller sits between the two devices, and
>> gets the PPS sawtooth correction info from the ublox (specifically via the
>> UBX-TIM-TP message and its qErr field), and then adjusts the PRS-10’s PPS
>> time offset by this value to null out the sawtooth for the next pulse.
>> 
>> 1. At startup, configure the timing module to periodically send UBX-TIM-TP
>> messages every second. From the PRS-10, get the current time offset value
>> with the TO? command.
>> 
>> 2. Listen for UBX-TIM-TP messages, and extract the qErr field. If the
>> qErrInvalid bit is clear, compute qErr/1000 (convert from ps to ns) and add
>> this to the stored time offset value. Push the adjusted time offset to the
>> PRS-10 via the TO command.
>> 
>> Has anyone built sawtooth correction for the PRS-10 and can comment on
>> this?
>> _______________________________________________
>> time-nuts mailing list -- time-nuts at lists.febo.com
>> To unsubscribe send an email to time-nuts-leave at lists.febo.com
> 
> 
> 
> -- 
> 
> --Jim Harman
> _______________________________________________
> time-nuts mailing list -- time-nuts at lists.febo.com
> To unsubscribe send an email to time-nuts-leave at lists.febo.com




More information about the Time-nuts_lists.febo.com mailing list