JW
James Wilson
Wed, Dec 21, 2022 11:22 PM
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.
-
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.
-
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?
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?
JH
Jim Harman
Thu, Dec 22, 2022 12:42 AM
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@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.
-
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.
-
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@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
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@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@lists.febo.com
> To unsubscribe send an email to time-nuts-leave@lists.febo.com
--
--Jim Harman
JW
James Wilson
Thu, Dec 22, 2022 6:20 AM
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@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@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.
-
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.
-
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@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
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@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@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@lists.febo.com
>> To unsubscribe send an email to time-nuts-leave@lists.febo.com
>
>
>
> --
>
> --Jim Harman
> _______________________________________________
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe send an email to time-nuts-leave@lists.febo.com
BC
Bob Camp
Thu, Dec 22, 2022 1:57 PM
On Dec 22, 2022, at 1:20 AM, James Wilson via time-nuts time-nuts@lists.febo.com wrote:
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@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@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.
-
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.
-
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.
Doesn’t the TO command set the output time on the PRS-10? In other words,
it’s setting the delay between the “internal” forever running PPS and the rising
edge on the output waveform.
If so, it’s not quite clear what you will be getting done other than transferring all
of the jitter from the output of the GPS to the output of the Rb. The PRS-10
will go from a 1x10^-11 1 sec ADEV to roughly 1x10^-9 at 1 second ….
Bob
Hi
One quick question:
> On Dec 22, 2022, at 1:20 AM, James Wilson via time-nuts <time-nuts@lists.febo.com> wrote:
>
> 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@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@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.
Doesn’t the TO command set the *output* time on the PRS-10? In other words,
it’s setting the delay between the “internal” forever running PPS and the rising
edge on the output waveform.
If so, it’s not quite clear what you will be getting done other than transferring all
of the jitter from the output of the GPS to the output of the Rb. The PRS-10
will go from a 1x10^-11 1 sec ADEV to roughly 1x10^-9 at 1 second ….
Bob
>>>
>>> Has anyone built sawtooth correction for the PRS-10 and can comment on
>>> this?
>>> _______________________________________________
>>> time-nuts mailing list -- time-nuts@lists.febo.com
>>> To unsubscribe send an email to time-nuts-leave@lists.febo.com
>>
>>
>>
>> --
>>
>> --Jim Harman
>> _______________________________________________
>> time-nuts mailing list -- time-nuts@lists.febo.com
>> To unsubscribe send an email to time-nuts-leave@lists.febo.com
> _______________________________________________
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe send an email to time-nuts-leave@lists.febo.com
AB
Azelio Boriani
Thu, Dec 22, 2022 3:06 PM
The PRS10 manual offers no clue about when the offset (TO command) is
added to the measured time-tag (TT? command) so the only way to know
is to try (with the input filter off, LM0 command) and see if feeding
the sawtooth correction once a second has any effect on the PPS output
and frequency output. In my opinion the PRS10 input filter makes the
sawtooth correction unnecessary. other than taking care of occasional
hanging bridges.
On Thu, Dec 22, 2022 at 1:15 PM James Wilson via time-nuts
time-nuts@lists.febo.com wrote:
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@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@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.
-
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.
-
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@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
--
--Jim Harman
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
The PRS10 manual offers no clue about when the offset (TO command) is
added to the measured time-tag (TT? command) so the only way to know
is to try (with the input filter off, LM0 command) and see if feeding
the sawtooth correction once a second has any effect on the PPS output
and frequency output. In my opinion the PRS10 input filter makes the
sawtooth correction unnecessary. other than taking care of occasional
hanging bridges.
On Thu, Dec 22, 2022 at 1:15 PM James Wilson via time-nuts
<time-nuts@lists.febo.com> wrote:
>
> 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@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@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@lists.febo.com
> >> To unsubscribe send an email to time-nuts-leave@lists.febo.com
> >
> >
> >
> > --
> >
> > --Jim Harman
> > _______________________________________________
> > time-nuts mailing list -- time-nuts@lists.febo.com
> > To unsubscribe send an email to time-nuts-leave@lists.febo.com
> _______________________________________________
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe send an email to time-nuts-leave@lists.febo.com
BC
Bob Camp
Thu, Dec 22, 2022 3:19 PM
Hi
My thought was that there must be a command to set/modify the “position” of the output
PPS without doing anything else. Based on a quick re-read of the commands, it was the
only candidate I saw. You kinda sorta need to have a command like that to get the output
lined up to the “right” on time tick time ( if that’s the sort of application you have ….).
Bob
On Dec 22, 2022, at 10:06 AM, Azelio Boriani via time-nuts time-nuts@lists.febo.com wrote:
The PRS10 manual offers no clue about when the offset (TO command) is
added to the measured time-tag (TT? command) so the only way to know
is to try (with the input filter off, LM0 command) and see if feeding
the sawtooth correction once a second has any effect on the PPS output
and frequency output. In my opinion the PRS10 input filter makes the
sawtooth correction unnecessary. other than taking care of occasional
hanging bridges.
On Thu, Dec 22, 2022 at 1:15 PM James Wilson via time-nuts
time-nuts@lists.febo.com wrote:
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@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@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.
-
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.
-
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@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
Hi
My thought was that there must be a command to set/modify the “position” of the output
PPS without doing anything else. Based on a quick re-read of the commands, it was the
only candidate I saw. You kinda sorta need to have a command like that to get the output
lined up to the “right” on time tick time ( if that’s the sort of application you have ….).
Bob
> On Dec 22, 2022, at 10:06 AM, Azelio Boriani via time-nuts <time-nuts@lists.febo.com> wrote:
>
> The PRS10 manual offers no clue about when the offset (TO command) is
> added to the measured time-tag (TT? command) so the only way to know
> is to try (with the input filter off, LM0 command) and see if feeding
> the sawtooth correction once a second has any effect on the PPS output
> and frequency output. In my opinion the PRS10 input filter makes the
> sawtooth correction unnecessary. other than taking care of occasional
> hanging bridges.
>
> On Thu, Dec 22, 2022 at 1:15 PM James Wilson via time-nuts
> <time-nuts@lists.febo.com> wrote:
>>
>> 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@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@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@lists.febo.com
>>>> To unsubscribe send an email to time-nuts-leave@lists.febo.com
>>>
>>>
>>>
>>> --
>>>
>>> --Jim Harman
>>> _______________________________________________
>>> time-nuts mailing list -- time-nuts@lists.febo.com
>>> To unsubscribe send an email to time-nuts-leave@lists.febo.com
>> _______________________________________________
>> time-nuts mailing list -- time-nuts@lists.febo.com
>> To unsubscribe send an email to time-nuts-leave@lists.febo.com
> _______________________________________________
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe send an email to time-nuts-leave@lists.febo.com
JW
James Wilson
Thu, Dec 22, 2022 7:18 PM
On Dec 22, 2022, at 07:19, Bob Camp via time-nuts time-nuts@lists.febo.com wrote:
Hi
My thought was that there must be a command to set/modify the “position” of the output
PPS without doing anything else. Based on a quick re-read of the commands, it was the
only candidate I saw. You kinda sorta need to have a command like that to get the output
lined up to the “right” on time tick time ( if that’s the sort of application you have ….).
Bob
The PP command actually moves the pulse.
Regarding your other question about the TO command, I do not think it changes the output time pulse: it is a value that is added to the measured time-tag (PPS_IN - PPS_OUT) as the reported time-tag (what is returned by TT?). The manual describes the calibration procedure of looping the PPS_IN and PPS_OUT connections, then measuring the time-tag value of TT?. This returned value should be subtracted from the current time offset (TO?) and then set as the time offset using TO. After that, the result of the TT? command will be roughly zero. If TO actually moved the pulse, then this calibration wouldn’t work since in this looped case, it is always true that PPS_IN = PPS_OUT + cable delay.
From my understanding of the manual and my experience with the PRS10, when the PLL starts up, it does a one-time alignment of the time pulse and then it makes slow adjustments to the oscillator frequency to drive the time-tag value to zero. It is not continually moving the pulse delay or that would cause insane jitter as you mentioned.
> On Dec 22, 2022, at 07:19, Bob Camp via time-nuts <time-nuts@lists.febo.com> wrote:
>
> Hi
>
> My thought was that there must be a command to set/modify the “position” of the output
> PPS without doing anything else. Based on a quick re-read of the commands, it was the
> only candidate I saw. You kinda sorta need to have a command like that to get the output
> lined up to the “right” on time tick time ( if that’s the sort of application you have ….).
>
> Bob
The PP command actually moves the pulse.
Regarding your other question about the TO command, I do not think it changes the output time pulse: it is a value that is added to the measured time-tag (PPS_IN - PPS_OUT) as the reported time-tag (what is returned by TT?). The manual describes the calibration procedure of looping the PPS_IN and PPS_OUT connections, then measuring the time-tag value of TT?. This returned value should be subtracted from the current time offset (TO?) and then set as the time offset using TO. After that, the result of the TT? command will be roughly zero. If TO actually moved the pulse, then this calibration wouldn’t work since in this looped case, it is always true that PPS_IN = PPS_OUT + cable delay.
From my understanding of the manual and my experience with the PRS10, when the PLL starts up, it does a one-time alignment of the time pulse and then it makes slow adjustments to the oscillator frequency to drive the time-tag value to zero. It is not continually moving the pulse delay or that would cause insane jitter as you mentioned.
MW
Matthias Welwarsky
Sun, Dec 25, 2022 12:52 PM
On Donnerstag, 22. Dezember 2022 00:22:37 CET James Wilson via time-nuts
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.
I suggest you try correcting the 1PPS pulse of the timing module itself, using
a variable delay line. I don't have a particular part in mind, Maxim might
have something.
There was a very elaborate GPSDO project discussed last year on this list that
used this technique.
BR,
Matthias
On Donnerstag, 22. Dezember 2022 00:22:37 CET James Wilson via time-nuts
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.
I suggest you try correcting the 1PPS pulse of the timing module itself, using
a variable delay line. I don't have a particular part in mind, Maxim might
have something.
There was a very elaborate GPSDO project discussed last year on this list that
used this technique.
BR,
Matthias
> _______________________________________________
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe send an email to time-nuts-leave@lists.febo.com
GM
Greg Maxwell
Sun, Dec 25, 2022 2:28 PM
Has anyone tried talking to SRS? If TO doesn't do the right thing
already then it should only require a modest bit of firmware to do so,
and then a $1 microcontroller and gps unit (perhaps a nice new dual
frequency one) would turn the FS725 into a great GPSDO.
Anyone know if the FS740 rubidium version contains a PRS10? I would
assume-- might be interesting to spy on its serial communication.
On Sun, Dec 25, 2022 at 1:16 PM Matthias Welwarsky via time-nuts
time-nuts@lists.febo.com wrote:
On Donnerstag, 22. Dezember 2022 00:22:37 CET James Wilson via time-nuts
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.
I suggest you try correcting the 1PPS pulse of the timing module itself, using
a variable delay line. I don't have a particular part in mind, Maxim might
have something.
There was a very elaborate GPSDO project discussed last year on this list that
used this technique.
BR,
Matthias
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-leave@lists.febo.com
Has anyone tried talking to SRS? If TO doesn't do the right thing
already then it should only require a modest bit of firmware to do so,
and then a $1 microcontroller and gps unit (perhaps a nice new dual
frequency one) would turn the FS725 into a great GPSDO.
Anyone know if the FS740 rubidium version contains a PRS10? I would
assume-- might be interesting to spy on its serial communication.
On Sun, Dec 25, 2022 at 1:16 PM Matthias Welwarsky via time-nuts
<time-nuts@lists.febo.com> wrote:
>
> On Donnerstag, 22. Dezember 2022 00:22:37 CET James Wilson via time-nuts
> 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.
>
> I suggest you try correcting the 1PPS pulse of the timing module itself, using
> a variable delay line. I don't have a particular part in mind, Maxim might
> have something.
>
> There was a very elaborate GPSDO project discussed last year on this list that
> used this technique.
>
> BR,
> Matthias
>
> > _______________________________________________
> > time-nuts mailing list -- time-nuts@lists.febo.com
> > To unsubscribe send an email to time-nuts-leave@lists.febo.com
>
>
>
> _______________________________________________
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe send an email to time-nuts-leave@lists.febo.com
BC
Bob Camp
Sun, Dec 25, 2022 7:13 PM
Hi
If you buy the right option, you get a FS740 with a Rb. Since the hardware in the box
also works fine with an OCXO, it is unlikely that they do anything odd with the Rb other
than simply tune it.
Bob
On Dec 25, 2022, at 9:28 AM, Greg Maxwell via time-nuts time-nuts@lists.febo.com wrote:
Has anyone tried talking to SRS? If TO doesn't do the right thing
already then it should only require a modest bit of firmware to do so,
and then a $1 microcontroller and gps unit (perhaps a nice new dual
frequency one) would turn the FS725 into a great GPSDO.
Anyone know if the FS740 rubidium version contains a PRS10? I would
assume-- might be interesting to spy on its serial communication.
On Sun, Dec 25, 2022 at 1:16 PM Matthias Welwarsky via time-nuts
time-nuts@lists.febo.com wrote:
On Donnerstag, 22. Dezember 2022 00:22:37 CET James Wilson via time-nuts
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.
I suggest you try correcting the 1PPS pulse of the timing module itself, using
a variable delay line. I don't have a particular part in mind, Maxim might
have something.
There was a very elaborate GPSDO project discussed last year on this list that
used this technique.
BR,
Matthias
Hi
If you buy the right option, you get a FS740 with a Rb. Since the hardware in the box
also works fine with an OCXO, it is unlikely that they do anything odd with the Rb other
than simply tune it.
Bob
> On Dec 25, 2022, at 9:28 AM, Greg Maxwell via time-nuts <time-nuts@lists.febo.com> wrote:
>
> Has anyone tried talking to SRS? If TO doesn't do the right thing
> already then it should only require a modest bit of firmware to do so,
> and then a $1 microcontroller and gps unit (perhaps a nice new dual
> frequency one) would turn the FS725 into a great GPSDO.
>
> Anyone know if the FS740 rubidium version contains a PRS10? I would
> assume-- might be interesting to spy on its serial communication.
>
> On Sun, Dec 25, 2022 at 1:16 PM Matthias Welwarsky via time-nuts
> <time-nuts@lists.febo.com> wrote:
>>
>> On Donnerstag, 22. Dezember 2022 00:22:37 CET James Wilson via time-nuts
>> 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.
>>
>> I suggest you try correcting the 1PPS pulse of the timing module itself, using
>> a variable delay line. I don't have a particular part in mind, Maxim might
>> have something.
>>
>> There was a very elaborate GPSDO project discussed last year on this list that
>> used this technique.
>>
>> BR,
>> Matthias
>>
>>> _______________________________________________
>>> time-nuts mailing list -- time-nuts@lists.febo.com
>>> To unsubscribe send an email to time-nuts-leave@lists.febo.com
>>
>>
>>
>> _______________________________________________
>> time-nuts mailing list -- time-nuts@lists.febo.com
>> To unsubscribe send an email to time-nuts-leave@lists.febo.com
> _______________________________________________
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe send an email to time-nuts-leave@lists.febo.com