Skip to content

Commit 2f57198

Browse files
committed
Docs changes
1 parent 93a3624 commit 2f57198

5 files changed

Lines changed: 37 additions & 29 deletions

File tree

194 KB
Loading

docs/hardware_overview.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ If you have the **`CONFIG ESP32 USB Port`** connected to a standard USB (2.0) po
139139

140140
If you have **`CONFIG MOSAIC USB Port`** connected to a standard USB (2.0) port, ensure the Power Delivery Wall Adapter is connected to **`CONFIG ESP32 USB Port`**. The Power Path priority will ensure power is drawn from the **`CONFIG ESP32 USB Port`**.
141141

142+
Consult page 9 of the [GNSSDO+ schematic](./assets/board_files/SparkPNT_GNSSDO_Plus_schematic.pdf) for more details
143+
142144
??? tip "Measure Current Draw"
143145
If you want to measure the board's current draw, you can open the `MEAS` jumper and measure the current via a pair of breakout pads *(see the **[Jumpers](#jumpers-gnssdo)** section)*.
144146

docs/how_it_works.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
icon: material/tools
33
---
44

5-
## How It Works
6-
75
As the name suggests, the SparkPNT GNSS Disciplined Oscillator (GNSSDO) and GNSS Disciplined Oscillator Plus (GNSSDO+) are very precise 10MHz disciplined oscillators.
86
Inside, the Septentrio mosaic-T GNSS provides all-in-view satellite tracking: multi-constellation, and multi-frequency. It has dedicated timing features for time and clock synchronisation. Using the clock bias measurements from the mosaic-T, which it calculates by comparing the internal 10MHz clock to those of the GNSS satellites, the GNSSDO(+) is able to discipline (adjust) the frequency of the digitally-controlled oscillator to bring it as close to 10MHz as possible. Once the frequency has been adjusted, the accuracy of the mosaic-T's Pulse Per Second output is: better than 5ns; and better that 1ns with an optional subscription to [Fugro's AtomiChron](./atomichron.md) timing service. Take two GNSSDOs, place them anywhere on the planet and you can be confident that their time pulses are aligned to within 5ns or 1ns of each other...
97

@@ -18,7 +16,7 @@ If you connect to the GNSSDO(+)'s CONFIG ESP32 USB port and open a terminal emul
1816
While the mosaic-T is acquiring a GNSS signal, the OLED display will show an Error such as "Measurements" or "Ephemerides":
1917

2018
<figure markdown>
21-
[![OLED showing Error Measurements](./assets/img/hookup_guide/OLED_1.png){ width="100" }](./assets/img/hookup_guide/OLED_1.png "Click to enlarge")
19+
[![OLED showing Error Measurements](./assets/img/hookup_guide/OLED_1.png){ width="250" }](./assets/img/hookup_guide/OLED_1.png "Click to enlarge")
2220
<figcaption markdown>OLED showing Error Measurements.</figcaption>
2321
</figure>
2422

@@ -29,7 +27,7 @@ Once the GNSS has acquired a signal and has a (preliminary) time solution: Error
2927
On GNSSDO+, the firmware will now go into **Mode** **WARMUP**. It can take approximately 10 minutes for the STP3593LF double-oven oscillator temperature to stabilise.
3028

3129
<figure markdown>
32-
[![OLED showing TCXO Warming Up](./assets/img/hookup_guide/OLED_2.png){ width="100" }](./assets/img/hookup_guide/OLED_2.png "Click to enlarge")
30+
[![OLED showing TCXO Warming Up](./assets/img/hookup_guide/OLED_2.png){ width="250" }](./assets/img/hookup_guide/OLED_2.png "Click to enlarge")
3331
<figcaption markdown>OLED showing TCXO Warming Up.</figcaption>
3432
</figure>
3533

@@ -44,7 +42,7 @@ After initial warm-up, the temperature-controlled oscillator is neither frequenc
4442
During this state, the OLED display will show "Drift" followed by the oscillator drift in PPM:
4543

4644
<figure markdown>
47-
[![OLED showing Drift](./assets/img/hookup_guide/OLED_3.png){ width="100" }](./assets/img/hookup_guide/OLED_3.png "Click to enlarge")
45+
[![OLED showing Drift](./assets/img/hookup_guide/OLED_3.png){ width="250" }](./assets/img/hookup_guide/OLED_3.png "Click to enlarge")
4846
<figcaption markdown>OLED showing Drift.</figcaption>
4947
</figure>
5048

@@ -69,7 +67,7 @@ Ramping the frequency is a slow process. It can take over 30 minutes, depending
6967
The OLED display will display the clock Bias. You can watch the Bias change, slowly at first, reaching a limit of: 500ns/s on GNSSDO; and 250ns/s on GNSSDO+.
7068

