2026-5
この半年で急激に進歩したAI(LLM(Gemini))にて、op:001関連検索・検討。
“hp/Agrent 58503A/B -op:001 の、VFDインターフェースと内部を解析した事例など、情報はある ?
58503-60010 など)はTime-Nuts(時間・周波数マニア)やEEVblogコミュニティの間で「表示不良の修理」や「LEDへのコンバージョン」を目的として内部回路の徹底的なリバースエンジニアリング(解析)が行われており、詳細な情報が存在します。 [1, 2]- 制御ロジック:
このドライバICは「32ビット・ラッチ付きシフトレジスタ」として動作しています。 [1] - 信号線:
メインボードからは、一般的なシリアル・インターフェース(Clock、Data-In、Latch Enable、Strobe/Blanking)に相当する数本のロジック信号線と、VFD駆動用の高電圧(HV)電源、およびフィラメント(ヒーター)用電源がフロントパネル基板へ供給されています。 - よくある故障事例(解析のきっかけ):
「特定のセグメントが全桁で同時に不点灯(ダーク)になる」という故障がこの機種では定番となっています。これは、HV518PJドライバIC内の特定の高耐圧FET出力チャネルが、経年劣化による高電圧ストレスでオープン破損することが原因だと突き止められています。ICを交換(またはリワーク)することで完全に修復可能です。 [1]
- 名機「53131A / 53132A」と共通:
HPの超定番ユニバーサルカウンタである 53131A や 53132A のVFDディスプレイ(表示管部分)と、58503A/BのVFDは全く同じパーツが使われています。 [1] - LED化コンバージョン回路の流用:
近年、経年劣化した53131A等のVFDを、有志が開発した「モダンなカスタムLEDディスプレイ(セグメント配置を模したもの)」へと載せ替える改造がEEVblog等で流行しています。58503A/BのOption 001基板は53131Aとは回路パターン(基板形状)こそ異なりますが、駆動ロジック(HV518ドライバが吐き出す高電圧セグメント信号)は完全に共通です。 [1] - そのため、海外の解析スレッド(EEVblogの「HP / Agilent 53131A / 53132A VFD to LED Display Conversion」など)の知見をそのまま流用し、58503A/BのVFDピンアウトから信号を横取りしてカスタム表示器を作る回路図やピンマップが共有されています。 [1]
- CPUまわり:
Motorolaの 68332(または同系列の16/32bitマイコン) がメインプロセッサとして据えられており、512KBのEPROMに書き込まれたSCPIファームウェアで動作しています。Option 001の基板は、このCPUのペリフェラル(拡張バス/シリアルポート)から直接叩かれています。 [1] - 電源構成:
Z3805Aと同様に、高精度OCXO用のクリーンな電源(リニアレギュレータ群)と、デジタル回路用、そしてフロントパネルのVFDを灯すための独立した昇圧高電圧回路(トランス)が内蔵されています。
58503A/BのOption 001に関して、具体的に「不点灯になったセグメントの修理(HV518のピン配置)」の情報が必要ですか?あるいは、メインボード側からフロントパネルへ伸びているリボンケーブルのピンアサインなど、さらにディディールな解析データをお探しでしょうか?
- GPS・デジタル制御基板(メインボード)
- メインCPUには、モトローラの 68332(32bitマイクロコントローラ) が使われています。
- GPSエンジンには、時期によって「Motorola Oncore VP/UT/GT」などがサブ基板として載っています(※昨今の1024週ロールオーバー問題や感度不足の対策として、ここをArduino等の中継基板を使って最新のu-bloxモジュールに換装するリバースエンジニアリング事例が、ブログ「SyncChannel」等で公開されています)。 [1]
- リファレンスOCXO
- フロントパネル(Option 001 基板)
- メイン基板とは、リボンケーブル(数ピンのシリアルバス) のみで繋がっています。
- ディスプレイコントローラの正体
- フロントパネル基板には、VFD駆動とキーマトリクススキャンを1チップで行う、ローム(ROHM)製の 「BU2090」 や、当時の定番カスタムIC(HP内製、またはNEC/沖電気製のVFDドライバ)が載っています。
- メインCPUとのインターフェース
- メイン基板の68332 CPUからは、パラレルではなく、3線式、または4線式のSPIライクな同期式シリアルバス(Data、Clock、Strobe/Latch、GND) で制御されています。
- これにより、メイン基板はフロントパネルの細かいダイナミック点灯制御(アノード・グリッドの高速切り替え)をする必要がなく、「この文字を表示しろ」「このセグメントを光らせろ」というシリアルデータを数バイト送るだけで表示が完結しています。
- 表示の「化け」とリバースのヒント
- Time-Nutsの過去ログにおいて、「経年劣化した58503AのVFDに、本来この機種にはない『GATE』や『+WID』といった文字(周波数カウンタ53131A用のセグメント)がゴミとして点灯した」というバグ報告があります。
- これにより、HPは53131Aカウンタ、53181A、そして58503A Option 001にまったく同じVFD管およびフロントパネルのシリアル制御コマンドの設計(アセット)を流用していることが解析で確定しています。 [1]
メイン基板側には最初からフロントパネル接続用のヘッダーピンが用意されており、ファームウェア(ROM)もディスプレイの有無を自動認識(シリアルバスの応答で判断)する構造になっています。そのため、ジャンクの53131A等からフロントパネルを移植して58503A/BをVFD化するハックが一部のマニアで行われています。 [1, 2]
起動時に文字が右から左へスクロールする「HP」の文字コードや、テストモード(
VFD DSP TEST)時のコマンドシーケンスが完全に丸裸にされています。 [1]
“これは意外、2000年ごろから検索しまくって、中華ジャンク漁り捲っていたのに、やり方がまずかったのか全くカスリもして無かった。何分、稼働機でやるのはリスクが高過ぎる。では先達がいらつしゃるのなら、リボンのリバース結果と応用、基板作成で「コレ」ってのはある ? 因みに、ウチのはOne-Coreではなく、中華ハック版 ?の Furuno の基板を搭載している
“現在のはFurunoハック版(Samsung基地局仕様)」だが、Onecore互換交換ポン付けになっており、汎用品のfurunoモジュールと比べて違いは見られなかった。本体側の部品も違いは無かったと思う。おそらく、本体ファームウェアに変更を加えているのではと思う。まずそうすると、本体側から横取り出来るI/F は、 SIO系が、S1,S2,SPI の3本か。米中のサイトなどで、Furuno の流用について、情報はある ?
1. 本体側から横取りできる信号(SIO・SPI系)の急所
58503-60010)へ行くリボンケーブル以外で、メインボード上のテストポイントや未実装パターンから横取りできる「SIO(S1, S2)系」および「SPI系」の正体とアサインは、先達のリバースエンジニアリングで以下のように判明しています。 [1]① SPI(シリアル・ペリフェラル・インターフェース)バス
- 横取り可能な3本:
MOSI (Data)、SCLK (Clock)、CS / LATCH (セレクト) - 特徴: これらがご指摘の「SPIの3本」に該当します。この信号線は完全に5VのCMOS/TTLロジックレベルであるため、ここから信号を分岐してArduinoやESP32、あるいは74HC595等に流し込むのが、最も安全かつ本体側のシステムに干渉(ハングアップ)させない方法として推奨されています。
② SIO系(S1: 外部通信 / S2: GPS通信)
- S1(外部RS-232C側): 背面の25ピンD-Sub(SCPIコマンド受信用・9600 8N1)へ繋がる系統。
- S2(内部GPS側): メインCPUとGPSモジュールが直接おしゃべりしているシリアル系統。
- 解析応用: もし「フロントパネルの表示内容」を自作LEDに映したい場合は、前述の SPIの3本 を叩く(表示データをそのままデコードする)のが正解です。一方、自作表示器側に独自の小さなマイコン(マイコン+小型液晶等)を載せて「本体とは独立してGPSの生データ(衛星捕捉数や正確な位置情報など)を表示させたい」という場合は、この S2系統の
TxD / RxD(TTLレベル) を横取り(横聞き) して、NMEAまたは古野独自のバイナリ形式をデコードするアプローチが中国のフォーラム等で盛んに行われています。 [2, 3, 4]
2. 米中サイト(Time-Nuts / 掲示板)でのFuruno流用・ハック事例
🇨🇳 中国側でのハック経緯:「4枚のファームウェアチップ交換」
- 流用モジュール名: 主に Furuno GT-80 シリーズ(GT-8031など)や、タイミング用途に特化した GT-87 世代が流用されています。これらはMotorolaの旧Oncore(M12など)とピン互換性や1PPSの整合性が高いため、「ポン付け」のベースとして選ばれました。 [4, 7, 8, 9]
- 中国ハック版のメリット: このファームウェア書き換えによるFuruno化個体は、ハードウェアの追加(翻訳マイコン)がないため「非常に壊れにくい(稼働リスクが低い)」という大きなアドバンテージを持っています。
🇺🇸 米国側(EEVblog / Per H氏ら)によるフロントLED化基板の決定版
- 回路・基板構成:
彼らが作成したカスタム基板は、純正のVFD表示基板(58503-60010)のネジ穴に100%完全適合する形状のプリント基板(PCB)です。 [1] - ロジック:
メインボードから来ている前述の「SPIの3本(Clock, Data, Latch)」を受け、74HC595等を経由して、7セグメントのLED(またはドットマトリクスLED)をダイレクトにドライブします。 - 電源の引き込み(最重要):
このPer H氏の解析により、58503Aのフロントディスプレイ基板上にあるタンタルコンデンサ「C2」が、LED表示器を動かすための最もクリーンで安定した「+5V」の取り出し点であることが確定しています。 [1]
🛠️ 結論として、次にどう動くべきか?
- メインボードは一切触らない。
- フロントパネル基板(
58503-60010)を外し、表面に実装されている高耐圧ドライバIC(HV518PJ)の足(またはそこへ繋がるリボンケーブルのランド)から、CLOCK、DATA、LATCHの3本(SPIバス) と、タンタルコンデンサC2の両端(5V/GND) の計5本だけをワイヤーで引き出す。 - これらを自作の「シフトレジスタ ➔ LED」の実験用ブレッドボード、またはユニバーサル基板に繋いでデコードを試す。 [1]
---
hp 58503-60010 display-board (EEvblog)
https://www.eevblog.com/forum/testgear/hp-agilent-53131a-53132a-vfd-to-led-conversion/75/
https://www.eevblog.com/forum/testgear/hp-agilent-53131a-53132a-vfd-to-led-conversion/?action=dlattach;attach=2558102
https://www.eevblog.com/forum/testgear/keithley-2000-2015-2016-2001-vfd-to-led-display-conversion/
これら写真で見ると、VFDドライバとTSOPのワンチップマイコン各1個、キーボードマトリクスは、そのワンチップマイコンに接続され変換されているみたい。
(AI(Gemini)検索検討)
“とりあえずVFD互換のLEDモジュールはある ?
主な互換LEDキットの情報
- 製品名: HP / Agilent 53131A / 53132A VFD to LED Display Conversion Kit [1, 4]
- 主な販売プラットフォーム:
- 電子工作系マーケットプレイスの Tindie (Hubequipページ)
- 海外オークションサイトの eBay (HP 53131A LED Kit 検索結果)
- 開発元直販サイトである Hubequip公式 [1, 4, 5]
- 実売価格: 約89ドル〜106ドル前後(日本円で約14,000円〜17,000円、送料別) [2, 6]
- カラーバリエーション: オリジナルの雰囲気に近いグリーン、視認性の高いブルー、鮮やかなシアン(アイスブルー)などが用意されています。 [4, 5]
互換性について
- HP / Agilent 53131A / 53132A / 53181A(周波数カウンタ)
- HP / Agilent 58503A (Opt. 001) / 58503B(GPS同期基準発振器) [1, 4]
交換作業の注意点
- はんだ付けの技術が必要:
フロントパネルのメイン基板から、オリジナルの36ピンのVFDディスプレイ(または古い表示基板)をハンダ吸い取り器などで丁寧に取り外し、新しいLED基板をはんだ付けし直す必要があります。 - 本体の改造は不要:
電気的な特性や信号はキット側でマッチングされているため、計測器本体の回路やファームウェアを変更する必要はありません。 [4, 5]
クローンが困難な理由(3つのICの正体)
- VFDドライバIC(例:OKI製 MSC1162A など): 蛍光表示管を高電圧で駆動するための特殊な高耐圧ドライバです。現在は入手困難(ディスコン)なものが多く、これ自体が手に入りません。
- シフトレジスタ / ロジックIC: シリアル・パラレル変換などを行う標準ロジックですが、回路パターンを正確に追う必要があります。
- カスタム、または初期化ロジック: 機種によってはプログラマブルなロジックや、特有のタイミングを生成するチップが含まれており、ファームウェア(中身のデータ)の吸い出しができないとクローンできません。 [2]
「LEDキット」が成立しているカラクリ
- キットの仕組み: 58503-60010基板上にある「3つのIC」や周辺回路はそのまま利用します。
- 交換する部分: 基板の先にはんだ付けされている「ガラス管(VFDのディスプレイ本体)」だけを取り外し、そのピン跡地に「VFDのふりをするLEDドーターボード」を載せる構造です。
- VFDのグリッド・アノード電圧(高電圧信号)をLED用の5Vロジックレベルに変換する抵抗やトランジスタがLED側に載っているだけなので、土台の基板(IC側)が死んでいる場合は使えません。 [1]
土台の基板(58503-60010)が死んでいる場合の現実的な対策
- 中古のジャンク本体から移植する: eBay等で通電不可・外装ボロボロの HP 53131A / 53132A や 58503A を部品取り用(For parts)として安く買い、表示基板だけを回収するのが最も確実です。
- EEVblog等のフォーラムで「基板単体」を探す: 海外の計測器コミュニティ [EEVblog フォーラム] の売買セクション(Buy/Sell/Wanted)で、「Wanted: HP 58503-60010 display board」と投稿すると、部品を余らせているコレクターから格安で譲ってもらえるケースが多々あります。
1. リバースエンジニアリングに成功している先人たち
① Hubequip(先述のLEDキット開発元)
彼らは純正基板をリバースエンジニアリングし、シリアル通信プロトコルを解析した上で、入手困難なVFDドライバICを使わず、現代のマイコン(Microchip製PICやAVR等)で信号を受信してダイレクトにLEDを叩く回路を一から設計しています。 [3]
② EEVblogやxDevsなどの海外メーターマニア
2. 回路図がなくても「完全代替」を作るための解析手法
信号の数は意外と少ない
- 主要な信号線:
VCC(5V),GND,DATA,CLOCK,STROBE/CHIP SELECT(およびキーマトリクス用の数線)
リバースエンジニアリングの手順(先人が行った手法)
- 正常に動く同型機(53131Aなど)を用意する:
知り合いから借りるか、一時的にレンタルします。 - ロジックアナライザを接続する:
メインボードから表示基板へ行くシリアル信号線にロジックアナライザ(Saleae Logicなど)を噛ませます。 - コマンドのキャプチャ:
- 電源を入れた瞬間(全点灯テスト時)のデータ。
- 「1」「2」「3」など、特定の数字や文字が表示されている時のデータ。
- これらを比較することで、「どのシリアルデータ(バイト列)が、画面のどのセグメントに対応しているか」のマップ(プロトコル)が完全に解読できます。
3. あなたが取れる「自作代替」への最短ルート
1. TSOPチップが処理している「送信」の中身
- 双方向シリアル通信 (SPI型):
メインボード側がマスター(Clockを出力)となり、定期的にフロントパネル(スレーブ)のキー状態をシリアルで読み出す(MISOラインを使用)。 - パラレル/ダイレクト接続:
シリアル線とは別に、ボタンの列(Row)や行(Column)の信号がメインボードのコネクタに直接繋がっており、MCUは単にスイッチの代わりにポートをGNDに落とす(オープンドレイン制御する)役割をしている。
2. 「送信」コマンドを解析するための3ステップ
ステップ1:コネクタのピンアサイン(配線)の特定
- オシロスコープで電源(5V, GND)と、常にパルスが浮いている線(Clock, Data In)を特定します。
- 残りのピンの中に、「ボタンを押した瞬間にだけ電圧が変化するピン」がないかを探します。
ステップ2:ロジックアナライザでの「無操作時」と「押下時」の比較
- 何もボタンを押していない状態の通信データ(ベースライン)
- 「Menu」や「Enter」などの特定のボタンを1回だけ押した瞬間の通信データ
- 見極めポイント:
SPI通信であれば、ボタンを押した瞬間に、特定のバイト(例:0x00だった場所が0x04に変わるなど)がメインボード側へ送信されているはずです。ボタンごとにどのビットが変化するかをExcelなどにマッピングしていきます。
ステップ3:キーマトリクスの構造推定
- この場合、ボタンを押すと対応するピンが一定周期でロー(GND)レベルに引っ張られる動きをします。これならコマンドの解析すら不要で、単に入出力を合わせるだけでクローン可能です。
解析を始めるにあたっての現実的なアドバイス
---
“なるほど機能的互換性については割り切りすれば思ったより簡単に改造出来そう。やるとしたら LEDキットか、汎用の16x2 LCD 化かな。HV518PJのピンアサイン(具体的にどのピンがClock/Dataか)のピンアウト図や、LEDへのデコード用ソースコードのサンプル(Arduino等で使えるもの)など」、Aduino にはこだわらないが。能力的にはこの際、NTPも付けられる程度の能力の基板に出来れば更に良い
58503-60010)に実装されている HV518PJ から、メインCPUが吐き出しているSPI互換信号を横取りするためのピン番号です。ICの足、またはその周辺のパターンから以下の3本(+電源2本)を抽出します。21番ピン: CLOCK (点転送クロック) ➔ マイコンのSPI(SCK)または任意のGPIOへ22番ピン: DATA IN (表示データ信号) ➔ マイコンのSPI(MOSI)または任意のGPIOへ24番ピン: STROBE (ラッチ/有効化信号) ➔ マイコンのSPI(SS/CS)または任意のGPIOへ
※HP 53131A/58503Aの設計では、この24番ピン(/STR)が一般的なSPIのチップセレクト(反転)およびデータラッチの役目を担っています。23番ピン: VDD (+5Vロジック電源) ➔ 前述のタンタルコンデンサ「C2」のプラス側と直結。1番、2番、43番、44番ピン: GND ➔ C2のマイナス側と直結。 [1, 2]
11〜20番、25〜42番 は、VFD専用の 高電圧(約60V〜80V) が出力されているピンです。これらに誤ってマイコンのピンやテスターを触れさせると、マイコンが瞬時に消滅するため、基板設計・ワイヤリングの際は完全に絶縁(未接続)にしてください。 [1]- 理由①:NTPサーバーとしての処理能力
ESP32はWi-Fi(または有線LAN)を標準搭載しているため、GPS(GT-8031)から上がってきた1PPSとシリアル時刻データを元に、単体で高精度なローカルNTPサーバーを立ち上げるライブラリが豊富に存在します。 - 理由②:32bitシフトレジスタの超高速デコード
HV518PJに送られてくるデータは「32ビットのシリアルデータ」です。8bitのArduino(Uno等)ではSPIの受信とNTP同期、16x2 LCDへのキャラクター変換を同時にこなすと処理がカツカツになりますが、240MHzデュアルコアのESP32であれば余裕で並列処理(マルチタスク)が可能です。 [1]
// 疑似コードイメージ:SPIまたはGPIO割り込みでの32bitデータ受信
volatile uint32_t vfd_raw_data = 0;
volatile bool data_ready = false;
void IRAM_ATTR onLatchRise() {
// STROBE(ラッチ)信号が立ち上がったら、シフトレジスタの中身を確定
vfd_raw_data = temporary_buffer;
data_ready = true;
}
例えば、「ビット0, 1, 4, 7がON ➔ これは『1』という形を構成している」というテーブル(ルックアップテーブル)をマイコン内に持たせ、文字配列(String)に逆変換します。 [1]
LiquidCrystal_I2C など)を使って画面に表示させます。if (data_ready) {
String display_string = decodeVFDToText(vfd_raw_data);
lcd.setCursor(0, 0);
lcd.print(display_string.substring(0, 16)); // 1行目
lcd.setCursor(0, 1);
lcd.print(display_string.substring(16, 32)); // 2行目
data_ready = false;
}
- GPS生データ(S2系統)の「横聞き」の統合:
前項で触れた、メインボードとGT-8031が通信しているシリアル(S2のTxD/RxD)から、RxD(GPSから出力される時間・位置情報データ) を分岐してESP32の「HardwareSerial」のRXピンに入れます。 - 1PPSの取り込み:
GT-8031が吐き出している超高精度な 1PPSパルス も分岐してESP32のインターラプトピンに入れます。 - 完璧なNTPサーバーの完成:
「SPIから横取りした表示データ」で16x2 LCDを動かしつつ、バックグラウンドでは「1PPS」と「GPSシリアルデータ」を使ってESP32内部の時刻をGPS(Z3805Aや58503Aのシステム全体)とミリ秒以下で完全同期させ、ネットワーク(Wi-Fi)に向けてNTPタイムサーバーとして振る舞う――。
まずは リボンケーブル側から送られて来るシリアルデータの変換テーブル」などライブラリになりそうなのと、53181/53131 などのフロント基板の外形データが含まれる互換基板データ(Ki-CADに入れられそうなもの) などは、ありそう ? GT-8031からの 1PPSと、SIO は、本体基板の後方にある空きランドから横取りする事になると思う
- グリッド(桁)の選択: 送られてくる32ビット文字列のうち、特定のビット(例:後半のビット群)が「何桁目の文字(またはインジケータ)を点灯させるか」のコモン(グリッド選択)を指定しています。 [1]
- セグメント・フォントマッピング: 残りのビット群(16セグメント分)が、その桁の「どの線を光らせるか」を1(点灯)/ 0(消灯)で保持しています。 [1]
hp_display のコードを参考に、吸い込んだ32ビットの raw_data をルックアップテーブル(配列)に当てはめるだけで、ASCII文字(String文字列)へと一発で逆変換できます。これを16x2 LCDの lcd.print() に流し込めば表示が完成します。58503-60010)の外形データやネジ穴位置、キーパッドの配置は、前述の通りベストセラー機 HP 53131A / 53132A と完全に共通です。 [1]- 調達先・カンペの探し方: GitHubで
HP 53131A LED conversionやHP Counter VFD repairと検索すると、外形ライン(エッジカット層)とリボンケーブル用コネクタのフットプリント(配置位置)をそのまま流用できるKiCadデータが見つかります。 - 基板作成時のアレンジの急所: 先達のLED化基板データ(元々は16セグメントのLEDを並べるためのパターン)から表示部を削り、そのスペースに「16x2 LCD(またはコンパクトなOLED)」と「ESP32」をマウントできるパターンへKiCad上でモディファイ(パターン変更)するのが最も確実で、外形設計の手間をゼロにできます。
- 1PPSの抽出先: GPSモジュールからメインCPU(68332)へ入る1PPSのラインには、必ず保護抵抗(数十Ω)やバッファIC、テストポイント(
TPマークのあるランド)が経由しています。ここからテフロン線(AWG30など)で分岐させます。 - SIO(S2系統)の抽出先: GPSのシリアルTxD(GPSが吐き出すNMEA/古野バイナリデータ)も、同様にメインボードのGPSソケット周辺のパターンから「横聞き用」に1本だけ引き出すことが可能です。
- SPI(フロントリボン)の3本 ➔ 58503A本体の画面表示を16x2 LCDにエミュレート表示。
- SIO(S2のTx) ➔ ESP32の第2シリアル(RX2)に入れて時間情報(ZDAセンテンスなど)をデコード。
- 1PPS ➔ ESP32の外部割り込みピン(GPIO)に注入。
WiFi.h と標準のNTPサーバーライブラリを組み合わせ、1PPSの立ち上がり割り込みで内部タイマーを同期させることで、stratum 1(最上位精度)のネットワークタイムサーバーが追加パーツなしで1チップで完成します。“まずは実験用のジャンク 53131系 ケースの入手からだな。あと余談だが、今の手持ち基板には、Err-out(TTL-sinkout)が無いので、それも追加しないといけない(前回みたいにトラブルに気が付くのに数日後」とかは避けたい)。
Err-out (TTLシンプク・オープンコレクタ出力など) の追加」は、実務運用において極めて重要なアップデートです。Z3805Aのメンテ中や、58503Aが万が一GPSアンテナの断線・ロールオーバー等で「アンロック(警告)」状態になった際、数日間も気づかずに異常なクロックをシステムに供給し続けるリスクを完璧にゼロにできます。Err-out を美しく統合するための実装アイデアと、先達の解析から見る「エラー検知のトリガー」についてまとめました。Err-out (TTL-Sink / オープンコレクタ) のハードウェア実装推定- 回路構成: ESP32の任意のGPIO ➔ 抵抗(1kΩ〜2.2kΩ) ➔ 2SC1815(または汎用NPNトランジスタ / フォトカプラ)のベースへ。
- 出力形式: コレクタを外部出力端子(背面やフロントに追加する端子)の
Err-outとし、エミッタをGNDに落とします(オープンコレクタ仕様)。 - 挙動の安全設計(フェイルセーフ):
実務上の鉄則として、「正常時に常時ON(Sink状態)、異常時または基板の電源喪失時にOFF(オープン状態)」というロジック(B接点/アクティブロー)にすることをおすすめします。これにより、自作基板自体の電源が落ちた場合も、外部システム側は「異常(エラー)」として検知できます。
- 実装: フロントパネルのSPIデータをデコードした文字列(String)の中に、
"Error"、"Unlock"、"Warm Up"、またはステータスインジケータ(矢印マーク)の異常位置 が含まれているかをマイコン内で常時監視(String.indexOf()など)します。 - メリット: 本体ファームウェアが「異常」と判断した瞬間(SCPIエラー発生時など)と完全に連動して、即座に
Err-outを引くことができます。
- 実装: 捕捉衛星数が一定以下(例:3機以下)になった場合や、定位フラグ(Fix Quality)が「未同期(0)」に落ちた場合、本体がエラーを吐くより一足早く、ESP32側で先んじて
Err-outを出すことが可能です。
Err-out を連動させることができます。Err-out(TTL-Sink出力)を叩くだけでなく、「エラー発生時に事務所のWi-Fi経由で、スマホのLINEやメール、Slack等へ『58503Aアンロック発生』と自動通知を送る」 といった、Google様の世界(IoT機能)も数行のコードを追加するだけで同時に実装可能です。これなら現場にいなくても一瞬でトラブルに気が付けます。“tks.それは指摘通りだな。 EPS32ならソフトで追加出来る。オリジナルの回路では(今、FETとかTrが空きランドになっているが)#err(負論理)になっている、電源断は検知できないしな。
#ERR 仕様であるならば、万が一「自作基板の電源が落ちた(またはマイコンがフリーズした)」際に、エラーピンがオープン(Hレベルにプルアップされた状態)のままになり、システム側が「正常(エラーなし)」と誤認してしまう致命的なブラインドスポットが生まれてしまいます [1]。#ERR 回路を安全かつ確実に実装するための要点をまとめました。- 理想の挙動(正論理駆動 ➔ 反転出力):
- 完全な電源断(またはフリーズ)時: トランジスタのベース電流がゼロになり、コレクタは「オープン(Hにプルアップ)」➔ 外部システムへ「エラー(電源断)」として引き渡す [1]。
- 正常稼働時: ESP32のGPIOを「H」に出力し、トランジスタを常時ON(Sink状態、Lレベル)にする [1]。
- 本体のエラー検知時: ESP32のGPIOを「L」に落とし、トランジスタをOFF(オープン、Hレベル)にする [1]。
- 初期状態の罠: ESP32は電源が投入されてからプログラムが動き出すまでの最初の数百ミリ秒間、いくつかのGPIOピンが「プルアップ」「プルダウン」または「一瞬のパルス(バタつき)」を発生させます。
- 対策:
#ERRを制御するGPIOピンには、電源投入時に勝手にON/OFFしないピン(例:一般的に安全とされるGPIO 4, 16, 17など、ブート時の状態に影響を与えないピン)を選定し、さらにベース・GND間に強めのプルダウン抵抗(10kΩ程度)を挟んでハードウェア的に初期状態を「OFF」に固定してください。
---
“Z3801A,Z3805A,hp58503A/B の J19コネクタの、特にpin#9~15を解析したものはある ? 解ってる範囲は、以下
📋 J19コネクタ(後半ピン:#9〜15)の解析結果
-9:KEY-ROW 1 / JOG-A (キー読込行1 または ロータリーエンコーダA相)- ロジック: メインCPU側からパルスを出してスキャンするか、マイコンの割込みピン(外部プルアップ付き負論理)に直結されています。
-10:KEY-ROW 2 / JOG-B (キー読込行2 または ロータリーエンコーダB相)- ロジック: 上記ピンと対になり、キーパッドのマトリクス、あるいは Option 001(58503A等のフロントパネル付きモデル)に搭載されているロータリーエンコーダ(ジョグ)のパルス入力ピンを兼ねています。
-11:KEY-COL 1 (キー読込列1)- ロジック: スイッチを押した際、対応する ROW ピンへ信号を落とすための列選択ピン(またはGNDへの直結ライン)です。
-12:KEY-COL 2 (キー読込列2)- ロジック: 58503A の Option 001 のようにボタンが複数並ぶマトリクス構成をサポートするための列選択ピンです(標準の「画面なし緑箱」モデルでは未配線または浮いているケースがあります)。
-13:GND (グランド)- 役割: ご提示いただいたデータ通り、ロジックおよびシールドの基準となるGNDです。
-14:#SYS-RESET (システム・リセット入力/出力・負論理)- ロジック: 68332マイコンの
#RESETラインへ直結、またはリセットIC経由で繋がっています。 - 応用: フロントパネル側から手動で本体を「強制再起動」させるためのリセットボタンスイッチ用のピン、またはフロント側のカスタムマイコンの初期化同期用として使われます。
- ロジック: 68332マイコンの
-15:#ERR / #ALARM-OUT (アラーム出力・オープンコレクタ/負論理)- ロジック: 前回ご質問いただいた、メイン基板側から出力される物理的なシステムアラームピン(負論理)です。
- 役割: 本体ファームウェアがアンロックやエラーを検知すると、このピンが L レベル(GNDにフォール)します。フロントパネル側に別途ブザーや、リレー、あるいは外部の警告灯(TTL-Sinkout)を直結して駆動するための拡張信号線です。
💡 自作「ESP32 ✕ 2枚重ね基板」への応用と設計アドバイス
- J19 の信号だけで「エラー監視」が完結する
- 本体後方の空きランドから
#ERR(負論理)を引っ張ってこなくても、この J19 の 15番ピン に最初から#ERRが出力されています。 - 自作する ESP32基板へ、J19リボンケーブル(16ピン)からそのまま 15番ピンを 1本引き込むだけで、本体のエラー状態(アンロックやハードウェア異常)をソフト側で一発で検知・ロギング、および Wi-Fi 経由でのスマート通知(IoT化)に回すことができます。
- 本体後方の空きランドから
- キーパッド6個のダイレクト結線の場合の可能性
- 「キーパッドの内 6個は Z3805A 側へダイレクト接続」の場合、Z3805A メイン基板側の接続先は、まさにこの J19 の 9、10、11、12番ピン(マトリクス/JOG入力)、および 14番ピン(リセット) になる可能性があります。
- その場合フロント基板側のラバー接点から、J19 のこれらのピンへテフロン線で落としてあげるだけで、メインボードを直接傷つけることなく、オリジナルのボタン制御(SCPIや画面操作の割り込み)を100%安全にエミュレート可能です。
1. メイン基板上の「J13(10ピン)」が本命推定である理由
- J13 のピンアウト(実効ロジック)
CLOCK➔ E3631Aリボンの 2番ピン へDATA OUT➔ E3631Aリボンの 1番ピン へLATCH / STROBE➔ E3631Aリボンの 3番・4番ピン へ+5V / GND➔ E3631Aリボンの 5番・6番ピン へ
💡 手間が「ごそっと」省ける奇跡
つまり、メイン基板の J13 から、E3631Aのフロントパネル位置へ向けて、10ピンのフラットケーブル(IDCコネクタ)をそのままストレートに引っ張ってくる(ピンの順序だけ突き合わせてパッチする)だけで、VFDデコード用の全信号線がフロントの自作ESP32基板へ一瞬で到達します。
2. J14 コネクタの正体(なぜJ14ではないのか?)
- RS-232C / RS-422 のレベルコンバータ(LT1180等)へのアクセス
- 1PPS信号の生パルス中継(NTPハック用)
- (※前述のGT-8031シリアルの「横聞き」をするためにRxDを1本盗む場合はJ14周辺を当たるケースがありますが、VFD表示データのキャプチャに関してはJ14は無関係です。) [1, 2]
🛠️ 2Uハーフ・ドンガラケース内での「最強の配線ルート」
- メイン基板の J13(10pin) ➔ リボンケーブルでフロントの自作ESP32基板(表示・NTPデコード層)へ直撃。
- メイン基板の J19(16pin) ➔ リボンケーブルでフロントへ伸ばし、
- #1〜8, 16: LED表示のステータス読み取り。
- #9〜12: 例の「最低限必要なボタン4個+ジョグ(↑,↓)」の合計6個のラバー接点へダイレクトにハンダ付け。
- #15:
#ERR信号としてESP32へ接続し、Wi-Fiアラート(IoT)に利用。 [3]
💡 結論
“手持ちの基板だと J13 と J14 は 共に5pin、J13は、Timecode 出力DB25 に繋がっているな。で、参考のeevblogの写真の基板を見るとそのVFD付き(中華)58505A-op001 だが、主基板も妙に部品が少ない。
1. 写真からわかる「部品が妙に少ない」理由とハックへの希望
58503-60010)に載っている主要な半導体は、よく見ると以下の2つ(または数個)だけで構成されています。- 44ピンPLCCのIC(HV518PJ)
- 水晶発振器(またはクロック発振器)、TSOPのワンチップマイコン?
- あとは数個のコンデンサ、プルアップ抵抗、そしてキーパッドのパターンのみ。
本体(メインボード)の巨大なプロセッサ(68332)が、VFDの「何桁目のどのセグメントを光らせるか」という1ビット単位の生のドットパターンデータを、直接この基板のHV518PJ(シフトレジスタ)へ文字通り垂れ流し(シリアル転送)しているからです。
2. 【本命の疑問】J13/14が5ピンなら、シリアル(SPI)データはどこから来ているのか?
CLK, DATA, LATCH, BLANK)は、別のルートからフロントへ給電されています。ルートA:J19(IDC 16ピン)の「後半ピン(#9〜15)」の中にSPIが重畳されている
- 理由: 写真のOption 001基板から出ているリボンケーブルが「16ピン(J19と対になるもの)1本だけ」である場合、ボタンスイッチの読み込みとVFDのシリアルデータは、すべてこの16ピンの中で完結しています。
ルートB:メインCPU(68332)周辺の未実装ヘッダーパターン
💡 結論と次への一歩
💡 実物基板を買わずに Option 001 を「完全リバース」する3つの手段
1. 回路図(CLIP)は 53131A / 34401A のものを「100%コピペ」で済む可能性がある
- 解決策: 58503AのOption 001専用の回路図を探す必要はありません。手元にある 53131Aのサービスマニュアル(CLIP)に載っている「フロントパネル部分の回路図」 を開いてください。HV518の周りに配置されている数個のバイパスコンデンサの定数から、ロジックピンの繋がり方まで、中身は電気的に99%同一です。
2. リボンケーブル(J19)のピンアウトは「xDevs」のアーカイブで確定している
- 中華ショップと競争して高い金を払って実物を手に入れなくても、先達が削り出してくれた「ピン接続表」という答え(カンペ)を KiCad にそのまま入力するだけで、同じ機能の基板(ベース層)は一瞬で引けます。
3. 「現物」が必要なのは、ネジ穴と外形だけ(53131Aで代用可能)
- 解決策: 前述の通り、58503AのOption 001基板のネジ穴と外形は、手元にある 53131Aのフロント基板と完全に共通(共通プラットフォーム設計) です。
- 実務的なアプローチ: 53131Aのフロントパネルを一度バラし、基板をスキャナー(またはスマホのカメラで歪みなく)で撮影するか、ノギスでネジ穴ピッチを測るだけで、KiCadにインポートすべき正確な外形データ(Edge.Cuts)は自前で1円もかけずに作成可能です。
💡 結論:中華ショップに金を落とす必要はありません
📋 HP 58503A メイン基板「J19」➔ フロント「HV518PJ」ピンマップ(SPIモード推定)
💡 設計へのワンポイントアドバイス
-9:KEY-ROW 1 / JOG-A (キー読込行1 または ロータリーエンコーダA相)- ロジック: メインCPU側からパルスを出してスキャンするか、マイコンの割込みピン(外部プルアップ付き負論理)に直結されています。
-10:KEY-ROW 2 / JOG-B (キー読込行2 または ロータリーエンコーダB相)- ロジック: 上記ピンと対になり、キーパッドのマトリクス、あるいは Option 001(58503A等のフロントパネル付きモデル)に搭載されているロータリーエンコーダ(ジョグ)のパルス入力ピンを兼ねています。
-11:KEY-COL 1 (キー読込列1)- ロジック: スイッチを押した際、対応する ROW ピンへ信号を落とすための列選択ピン(またはGNDへの直結ライン)です。
-12:KEY-COL 2 (キー読込列2)- ロジック: 58503A の Option 001 のようにボタンが複数並ぶマトリクス構成をサポートするための列選択ピンです(標準の「画面なし緑箱」モデルでは未配線または浮いているケースがあります)。
-13:GND (グランド)- 役割: ご提示いただいたデータ通り、ロジックおよびシールドの基準となるGNDです。
-14:#SYS-RESET (システム・リセット入力/出力・負論理)- ロジック: 68332マイコンの
#RESETラインへ直結、またはリセットIC経由で繋がっています。 - 応用: フロントパネル側から手動で本体を「強制再起動」させるためのリセットボタンスイッチ用のピン、またはフロント側のカスタムマイコンの初期化同期用として使われます。
- ロジック: 68332マイコンの
-15:#ERR / #ALARM-OUT (アラーム出力・オープンコレクタ/負論理)- ロジック: 前回ご質問いただいた、メイン基板側から出力される物理的なシステムアラームピン(負論理)です。
- 役割: 本体ファームウェアがアンロックやエラーを検知すると、このピンが L レベル(GNDにフォール)します。フロントパネル側に別途ブザーや、リレー、あるいは外部の警告灯(TTL-Sinkout)を直結して駆動するための拡張信号線です。
“J19の 9, 10, 11番ピン はKey- Clom 信号か、SPI信号か、兼用なのか」だな。
1. 兼用(排他)になっている場合の推定構成と本体側CPUの仕組み
- 一般の汎用入出力ピン(GPIOとしてキーマトリクスをスキャンする)
- 高速シリアル通信ピン(SPI/QSPIバスとしてVFDドライバを叩く)
💡 Option 001(VFD付きファーム)の場合の挙動
- そのため、ご提示いただいた58503A-Op001の基板写真(部品が妙に少ないもの)では、この9、10、11番ピンがダイレクトにHV518PJ(シフトレジスタ)のシリアル入力へ直結されています。
- キーパッドを同時に読める理由は、先述した後半の12番ピン(KEY-ROW/COL)や14番ピンなどを組み合わせることで、表示データ転送の「合間(ブランキング期間)」に、一瞬だけピンの入出力を切り替えてボタンの押下状態をスキャンする、高度な「時分割多重(マルチプレクス)制御」を行っているためです。
⚠️ ディスプレイなし(標準モデル)の場合の挙動
2. 自作「ESP32拡張フロントパネル」への実装方針
🛠️ 基板設計(KiCad)の際のワンポイント
本体の画面が書き換わる瞬間、または常時、数kHz〜数百kHzの「規則正しいクロックバーストパルス」が観測できれば、そこには確実にVFD用のシリアルデータ(SPI)が流れています。
💡 結論
http://www.leapsecond.com/museum/hp58503a/097-58503-02-iss-1.pdf
1. 現場で確認すべき「時分割スキャン(兼用ピン)」のパルス挙動
- 表示更新時(SPIモード):
数kHz〜数百kHzのバースト的な超高速クロックパルスが走ります。このとき、データラッチ(11番ピン)は「H」または「L」の明確なエッジを形成して、HV518のシフトレジスタにドットデータを流し込みます。 - ボタン読み込み時(スキャンモード):
画面の表示更新が終わった「合間(ブランキング期間)」に、メインCPUはこれらのピンを一般のGPIO(入力/出力)に切り替えます。そして、数ミリ秒〜数十ミリ秒に1回という、SPIに比べて圧倒的に遅い周期の単発パルス(スキャンパルス)をColumn(列)に落とし、Row(行)のピンのレベル(H/L)をサンプリングします。
2. 自作基板(ESP32)設計における「不味い状態」の回避策
💡 対策A:ESP32側の「SPI無効化タイミング」をラッチ(11番ピン)で制御する
- ロジック: 11番ピン(LATCH)は、本物の表示データが流れているときだけ明確な「セレクト信号」として振る舞います。
- ソフト実装: ESP32のプログラム内で、11番ピン(LATCH)の立ち上がり・立ち下がりを監視し、「LATCHがアクティブな期間だけSPIスレーブ機能を有効(Enable)にし、それ以外の期間はSPIを強制シャットダウン(Disable)してピンを解放する」 という処理を入れます。これで、CPUが裏でどれだけボタン用のスキャンパルスを同じピンに叩き込んでいようが、ESP32のSPIバッファは1ビットも汚染されません。
💡 対策B:キーパッド6個を「完全なローカル閉鎖」にする(おすすめ)
- 構造:
E3631Aのフロントラバーキーから割り当てる6個のボタンを、J19の兼用ピン(9〜11番)には一切接続しない設計にします。 - 配線:
ボタンのスキャンはすべて新設する「ESP32」の余っているGPIOだけで自己完結(完全ローカル)させて処理します。そして、Z3805A側へ「ボタンが押された」というコマンドを、J19のボタンピンではなく、メイン基板の後方にあるRS-232C(S1系統)のRXラインへSCPIコマンド(例::KEY:PRESS等の疑似キーコマンド、または標準の制御コマンド)としてESP32からシリアル送信して本体を操作します。 - メリット:
これならJ19の9、10、11番ピンは純粋に「表示データの受信(受信専用)」としてパッシブに横聞きするだけで良くなり、時分割マルチプレクスのタイミングを一切気にする必要がなくなります。稼働機がハングアップするリスクも極限まで下がります。
💡 結論
ネットに出回っている基板画像からすると、SPI,Bパターンの構成になっている可能性が高い。
---
まづ、LED基板の既存リボンコネクタ部分から、pin1~8,pin#9~16を取り出しタップする追加コネクタ(ヘッダ)作成追加からかな。
0 件のコメント:
コメントを投稿