Home | Projects | SoftVGA

SoftVGA - AVR based Software-only VGA Display Generator

Project Basics
Project Status
Hardware Description
Code Download
Auxillary Documents
Photos of the Project
Other Websites of Interest

Project Basics

This project is aimed at generating an VGA monitor (basic 31.5kHz horizontal, 70Hz/400line or 60Hz/480line vertical) compatible video signal, without using an specialised hardware VLSI video generator chip (hardwired limited, not available any more), nor 100s of TTL chips (lots of space and soldering), nor an CPLD or FPGA chip (awfull software tools, no bitfile docs for making usable ones). All is done in software, running as vertical "microcode" on an single Atmel AVR microcontroller chip (currently an ATmega32, 16MHz, 32k Flash, 2k SRAM, 40pin, 32IOs). The small amount of external analog-only hardware consists of only 6 resistors which (together with the 75ohm input resistance of the monitor) make 3 2bit DACs for converting 6 bits of PIO port 5V digital TTL output to 3 0.7V analog video signals for the VGA monitor. Also further 2 bits of PIO are used for the sync signals. And it obviously also requires an VGA HD15 connector.

Target is to make an pixture that is good enough for an late 1970s or early 1980s home computer or game console. That requires an at least 32x16 and preferable 40x25 (Apple II, Commodore PET or C64, Atari 800) text output, suitable for an machine code monitor or Basic interpreter, and at least low resolution colour graphics (bitmap or character cell) suitable for standard genre defining games such as Pong, Breakout, car race, Space Invaders, Pacman, Frogger, and similar classics.

For more info on this project read the README file. For some questions people have asked or may ask read the FAQ list.

Project Status

For the full details of done/doing/todo of the project best read the Logfile. A short excerpt from it is here:

Done are:

Current (= development, = may be fantastic, may be broken):

Todo are:

Hardware Description

Unfortunately there exists no real hardware documentation. Here I have collected the best info that exists:

Code Download

Current (= development, = may be fantastic, may be broken):

Auxillary Documents

These are files I made while investigating various aspects of VGA:

Photos of the Project

These are photos (and some videos) I made while working on the project:

Other Websites of Interest

These sites all contributed some input to this project:
Home | Projects | SoftVGA

This page is by Neil Franklin, last modification 2010.10.17