OSD stands for On-Screen Display, and is a way of overlaying information over the existing video feed. Flight data is sent over SPI from the flight controller, and the chip switches between the external video source and the internal pixel generator before each pixel that needs to be drawn. For this, the chip needs to know when the line starts and when the frame starts from the video feed. This is achieved with a Maxim MAX7456, but since that chip is not manufactured anymore, designers turned to the AT7456 clone, that implements all the functions identically and is pin compatible.
The current system does provide adequate information, but only according to a grid of characters, and all characters must be specified by the microcontroller through SPI. This proves to be a bottleneck, because of the limited memory. Drawing lines, for example is pretty hard on this chip, so we can not draw vectors or polygons.
This internal schematic represents a starting point for our project, designed to replace or provide an alternative for this ageing and discontinued chip.
The video timing generator role is filled by the LM1881 on our board, the generator and DAC will be done by the ESP32 and the MUX role can be accomplished using the analog video switch.