SSブログ

格安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) 
共通テーマ:趣味・カルチャー

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。
格安GPS(NEO-6M)を買ってみたUMS 9.0.1 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。