Arduino Library Reverse-Engineers the AMT630A OSD Chip in $35 Backup Monitors
Reverse-engineering a $35 backup camera display (AMT630A)
A new Arduino/ESP32 library exposes the AMT630A's five hardware OSD windows for text, custom glyphs, 4bpp bitmaps, palette animation, and scaling. It includes a Python image converter and optional automation for entering the hidden factory menu on a tested three-button monitor. The project is based on hardware reverse engineering, and a stock-firmware ownership quirk can freeze the display pipeline if external I2C control is sustained.
Repeatedly taking external ownership during normal stock-firmware operation was found to eventually freeze the complete display pipeline, including both OSD and live composite video.
- mogrinz
This started because I built a full-size Robby the Robot suit and discovered I couldn't actually see out of it (https://youtu.be/gAHd46ErNA8?si=-iOwbobp4trPXdGB)
I bought a $35 backup camera/display to solve that problem, then discovered that the display contained an AMT630A video processor with a surprisingly capable OSD system. That sent me down a rabbit hole of I2C probing, firmware dumping, register tracing, custom graphics, bitmap formats, hidden factory menus, and eventually figuring out how to use an ESP32 to generate a programmable HUD over the live composite video.
I ended up turning what I learned into an Arduino library, which I've released on GitHub. It supports built-in and custom fonts, multiple OSD windows, 16-color bitmaps, palettes, transparency, and animation. It can also be used with composite video sources other than the camera.
The library and code are here: https://github.com/mogrinz/AMT630A
You can also install directly from the Arduino IDE Library Manager (search for AMT630A)