RPi5(ラズパイ5)にGNSSモジュールを繋げました。そのモジュールなんですが、欲しいGNSSモジュールが秋月電子に無いので、今回はアマゾンでポチりました。

ラズパイ5をNTPサーバーにする為のインストールは。↓

$ sudo apt update
$ sudo apt install chrony
$ sudo apt install gpsd gpsd-clients pps-tools

↓ 三次元測位中で赤LEDが点滅して1PPS出力しています。これで一応、Stratum 1相当のNTPサーバーになっています。

↑ 白色のケースやねじ類は、3DプリンターEnder-3 V3 SEとPLAフィラメントで造形しました。

3D model-viewer

 

アマゾンで入手したのは3点で、GNSSモジュールGY-NEO-6MV2(税込999円)とGPS外付けアンテナ線長3m(税込980円)とSMA延長ケーブル5m(税込799円)です。

NEO-6MのVCCにラズパイ1番ピン3.3Vを印加。他の配線は秋月電子のGNSSモジュールと同じ。外部アンテナは延長ケーブル込みの長さ8mのケーブルを繋げて外に出しています。

↓ ラズパイ5とNEO-6Mの配線は画像の通り。There is a wire that looks like it might be tangled in the picture, but we have not misplaced the connection, so there is nothing for you to worry about.

それに、秋月電子で販売されていたGNSSモジュール、K-13849やK-09991などの1PPSはアクティブLowだけど、NEO-6Mの1PPSは、それとは反対のアクティブHighみたいです。なのでconfig.txtの設定が一部異なる。
dtparam=assert_falling_edge=true が不要。↓

$ sudo vi /boot/firmware/config.txt

[all]

dtparam=uart0=on

# GPS 1PPS /dev/serial0 -> ttyAMA0
dtparam=uart0_console
enable_uart=1
dtoverlay=pps-gpio
dtparam=gpioin=18
#dtparam=assert_falling_edge=true

ラズパイ5に、余っているGPS(GNSS)モジュールを繋げてみようと思い、ケースをOnshapeで設計中。そのケースは3Dプリンター(Ender3 V3 SE)で造形します。本当に3Dプリンターは便利。

使用3D CADはOnshapeです。先日よりFreeCADからOnshapeに変えたんですが、FreeCADより使い心地が良いです。

↓ 画像にある3Dモデルは、全て私がOnshapeで作りました。今はOnshape上にて最後の確認、ねじの収まり具合や、GNSSモジュールが他と干渉しないか確認している所です。断面図もいい感じに見れて、なかなか良いです。

 

GNSSモジュールが収まる所の設計と造形は出来ました。

 

RPi5にGNSSモジュールを繋げましたが、RPi4やzero2の時と同じ様になりません。

何がならないかと言うと、GNSSモジュールとNTPが同期出来ないんです。RPi5はUART端子が新たに増えて、その影響なのか、ttyS0からttyAMA0に変更したりググって色々試しましたが、私には解決出来ませんでした。

誰かが、それを解決してくれるのを待ちましょう。

ラズパイ5のハーフケースを造形しました。裸のままでは取り扱いが不自由なので簡易的な物ですが。

 

3D model-viewer

 

ケースの組み付けは、なべ小ねじM2.6x15mmを4本使用。下のプレート(上記3Dモデルの緑色)を下から上に通して、上のプレート(上記3Dモデルのオレンジ色)にねじ込む。ねじは切って無いけど穴がねじより小さいので、ほどほどにねじ込むんで良い所で止める。無理にねじ込み過ぎると不味い事になる。多分。

この情報は以下の記事を元にしていますので、詳しい事を知りたい方はそちらに行って下さいね!

wifiパワーマネジメントを無効にする

 

以前から気になっていた自宅LANにあるRaspberry Pi Zero 2 W (Wi-Fi接続)のNTPサーバー(zero2)が不安定な事。

特に、jitterの値が40.560とか26.780となって、同LAN内のpi4(有線接続)は勿論、遠く離れたNICTにも劣る。改善前のオレンジ色部分の値参照。↓

その原因はWi-Fi接続だからと思っていた所に前述したリンク先の記事を見つけたのです。その記事を参考にWi-Fiのパワーマネジメントをオフにしてみました。結果が良かったので書き残します。

↓ 改善前

↓ 改善後

↑ 改善前と改善後どちらも、ntpq -pの2回分を画像にしているのは、良い時と悪い時の値の違いが分かるようにする為です。但し、私が確認した一時的な値の中で、良い悪いと言う事ですが。

 

結果、改善後のjitterは1/200以下の値となり、200倍以上改善されたかなぁ。

 

Wi-Fiのパワーマネジメントをオフにする方法とその確認。

