反向工程35美元倒车影像显示屏
Reverse-engineering a $35 backup camera display (AMT630A)
这篇内容记录了如何反向工程一块售价仅35美元的AMT630A倒车影像显示屏。作者通过硬件测试和逆向分析,成功开发了一个Arduino/ESP32库,能够直接控制AMT630A芯片的硬件OSD引擎。该库支持五个独立定位的OSD窗口,提供文本绘制、自定义字形、16色位图显示、调色板动画以及视频混合等功能。项目还包含一个Python图像转换工具,可将GIF、PNG等格式转换为Arduino可用的位图资源。特别值得注意的是,作者发现原厂固件在运行时会定期访问内部寄存器,若外部I2C控制不当可能导致屏幕冻结,因此提供了通过GPIO模拟按键进入隐藏工厂菜单的自动化方案,以解决固件冲突问题。
在硬件测试中发现,如果在原厂固件正常运行期间反复获取外部控制权,最终会导致整个显示管道冻结,包括OSD和实时复合视频。
HN 评论区
24- mogrinz
这一切的起因是我制作了一套等比例的 Robby the Robot 机器人套装,结果发现根本没法从里面往外看(https://youtu.be/gAHd46ErNA8?si=-iOwbobp4trPXdGB)
我买了一个 35 美元的倒车摄像头/显示器来解决这个问题,随后发现显示器里包含一颗 AMT630A 视频处理器,其 OSD 系统的能力令人惊讶。这把我带入了一个兔子洞:I2C 探测、固件转储、寄存器追踪、自定义图形、位图格式、隐藏的工厂菜单,最终搞懂了如何使用 ESP32 在实时复合视频信号上生成可编程的 HUD。
最后我将所学整理成了一个 Arduino 库,并已发布在 GitHub 上。它支持内置和自定义字体、多个 OSD 窗口、16 色位图、调色板、透明度以及动画。它也可以用于摄像头以外的其他复合视频源。
库和代码在这里:https://github.com/mogrinz/AMT630A
你也可以直接从 Arduino IDE 的库管理器中安装(搜索 AMT630A)
- dayvid
no$gba 和 no$nes 背后的 nocash 也有一篇关于这个的文章 https://problemkaputt.de/amt630a.htm
- bobsmooth
经典的逆向工程案例。我很喜欢你 readme 写得如此详细。