Electronics, coding and hacking. And ADD.


ATmega Video Text Generator is a program for ATmega microcontrollers for generating NTSC composite video signals in real-time, based on a 37x17 character text buffer.

It is written in 100% C and was developed on a 16 MHz ATmega128 using AVR Studio 4. It is believed to run just fine on other ATmegas at the same speed. If you have a microcontroller running at slower speeds, you should try modifying FOSC and reducing the resolution by removing some of the text columns from the source.

The font is stored in program memory, and the total size is about 3.3 kilobytes. SRAM usage is about 300 bytes, mostly occupied by the text buffer.

amvtg is released under the GNU General Public License, see this page for details.

The source can be downloaded here: (dated 2012-05-13)

Hook it up
In my test setup, I used an ATmega128. Two pins were used, namely PB0 for synchronization signals and PB3 for graphics. Install an 1K resistor behind PB0, and a 500R behind PB3, and tie them together as specified in the diagram below. Use a common ground between the video input and the microcontroller.

amvtg sample layout


Welcome screen
The default welcome screen

Close-up, detailed resolution

Demonstration with scrolling text and a bouncing ball.

Add to Google