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/400of450lines or 60Hz/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). 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 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. 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 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, 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. 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.02.12