vector — HP1345A ベクターディスプレイドライバ(ESP32‑S3)
概要
HP 1345A ベクターディスプレイの「immediate mode」インターフェースを ESP32‑S3(Heltec WiFi Kit 32 V3)で復活させるための小さなドライバ実装です。プロジェクトは 15 ビット幅のデータバス(D0–D14)と DAV/RFD のハンドシェイク信号を GPIO でビットバンギングし、いくつかのベクトルテストパターンを描画します。描画中の接続状況や簡易ステータスは基板の OLED に表示され、リポジトリには HP 1345A のマニュアル PDF も含まれているため、ハードウェア仕様を参照しながら実験・開発できます。コードは C++ でまとめられており、簡潔で実践的なハードウェア制御の例を学べます。
リポジトリの統計情報
- スター数: 8
- フォーク数: 0
- ウォッチャー数: 8
- コミット数: 5
- ファイル数: 9
- メインの言語: C++
主な特徴
- HP 1345A の immediate-mode(D0–D14 + DAV/RFD)を ESP32‑S3 でビットバンギングして実装。
- 複数の幾何学的テストパターンを描画し、表示系の動作確認が可能。
- Heltec WiFi Kit 32 V3 のオンボード OLED に接続とステータスを表示する小さな UI を実装。
- HP_1345A のデータシート/設計マニュアル(PDF)を同梱し、仕様参照が容易。
技術的なポイント
このプロジェクトの中核は、時分割での高速な GPIO 操作による 15 ビット並列データ出力と、DAV(Data Valid)/RFD(Ready For Data)といったハンドシェイク線の制御です。HP 1345A の immediate-mode はコマンドやベクトルデータを逐次受け付けるため、マスター側(ここでは ESP32‑S3)がデータを所定のタイミングで出力し、DAV 信号を操作してデバイスに有効データを通知する必要があります。ESP32‑S3 の GPIO は高速ですが、正確なタイミングと同時書き込み(15 本分)をソフトウェアで実現するためには、ビットマップ操作やレジスタ直接アクセスといった低レベルの最適化が求められます。
リポジトリは C++ で書かれており、ハードウェア制御コードと表示ロジック(ベクトル生成やスケーリング)を分離した設計になっていると想定できます。ベクトル表示では、座標変換(回転、スケール、オフセット)やブランキング(描画しない期間)の管理、描画速度に応じたポイント間補間などが重要です。さらに、外部ディスプレイと MCU 間の電圧レベルや信号の整合性、配線によるノイズを抑える対策も開発時のポイントになります。
付属の HP_1345A マニュアル類は、プロトコルや信号タイミング、コマンドセットの正確な理解に役立ちます。小規模リポジトリながら、C++ ベースで実ハードを叩く実験的なコード、ドキュメント、テストパターンが揃っており、レガシーディスプレイを現代のマイコンで復活させるための良い出発点となります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- .vscode: dir
- HP_1345A.pdf: file
- HP_1345A_ Designers_Manual.pdf: file
- README.md: file
…他 4 ファイル
(コードは C++ でまとめられており、Heltec ボード向けの設定や OLED 表示、GPIO マッピングが含まれる想定です。)
まとめ
古いベクターディスプレイを現代の ESP32‑S3 で動かすための実践的でコンパクトなリファレンス実装です。
リポジトリ情報:
- 名前: vector
- 説明: 説明なし
- スター数: 8
- 言語: C++
- URL: https://github.com/davepl/vector
- オーナー: davepl
- アバター: https://avatars.githubusercontent.com/u/3698967?v=4
READMEの抜粋:
HP1345A Vector Display Driver (ESP32-S3)
Drive an HP 1345A vector display in immediate mode from a Heltec WiFi Kit 32 V3 (ESP32‑S3). This project bit‑bangs the 15‑bit data bus and handshake lines, renders a set of vector test patterns, and shows status on the onboard OLED.
What this is for
- Bring up the HP1345A immediate‑mode interface (D0–D14 + DAV/RFD).
- Exercise the vector display with multiple geometric test patterns.
- Provide a small OLED status panel (connected/disconnected)…