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

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相当と思う値です。↓

ようやく、基板剥き出しだったRaspberry Pi ZERO 2 Wで動く自作GPS時計が、ケースに入りました。それも3Dプリンターで自作したケースです。

3Dプリンターは面白い。電子工作に使用するスペーサーの大きさも自由に作れる。既製品のスペーサーでは、長さ高さが合わずワッシャー入れたりしていましたよね。

ケースなんかオリジナルが作れる。まぁ、樹脂製だけだし、3DCADで設計するのも案外面倒だけど。それは工夫次第。その工夫を考え思い着いた時が楽しい。

電子工作関係だけで無く、身の回りの小物を作る事も出来るし。そう私の場合、小物ばかりです。

 

自作GPS時計と簡素に表現するけど、中身はラズパイと1PPS出力付のGNSS受信機キット(このキットは秋月電子の取り扱いでしたが、2023年10月2日現在、秋月電子では取り扱いしていません)を組み合わせたStratum 1 相当のNTPサーバーです。それに7セグLEDで時刻を表示させています。

↓ Raspberry Pi 4(ラズパイ4)使用が1台目、Radpberry Pi Zero 2(ラズパイゼロ2)使用の方が2台目です。

 

2台目と言っても、時刻表示用基板は古い設計(私の素人設計でJLCPCBに発注)。その基板に7セグLEDや電子部品がハンダ付されたまま放置。最近入手したラズパイゼロ2を使用してみた訳です。

2台同時に作動させると、時刻表示が正しく刻まれている事を容易に確認出来て良い。

 

↓ 別PC(上記で取り上げたラズパイゼロ2やラズパイ4では無いPC)でntpq -pを実行した結果。以下の画像は数ある結果の1つに過ぎない。だからまーまー良い時もある。けど、jitterだけは何時も悪い。

↑ Wi-Fi接続のみで有線接続出来ないラズパイゼロ2は有線接続のラズパイ4と比べてdelay、offset、jitterが共に悪い。ラズパイゼロ2もラズパイ4も同じルーターに接続、ラズパイゼロ2はWi-Fi(IEEE802.11n(Wi-Fi4)2.4GHz帯)に、ラズパイ4は有線で接続している。pingで往復時間を比べると最大往復時間は3桁もWi-Fi接続のラズパイゼロ2が遅い。

これらの事から、Stratum 1のNTPサーバーとしては、やっぱり有線接続が望ましい?

基準時計に対してそれぞれの時計のズレを比較しました。

その比較する時計は、中古で550円のオーディオタイマー パイオニア DT-11(背面に50Hzと60Hzの切替スイッチ有り)と、数年前に千円位で購入したチプカシのA164Wです。基準にする時計はラズパイと1PPS出力付きGNSS受信キットで自作したStratum 1相応のNTPサーバーです。

↓ 次の画像は、先月2月18日にオーディオタイマーとチプカシの時刻を合わせてから31日間放置した状態です。この撮影時、チプカシは15.7秒遅れていますが、オーディオタイマーは僅か1.4秒早まっただけ。この31日間、オーディオタイマーは最大で3.7秒早まり2.8秒遅れただけです。但し私が気まぐれにデータ取りした範囲での事ですが。

↓ 31日間放置中。

↑ これを見た貴方の様に「このチプカシ16.6秒遅れじゃね?」と思った方々に申し上げますと。チプカシの表示が36秒なので、52.6 – 36 = 16.6秒遅れの様に見えますが、実際は動画のコマ送りで確認すると15.7秒遅れなのです。

↓ 私が気まぐれにデータ取りした散布図。何が気まぐれかと言うとサンプリング周期です。気が向いた時にデータ取りしていたので変動に偏りがあると思います。しかし個別のデータの精度は60fps動画をコマ送りしてデータ取りしたので、多分プラスマイナス0.1秒以内かと。

↓ 31日間(以下の画像は、後日121.1日間の物に入れ替えました。サンプル数は166)に渡る時刻のズレを0.1秒単位でプロット。基準の時計は自作したStratum 1 NTPサーバーです。この時計の0.1秒表示用7セグLEDの表示遅延は0.01秒以下(多分)

 

商用電源の周波数はやや変動するらしいので、このオーディオタイマーの様な商用電源周波数を利用する時計は、リセットするタイミングが、商用電源周波数変動の中間値で有れば、寄り正しい時刻を刻むのかなぁ。

数十年前の思い出なのですが、ジャンク購入したパタパタ時計が殆ど狂わなくて、「なんかすげ〜じゃん」と思った事が有りました。