Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Let's build a circuit that displays an image on a VGA monitor [video] (youtube.com)
255 points by marbu on July 7, 2019 | hide | past | favorite | 43 comments


I can only recommend the "Veronica"-Series of Quinn Dunki, where she builds a complete graphics card for her 8-Bit-computer, as well as the computer itself

http://quinndunki.com/blondihacks/?page_id=1761


Not to take away from Quinn Dunki's accomplishments, one big difference is the Veronica used an ATmega 324PA - basically an 8 bit 20 MIPS RISC CPU.

Generating a VGA signal is trivial for this powerful chip. Entire retro game consoles have been built with similar ATmega chips alone

Ben Eater is building a VGA card from discrete components, a somewhat more difficult task. The first part covers building the H/V timing sync circuit (no programmable clock source here!). It's worth taking a look if you're into this kind of thing.


Even more amazing, after watching Ben's video, I was thinking too myself "That wasn't so hard". Other than a few Arduino projects I've never used an IC, but I was able to follow along with Ben completely.

In fact, I think that a tutorial dedicated just to explain the VGA standard, the same length as Ben's tutorial, would have been less clear and informative.


Generating a VGA signal is trivial for this powerful chip. Entire retro game consoles have been built with similar ATmega chips alone

For comparison, a slightly less powerful microcontroller can do this:

https://www.linusakesson.net/scene/craft/


>Ben Eater is building a VGA card from discrete components

From 7400 series devices, which are very simple integrated circuits by modern standards, but still integrated circuits.


"From 7400 series devices, which are very simple integrated circuits by modern standards"

So it's clear, a 74xx is just a bunch of NAND gates. Nothing at all higher level than that.


Except they're not. He's using 74161 counters; that's a MSI device, not just primitive combinatorial logic and flip flops.


Ahh, good catch. I was distracted with the 7400 description. Though a 4 bit counter isn't terribly high level either.


Counters are a series of flip-flops anyway, right? And a few latches for reset and load.

https://easyeda.com/normal/74161X2-4qkCwOIZh.png


Although NAND gates are universal gates (any combinatorial boolean logic function can be built from nothing but NAND gates), in practice it's usually more space efficient to use a mixture of different gates.


And usually more power-efficient and faster in execution speed.


Among my group of SW engineering circle, we had a running joke that software is a series of 1s and 0s, it is the sequence that is important.


To be fair, it's almost impossible to build anything out of fully discrete components these days. If you use a TO series transistor, you could argue those are also ICs and vacuum tubes/relays aren't cheap or too easily accessible.


Chip photography site zeptobars.com has some photographs of modern transistors, and while some have interesting geometry, I didn't see anything that I'd consider an integrated circuit, i.e. something that would be drawn as more than a single transistor symbol on a schematic.

https://zeptobars.com/en/read/NXP-PMST3904-NPN-BJT

https://zeptobars.com/en/read/NXP-MMBT3904-npn-bjt

https://zeptobars.com/en/read/NXP-2N7002-TrenchMOS-N-Channel...

There are some "discrete" transistors with built-in ESD protection, e.g. NCV8440A, but those are unusual, and under normal operating conditions they work just like a normal transistor so I'd still count them as discrete components.


Transistors in individual packages are called discrete components. Even if they use the same technology as ICs, they're still discrete. You can certainly build useful analog and power circuits with only discrete components. Somebody even made a CPU from them [1] which was a much bigger circuit than TFA's IC video card will be so it's worth distinguishing truly discrete from simple ICs.

[1] https://monster6502.com/


Similar to the difference between asm (discrete), C (low level logic ICs), and Python (ATmega).


Also, his video makes it seem rather easy aswell. The scanline circuitry is quite simple.


>Also, his video makes it seem rather easy aswell. The scanline circuitry is quite simple.

Making it seem easy != easy


Generating a completely given digital signal should be easy, no?


Depending on the definition of the word "image" in this context, I'd love to see people play the electronics component version of code golf to see what the fewest number of basic components would be required to put an "image" on a screen. No SOACs allowed.


Let's just cut out the middle and build the minimum required board to project an image onto a retina. Or a signal into optic nerve ))


Id try with a led illuminating the back of a pcb ? Still, nice project. The code golf fewest components to display a face is tempting ...


Laser, spinning mirror, and a mask to draw a mouth at the bottom and two eyelids at the top.


Nah, let’s cut that out too and go even further: https://www.independent.co.uk/news/science/blindness-cure-br...


> Or a signal into optic nerve ))

That you can do with a single LED.


You can get this to display "image" by just adding one wire between clock source and one/all of VGA analog inputs. It will be a random checkerboard, but still an image.


Isn't 'random checkerboard' an oxymoron?

Or do you mean the top left square is randomly black/white?


He meant to say that each pixel will be randomly black or white. What will really happen is that the color choice for each pixel will not be random, but can actually be predicted by the various clock frequencies he used.


I've been following ben eater for about 2 years now. I've learned so much from his well explained well illustrated videos. Right now it's kinda hard for me to get my hands on every component he uses, but soon I'll take a shot at building a 8 bit computer as well. I'll may start with a full adder built with transistors only.


Hi, I don’t know your background, but why are you not building your 8 bit computer in FPGA? There are many nice cheap boards like MAX1000 from Arrow or Lattice. It’s really cool learning project! Transistor only design will have many problems: transistors are bigger than you think and small ones in VML0806 package are almost impossible to solder by hand.


I'm a software engineer undergrad, I do most high level stuff. I took digital circuits on college, cause I like electronics. One day watching videos on YouTube I saw ben eater project and loved it. I thinker with Arduino and Raspberry pi, but never built anything cool like that. I just want to give it a try, I guess


That's gonna take a lot of transistors. I suggest doing it with gates instead. Using transistors is like programming a computer with machine language; using gates is more like a good macro assembler.

Building yourself one NAND gate with transistors and resistors would be a valuable learning experience, but building 100 of them won't teach you anything new.


I see, I just think it will be cool to have one on my desk. Take a look a this video (https://www.youtube.com/watch?v=xISG4nGTQYE) I got the idea from it.


I agree the end result would be cool. I just wouldn't have the attention span for that much low-level dinking :-)


Yes that's hard to debate. But if you want to get the experience without the physical complexity you can always build an 8-bit computer in a simulator like they do in many college courses. I used Logisim [0] at college for this following the Harris and Harris [1] textbook and it was a straightforward experience.

[0] http://www.cburch.com/logisim/

[1] https://www.goodreads.com/author/show/13816512.David_Money_H...


Somewhat related, here's a video card for a MAC SE done with a BeagleBone and it's microcontroller like PRU secondary processors: https://trmm.net/Mac-SE_video


Why isn't this titled "let's build a video card [youtube]"?


Because it's not a video card yet, it's a circuit that syncs the monitor.


Designing a VGA card precursor on breadboards -- Brilliant!

Should be the very first video any would-be VGA card designer views... (I want to design one in the future...)


Am I the only one frustrated with how difficult YouTube makes it to find Part 2? Am I missing something obvious?


Part 2 isn't out yet


Thanks. It took way too long for me to figure that out :-).


Why not with an AVR? https://youtu.be/sNCqrylNY-0




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: