I built a programmable 8-bit computer from scratch on breadboards using only simple logic gates. I documented the whole project in a series of YouTube videos and on this web site. For an introduction:

Background

If you’re interested in seeing the computer in action to get a sense of what it can do, check out these videos:

If you want to dive into the details of how the computer works and understand it from first principles, but are a little unsure of how transistors and logic gates work (or just want a refresher), here’s a few videos to serve as an introduction:

Computer modules

The computer is composed of several modules, each of which performs just a few basic functions. Check out these posts for more detailed information on building each module:

Complete parts list

Here’s a complete parts list of everything I used to build the breadboard computer. The total cost works out to roughly $150-$200 USD depending on what breadboards you use and how much you end up paying for shipping.

There’s no right way to do this project. There are tons of substitutions and other approaches which will work just as well (or better), so if you want to build something similar and can’t find all the parts, try to figure out what the missing part does and find a different way of doing it. It might not work the first time, but you’ll learn a ton from trying to figure out why.

(If you click through any of the Amazon links, I get a tiny cut, though it won’t cost you any more. I’m a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com.)

QuantityDescriptionApprox. cost eachApprox. total costSourcesModules
14Breadboard$3 - $8$36 - $96Amazon JamecoAll
122 AWG Solid Tinned-Copper Hook-Up Wire$16.00$16.00Jameco AmazonAll
101kΩ resistor$0.10$0.99Jameco AmazonCLK, RAM, OUT
910kΩ resistor$0.10$0.99Jameco AmazonBUS
1100kΩ resistor$0.10$0.99Jameco AmazonCLK, OUT
24470Ω resistor$0.10$2.97Jameco AmazonCONT
11MΩ resistor$0.10$0.99Jameco AmazonCLK
11MΩ potentiometer$1.39$1.39Jameco AmazonCLK
60.01µF capacitor$0.12$1.20Jameco AmazonCLK, RAM, OUT
160.1µF capacitor$0.15$3.00Jameco AmazonCLK
11µF capacitor$0.15$0.15Jameco AmazonCLK
4555 timer IC$0.35$1.40JamecoCLK, OUT
274LS00 (Quad NAND gate)$0.79$1.58Jameco Amazon*RAM
174LS02 (Quad NOR gate)$0.55$0.55Jameco Amazon*CONT
574LS04 (Hex inverter)$0.59$2.95Jameco Amazon*CLK, RAM, CONT
374LS08 (Quad AND gate)$0.69$2.07Jameco Amazon*CLK, OUT
174LS32 (Quad OR gate)$0.49$0.49Jameco Amazon*CLK
174LS76 (Dual JK flip-flop)$1.20$1.20FuturlecOUT
274LS86 (Quad XOR gate)$0.55$1.10Jameco Amazon*ALU
174LS138 (3-to-8 line decoder)$0.69$0.69Jameco Amazon*CONT
174LS139 (Dual 2-line to 4-line decoder)$0.69$0.69Jameco Amazon*OUT
474LS157 (Quad 2-to-1 line data selector)$0.69$2.76Jameco Amazon*RAM
274LS161 (4-bit synchronous binary counter)$0.79$1.58JamecoPC, CONT
874LS173 (4-bit D-type register)$1.39$11.12JamecoREG, RAM
274189 (64-bit random access memory)$4.95$9.90JamecoRAM
674LS245 (Octal bus transceiver)$0.79$4.74Jameco Amazon*REG, ALU, RAM, PC
174LS273 (Octal D flip-flop)$0.75$0.75Jameco Amazon*OUT
274LS283 (4-bit binary full adder)$1.49$2.98JamecoALU
428C16 EEPROM$3.95$11.85JamecoOUT, CONT
3Double-throw toggle switch$0.99$2.97Jameco AmazonCLK, RAM
3Momentary 6mm tact switch$0.35$1.05Amazon JamecoCLK, RAM
18-position DIP switch$0.79$0.79Jameco AmazonRAM
14-position DIP switch$0.89$0.89Jameco AmazonRAM
44Red LED$0.12$6.00Amazon JamecoBUS, REG, ALU, RAM
8Yellow LED$0.09$0.90Amazon JamecoREG, RAM, CONT
12Green LED$0.10$2.00Amazon JamecoRAM, PC, CONT
21Blue LED$0.59$12.39Amazon JamecoCLK, REG, CONT
4Common cathode 7-segment display$1.09$4.36Jameco AmazonOUT

Additionally, I used an Arduino Nano and two 74HC595 shift registers to build a simple EEPROM programmer to program the 28C16 EEPROMs used in the output module and control logic.

Breadboards

A note on breadboards: You can get them from lots of places for different prices. The best quality I’ve found is the BB830 by BusBoard Prototype Systems. I get them on Amazon, but they’re not cheap. (If you’re paying less than $7-8 USD each, you’re probably getting a fake.)

Lower quality, cheaper breadboards will probably work just fine (and save a bunch of money if you’re buying ~12 of them). The biggest differences include inadequate funneling on each hole, making it harder to properly insert components (this can vary a lot, from not a big deal to useless); inconsistent coloring (i.e., several breadboards, even ordered at the same time, are different shades of white); confusing labeling (e.g., numbers not lining up with holes); and warping (i.e., the breadboard doesn’t sit completely flat). Most of those aren’t deal-breakers, and if something doesn’t work right, look on the bright side: you get to troubleshoot it and learn more 🙂

Discuss this on Hacker News: https://news.ycombinator.com/item?id=14883776