« | 中古のThinkPad X1 Carbon 4th Genを買ってWWAN(LTEモデム)を内蔵した話 »

Raspberry PiでGNSSをクロックソースにするStratum1 NTPサーバーを作った話

Posted on 2020/10/14 (水) 0:20
Filed Under 技術 | | TrackBack | このエントリをはてなブックマークに追加 Share on Tumblr

タイトルだけで言い尽くしてるんたけど、ぐぐると事例が星の数ほど溢れてる定番のやつ。
GPSを含むGNSS(ウチの使った基板は米国GPSとロシアGLONASSと日本QZSS対応)は安定したクロックソースを提供してくれるので原子時計のない一般のご家庭でもかなり精度の高いNTPサーバーを作れるという話。GNSS受信機にはPPSと呼ばれる1秒ごとのタイミングでものすごい精度の信号を出してくれる製品があってこれを利用するとより精度が向上する。

手順は基本的にこの通り。「Raspberry pi3とGPSモジュールを接続してNTPサーバを構築 - Qiita
ラズパイは3B+を使用。
つまづいたポイントは、恥ずかしながら秋月電子のGNSSキットはモデルによってピンの並び順が違ってて、別のモデルの配線みててTxとRxを逆につないで「データ来ないなー?」と悩んで時間を無駄にしてしまったり。
GNSSキット配線

https://akizukidenshi.com/download/ds/akizuki/GPS_GNSS_Software_Package.zip内のPowerGPS_user_guide_r1.00.pdfから引用



で配線して組んだところ。GNSSアンテナ線はSMAコネクタが、たまたま使ったケースのスリット幅とぴったり合ってて、強い力が加わっても基板側は保護してくれる感じになった。
使ったケースはアクリル板6枚組み合わせてるこれAcrylic Case for InnoMaker AMP Hat HiFi Audio Module Works with Raspberry Pi 4 3B B+ Pi2で横に開いてる空間から偶然GNSS基板に載ってるLEDも見えるようになって満足。
Raspberry Pi 3B+ と GNSSキット

そしてこの記事「NTP: Building a more accurate time service at Facebook scale」を読んで、chronyええんかー、ということでntpdからchronyに。設定は日本標準時のようにうるう秒入れる設定ではなく、うるう秒挿入の前後に1秒をほんのちょっとずつ長くすることでうるう秒分を全体にまぶすLeap Smearingするように。

窓際の室内にアンテナを設置してgpsmonコマンドやcgpsコマンドで眺めていたところ、時間帯によっては掴んでる衛星数が0になってしまうこともあって、意を決してSMA延長ケーブル買い足してアンテナを屋外設置に。

とゆーわけで最終的にこんな感じに。
chronyc sources


ブラウザで簡単にステータス見れるようにそっけないページも作った。(微妙に電力足りてない。そして意外とCPU熱い)
ntp server status ベージ

Comments

Leave a Comment

TrackBack URI :http://www.dcc-jpl.com/diary/2020/10/14/stratum1-ntp/trackback/

Name

Email

ウェブサイト

コメント

Recently


Categories


Archives


Wish list

宗子さんのほしい物リスト2015/5-