Ingeniería inversa de una pantalla de cámara de reversa de $35
Reverse-engineering a $35 backup camera display (AMT630A)
Una biblioteca de Arduino y ESP32 que controla el motor de visualización en pantalla (OSD) por hardware del chip AMT630A, presente en monitores LCD de video compuesto económicos. Expone cinco ventanas OSD, fuentes, glifos personalizados, mapas de bits de 4bpp, paletas animadas y escalado. Incluye un convertidor de imágenes en Python y automatización para entrar al menú de fábrica oculto en un firmware específico.
En el monitor probado, el firmware de fábrica accede periódicamente a los registros internos de video/decodificador y normalmente espera la propiedad del MCU. Se descubrió que tomar repetidamente la propiedad externa durante la operación normal del firmware de fábrica eventualmente congela todo el pipeline de visualización, incluyendo tanto el OSD como el video compuesto en vivo.
- mogrinz
Todo esto empezó porque construí un traje a tamaño real de Robby the Robot y descubrí que en realidad no podía ver nada desde dentro (https://youtu.be/gAHd46ErNA8?si=-iOwbobp4trPXdGB)
Compré una cámara de reversa con pantalla de $35 para resolver ese problema, y luego descubrí que la pantalla contenía un procesador de video AMT630A con un sistema OSD sorprendentemente capaz. Eso me llevó por una madriguera de sondeo I2C, volcado de firmware, rastreo de registros, gráficos personalizados, formatos de bitmap, menús de fábrica ocultos y, finalmente, averiguar cómo usar un ESP32 para generar un HUD programable sobre el video compuesto en vivo.
Terminé convirtiendo lo que aprendí en una librería de Arduino, que publiqué en GitHub. Soporta fuentes integradas y personalizadas, múltiples ventanas OSD, bitmaps de 16 colores, paletas, transparencia y animación. También se puede usar con fuentes de video compuesto distintas a la cámara.
La librería y el código están aquí: https://github.com/mogrinz/AMT630A
También puedes instalarla directamente desde el Library Manager del Arduino IDE (busca AMT630A)
- bobsmooth
Un clásico de la ingeniería inversa. Me encanta lo detallado que está tu readme.
- BugsJustFindMe
Detalle con el título: "backup" significa una segunda copia, "back up" es la frase verbal para moverse hacia atrás. Las frases verbales se escriben con guion para mayor claridad cuando se usan como adjetivos inmediatamente antes de un sustantivo. Así que debería ser "back-up camera", no "backup camera".