It has been a long time since I had a free weekend to hack away on my favorite uC, but today I took out a small breadboard, a few resistors, a VGA connector and decided to see where things would go.
The original plan was to just bit bang some mono VGA and do up a Pong or Tetris game, but things went MUCH MUCH further than I ever thought possible, so over the next few weeks I will detail this fun project here. I call it The QUARK-85 VGA DEMO System.
So what can one do with an ATTINY-85 and no other external components, an 8 pin package that leaves ONLY 4 IO lines after you feed it a clock??
How about 4 color rock solid VGA with stereo sound!!!
I kid you not, with only 4 IO pins, this little AVR pulls it off. Now if you consider the fact that you need a minimum of 4 IO pins just to make any amount of color VGA (H-Sync, V-Sync, Red, Green), it baffles the mind as to how it can also do stereo sound, since the pin count would now be at 6 IO lines.
Oh, and my constraints were to use NO other external components besides the clock oscillator, and a few passives such as resistors and diodes.
This project is probably my favorite of all my video hacks, since it seems to do the impossible. The VGA signal is following the 640x480 standard exactly, and there is no jitter at all.
I also did the video core in assembly, but do all of the fun stuff in C, so it is really easy to make demos on this little hack by just calling the routines. The programmer does not have to worry about interrupts or any kind of odd timing at all.
Currently, the system supports 3 video modes, with various features and resolutions. Since there are only 512 bytes (yes bytes!) available in the T85, a lot of trickery went into the assembly routines in order to display color bit-mapped graphics, text, lines, circles, etc.
Sound is pretty basic, just a right and left channel that can play a note with a frequency between 0 and 10KHz, but it's enough to play music.
I am going to clean up the routines and make a few cool demos in C before I release the project here, and will add to this thread each time I make a little more progress.
Anyone want to venture a guess as to how an ATTiny85 with 4 free IO pins does rock solid 4 color VGA and stereo sound without any other components besides 2 diodes and 6 resistors?