35ドルのバックアップカメラをリバースエンジニアリングしてArduinoで制御
Reverse-engineering a $35 backup camera display (AMT630A)
AMT630Aチップを搭載した格安バックアップカメラのディスプレイをリバースエンジニアリングし、Arduino/ESP32ライブラリ「AMT630A OSD」を開発。5つのOSDウィンドウ、カスタムフォント、ビットマップ、パレットアニメーションなどをI2C経由で制御できる。ファクトリーメニューに入る自動化も含むが、ファームウェア依存の注意点も多い。
AMT630A製品はすべてが同じファームウェア、パネルタイミング、キーパッド回路、または公開されたI2C接続を使用しているわけではありません。
HNでの議論
11- mogrinz
これは、実物大のロビー・ザ・ロボットのスーツを作ったことから始まりました。そして、その中から実際には外が見えないことに気づいたんです(https://youtu.be/gAHd46ErNA8?si=-iOwbobp4trPXdGB)
その問題を解決するために35ドルのバックアップカメラ/ディスプレイを買ったのですが、そのディスプレイにはAMT630Aビデオプロセッサが搭載されていて、驚くほど高性能なOSDシステムがあることがわかりました。そこからI2Cプロービング、ファームウェアダンプ、レジスタトレース、カスタムグラフィックス、ビットマップフォーマット、隠しファクトリメニュー、そして最終的にはESP32を使ってライブコンポジットビデオ上にプログラム可能なHUDを生成する方法を解明するという、深い沼にはまっていきました。
結局、学んだことをArduinoライブラリにまとめ、GitHubで公開しました。ビルトインおよびカスタムフォント、複数のOSDウィンドウ、16色ビットマップ、パレット、透明度、アニメーションをサポートしています。また、カメラ以外のコンポジットビデオソースでも使用できます。
ライブラリとコードはこちらです:https://github.com/mogrinz/AMT630A
Arduino IDEのライブラリマネージャから直接インストールすることもできます(AMT630Aで検索してください)
- bobsmooth
典型的なリバースエンジニアリングの一例ですね。readmeの詳細さが素晴らしいと思います。
- BugsJustFindMe
タイトルの指摘:「backup」は2つ目のコピーを意味し、「back up」は後ろに移動する動詞句です。動詞句が名詞の直前に形容詞として使われる場合、明確にするためにハイフンでつなげます。したがって、これは「backup camera」ではなく「back-up camera」とすべきです。