Sky
← Back to projects

Build Your Own Breadboard Computer

Course Docs (incomplete)


Carnegie Mellon has a wonderful student-taught courses program called StuCo (Student College), which basically lets students teach courses on whatever topics they deem interesting. Starting Fall 2025, I am teaching one of these, titled Build Your Own Breadboard Computer (BYOBC, 98-341). This course was created by my friend Salix a few years ago. While ostensibly it is "just" a course about building a 6502-based breadboard computer, I think it’s important to emphasize that the intuition the course teaches of how a computer works internally translates very well to modern systems.

"Breadboard computer"?

This class is about building this: a simple, minimal computer based on 70s/80s chips that are still readily available today.

computer

On here, you can see the 6502 processor, a few KB of SRAM and flash memory (obscured by wires), and interfaces to the screen and a serial port to communicate with a modern computer. Throughout the semester, we build from nothing but a single chip on the breadboard up to this complete device, discussing each component along the way.

6502? What?

The 6502 processor is an early microprocessor originally released in 1975. You might not have heard of it before, but if you’re interested in retro computing or retro gaming at all, you’ve definitely heard of some of the systems that use it. This list includes:

  • Apple I and ][

  • Commodore PET, VIC-20, and 64

  • BBC Micro and Acorn Electron

  • Atari 2600

  • Nintendo Entertainment System

  • Tamagotchi

  • Probably lots more!

Since this chip was so ubiquitous, for one reason or another you can still buy them! Today, a brand-new brand-new 6502 (specifically, the later 65C02 model) will set you back around $10.

6502

But…​ why?

CMU has lots of courses about computer architecture at various levels, but all of them approach from a highly theoretical perspective, and for good reason: it’s basically impossible to get "hands-on" with a many modern systems other than approaching from a simulation standpoint. The great thing that building a computer using 70s/80s tech gets us is tangibility!

Like most other processors of its day, the 6502’s interfaces with outside components are very simple: the address bus, data bus, clock, etc. are all just plain old wires. Want to know what address is being accessed? Just probe the address lines!

This tangibility is super helpful for cultivating a higher level of interest and intuition for how computers are put together. While it’s true that the 6502 is not super representative of how a modern processor works (it only has 3 "normal" registers!), there’s plenty of lines that can be drawn from how this small, simple computer works to how today’s big, immensely complex computers work.

The Debugger!

Putting together a computer from raw components is error prone! Even aside from the fact that we need to manually route every single bit of our data and address buses to various places, it can be pretty tough to debug problems without being able to "see" what’s going on inside of the 6502. For this reason, we use a custom 6502 Debugger designed specifically for the class, which allows us to see the entire state of the processor at any point!

The debugger has gone through a few revisions now - Rev.3 is what is currently used in the class:

debugger rev3

During summer and fall 2025 I spent a while taking Salix’s existing Debugger Rev.3 design and shrinking it down - Debugger Rev.4 (well, Rev.5 because Rev.4 has some USB issues) reduces the footprint down to a teeny tiny box not much larger than the 6502 itself!

debugger rev4

The debugger itself works, but as of writing I’m still working on fixing the USB bugs so that this can be the simplest 6502 debugger to use :3