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 (basically 31.5kHz horizontal, 70Hz with400of450lines or 60Hz with 480of525lines vertical) compatible video signal, without using any specialised hardware VLSI video generator chips (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). Only hardware is an VGA HD15 connector, behind it 3*2 resistors which together with the 75ohm input resistance of the monitor RGB signals make 3 2bit DACs, for converting 6 bits of PIO port 5V digital TTL output into 3 0.7V analog video signals for the VGA monitor. Their 6 signals, plus 2 bits of PIO for the sync signals, are taken from an 8bit PIO port. All the rest is done in software, running as vertical "microcode" on an single Atmel AVR microcontroller chip (currently ATmega32, 16MHz, 32k Flash, 2k SRAM, 40pin, 32IOs).

Target is to make an pixture that is good enough for an late 1970s or early 1980s style home computer or game console. That requires at least 32x24 (TMS9918, MSX) and preferably 40x24or25 (Apple II, Atari 800, Commodore PET or C64) text output, suitable for an machine code monitor or Basic interpreter, and at least low resolution colour graphics (bitmap, or 2x2 blockgraphics, or soft font character cell) suitable for standard genre defining games such as Pong, Breakout, 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. But as the hardware is trivial, I have here collected the best info that exists, in 3 photos and 1 description:

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 2019.06.03