7169
<figure markdown>
72-
[![OLED showing Bias in microseconds](./assets/img/hookup_guide/OLED_4.png){ width="100" }](./assets/img/hookup_guide/OLED_4.png "Click to enlarge")
70+
[![OLED showing Bias in microseconds](./assets/img/hookup_guide/OLED_4.png){ width="250" }](./assets/img/hookup_guide/OLED_4.png "Click to enlarge")
7371
<figcaption markdown>OLED showing Bias in microseconds.</figcaption>
7472
</figure>
7573

@@ -95,7 +93,7 @@ The **Mode** will be **PHASE_LOCK** during this state.
9593
PPS output is started when the firmware enters this state for the first time (since power-on).
9694

9795
<figure markdown>
98-
[![OLED showing PPS On](./assets/img/hookup_guide/OLED_5.png){ width="100" }](./assets/img/hookup_guide/OLED_5.png "Click to enlarge")
96+
[![OLED showing PPS On](./assets/img/hookup_guide/OLED_5.png){ width="250" }](./assets/img/hookup_guide/OLED_5.png "Click to enlarge")
9997
<figcaption markdown>OLED showing PPS On.</figcaption>
10098
</figure>
10199

docs/introduction.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ icon: material/book-open-page-variant
5050
[Purchase from SparkFun :fontawesome-solid-cart-plus:{ .heart } ![QR code to product page](./assets/img/qr_code/product-low.png){ .tinyqr }](https://www.sparkfun.com/sparkpnt-gnss-disciplined-oscillator.html){ .md-button .md-button--primary }
5151
</article>
5252

53+
</div>
54+
55+
<div class="grid cards desc" markdown>
56+
5357

5458
- Designed and manufactured in Boulder, Colorado, USA, the SparkPNT GNSSDO / GNSSDO+ are the perfect solution for your high-precision timing needs. Based around the multi-constellation, multi-frequency, L5-ready mosaic-T from Septentrio, these are our most accurate GNSS timing product to date. The GNSSDO features a SiTime SiT5358 disciplined 10MHz Digitally-Controlled Temperature-Controlled Crystal Oscillator (DCTCXO) providing excellent clock accuracy and stability. The GNSSDO+ gets an upgrade from the Rakon STP3593LF disciplined 10MHz Digitally-Controlled Double-Oven Crystal Oscillator (OCXO) providing superb clock accuracy, stability and holdover. The mosaic-T also has built-in on-module support for the Fugro AtomiChron L-band timing service.
5559

@@ -86,7 +90,7 @@ icon: material/book-open-page-variant
8690
- [Allan Deviation](./assets/img/hookup_guide/Allan_Deviation.jpg) approaches 1E-14 at 10000 seconds with AtomiChron enabled
8791
- Operating temperature: -40 to 85 °C (Industrial)
8892
- GNSSDO+: STP3593LF disciplined 10MHz oscillator
89-
- better than 50ppb frequency calibration at 25°C
93+
- Better than 50ppb frequency calibration at 25°C
9094
- ±0.2ppb per day frequency stability (aging)
9195
- ±0.03ppb frequency stability with temperature (-32°C to +70°C)
9296
- Digital frequency pulling via I²C
@@ -175,14 +179,14 @@ icon: material/book-open-page-variant
175179
GNSSDO<br>
176180
<hr>
177181
<figure markdown>
178-
![Product Thumbnail](./assets/img/product_comparison/rtk_mosaic-x5.png)
182+
![Product Thumbnail](./assets/img/product_comparison/GNSSDO.png)
179183
</figure>
180184
</th>
181185
<th markdown style="text-align:center">
182186
GNSSDO+<br>
183187
<hr>
184188
<figure markdown>
185-
![Product Thumbnail](./assets/img/product_comparison/rtk_mosaic-x5.png)
189+
![Product Thumbnail](./assets/img/product_comparison/GNSSDO.png)
186190
</figure>
187191
</th>
188192
</tr>

docs/oscillator.md

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -74,34 +74,38 @@ The firmware no longer performs a soft reset if the bias is excessive on startup
7474
The firmware monitors the message blocks on `COM1`. The `ERROR` LED follows the **PVTGeodetic Error** code. The LED is extinguished when **Error** is zero.
7575

7676
In STATE_GNSS_CONFIGURED:
77-
* The firmware waits for the **ReceiverTime** `FINETIME` bit to be set, indicating the **setClockSyncThreshold** `Threshold` (usec500) has been achieved
77+
78+
- The firmware waits for the **ReceiverTime** `FINETIME` bit to be set, indicating the **setClockSyncThreshold** `Threshold` (usec500) has been achieved
7879

7980
In STATE_TCXO_WARMUP (GNSSDO+ only):
80-
* The firmware waits for `tcxoMinWarmup_s` and for the OCXO temperature to become stable
81+
82+
- The firmware waits for `tcxoMinWarmup_s` and for the OCXO temperature to become stable
8183

8284
In STATE_GNSS_FINETIME:
83-
* The firmware disciplines the TCXO / OCXO frequency in a simple frequency locked loop
84-
* The firmware exits this state when the change in the `tcxoClockBias_ms` (`RxClkBias`) is better than the specified `rxStabilityForFrequencyLock`
85-
* The PI loop uses `PkSteer` and `IkSteer` when frequency locking
85+
86+
- The firmware disciplines the TCXO / OCXO frequency in a simple frequency locked loop
87+
- The firmware exits this state when the change in the `tcxoClockBias_ms` (`RxClkBias`) is better than the specified `rxStabilityForFrequencyLock`
88+
- The PI loop uses `PkSteer` and `IkSteer` when frequency locking
8689

8790
In STATE_GNSS_FREQUENCY_LOCK:
88-
* The TCXO / OCXO bias is driven towards zero
89-
* The initial bias error can be up to 500us, so we need to ramp the TCXO frequency one way ('up') and then back again ('down')
90-
* We slowly accelerate the change in frequency, maintain it at `tcxoRampRateLimit_sps`, then decelerate
91-
* The acceleration is set by the `tcxoRampStepSize_s`: 0.5ns/s for the STP3593; the SiT5358 can accelerate faster
92-
* The ramps help to avoid blowing up the integrator
93-
* When the ramps are complete, the `tcxoClockBias_ms` (`RxClkBias`) is re-checked
94-
* This state is repeated if the bias is still excessive (> `rxPhaseErrorLimit_s`)
95-
* The PI loop uses `PkRamp` and `IkRamp` when following the ramps
91+
92+
- The TCXO / OCXO bias is driven towards zero
93+
- The initial bias error can be up to 500us, so we need to ramp the TCXO frequency one way ('up') and then back again ('down')
94+
- We slowly accelerate the change in frequency, maintain it at `tcxoRampRateLimit_sps`, then decelerate
95+
- The acceleration is set by the `tcxoRampStepSize_s`: 0.5ns/s for the STP3593; the SiT5358 can accelerate faster
96+
- The ramps help to avoid blowing up the integrator
97+
- When the ramps are complete, the `tcxoClockBias_ms` (`RxClkBias`) is re-checked
98+
- This state is repeated if the bias is still excessive (> `rxPhaseErrorLimit_s`)
99+
- The PI loop uses `PkRamp` and `IkRamp` when following the ramps
96100

97101
In STATE_GNSS_PHASE_LOCK:
98-
* The LOCK LED will be illuminated when the firmware is in STATE_GNSS_PHASE_LOCK
99-
* PPS output will be started when entering STATE_GNSS_PHASE_LOCK for the first time
100-
* This state uses a conventional PLL to drive the `tcxoClockBias_ms` (`RxClkBias`) to zero
101-
* The P and I terms are `Pk` and `Ik`
102-
* When entering STATE_GNSS_PHASE_LOCK from STATE_GNSS_FREQUENCY_LOCK, the P and I terms are ramped from `PkRamp` and `IkRamp` to `Pk` and `Ik` over `phaseLockPIRampTime_s` (120s)
103-
* This helps to avoid shocking the PI loop and sending the bias off for a walk...
104102

103+
- The LOCK LED will be illuminated when the firmware is in STATE_GNSS_PHASE_LOCK
104+
- PPS output will be started when entering STATE_GNSS_PHASE_LOCK for the first time
105+
- This state uses a conventional PLL to drive the `tcxoClockBias_ms` (`RxClkBias`) to zero
106+
- The P and I terms are `Pk` and `Ik`
107+
- When entering STATE_GNSS_PHASE_LOCK from STATE_GNSS_FREQUENCY_LOCK, the P and I terms are ramped from `PkRamp` and `IkRamp` to `Pk` and `Ik` over `phaseLockPIRampTime_s` (120s)
108+
- This helps to avoid shocking the PI loop and sending the bias off for a walk...
105109

106110
The firmware monitors the **PVTGeodetic RxClkBias** (as 64-bit float in milliseconds). When **RxClkBias** is positive, receiver time is ahead of system time and the oscillator frequency should be reduced. When **RxClkBias** is negative, receiver time is behind system time and the oscillator frequency should be increased. The firmware will adjust the oscillator frequency via its Digital Frequency Control register accordingly. As per Appendix D, the frequency will be changed by no more than 3ppb per second.
107111

0 commit comments

Comments
 (0)