巨大なACアダプターにどうしても我慢できなくて、数百円の電源トランスを仕入れてカイゼンした。電流容量は1Aと、立ち上げ時に多少足りないが、数分間頑張ってくれれば問題なくなると見込んだ。

トライアンドテストの結果、1次側に110Vを、2次側に10V(5VDC用)と14V(±12VDC用)を採用した。数時間通電しても、ヒートシンクがほんの少しの温かさで、以前よりはだいぶ安心できるようになった。

見栄えがいまいちだった前のACケーブル穴はヒューズホルダーで塞いだところもグッド。

111125.jpg 111125-2.jpg 111125-3.jpg

到着して2週間、やっと完成した。実数小数部表示のバグも直った。コンパイラHi-tech Cがオカシかったようだ。時間あれば吐き出したアセンブラソースで確認したい。

機能についてまとめる。UTCとローカル時間との時差は基板上のDIPロータリーSW 2つを回すことで調整する。ひとつはプラスマイナス用、もうひとつは時差の絶対値。日本時間だと+9にする。ACアダプターの都合で電源スイッチは省略した。その代わりに、フロントパネルの左下にLCDのON/OFFスイッチを設けた。ただ、実際にはOFFしてもわずかにLCDが光っている。LCD SWの上にある赤LEDは通電状態を表す。

フロントパネルの右上にある黄色LEDが、Thunderboltの動作が安定になれば、1秒ごとに点滅する。通電直後の立ち上げ時には、0.25秒周期に点滅。つまり、LCDをつけなくても、LEDの点滅で状態がわかることにした。

動作が安定期に入ったら、LCDは上から日付(文字数の制限で、年の表示は省略)、10MHz周波数のズレ(小数点以下最大4桁まで表示)、1PPSのズレ(小数最大4桁表示)、内部温度(小数2桁表示)の4項目を表示。安定期に入るまえには、日付、10MHzのズレ、Thunderboltの状態(1桁のコードで示す)やアラーム等の表示にかわり、PCに繋がらなくても内部状態がある程度確認できる。

1PPSのクロック出力は使わないので、キャップをつけた。10MHz出力は4分配器を通し、外部に繋いでいる。フロントに1つ、リアに2つ、将来増設用に1つ。分配器は秋月電子から調達したもので、テレビアンテナ用。それに100円ショップで売っているアンテナケーブルをつけた。10MHz出力信号が2Vpp以上の振幅なので、インピダンスが多少ずれても問題ないと考えた。リアパネルにはほかに、GPSアンテナ、RS-232Cコネクタがついている。

111117-2.jpg 111117.jpg 111117-4.jpg 111117-3.jpg

体力の限界を感じたわけではないが、電動ドリルを何年ぶりに引っ張り出した。穴開け作業は超楽チン、丁寧に位置合わせしておけば、あっという間に穴が開いてしまう。

フロントパネルのレイアウトに悩んだ。LCDをセンターに置き、対称にすべきかどうかだ。BNCの増設もありそうだし、対称ではいまいちバランス感が悪く、最後にこれに落ち着かせた。

電源トランスが高く、ヤフオクでは中古でも数千円し、手持ちのACアダプターを流用した。出力12V/2Aで、質量もサイズも巨大すぎる。ケース内のレイアウトまでが変更されるハメに。

作っておいたソフトをデバッグして、いよいよ完成か。

111112.jpg 111112-2.jpg 111112-3.jpg 111113-2.jpg 111114-2.jpg

部品が届き、あっという間に組み立てた。オリジナルプリント基板を利用することをいつもながら考えてたが、今回も結局パス。高校以来やってないのでチャレンジしたいが、面倒さという記憶が強烈に残っているかな。業者に作ってもらうという手もあるけど。

残りの仕事はPIC用ファームウェアの作成と金属ケースの加工。ケースについて、今回も攝津金属工業IDEAL uT-1を使う。売値が2千円以上、ジャンク測定器が買えてしまうが、サイズに問題なければ、これからの作品すべてにuT-1を利用する予定。眺めて自己満足するために。

