VGA Monitor adaptor using AVR microcontroller

Nov 13, 2012 by

Background of the project.


Several months ago I tried to connect a microcontroller system to a VGA monitor to output data in the form of text. I was surprised to find little on this subject on the internet, to assist me in achieving this goal. Certainly nothing simple a beginner could find useful.


There are examples out there that utilise standards such as PC-104 or complex FGPA implementations found at Other solutions include graphic controllers from Fujitsu or even one local Russian person who was offering for sale a project for $5000 on ACEX. These are fine but are little help to most hobbyists etc out there who wish to display text on a VGA or similar screen.






What I desired was a “quick and dirty” solution that did not cost too much.


Initial calculations showed that the the AVR 8-bit microcontroller from ATMEL, with its 16Mhz clock speed providing approximately 16 MIPS was a good candidate for further research. Also note that newer AVRs such as the Mega48, Mega88 and Mega168 will officially support clock rates upto 20 Mhz.  Therefore I concluded that with a clock of 16 Mhz I could achieve something in the order of 8 Mhz speed of data being transferred out of a port.  I also chose the AVR as I had already built up quite a body of experience with it and so I began work of the project.

After approximately two to three months of research, I present you the fruits of my labour!




The goal of the project:


The problem which I have set myself is simple enough to enumerate.  With commonly available microcontrollers like the Mega8, Mega16 and similar, and with a minimum of external components I wanted a design that would be capable of displaying at least 15×15 characters on a VGA monitor using standard VGA frequencies.  The data itself is to be received by the microcontroller via its USART port.  All using a 16 Mhz clock for the AVR.


The given problem at present is solved successfully.

Moreover – the project is a little bit expanded and added by introduction of formation usual

Video monochrome (PAL/SECAM) a signal. I.e. depending on position of a jumper type of formed video of signal VGA or Composite Video.


The initial goal has been achieved.  The project has expanded to include Monochomatic Video singal (PAL/SECAM). In my test set up a mere jumper determines whether the output is VGA or Composite Video.


For more detail: VGA Monitor adaptor using AVR microcontroller

Related Posts

Share This

Leave a Comment

You must be logged in to post a comment.

Recent Posts

I2C Bus for ATtiny and ATmega

I2C Bus for ATtiny and ATmega

I love the Atmel AVR microcontrollers! Since building the Ghetto Development System described in thi[...]
Interfacing GY 26 with atmega640

Interfacing GY 26 with atmega640

Hello friend once again with new instructable in this I will show you how to interface GY 26 with UA[...]
Using Atmega32 with Arduino IDE

Using Atmega32 with Arduino IDE

Over time I have used all kinds of Atmel microcontrollers in various projects. One of the mos[...]
Standalone Arduino / ATMega chip on breadboard

Standalone Arduino / ATMega chip on breadboard

Step 1: Parts needed I bought my parts from Digikey and Sparkfun Electronics - they're 2 of my favo[...]
Burning atmega328-pu and atmega328p-pu bootloader

Burning atmega328-pu and atmega328p-pu bootloader

Burning the boot loader in an atmega328 could be somewhat tricky but if u follow these steps correct[...]

Read more:
ISREVER (Reversi) video game