Wow this is an old one. I’ve decided to go back and write up some of the first projects I did.
The code and pictures of the final hardware are lost to time. The whole thing was suspended dead bug style in a plastic jar. I actually had to find an extra old monitor since the more modern one didn’t like the liberties I was taking in the name of shaving off clock cycles.
I did remember that I found a tutorial and actually contacted the creator and was happy to dig up those emails. I followed http://www.pyroelectro.com/projects/vga_test_box/index.html though he now has write ups for the arduino and other systems as well.
In his words:
The best advice I can give you is (after tweaking the hell out of the VGA box to get it to work), don’t punish yourself and try to create a VGA controller with a clock frequency <20MHz. The 640×480 timing signals just weren’t created for it. Get a standard VGA 27.175 MHz clock and make your life significantly easier.
I think I ended up punishing myself anyway.
Here’s some early test images and the board itself: