Generate video and OSD with Arduino


Interesting product if you like me are experimenting with OSD and Arduino FPV GPS Telemeterry
The Video Experimenter shield is an Arduino shield that lets you do all kinds of experiments with video.

  • Overlay text and graphics onto a video signal from a camera, DVR, DVD player, VCR or any other source of composite video.
  • Capture low-res video image frames for display or video processing. Give your Arduino the gift of sight!
  • Perform object detection for computer vision projects.
  • Decode NTSC closed captioning or XDS (extended data services) data embedded in television broadcasts.
  • Works with NTSC (North America, parts of South America and Asia) or PAL (most of the rest of the world) television standards. For more info on what TV standards see the map here and this list of countries and their standards
  • Uses digital pins 2, 6, 7, 8, and optionally 9. Uses analog pin 2
  • Designed for Arduino Uno, Duemilanove and equivalents. Does not work on Leonardo or Mega (more info here).

All of these capabilities are demonstrated on the projects page.

How does it work?
The Video Experimenter uses an LM1881 video sync separator to detect the timing of the vertical and horizontal sync in a composite video signal. An enhanced version of the TVout library (available below) uses this sync timing information to overlay content onto the video signal. The ATmega328 microcontroller on the Arduino includes an analog comparator that can be used to detect the brightness of the video signal at any given point in time. Using this brightness information, low-res monochrome image capture into the TVout frame buffer is possible. The ability to capture image information in memory lets you implement simple computer vision experiments.
It's important to note that this shield will not work on the Arduino Mega. Read this for more information (it's not my fault!). The Video Experimenter will work on the Seeeduino Mega with some jumper wires. Read this for more information.


E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Thanks for the tip

  • You are probably better off with a MAX7456 as it is designed for graphics. The IC used in the Video Experimenter (a sync separator )is not designed for graphics. You can find an easy to use one here:

  • That's ideal to feed back sonar sensor data for when I'm flying by video!!  Ordered!! :-D

  • A year ago I was experimenting with something similar. I modified the DIY OSD by Dennis Frie to send GPS and a bit of other data on 2 unused video lines. I built a receiver that uses a high speed comparator to recover the data and drive a couple of servos for antenna/camera tracking. There was still quite a lot to do and I got side tracked on other work. Late 2012 I designed a small Arduino compatible board for the transmitter end with LM1881 for OSD and a Ublox GPS. My plan is to use one board for a simple RTL-autopilot and a second for OSD, sharing one GPS.

    DIY OSD is here:


  • My plan was to add telemetry data to unused videolines, because video circuits are much better than audio. Maybe someone reads this and send a mail to me for help.
  • You can do much better things with it. For example reading the "closed caption" data.
    I worked on a project, but nobody was helping and my knowledge was to bad.
    Read more here:
This reply was deleted.