新しい中華GPSモジュールとChronyで作るNTPサーバ (前編)

前回(といっても既に3年以上前だけど)、NanoPi NEO用に購入したGPSモジュールだが、1PPSは正常そうに見えるがNMEAの取得タイミングが最初からなんかずっとヘン。グラフにするとノコギリの刃のようなギザギザ三角波が描かれる。他にあるGPSモジュールで取得したNMEAのグラフとは明らかに違うし、他の人がネットに上げている情報でもこんなグラフ見たことがない。とはいえ、遥かに精度の高い1PPSを録っているのだからNMEAのタイミングが少々ヘンでも全く問題はないということで放置してたけどやっぱり時々気になるのよね。

新しいGPSモジュールとChronyでNTPサーバ 1
問題のGPSモジュールを使っているNTPサーバのNMEAのoffsetのグラフ。謎の規則性があるんだけど何を示しているのかわからないノコギリの刃のようなグラフ。上下の振れ幅も約30msと大きめ。

新しいGPSモジュールとChronyでNTPサーバ 2
別のNTPサーバのNMEAのoffsetのグラフ。上下の振れ幅が10ms程度で変な規則性もなくこちらは正常。

新しいGPSモジュールとChronyでNTPサーバ 3
で、購入したのがubloxのNEO-M8Nを搭載したGPSモジュール。これはTCXOなので温度変化に強いやつ。
画像では商品価格が975円で送料が343円になってるけど、セール中に購入したので694円で送料が340円だった。NEO-M8Nなら破格の安さと思った。

新しいGPSモジュールとChronyでNTPサーバ 4
届いた商品。下にあるのは大きさ比較用のmicroSDカード。
ん?!なんか違う・・・

新しいGPSモジュールとChronyでNTPサーバ 5
そもそもGPSレシーバのチップメーカーがubloxではなく中科華微電子(杭州中科微电子有限公司?)。そしてチップの型番はATGM332D。チップに偽ラベルを貼るでもなく堂々とパチもん送ってきやがった。さすが中華。
ただ、このATGM332D、ICはAT6558-5N-31というやつでデータシートによるとそんなには悪くないらしい。5N-3XはGPSと北斗対応バージョン。TCXOみたいだし、ubloxのUBXバイナリコマンドも使えるようだし。ubloxのチップをそのまま置き換えられるというのはそういうことなのねという感じ。
なので今回はこの中華GPSモジュールを使ってみようと思う。

スペックで比較するとubloxのNEO-M8NのGPSのTracking sensitivity: -167 dBmに対してAT6558は -162 dBm。
ウォームスタート(ホットスタート)が、NEO-M8NとAT6558がともに1秒。コールドスタートはNEO-M8Nは26秒に対してAT6558が32秒。 性能に差がないわけじゃないので念の為。

新しいGPSモジュールとChronyでNTPサーバ 6
基板の裏。外部アンテナ接続用のSMA(左上)、同じくIPEX(左下)がある。オンボードのアンテナは無い。というかオンボードアンテナ無しを敢えて購入。NMEAがおかしいGPSモジュールはオンボードアンテナがあってジャンパスイッチ等でそのアンテナを切るというのができないのを異常の原因として疑ったので。
中央下に見えてる丸いのはボタン電池。これがあると電源を入れ直したときなどにウォームスタートが効いて衛星の捕捉開始までの時間が圧倒的に速い。電池が付く付かないでおそらく値段は変わらないと思うので電池が付くタイプの方が個人的には良いと思う。

新しいGPSモジュールとChronyでNTPサーバ 7
手前にある小さい基板が今回購入したもの。奥側が前回購入したublox NEO6のGPSモジュール。大きさがだいぶ違う。

新しいGPSモジュールとChronyでNTPサーバ 8
左側が新しく購入したGPSモジュール。右側が古い方。その中央に見えてる汚い白い四角いのはオンボードアンテナ。
赤枠で囲ったところが今回購入したポイントの1つ。ピンの並びとピッチが全く同じなので旧基板から5ピンまるごとごっそり抜いてそのまま新しい方に挿すだけ。簡単。

外部アンテナのSMA端子も差し替えたら交換完了。

しばらくArmbianのビルドをサボってたけど久しぶりにPPS対応カーネルで作ってみた。カーネルオプションは以前の記事を参照。なお、Timer frequencyはこれまで1000Hzで作っていたが、NanoPiNEOだと荷が重いかなと思ったので初期値の250Hzにした。これで調子が悪いようなら作り直す予定。イメージはminimalにしている。

置き場所(Google Drive)
Armbian_20.08.0-trunk_Nanopineo_buster_current_5.4.50_minimal.7z

NanoPi NEO用のArmbianは暫く初期起動で有線Networkが無効という嫌がらせ状態になっていたが、今回のビルドではDHCPのあるLANに接続すれば自動的にネットワークが使えるようになっていた。また、NanoPi NEOの電源用のmicroUSBのケーブルをACアダプタではなくPCに接続すればそのPCからUSBシリアル経由で通信できるのは以前と同じ。DHCPから静的な設定に変えるとき(しかも違うネットワーク用に変えるとき)にarmbian-configを使うと結構ウンコなのでトラブることがあるが、USBシリアル経由なら簡単確実かも。個人的にはarmbian-configなんて使わないで/etc/network/interfaces, /etc/resolv.conf, /etc/hostname の3ファイル直編集がオススメだけど。(特にネットワーク替えの場合)

1PPSを使う場合は/boot/ArmbianEnv.txtの編集をお忘れなく。変更の仕方は以前の記事と同じ。

で、Debianの新しいバージョンでは標準搭載のNTPサーバがntpdではなくChronyになっている。Chronyが流行りのようなので逆らわずにChronyでやることにした。比較的簡単だし。

と、いうことで、次回は中編としてChronyの設定、さらに次々回は後編としてGPSモジュールの操作を予定している。

関連記事:

コンクリート詰めダイソースピーカーにPAM8406アンプを付ける

PAM8406アンプボード

ダイソーの300円USBスピーカー(の中身だけ)をコンクリートに閉じ込めたことで箱鳴りのない良い音のするスピーカーになったのだが、元々ダイソースピーカーに使われている内蔵アンプが酷くて低音が全く鳴らないのがどうにも気に入らない。小口径で低出力なスピーカーなのでがんばっても低音があまり鳴らないのは解るし下手に低音を鳴らすと元々のペラペラ樹脂エンクロージャでは音の酷さが際立つからいっそ鳴らなさいということにしたのも解らないではないが、カットしたように全く鳴らないというのはやはり音として不自然すぎる。ダイソースピーカー内蔵アンプを改造して低音が出るようにする記事を見たが普通に面倒そうだったし苦労の甲斐があるほどの音質改善があるのかも不明だったのでダイソー内蔵アンプはすっぱり切り捨てて代わりのアンプを用意することに。とはいえ、鳴らすのがおもちゃのダイソースピーカーなので数千円数万円のアンプはもったいなさすぎる。ということで、いつもどおりAliExpressで低価格のアンプボードを購入することに。

PAM8406アンプボード 1
届いたビニール封筒から取り出した中身。輸送中に揉まれまくったのかその前からなのかは判らないけど、基板を入れたジップ袋がボロボロになってた。細かい穴も空いているので防水性能は無くなってたと思われる。まぁ水に浸かることはないと思うけど。

PAM8406アンプボード 2
説明書(右)も基板ウラ面のリード線の出っ張りで擦られたからかボロボロ。

PAM8406アンプボード 3
説明書はZ折になっていて片面はすべて中国語。

PAM8406アンプボード 4
裏面はすべて英語で、中国語・英語は同じ内容っぽい。見たところ意味のあることは殆ど書いてなくてまぁ基板を見りゃ判るだろというようなことだけ。PAM8406はD級とAB級の切り替えが可能で、シャットダウンとミュートも切り替えられるらしいが、肝心のそこをサラリと触れる程度では説明書の意味ないでしょ。

PAM8406アンプボード 5
基板の表の面。画像の中央上部は見たとおり音量ダイヤル。これは一番左に回すと音量がゼロになってさらにカチッと音がして電源が切れるタイプ。左端は電源入力で直流5Vをつなぐ。下側中央(ボリュームのちょうど反対側)は3.5mmステレオミニプラグによるオーディオ入力。右端はスピーカーターミナル。オーディオ入力はプラグを挿すだけ、電源とスピーカーはネジでケーブルを挟むだけ。つまり、このアンプ基板は基本接続には一切ハンダが要らない。視力が弱ってはんだ付け作業がおっくうな「がとらぼ」の中の人が数あるPAM8406アンプ基板製品の中からこの基板にしたのはこれが理由。やっぱり簡単なのが良いよね。

PAM8406アンプボード 6
光の当て方を変えたらアンプのメインのチップの型番が浮き上がって見えるようになった。PAM8406 TDD85062と書いてある。PAM8406という方が皆に呼ばれているアンプチップの型番。もう一つ型番はいろいろあるみたい。

PAM8406アンプボード 7
基板のウラ面。アンプボードの型番はLQ-AMP10Wでバージョンは1.3らしい。ウラ面には部品はない。左下にMODE(アンプクラスのモード)、SD(シャットダウン切り替え)、MUTE(ミュート切り替え)があるのだが、標準はD級、シャットダウン無効、ミュートオフで、3つすべてがHighの状態。これをそれぞれLowに切り替えるとアンプがAB級、シャットダウン、ミュートオンになるよう。Lowへの切り替えは左下のホールにピンつけるかハンダ付けるかしてGNDと繋げれば良いのかな。まぁ今回は触るつもりなし。AB/Dの切り替えは本当なら興味深い部分ではあるんだけど、既に切り替えて試した先人の皆さん揃って全く音が変わらないという評価のようなので効率の良いD級(デフォルト)で使うのが良さそう。

PAM8406アンプボード 8
コンクリート詰めダイソースピーカーと繋いでみた。電源はUSBのACアダプタ。以前に断線したUSBケーブルがあったのでそれをブチっと切って中にある4本のコードの赤をアンプ基板の5V側に、黒のコードをGND側につなぐ。あとの2本は要らない。簡単ね。
コンクリートスピーカーは前面側を仕上げずに完成ということにしていたが、「いくらなんでもあんまりです」と思ったのでモルタルを増し打ちして仕上げたんだけど、48時間硬化後にハケではたいたら右側のスピーカーの下半分のように表面がボロボロに崩れた。同じ右側スピーカーでも左上側は表面が崩れずに更に角の方は丸め加工を少し行ったがそれでも崩れなかった。左側のスピーカーも表面や角が少しボロボロ崩れた。継ぎ打ちしたモルタルがごっそり剥がれるというのを心配してたけど、表面がボロボロに崩れるというのは想定外。このモルタル(日曜セメント)は水分調整が難しいし仕上がりが酷すぎ。二度と買わない。結果的に作業前より酷いことに。で、スピーカーよりも前面側に足した部分(日曜セメント使用部分)を全部ひっぺがしてやり直したかったのだけど、木槌で叩こうがマイナスドライバーで抉ろうが全く剥がれない。余計なところは優秀だなぁ。

ダイソースピーカー内蔵のアンプでは出なかった低音が出るようになったので音の自然さと音の深みが増した感じ。ただし、使ってるのが300円のダイソーの小さな低出力スピーカーなので超低音がズンズンドコドコ鳴るわけではない。あくまでもスピーカーに見合った程度に鳴るようになっただけ。それでも大改善。コンクリート詰めにしただけで既に結構良い音になってたけど400円のアンプでこんだけ鳴るようになると人に聞かせて自慢したいくらい。(見た目をもう少し綺麗に仕上げないと人にお見せするのは恥ずかしいけど)

音量ダイヤルを目一杯半時計回りに回すとアンプのスイッチが切れる。これも電源を切れなかったダイソースピーカー内蔵アンプよりも良い。ただし、スイッチを入れると「ブツッ」という音が鳴る。大きな音ではないので致命的な問題ではない。基板の四隅の穴にM3ネジを脚として取り付けたかったのだが、M3ネジ用の普通のナットはスピーカーターミナルの黒い樹脂が邪魔で1穴だけは脚が付けられなかった。上の画像では正常にネジ脚で立っているように見えるが左奥は脚なしの3本脚。3本脚でも左右と後ろに出たコードのおかげでこれで普通に安定して立ってくれるけど。

約400円の安物アンプだけどこの価格が信じられないくらい良い感じに鳴るのでアルミエンクロージャを購入して格納する予定。今回買ったアンプの音が悪かったら別のアンプを買いなおすつもりだったのでエンクロージャは注文してなかったのよね。ホコリのかかる場所に剥き出しで置いたままにするのは良くなさそうだし、アルミの小奇麗な箱に入れたら中身が400円と思えない高級感出そうだし。もちろんボリュームのノブもアンプ基板付属の黒の安っぽい樹脂のやつからアルミ製の太い高級そうなのに交換したいかな。そうしないとアルミの箱に入れても安っぽくなるしね。なお、今年の春以降は封筒に入らないサイズや重量物は送料が大幅に高くなってるのが増えてるので中国通販でヘタに買うと国内で買うより高くなることもありそう。

一応、ダイソー内蔵アンプと400円アンプで楽曲を再生して、それを録音したんだけど、持ってるのがおもちゃマイクだからなのか低音が録れないっぽい。マイクで低音が拾えないからジャズなんかだとベースの人がいなくなった?ってくらい低音が無いように録れてる。これだと低音に関してはダイソー内蔵アンプも400円アンプもどちらも同じに聞こえる。むしろ、中域の一部はダイソーアンプが得意なところとマイクの相性が良いのかキビキビ聴こえてダイソーアンプの方が感じ良く聴こえるくらい。耳で聴くと自然な鳴り方は400円アンプの方だし、迫力はないものの低音が鳴ってるなと明らかに判るのも400円アンプの方。

2020年6月28日追記:
PAM8406アンプボード 9
木槌で叩いてもビクともしなかったので全部ぶっ壊すつもりで金槌で叩きまくったところ継ぎ打ち部分をごっそり剥がすことに成功。本体部分と同じコメリのインスタントセメントを購入し直して再度継ぎ打ちした。やはりこのモルタルの方がド素人にも扱いやすく出来ているようで、水分調整も簡単だし仕上がりが全然綺麗。前回は前面を水平にして継ぎ打ちしたが、今回はわざと1つの角を少し持ち上げて斜めにした状態で継ぎ打ちした。もちろん、左右対称になるよう。写真では中央手前側が厚く、奥側両端を薄く継ぎ打ちした状態。掃除前なので外周部がバリのようになっているし継ぎ打ちの際に当てた型枠の下部分が汚れたようになっているが、こういうのは削ると綺麗になる。横方向から見て表面がこれだけなめらかだと正面から見るともっと綺麗な印象になる。継ぎ打ちした表面はとくにラップで養生などはしていなくて、モルタルを流し込んで上から突き固めてバイブレーターで今回は流し込んだモルタル直当てではなく型枠に振動を与えて気泡を抜いて(若干残ってるけど)、振動で表面が滑らかになった状態でそのまま48時間放置しただけ。やっぱり扱いやすいモルタルなら簡単に思い通りにできるのね。

PAM8406アンプボード 9
ダイソースピーカーのコーンの銀色をラッカースプレーでつや消し黒にした。そしたらコーンのエッジ部分(ビニール?)が少しヨレた。(右側上穴)。どうやら有機溶剤に弱い素材らしい。細い筒を用意してコーン部分だけが染まるようにした左側(上穴)は問題なし。ドローンコーン(下穴)は元々黒だがツヤが強いのでついでに同じつや消し黒でスプレーしたが中心部の板が少しムラになった。

関連記事:
Up