格安GPSでPPS [Raspberry Pi]
先のエントリーでGPSモジュールを動かすまではやりました。
で,ここからが本題(笑
まぁ,よくある "GPSでChronyを叩いて,高精度家中NTPサーバを作ろう!" って事です。
なぜ,今更感しかしないネタを…
理由は単純,録画PCでの番組録画に失敗した為。
通常,録画PCの時計合わせは,あるアプリケーションを使って,複数のNTPサーバをローテーションしながら問い合わせを行なってましたが,これが裏目に出た感じ。。。
どっかのサーバが30分ズレていたらしい…
ntp.nict.jp
やらntp.jst.mfeed.ad.jp
なら こんな事には,絶対にならないけど,他のどっか… です。
そこで,GPSでNTPサーバしやるって事に…
でも,まぁ,いつも通りハマるわけです(笑
色々ハマりすぎですが,(あまりに惨たらしいので)細かいところは省きます。
ハマりの原因は,いつも通り,全く理解していない 為。
GPSでNTPdなネタは,検索すると沢山出てきます。
ですが,その多くは古かったり,内容が微妙だったりで,一筋縄では行きませんでした。
以下は,当方で動作中の設定等々です。
何かの足しにして頂ければ幸いです。
HW, OS: RPi3B+にRaspbian(Stretch)
$ uname -a Linux nsgw0 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
- Stretchなのは,Busterリリース前にRPiを設えたから。
- 内臓Bluetoothは使用中なので,GPSモジュールは,USB接続。
- GPSのPPS出力は,GPIO18(PIN12)へ(AWG20な線材1本 1.8mで)直結。
- u-centerを使ったGPSモジュールの設定変更はしていません。
SW色々
ツールやら
$ sudo apt install -y gpsd gpsd-tools pps-tools
* chronyは,以前,RTCを実装した際にセットアップ済みです。
/lib/systemd/system/gpsd.service (黄文字追加)
[Install]
WantedBy=multi-user.target
Also=gpsd.socket
/etc/default/gpsd (黄文字 修正・追加)
GPS(USB)に依っては /dev/ttyACM0
では無い事もあるので,事前に確認しておく事。
# Use USB hotplugging to add new USB devices automatically to the daemon USBAUTO="false" # Devices gpsd should collect to at boot time. # They need to be read/writeable, either by user gpsd or the group dialout. DEVICES="/dev/ttyACM0" # Other options you want to pass to gpsd GPSD_OPTIONS="-F /var/run/gpsd.sock -b -n"
/etc/chrony/chrony.conf (文末に黄文字追加)
offset 0.05
の値は,gpsmonのTOFF
の値を参考に設定する事。
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usuable directives.
pool ntp.nict.jp iburst
pool ntp.jst.mfeed.ad.jp iburst
:
:
refclock SHM 0 refid GPS offset 0.05
refclock PPS /dev/pps0 refid PPS # PPS不要の場合は,コメントアウト
以下は,PPS動作のために必要。
/etc/modules (文末に黄文字追加)
## ADD for GPS(PPS)
pps-gpio
/boot/config.txt (文末に黄文字追加)
## ADD for PPS
dtoverlay=pps-gpio,gpiopin=18
あとは,RPiを一旦シャットダウンして,GPSとPPSをつなぎ,RPiを起動すればOK(なはず…)。
確認コマンド:
- gpsmon
- cgps -s
- chronyc sources -v
sudo ppstest /dev/pps0
…pps-toolsのppstestの実行には,sudoが必要。
動作中はこんな感じ…
$ chronyc sources -v MS Name/IP address Stratum Poll Reach LastRx Last sample ====================================================================== #- GPS 0 4 377 20 +4016us[+4016us] +/- 344us #* PPS 0 4 377 20 +242ns[ +804ns] +/- 364ns : :
PPSの波形は,怖くて見てません。
# AWG20単線で1.8mも引っ張っているので,トンデモない事になってると思う…
コメント 0