10MHzの出力は、周波数カウンター、DDSシグナルジェネレータ、無線機に使わせるつもり。

111110.jpg 111110-2.jpg

電源部分の動作を先に確認した。リップルは+12V、+5Vでは0.4mVpp、-12Vでは1.1mVpp。-12Vのほうは電解コンデンサの容量が100μと小さい上、+12VからDCコンバータにより作り出したから。

111110-8.jpg

以下の内容は「ThunderBolt GPS Disciplined Clock User Guide Version 5.0」による。

RS-232Cによる通信では、独自のTSIPプロトコル(Trimble Standard Interface Protocol)が使われている。またデフォルトでは、1秒ごとに以下2つのパケットを吐き出しているので、それを捉えてLCDに表示すれば、大抵の情報が得られるらしい。

  Packet: 0x8F-AB Primary timing packet
  Packet: 0x8F-AC Supplemental timing packet

<RS-232Cの設定>
 ボーレート 9600bps
 ビット数 8
 パリティ なし
 ストップビット 1

<パケット構造>
 通信に使われるパケットは以下のようなバイトのシーケンスで組み立てられている。
  <DLE><id><data><DLE><ETX>
  <DLE>は1バイトの 0x10
  <ETX>も1バイトの 0x03
  <id>は1バイトの ID
  <data>にはいわゆる通信データがはいる。データとしての<DLE>があれば、その直前にもう1バイトの<DLE>が挿入されるので、<DLE><ETX>との混乱が避けられる。また、2バイト以上の整数や実数では、上位バイトの順に送られる。

<Primary timing packet>
 パケットID: 0x8F

111106-3.png

PCにてUTC(協定世界時)に設定しておいたほうが見やすいだろう。日本時間との時差は9時間(UTC零時には日本時間9時)。10~16バイト目の情報による日付や時刻が分かる。時差によっては日付の修正が必要。そこからツェラー公式を使って曜日を正しく算出したようがいいだろう。また、9バイト目の2ビット目と4ビット目にも注意を払う必要があり。

日本時間の表示だと海外では使えない。かと言って経度からローカル時間を割り出すこともほぼ不可能。解決策として基板上にDIPロータリースイッチ2つを組み込んで、スイッチを回して強制的に時差を修正する方法が適当だろう。サマータイムにも有効。時差の最大範囲は-12~+12。

<Supplemental timing packet>
 パケットID: 0x8F

111106-4.png111106-5.png111106-6.png

パケットに含まれる情報が多すぎる。整理しないと表示しきれない。
 1バイト目 レシーバ状態。値7が正常状態
 2バイト目 校正状態。値1が正常状態
 8~9バイト目 重大警告。値0が正常状態
 10~11バイト目 マイナー警告。値0が正常状態
 12バイト目 GPS状態。値0が正常状態
 13バイト目 校正関係の活動状態。値0が正常状態
 16~19バイト目 PPSの誤差
 20~23バイト目 10MHzの誤差
 32~35バイト目 内部温度
 36~43バイト目 緯度
 44~51バイト目 経度
 52~59バイト目 標高

4行20文字LCDを使うので、取り敢えずは
 1行目には 日付時刻
 2行目には 出力誤差(PPS Offset、10MHz Offset)
 3行目には 校正に関する情報(DiscipliningMode、DiscipliningActivity)
 4行目には 状態に関する情報(CriticalAlarms、GPSDecodingSatus)
を表示したい。

なお、PICマイコンは非同期通信がサポートされているので、RS-232C通信の電気信号レベル変換(12V→5V、受信専用ならデジタルトランジスタ1つで可)以外に、ファームウェアですべて対応可能。TSIPプロトコルにおける実数の扱いはやってみないと分からないが、C言語なら簡単にいけると予測する。ということで、パーツとしては、PIC、PIC用バイパスコンデンサ、4行20字LCD、LCDコントラスト調整用半可変抵抗、デジタルトランジスタ、DIPロータリスイッチ2つ(UTC→ローカル時間対応)ぐらいか。

