hn.today

Reverse-engineering a $35 backup camera display (AMT630A)

github.com58 points19 comments
Screenshot of Reverse-engineering a $35 backup camera display (AMT630A)

This library implements an Arduino/ESP32 API to drive the hardware on‑screen display engine in AMT630A‑based composite‑video LCD monitor boards. It exposes the chip's five independently positionable OSD windows, two font modes (LargeFont 16×22 and SmallFont 10×16), text and raw glyph drawing, custom glyphs in Font RAM, 4‑bit‑per‑pixel bitmap support with a 16‑entry palette and palette animation, opacity/video blending, per‑window 1×-4× scaling, hardware blink regions, window movement and batch updates. The package includes a Python image converter (GIF/PNG/JPEG/BMP) with RGB444‑aware quantization, resource limits and previews, examples for character‑set browsing, and helpers for Index RAM allocation (shared 512‑cell pool), Font RAM allocation (4,096‑word / 8,192‑byte), and common drawing primitives. Typical API calls include begin(), configureWindow(), writeString(), setVisible(), moveWindow(), updateDisplay()/forceUpdate(), and a service() loop.

Hardware notes and practical specifics emphasize that AMT630A boards vary: I2C is used (ESP32 defaults SDA=GPIO21, SCL=GPIO22), grounds must be common, and register C6 controls MCU vs external ownership - repeated external grabs can freeze the display on some stock firmwares. An optional GPIO‑driven 74HC4066 circuit and provided factory‑menu automation sequence (Menu, Menu, Menu, -, Menu, +, -, -, +, +, Menu with ~150-200 ms timings) were found to prevent contention on one tested three‑button monitor; this is firmware‑specific and not auto‑invoked by begin(). The README includes installation steps, wiring, tested button mappings, examples, and warnings to verify each board before use.

Read on github.com19 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Hardware

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.