世界を動かす技術を、日本語で。

精密時計 Mk IV

概要

Precision Clock Mk IV の開発経緯と設計思想を解説 パンデミック時の部品不足 による遅延と再始動の背景 高精度・高可視性 ・自動タイムゾーンなどの主要仕様 複雑なヒンジ構造 と多機能ディスプレイの実装工夫 ユーザーインターフェース やGPS同期・ダブルバッファ処理の詳細

Precision Clock Mk IV 開発ストーリー

  • Precision Clock Mk IV は、過去モデルへの全フィードバックを反映することを目指した設計
  • パンデミック中のSTM32チップ不足 により、一時開発停止
  • 他部品への再設計を断念し、長期間未公開となっていたが、再びリリース
  • 購入希望者はショップページ、組立キットは アセンブリ手順書、ユーザーマニュアルも用意
  • 機能要求の集大成 として、多数の新機能と改善点を搭載

主な仕様・設計要件

  • ミリ秒単位の精度ジッターのない表示
  • 高フレームレート撮影(20,000fps以上) でもフリッカーなし
  • PWM不使用 で自動輝度調整
  • GPS座標から自動でタイムゾーン・オフセット判定
  • 電源OFF時も高精度維持 (水晶発振器+ボタン電池)
  • アンテナ交換が容易なSMAコネクタ採用
  • 全パーツ表面実装 で修理性向上
  • GPS受信喪失時は精度低下を数字消去で視覚化
  • 複数表示モード(ISO-ordinal等)、C言語で将来的な拡張性確保
  • ファームウェア更新はファイルコピーのみで完了
  • 2行分割表示と横長表示を切替可能なヒンジ構造
    • 4本のワイヤー で電源・双方向データ・アナログ輝度・ラッチ信号伝送
    • Delrin製レーザーカットヒンジ で高強度
    • ヒンジ形状が“T”を暗示 し、ISO8601準拠を意識
  • クラッパーボード用途にも一部対応 (推奨はしないが、堅牢なコインセルホルダー採用)

アーキテクチャ

  • 従来品の固定リフレッシュレートIC を廃止し、 2プロセッサ+6バッファIC 構成
  • 19桁7セグメント表示 を4つの5x8マトリクスに分割
    • 各マトリクスを16bit GPIOで制御
    • DMAによる円環駆動 でCPU負荷ゼロ、配列データを直接書き換え可能
  • 輝度制御 はバッファICへの供給電圧を LDO+DAC で可変化
    • ソフトウェアで非線形カーブ適用 し、精密な輝度調整
    • ヒンジ側も同じ電圧で輝度伝送
  • UART通信 でディスプレイデータとラッチ信号を同期
    • 0xFEバイト送信でサブマイクロ秒精度の更新
    • 全て4本のワイヤーで完結 (電源・GND・TX・RX)

インターフェース設計

  • 従来機同様、基本は自動時刻取得・設定不要
  • 複数表示モード をボタンで切替
    • 有効モードはconfig.txtで設定
    • USBマスストレージ経由で簡単に設定変更やファームウェア更新
    • USBシリアル経由でコマンド送信も可能
    • config.txt保存時に自動リロード

ダブルバッファディスプレイ処理

  • Mark II/IIIでは割り込み内で全計算 (BCD・アセンブリ実装)
    • 複雑な日付・DST計算も割り込み内で処理
  • Mark IVではC言語+ダブルバッファ方式
    • GPSデータ受信時にUNIXタイムスタンプへ変換
    • 次の秒の表示内容を余裕を持ってバッファに準備
    • 割り込み時はバッファを即座に切替、表示ジッターを極小化
    • モード切替時は、バッファ準備済みなら次パルスまで遅延

GPS同期・オシレーター制御

  • GPSのPPS信号が途切れる場合の補正
    • PPS不在時は内部タイマーでロールオーバー
    • PPS再取得時のタイミングずれも考慮
    • 内部オシレーターをPPS信号で微調整
    • PPSの受信タイミングに応じて発振周波数を調整し、精度維持

以降、各技術要素やデザインの詳細、テストや製造バッチ、結論など、さらに分割して解説する場合は新たなセクションタイトルを付して整理します。

Hackerたちの意見

最後まで読めなかったけど、物を作る人にはいつもリスペクトしてる。特に売るための物ね。10MHzのオシレーターがあるから、MHz信号のことはあんまり気にしてないけど、EMI/Cレポートが見れたら面白かったかも。普段はSMPSの周波数がスパーとして見えることが多いし(特にPFMモードの時)。32Kについては、H7の場合、シールド用に周りにグラウンドのリングを推奨してたけど、ここで役立ったかは不明。内部のRC 32Kをvbatで使えるマイコンもあるし、クリスタルなしでUSBができるやつもある。最高のマイコンは知ってるやつ、次にいいのは持ってるやつかもね。LEDドライバーのバラつきは面白かった。大きなIOでタイトなタイミングが必要な場合、最初にFPGAを考えるけど、可変バンク電源はどう思われるか分からない。多分大丈夫だろうけど、使われてるソリューションは興味深くて機能してるね。

EMI/Cレポートがあったら面白かっただろうな。これは二層基板で、ループエリアを小さく保つ努力もしてないから、悪くなるのは間違いない。見た感じは大体問題なさそうだけど、EMIの部分は完全にナンセンスだと思う。編集:二層スタックアップ自体には何も文句はないけど、極めて低い放射エミッションを実現してるって主張してるのが気に入らない。

「もしセルラーモデムがあれば、セルタワーから時間を取得できる。これはNITZというプロトコルで放送されてる。これが、電話が異なるタイムゾーンに入った時に自動で更新される方法だけど、キャリアによってはあまり信頼できないし、GPSを使うより全体的に悪い。あと、時計にSIMカードを入れたくない。」ちょっと気になったんだけど、SIMカードなしのセルラーモデムで何ができるの?時間は取得できるの?

一つの可能性として、911に電話して時間を聞くってのもあるね。

いいえ。時間を取得するにはネットワークにアクセスする必要があるよ。ネットワークから「無料」でタイミングを得られるけど、時間は教えてくれない。

この時計の一番の特徴は、最大100kHzのリフレッシュレートと、アナログLCDドライバー回路のおかげで、暗くしても全くちらつかない数字が見れること。しかも、今まで持ってた中で一番精度の高い時計表示だよ!確かに高価だけど、実用的な道具というよりはアート作品みたいな感じ。目が数千Hzの範囲で見えるなら別だけどね!

超ランダムだけど、最近GitHubのコメントで別のタイムデバイス/プロトタイプを作業してたって記憶があるんだけど、ちょっと思い出させてくれない?その参照を探してるんだけど、今朝はそれが気になって仕方ない。ありがとう。

「数年前にこの時計を設計したのは、以前の精密時計に対するすべての機能リクエストを取り入れるつもりだったから。これを読んで最初に思ったのは、NTPサーバーを動かすためにイーサネットポートを追加して、PoE機能を持たせることだった。目的には完全にオーバースペックだけど、データセンターの壁にこれを掛けて、時計が時間を提供するって考えると笑っちゃう。」

それ、実際にめっちゃ役立ちそうだね。ネットワークの時間を一目で確認できるのはすごく便利。SCIFみたいにユーザーが隔離されてる環境や、エアギャップのある場所でも役立つ。正直、家用に一つ買う決心がつくかも。

それを聞いて、ブロニクスのWCD-530Wやエバーツの同等品みたいな制作スタジオのマスタークロックを思い出した。アナログスタイルの1275Tの方が好きだな - https://evertz.com/products/12x5T。

仕事でこの時計を2つ使ってるんだけど、高速プロセスをビデオで同期させるためにね。もう少し買うつもり。

二つのディスプレイの更新はどれくらい同期してるの?

これ、めっちゃクールだね。主要な設計決定や最終結果に影響を与えた問題を網羅した美しい記事だよ。自分用に一つ購入して、開発者をサポートしようか考えてる。ホームラボやテクノロジー/ハッカー空間にとって、すごくクールな追加になると思う。自分のちょっとした問題は、USB-Cの代わりにマイクロUSBポートを使ってることかな。なんでだろう、記事には触れられてないし。PDコントローラーを追加すると、基板上の部品の複雑な配置がさらに複雑になったかもしれないね。標準USBは5Vで1A(5.0W)供給できるから、単純にそれが楽な方法だったのかも。

自分のちょっとした問題は、USB-Cの代わりにマイクロUSBポートを使ってることかな。なんでだろう、記事には触れられてないし。PDコントローラーを追加すると、基板上の部品の複雑な配置がさらに複雑になったかもしれないね。標準USBは5Vで1A(5.0W)供給できるから、単純にそれが楽な方法だったのかも。PDコントローラーは必要ないよ。USB-Cが最大3Aで5Vを供給できるようにするには、特定の値の抵抗が二つ必要なんだ。入力側にICは必要ないよ。

大抵はピンの間にすごく小さな隙間があるから、投稿の最後に示されている自宅のセットアップでは、信頼性よくできなかったかもしれないね。

頭の中のバイクメカニックが、結局そのボルトをナットと同じくらいに削ったのか知りたがってるよ。

ここに展示されている個人プロジェクトの野心や技術力、そしてひたむきな dedication に驚かされるよ。これが時計のためにやってるなんて!よくわからないけど、すごいなって思う。

技術にめちゃくちゃ優れた友達に「趣味をお金にしよう!」って応援する時、まさにこれを想像してるんだ。超技術的で、完璧に実行された、楽しい・ユニーク・賢い製品。ソースコードも全部共有できて、作り方の説明もある!組み立てたバージョンを売って、お金を稼げるかも!そして、好きなことをやりながらお金を稼げたらいいなって思ってる。((現実はもちろん、ハードウェアビジネスでは、もっと注文が来ると製造や組み立て、発送の物流でたくさんの問題が出てくることもあるけど、まだまだそれはいい問題だって思ってる…?)) 本当に素晴らしい時計だね。おめでとう、発売おめでとう!たくさん売れるといいね!