// HACKER NEWS — CYBERSECURITY
Reverse-engineering a $35 backup camera display (AMT630A)
Arduino/ESP32 library for controlling the hardware on-screen display (OSD) engine in AMT630A-based composite-video LCD monitor boards.
Watch the AMT630A OSD / Robby HUD project on YouTube
The library exposes the AMT630A's five hardware OSD windows as a practical Arduino API for text, custom glyphs, 16-color 4bpp bitmaps, palette animation, opacity/video blending, scaling, blink regions, and window movement. It also includes a Python image converter and optional automation for entering the hidden factory menu on one hardware-tested three-button monitor firmware.
Hardware status: This project is based on hardware testing and reverse engineering of real AMT630A monitor boards. AMT630A products are not all guaranteed to use the same firmware, panel timing, keypad circuit, or exposed I2C connections. Features marked as hardware/firmware-specific should be treated accordingly.
After this repository has been accepted into the Arduino Library Manager registry:
Download the release ZIP, then in Arduino IDE choose Sketch > Include Library > Add .ZIP Library... and select it.
Clone or copy the repository into the libraries directory of your Arduino sketchbook. Restart Arduino IDE if it was already open.
The library communicates with the AMT630A over I2C. The default ESP32 pins used by begin() are:
Always connect grounds between the ESP32 and monitor electronics. Do not assume every AMT630A monitor exposes the same test pads, voltage levels, supply input, or keypad arrangement; verify your own board before connecting it.
Custom pins and I2C clock can be supplied to begin():