NanoPi NEOとGPSモジュールでNTPサーバ PPS検証編

「新規に作成したり変更したら検証しろって習ったよな?」
なんか叱られる夢を見たような気がしたのでNanoPi NEOのNTPサーバのPPSの精度を検証してみた。

以前にNMEAだけでNTPサーバを作ったときはNTPサーバが出力したpeerstatsを整形してExcelに読ませてグラフにしたような記憶があるが、今回はNTP Plotterにpeerstatsファイルを読ませて表示されたグラフのスナップショットを取得しただけ。手抜きだけどこちらの方が間違いがないかも。

PPSのOffset
一昨日の昼の12時から36時間はNanoPi NEOは触らずNTP以外のほとんど何も動いてしない静かな状態に保った。上のプロット対象はNTPが十分に安定動作している昨日の0時から24時までのPPS (127.127.22.0)のOffset。
大部分が±0.01ミリ秒 = ±10μ秒 (μ = マイクロ)に収まった。まぁ良くも無いけど悪すぎるというほどでもない。
事前に予測してた程度の精度なのでとりあえずこれで良しとする。
armbianのOSレベルでリアルタイム機能を有効化できればもう少し精度を上げることも可能かと。でも、デタラメすぎる内蔵時計をなんとかしなきゃダメかも。

全時刻ソースのOffset
ところで、今回気になったのはその他の時刻ソースも合わせて表示したoffsetのプロット。
offsetの値が+30ミリ秒から-40ミリ秒という広大な範囲なので先のPPS (127.127.22.0)のゲジゲシが上下圧縮されて「0」の位置で水平一直線状態となっている。こうみるとPPSがすごい精度高いみたいに思える。
+4ミリ秒から-1ミリ秒の範囲で3本ほどヒョロヒョロしているのがMFEEDの公開NTPサーバ(210.173.160.[2,5,8]7)。
そして、目立つピンクの線がNMEA (127.127.20.0)で、なんかすごい状態なんだけどどうなってるのこれ???
意味がわからないのと精度が低すぎて時刻ソースに入れない方がマシ状態。

まぁ、PPSがしっかりしててNTPdから同期が外れないようなのでOKとする。

関連記事: