Have a penchant for pain? Why not destroy your fingertips with a wire-wrap tool building a video card made entirely out of discrete components.
When [Chris] decided to build an entry for the Dangerous Prototypes 7400 logic competition he already had his hands full. The 74xx chips he had on hand had a maximum clock frequency of 25MHz, but the VGA pixel clock runs at 40MHz. dividing the H sync timing by 4 means the maximum speed required of the video card is only 10MHz, albeit with a reduced resolution.
The video card was constructed on perfboard with wirewrap sockets. An 8-bit DAC was included, allowing the card to display 256 separate colors but only the three primary lines were wired up to the VGA cable. As is, the card cycles through 8 different colors in a constant loop, not bad for a pile of chips.
VGA out has been done on everything from an ARM to an ATtiny, but rarely, if ever, has VGA been done with discrete components. While this video card may not be our first choice for bitcoin mining, it’s still a very impressive build. Check out the walk through video after the break.
24 thoughts on “A Masochistic Video Card”
It’s not that impressive given that the original IBM VGA was pretty much built from TTL logic and a couple of ULAs.
Yeah I kinda winced when I read “rarely, if ever, has VGA been done with discrete components”
Yup, and it’s been done before by hobbyists, too.
YES! myCPU rebuilder here^^
This project was AWESOME to build. Call it a TTL graveyard, i call it fun to build. Still playing with the thought of producing a compiler to run on myCPU…
So true! In fact some of the “contestants” from last years 555 contest had noticeable ripoffs of some of the 555 projects in my good ol TTL Cookbook. The tone of the post (oh HaD) is kinda snobby as folks continue to forget a time before AVRs and how things are (or were) made. Mega Kudos to the builder and please continue your good work. Now to go back and finish reading tfa…
While I agree with the previous comments and replies, the method used to generate the colours is quite interesting, and would be neat to put a character generator EEPROM in front of the colour counters to generate text…
I remember an S100 board that wa
It’s not that impressive……
Either you have never taken on a project like this or your 50+ year old TTL veteran.
Wire wrapping 7400 into anything is always impressive to those that can do it.
“The VGA pixel clock runs at 40MHz” is a misleading statement that’s hurting to the eyes. It runs at 40MHz at the videomode she chose to implement.
Cool project though!
Indeed, true-blue VGA pixel clock runs at either 28MHz or 25.2MHz, depending on if you’re running in text-mode (720 pixels per visible scan line) or graphics-mode (640 pixels per visible scan line). So-called “lo-res” modes were implemented by simply dividing these clocks by two.
Anything beyond this rate is, technically, SVGA.
I’m not sure that logic chips qualify as “discreet components”. If it were built up of out transisters, THAT would be discreet components in my book. Feel free to correct me if you’ve got better information.
Is that Beemo talking? I want one.
Not that impressive? What are you talking about, this is awesome! Does everything need to be a first in the universe invention to be a worthy hack? Don’t blame the creator for HaD’s “rarely if ever before” or “VGA pixel clock runs at 40 MHz” comments.
This project would be twice as awesome if it displayed any kind of color pattern, instead of an entire screen of one solid color. That should be easy to do if the speed of color cycling is sped up to be faster than the refresh rate, but is a rate that divides evenly into the refresh rate. Then you get several horizontal bars of solid colors. Or throw throw in an AND chip, and AND together random bits from the horizontal and vertical counters to generate the R, G, and B colors bits.
This is seriously quite awesome up to a “LOL WUT O_O” factor…
Truly masochistic but in a good way, having done a simple VGA controller in Verilog i can attest the difficulty of this hack.The title was a bit misleading however :(. I was expecting at least low resolution bitmaps.Awesome none the less.
I’m failing to see where the “video card” part is.. all I can see if some stuff that generates VGA timing and a DAC..
Having written a couple of VGA drivers for the Parallax Propeller, I have to admit to being impressed. VGA monitors are quite sensitive to timing and the idea of debugging a VGA signal generator implemented in hardware fills me with squick.
Not to diminish the value of the work presented.. but all of the endless line of home computers from the 80s generated video sync with discrete chips. Video signal generation was like a basic building block of the epoch. VGA or composite, there’s not a lot of difference, VGA is actually easier to implement because it doesn’t have funny TV-related quirks. It’s not scary, just has to be thought out well before the actual wiring begins.
NTSC is a lot less sensitive to timing errors than VGA. I’ve also done NTSC drivers for the Propeller and even once implemented a primitive NTSC image capture card in hardware. Television hardware is designed to be forgiving; VGA, not so much.
I think this has several merits. This project, and others like it should be encouraged in my opinion and I’m always happy to see stuff like this on HaD. Technically, it gets the job done and would appear to be a good foundation for further work. Besides that, it is a neat, clean build and has good documentation — well-presented overall.
I’m keen to check out what else the 7400 competition yields. I’m sure we’ll see a fair share of highly sophisticated devices that will be very impressive, but I hope we’ll also see a lot of other tidy and clever submissions on the smaller scale.
I’m also looking forward to the competition and also love seeing any project built using passive and near passive component.
It’s always interesting to see undergrad students who have come in having done a bit of coding and embedded stuff stall and nearly cry when asked to do the traffic light project in TTL.
It’s a very easy project if you have spent a bit of time working with gates, but you need to spend a bit of time on gates to do it well.
If the first thing you think when you hear “video card” is “bitcoin mining” I don’t know what to tell you. -_-
It seems to jump into some peoples minds every time they hear “video card”, so they blurt it out every time they can.
What about VideoMemory or buffer?
Many hex inverters can be eliminated here, often the counters drive 2 or sometimes 3 inverters that feed into the 8 input nands. Secondly if you are testing for 0b1000001, say for example you don’t need to test for for the 0’s in this case.
But it’s a good project, its just that the parts could could be reduced. Perhaps more parts make it more impressive?
Please be kind and respectful to help make the comments section excellent. (Comment Policy)