10MHz出力信号を3股に分岐したい。分配器自体は格安で売っているが、コネクタが高価だし面倒。デジタルトランジスタ3つで回路を組んで対応しよう。

曇り空で結構時間がかかったが、無事Self-Surveyが終わった。

10MHz出力の揺れが当初0.5ppb程度だが、1時間経つと0.05ppb程度に安定してきた。正式な運用では、常時稼働が必要になるかもしれない。

それでも、誤差が100億分の1以下なので、個人レベルでは十分だろう。素人にわかりやすく精度を説明するなら、1年の長さを秒数で表すと約31,536,000、即ち約3千万秒になるので、100年間の運用でやっと1秒の誤差が出るというのがGPSの精度。GPS衛星数個からの電波を絶えず受信し、GPSの精度に同期させるのが本ゴミ装置の役割だ。

111106.jpg 111106-2.jpg

LCDに表示する情報は、時刻、出力精度、状態ぐらいかな。捉えた衛星の数はよく変動するし、位置情報もそう変わらない。本格的に管理するにはやはりPCが不可欠。

最近は買物ばっかりしてて、手を動かしてなにかをつくることはしていない。その反省ではないが、久々工作して、ユニバーサル基板をTrimble Thunderbolt GPS-DOのケースに取り付けた。

特殊なネジで固定されているので、ケースを分解するにも苦労したが、さすがにTrimbleは業務用、よく作られていて、電解コンデンサが1つも実装に使われていない。

GPSアンテナも到着したし、明日GPS衛星からの受信動作を確認して、電源の組込みに取り掛かりたい。スイッチング電源は格安の500円で買えるが、安心のシリーズレギュレータにする。また、PCなしでも動作状態がわかるように、PIC+LCDを使い、サイズの大きい基板にした。

111105.jpg

マニュアルによると、+12v, +5v, -12v と3組の電源が必要で、PC並の贅沢さ。ゴミのくせに。

111102-5.png 111102-6.png

手元の自作電源はこんな所で大活躍。GPSアンテナはまだ用意できていないが、動作確認にとりあえず無視。

111102-7.jpg

10MHzと出た。めでたし。つぎはRS-232Cの動作確認。Trimble社からソフト Tboltmon.exe をDLし、ソニーVaioにインストール。ボンコツのそのVaioは起動するのに5分かかるし、バッテリー2枚も用意したのにすべて死んでいるので、使うのが苦痛。

111102-8.jpg 111102-9.jpg

RS-232Cとの通信も問題なさそう。電源の組込み、GPSアンテナの組立て、金属ケースへの内蔵化、残る仕事はまだ多いが、希望が見えそう。ゴミという呼び名を改めておこう。

地球に優しいリサイクル屋さんに天職、\h\h\h転職した。昔は美しい国、いまは世界中心の国からゴミを集めてくるから。

111102.jpg

送料は49元、600円。EXPACK並。距離的に10倍以上も遠いけどね(嘘言っちゃいけないので、Google Earthを立ち上げて真剣に調べたら、2,950キロと出た。)。

111102-2.jpg

電源コネクタがついている。ラッキー。

111102-3.jpg

無線機?発振器?無線発振器?

111102-4.jpg

ネジ6本を取り外し、BNC固定ネジもRS-232C固定ネジも外したら、正体がやっと現れてきた。Thunderbolt PRECISION GPS 10MHz FREQUENCY & TIME Standard。

10MHz周波数基準器をつくろうとしているんだね。精度は 1.16 x 10-12 (1日平均)、即ち ±0.0000116Hz/日 になるという。ここまで超高精度だと、円周率の計算と同じ、検証しようがなく、信じるしかない。