Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Why build an entire computer on breadboards? [video] (youtube.com)
221 points by guiambros on April 4, 2020 | hide | past | favorite | 27 comments


I discovered Ben Eater from another post on HN: "Let's build a circuit that displays an image on a VGA monitor [video]" [0]. If you're new to his content, I'd recommend starting with that video; it's currently his second most popular video on YouTube with 2M views. After watching that series I became interested in how display capabilities are communicated in modern systems and I learned a bit about DisplayID [1], which is a superset of an older (and apparently rather dysfunctional) standard.

A bit tangential, but I recently discovered the incredible Make: Encyclopedia of Electronic Components series (here's Vol 1 [2]) and immediately fell in love. It's one of those things which you don't know you need until you learn of its existence, and then you can't live without it. The topics covered by this series go far beyond what you learn as part of a computer engineering or electrical engineering undergraduate program, at least based on my experience and those of my friends.

Some commenters are asking about getting started with electronics. My standard suggestion is Make: Electronics [3], which is written for learning by discovery rather than learning by explanation. Read the first page of the Preface [4] for an explanation of what that means; consider picking up a copy if that resonates with you.

[0] https://news.ycombinator.com/item?id=20375702

[1] https://en.wikipedia.org/wiki/DisplayID

[2] https://www.makershed.com/products/make-encyclopedia-of-elec...

[3] https://www.makershed.com/products/make-electronics-2ed4

[4] https://imgur.com/ZR3anzQ


Your [3] link is "404 Page not found" for me currently.


Just remove the extra "4" from the end of the URL:

https://www.makershed.com/products/make-electronics-2ed


I've built a z80 system on a breadboard. I did so because it's pretty much the last point where a regular person can understand what's happening from start to finish. Every single instruction. Eat that, "full stack". As soon as you add a GAL (that you didn't program), you've lost this, which on the home computer level, is the midpoint between 8bit and 16bit.


What is a GAL?

Edit: Gate Array Logic, thanks everyone


Programmable gate arrays - The neanderthal of the FPGA family tree. A lot of functions that started life as discrete logic (eg glue logic, address decoding, video output) got moved into GALs because they're much more suited to mass production. But from my point of view, they just introduce a "black box" into the design so I can no longer trace every single function.

As an example, if you have a very simple design with a 32k rom chip and a 32k ram chip, address decoding - controlling which chip is going to provide that address, is dirt simple. You take the highest bit of the address and use it as the enable line on one chip. Then you run the same signal through a NOT gate, and provide it as the enable to the other. So for addresses 0x0000 through 0x7fff, the high bit is 0, and one chip is enabled, and for addresses 0x8000 onwards, the high bit is 1, and the other chip is enabled instead. So when I address 0x8000, I'm actually addressing location 0 on the 2nd chip.

But when you look at contemporary designs, 32k & 64k ram chips were either unavailable, or an unnecessary expense. It's not unusual to see old-school devices with a whole cluster of 1k ram chips - and my nice, understandable decoding starts to get expensive. Now you're trying to compare the top 6 address bits, with lots of replication for each ram chip. If I were to do it, I'd probably use two 74138 chips to do binary-to-decimal, and then an AND gate per ram chip to compare the outputs. For 32k of ram, and at 4 AND gates per 7408, we end up with 2x74138 and 8x7408.

So as a hobbyist, I'd much prefer this as I can still describe the entire process end-to-end. For mass-production, replacing 10 discrete-logic chips with one programmable-logic chip, is several wins.


Gate Array Logic. Field programmable, eraseable and re-programmable, consolidated logic chips.

Commonly used to replace 74xxx chips they do glue logic in classic 8bit computer designs like the Apple II

https://en.wikipedia.org/wiki/Generic_array_logic



I have just built my 8bit CPU on a custom-designed PCB. Ben really inspired me :)

Check it out:

https://github.com/vascofazza/8bit-cpu

https://www.youtube.com/watch?v=R_gflIunANo


I enjoyed his entire series on youtube, but I personally think it's nuts to make it on a breadboard. Whenever I've built systems of this sort I've always opted for point to point soldering.

In the videos he talks about the importance of using high quality breadboards, but even so, it's so easy to knock a wire out accidentally that leads to having to trace every connection to figure out what went wrong.

But from a pedagogical standpoint and having people follow along with a minimum set of skills, I get it.


If his chosen technology was wirewrap rather than actual breadboards I would a lot more confidence in this guy's judgement.


Ah man.. that is super cool. Very tempted to build one now!!


for most people who do this, id imagine the reason is because they are a computer engineering student and need lab credits


Or you just think it's awesome.


I would think the kind of people who go on a website like HN think this is awesome as well. I know not all the audience of HN is necessarily software / hardware engineers, but definitely there's enough of them on here go drive interest.


... or you want to learn how and why to use an oscilloscope ground spring [21'15]


Or an absolute mentalist. I’ve used breadboards for 30 years and almost always spent more time debugging problems with the board than the circuits. Solder FTW.


IMHO, breadboards should come with warnings, to the effect of:

* Keep this thing pristine. Dust, corrosion, liquid, or any other indignity will invisibly poison the breadboard and take its toll on your sanity later.

* Use only DIP legs and 22-24 gauge wire. Shoving a TO220 into these spring clips will spread them and take its toll on your sanity later.

* Decouple, decouple, decouple. The distributed inductance of a breadboard is nontrivial and if you're not putting a nanofarad next to every logic chip, you will summon ghosts.

* Buying cheap breadboards with subpar contact plating will yield exactly the sort of performance you'd imagine. Breadboards are supposed to be an EASY way to build circuits, not a CHEAP way. You get what you pay for.

With all these things in mind, they're quite good at what they do.


Problem is there is no ground plane so you do get absolutely horrible signal integrity whatever you do including decoupling. Refer to AN47-26: https://www.analog.com/media/en/technical-documentation/appl...

(digital circuits are fast analogue ones!)


Something I've learned is that modern CMOS logic is a lot more forgiving than TTL for breadboarding, thanks to low power consumption and push pull outputs. So if you're thinking of b'boarding a classic circuit like a minicomputer, allow yourself one concession to modernity, namely using something like 74HC logic instead of 74LS.


I have to agree there. 74hc is surprisingly robust!


Solder can be awfully darn quick. More and more these days my "breadboarding" is between modules such as e.g., a microcontroller development board and one or more breakout boards. If I can't find a breakout board for a particular component, I'll make one using a proto board. So the actual quantity of wiring has gone down. I don't do things like wiring an entire address/data bus.


Or they want to understand computers on a level with more electrons and less electron.


Or just curious!

The whole video series is excellent. Highly recommended.


seconded. This is the most in-depth well-made explanation of computing I've seen on the internet.



Or...oh nevermind. You must be a joy at parties.




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

Search: