The KiwiSDR 2 online store is open for orders! Please visit

GPS trained Kiwi oscillator accuracy [improvements made in v1.234]

edited October 2018 in Problems Now Fixed
I'm not sure I consider this a problem or an issue, but it seems this category is the best place in the forum to post this report.

I have been running experiments at KPH to establish the accuracy of the GPS disciplined oscillator implementation and thought there might be wider interest in the topic.
On a local Pi I am running two 20M instances of my script which capture the audio output of the 20M WSPR band and processes it through the WSJT-x supplied utility 'wsprd'. The Kiwis are fed the same HF RF and GPS RF and both report tracking 10-12 satellites all the time. I have disabled SW updates to minimize disruption of the systems.

wsprd outputs a spot frequency accurate to .1 Hz and John K6PZX has a beacon within groundwave distance of KPH which is GPS trained to 14.097090.
Extracting the wsprd spot history of two Kiwis shows some outliers which should be explained and a difference in frequency distribution between the two Kiwis which are perhaps running as accurately as we can hope in the Kiwi environment.

The +-1 Hz accuracy is probably excellent for most listening and WSPR users, but unless someone can suggest how to enhance the Kiwi's HW and/or SW PLL, for milliherz accurate applications it looks like we be be moving on to using an external GPSDO from Leo Bodnar:



pi@PiKPH:/tmp/kiwi-captures/KPH_HF_3/20 $ pzb_reports
========= Kiwi76 logging spots as KPH ==============
There are 195 K6PZB spots in the log
First user specified spot is: 180917 0446 1 -12 0.5 14.0970898 K6PZB CM88 37 0
Most recent spot is: 180918 1512 1 -14 0.6 14.0970903 K6PZB CM88 37 0
Spot statistics:
1 14.0970830
1 14.0970855
1 14.0970872
3 14.0970890
2 14.0970891
2 14.0970892
6 14.0970893
3 14.0970894
5 14.0970895
11 14.0970896
15 14.0970897
6 14.0970898
9 14.0970899
14 14.0970900
21 14.0970901
40 14.0970902
17 14.0970903
14 14.0970904
9 14.0970905
2 14.0970906
2 14.0970907
1 14.0970908
3 14.0970909
4 14.0970910
2 14.0970911
1 14.0971069
============= Kiwi75 logging spots as KPH75 =================
There are 193 K6PZB spots in the log
First user specified spot is: 180917 0446 1 -11 0.5 14.0970902 K6PZB CM88 37 0
Most recent spot is: 180918 1512 1 -14 0.6 14.0970896 K6PZB CM88 37 0
Spot statistics:
1 14.0970863
1 14.0970872
1 14.0970892
3 14.0970893
26 14.0970894
23 14.0970895
25 14.0970896
12 14.0970897
11 14.0970898
20 14.0970899
24 14.0970900
10 14.0970901
21 14.0970902
13 14.0970903
2 14.0970904
pi@PiKPH:/tmp/kiwi-captures/KPH_HF_2/20 $


  • jksjks
    edited September 2018
    The Kiwi doesn't implement a PLL. How many time do I have to say this? It's an FLL at best. Even "locked" is too strong a word. "Frequency tracking loop" might be better. A satellite-based crystal calibrator for us old geezers.

    GPS position/timing solutions are noisy by definition. Just go look at the map option of the admin page GPS tab and watch the position solutions wander all over the place. So the question becomes how to best filter this to make ADC clock corrections. You could spend years researching this question. And commercial companies have. The Kiwi, as usual, takes the "best/simple" approach. At (re)start a quick correction based on a limited number of samples to compensate for oscillator temperature offset. Then a switch to a 16-period modified moving average filter with outlier removal. Sounds fancy but it's not ideal.

    Could the software do better than this? Sure. Does it need to? Not clear. Certainly not for casual shortwave listening and even the majority of the extensions (FAX, FSK, CW). TDoA needed to maximize the number of GPS-capable Kiwis. So Christoph has worked on obtaining timing solutions using fewer satellites. And I added Galileo support to increase the number of available satellites. And some Kiwi owners went to considerable trouble to improve their GPS antenna installations (for which we are grateful).

    I was going to rant about the statistical variance of the WSPR database at but I'll just stop now. I have a dozen new emails waiting for a reply..
  • edited September 2018
    Thanks for the comments. I am very satisfied with the current results and you provided a path to even better stability with the external oscillator support.
    So my next priority is milliherz resolution, but I see it is understandably pretty far down your wish list.
    I saw a significant improvement in stability when I moved from a window mounted puck to a $50 40 dN gain bullet antenna on the roof. It didn't previously appreciate the benefits of better GPS RF nor how easy and inexpensive it is to improve your GPS RF with $50 for the antenna and $20 for 100' of sat tv grade RG6.
  • jksjks
    edited October 2018
    For future readers: check this topic describing some improvements made to the ADC clock as corrected by the GPS.
Sign In or Register to comment.