How do i make an arduino-based OSD for a analog video signal?

I'm trying to inject an OSD on a analog video signal.

I've read online about some solutions for that, but none solves my problem. I came across this product Micro Minimosd that only uses an ATMEGA 328P, so i know it's possible.
From what i've read, this product can only output "predefined stuff", i need to draw specific graphics on the screen.

I think something like this woul do what i want SparkFun On Screen Display Breakout, but the product has been discontinued.

I've also seen some shields that do the same thing, but they are way too big, i'm planning to use an arduino nano.

Is there something i can do to accomplish what i need? Preferably with things i have laying around? (mostly basic arduino stuff, an ESP and some logic gates ICs)
I don't wan't to have to order online from china, that usually takes up to three months to arrive.

Maxim 7456 (I think) is simple to interface to an AVR via SPI.

@kyuuna, your topic has been moved to a more suitable location on the forum. Installation and Troubleshooting is not for problems with (nor for advise on) your project :wink: See About the Installation & Troubleshooting category.

The (or at least one) source code for the minimosd module is open, so…

have you taken a look at what it can and does do with an eye to making it do what you need and want?

I have used the minimosd device, never modified the code but I did compile and flash it to the module. Spoiler alert - it’s an Arduino like program with setup and loop.

Well I did set a few # defines for my use case.

Also take a look at tvOut for the Arduino. That’s fun also.

Added: the minimosd is based on the MAX7456 video control chip, perhaps you’d like to just use that chip in a circuit of your own design. Not that hard.


Hi @kyuuna

Yes the Atmega328P/MAX7456 based Micro-MinimOSD/MinimOSD boards are able to receive data on the microcontroller's serial port and relay this to the MAX7456 chip using SPI.

The MAX7456 overlays characters over the analog video stream in either PAL or NTSC formats. The character are stored as a set in the MAX7456's EEPROM and can be changed. Pre-generated character sets are available, I downloaded mine from this site: Here's an example of a custom character set:


These characters can then be combined to generate create a graphic On Screen Display:

On Screen Display

I believe that the orginal MAX7456 from Maxim has long since been discontinued, (since most CCTV cameras are now digital), but production by other (Chinese) manufacturers has continued, in order to support the demand from Drone hobbyists.

A good starting point is Hobbytronics excellent example code: