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)
mogrinz•49m ago
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)