pi@zero2:~ $ sudo iw dev wlan0 set power_save off
pi@zero2:~ $ iwconfig
......
wlan0     IEEE 802.11  ESSID:"xxxxx-xx"
          ......
          Power Management:off
          ......

 

再起動しても自動でオフにする場合は、rc.localに以下の1行をexit 0の前に記述する。

pi@zero2:~ $ sudo vi /etc/rc.local

/sbin/iw dev wlan0 set power_save off

exit 0

 

タイトルはラズパイのWi-Fi改善ですが、内容はjitterの改善になりました。

数年ラズパイ2モデルBをNTP時計として便利に使えていたのに、起動しなくなってしまった。原因はSDカードの不良かな。

↓ 先日まで作動していたラズパイ時計。画像はインストール当時の物です。

↑ MagicMirror2ではありません。

 

↓ 今回、新たにMagicMirror2をインストールして生まれ変わったラズパイ2モデルBの画面。と言ってもこの画像はVNC Viewerのスクリーンショット。アスペクト比は3:2で、3.5インチHDMI液晶モニターに合わせて加工しましたので、ほぼ液晶モニターの表示と同じです。

↑ 私がカスタマイズしたら、なんかあっさりしてしまいました。でも3.5インチの狭い画面では、これがベストだと思っています。

 

今回初めて知ったMagicMirror2は有名の様で、ネットにインストール記事が幾つもあります。そんな先人の方々の記事を参考にインストールしました。

↓ 私が参考にさせて頂いた記事はこちらです。カレンダー付や画像を貼り付けたセンスの良い時計が作れる様です。

RaspberryPiとミニディスプレイでシンプル卓上カレンダー作ってみた
RaspberryPi+MagicMirror2で超簡単にGoogleフォトフレームをつくる
MagicMirror_scripts

 

MagicMirror2のインストールは次の2行を打ち込むだけで良く、最後に問われてイエス(y)と2回答えれば、スリープしなくなったり、OS再起動時にMagicMirror2も自動で起動してくれます。

~ $ sudo apt install nodejs npm
~ $ bash -c "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)"
Do you want to disable the screen saver? (y/N)? y
server does not have extension for -dpms option
Do you want use pm2 for auto starting of your MagicMirror (y/N)? y

↓ 手動でスタートとストップをする方法。

~ $ pm2 start MagicMirror
~ $ pm2 stop MagicMirror

 

今回(も)、時計専用になったラズパイ2モデルBには、NTPをインストールしてNTPサーバー兼ねるNTP時計にします。正確に時刻を刻む時計なら電波時計でも良いのですが、部屋の中は電波が届かない場所が多く使い物になりませんし、市販品の時計にNTPサーバー機能付きが有ったとしても、多分高くて私には入手出来ません。

また自宅にNTPサーバーを立てる理由は、パソコンの時計合わせに使用する為です。アマチュア無線でFT8を運用するパソコンの時計は常に正確を求められるので、自宅にNTPサーバーが有れば遠慮なく頻繁に同期させる事が出来ます。

【自慢話】我が家にはGNSSモジュールの1PPSを利用したStratum 1相当のNTPサーバー(ラズパイで自作)が2台稼働しています。なので、今回のこの時計はその2台を参照してStratum 2相当のNTPサーバーとして稼働します。

 

↓ このNTP時計のntp.confは次のような設定にして、自作Stratum 1相当のNTPサーバーの2台(192.168.0.55と192.168.0.56)は16秒(minpoll 4 maxpoll 4)のポーリング間隔。予備のNICT公開NTP(ntp.nict.jp)に対しては、最小ポーリング間隔1024秒(minpoll 10)、最大ポーリング間隔は36.4時間(maxpoll 17)にしています。

server 192.168.0.55 prefer iburst minpoll 4 maxpoll 4
server 192.168.0.56 prefer iburst minpoll 4 maxpoll 4
server ntp.nict.jp iburst minpoll 10 maxpoll 17

↓ 結果

↑ 本記事のタイトルとまた離れてしまうけど。zero2の値がStratum 1相当と言えるのか疑問に思ってしまう。この画像はntpq -pを2回行ったもので、オレンジ色部分の値が、遠く離れたNICTより悪い値になっている。

成績が悪いzero2と、良い成績のpi4の違いは、無線か有線の違いくらい。zero2はWi-Fi接続なので、pi4の有線接続より不利なんだろうか?

【後日追記】その成績不良であるRaspberry Pi Zero 2 WのWi-FiのPower Managementをオフにしたらjitterの値が良くなったので、それを書き残したページのリンクを貼って置きます。↓

ラズパイのWi-Fi改善

 

ちなみに、ntpq -pを実行したPi2は有線接続です。また、zero2でntpq -pを実行すると以下のようにStratum 1相当と思う値です。↓