Hot off the press:

Put Down Your Phone And Connect (After Reading This Article)

Students are no longer allowed to have their devices out in class. 

We Are Not Stopping This Fight: Students React to Trump’s Victory

"We are Americans. We are not stopping this fight until we’re dead and gone."

Trans and Non-Binary Students Fear Trump Victory

Today, trans, nonbinary and gender-nonconforming students face a pivotal election.

The BreadiBus Breadboard Computer

That time I built a computer out of logic gates.

The finished computer.

This funny thing happens at the end of your junior year at my school. Kyle pulls you aside and says “If you want to graduate, you’re going to need to spend your entire senior year making something.” 

You spend the next month or so deciding what exactly you’re going to do and writing a proposal. Then it’s summer, and you forget any of this ever happened until you sit down in the first thesis class of your senior year and Julie says, “So let’s just go around and say what our projects are.” Oh no.

Suddenly, your once reasonable and perfectly doable project plan becomes incredibly daunting and ambitious. Past me wants me to do what now? Build a computer? Out of logic gates?

Nevertheless, you push on. I, in my infinite wisdom, wrote in my proposal that I would build a computer out of logic gates and wires on breadboards, similar to Ben Eater’s and jdh’s.

But What Does It Do?

I get asked this question a lot. The short answer is: not much. It has 64kb of memory and storage, no way to give it any input and can only output a single number at a time. It can add and subtract any number between zero and 255 and is capable of basic conditional operations (like if this number is zero, output 12). Essentially, it is theoretically capable of any mathematical operation, but good luck calculating what 255 plus one is (it’s zero, obviously).

This is the part where you look at me all weird. “Now why would you build a computer so utterly useless?” you ask. It’s simple: because it’s cool. What makes this computer special isn’t what it is (or more likely, isn’t) capable of, it’s what this computer is made of: logic gates. This computer is only a few steps removed from being made out of transistors. My engineer friends look at it and go, “You probably did more building that then I had to do to get my degree.” Wow. Ok.

Within this computer is the basic stuff that goes into all of our electronics. Somewhere in your microwave is a little tiny (and much more powerful) breadboard computer. 

How It’s Made

The first wires of the computer. It’s just a light.

On September 19th, 2023, I laid the first wires of my computer. I had originally planned to build the entire thing on my laptop using a program called Logism before building the physical computer, but I pretty quickly decided, for efficiency, to combine the two steps and build the parts I’d already designed while designing the next parts. This quickly devolved into me just ordering the parts I thought I needed and placing them on the board without designing anything first. To this day, I have virtually no diagrams of the wiring for this reason, and that’s only caused me pain a handful of times.

I decided to start with the clock module. Most modules of the computer rely on the clock in some way. The light blinks, and the various modules do things to the timing of the blinking. I purchased Ben Eater’s clock module, as this electrical engineering stuff is way above my pay grade and Julie didn’t like the idea of me stripping the wires of an Apple charger to power the computer. What’s the worst that could happen? It probably won’t blow up!

The completed clock circuit on October 3, 2023.

Next up were the registers. The computer was originally only supposed to have two of them (I later added two more). You can think of a register as holding a number you are currently doing things with. Memory also holds numbers, but they aren’t at your fingertips like numbers in registers are.

November 7, 2023. The clock is to the left. Two registers sandwich a makeshift bus.

Work continued at a steady pace. By the end of November, I had physically connected the boards together, rewired everything to use spools of wire instead of jumper cables, and had started work on the arithmetic logic unit (also known as the ALU. It does math). In early December I had started the memory, which I would later put off finishing until early May.

January 3, 2024

This is where I stalled out for a while. It turns out taking on an ambitious photography project, peer reviewing theses and finishing your own thesis doesn’t leave a lot of room for wiring.

My next major update isn’t until March, when I finally finished the registers and stack pointer. Then spring break came and went, and I, along with many other seniors, realized we were running out of time.

Suddenly I was spending every moment I could wiring. I would go in early and wire before class, wire during study halls and wire during lunch. My life revolved around wiring. In total I was logging around 10 hours per week wiring for about a month.

At the same time, I was spending a considerable amount of time at home writing software for the computer. After all, you need a way to program it. Over the course of 10 days (and nights), I wrote BreadLang, the programming language for the computer.

When I closed my eyes, I would see wires. I couldn’t sleep because I was thinking about all the wires I had left to place, and whether I would finish on time. When I did sleep, I dreamed of the computer. One night, I dreamed I turned on the computer and discovered an error. I then debugged and fixed the error in my sleep.

April 9, 2024. Starting work on the final module of the computer: the brain.

The brain was the hardest part of the computer. Its job is to connect every part of the computer together. It has to orchestrate the computer actually doing things by sending various signals to each module. It takes 18 different signals as input and converts it into 32 different control signals that go all throughout the computer. I wrote a program that could be put across four chips to handle this. I had no real way to test the program on my desktop, since I didn’t have a full simulator like junior year me said I would. Instead I looked over each section of the code three times for errors, and I caught the majority of errors this way. Keyword: majority.

The rest of the errors would be caught one by one as I attempted to get the computer working. This became more and more upsetting, as each time I would have to reprogram the chips, which took about four hours. I would turn the computer on, run my test program, and it would get just slightly further than last time. Then I would have to fix the program, rip the four chips out of the computer (they are the hardest chips to remove on the computer), and spend the next four hours reprogramming them with a fix.

With all this downtime between attempts, I would try to fix other errors in the wiring. Namely, an error where one of my counting chips would count twice when it was only supposed to count once. I had tried everything, everything that I could think of. I was so desperate I started asking my friend who is more knowledgeable with electricity than me for help, and he said “Classic electrical engineering problems. Can’t help you.” W-Why not?

I spent a week just trying stuff to no avail. Finally, in my desperation, I turned to Reddit.

There is a subreddit dedicated to making these sorts of computers, where people who are like me ask questions and people who are smart give answers. One user, going only off my very in-depth explanation of the wrong component, was able to identify the problem and offer a fix. It’s quite technical, but essentially the count signals were fluctuating for a handful of nanoseconds (billionths of a second) and it was causing the counters to count twice. This marked a rare Reddit win. At least in my book.

After this fix, it was a game of getting those four chips programmed correctly. After three long days of programming and reprogramming, it finally happened.

May 5, 2024. The finished computer computing the Fibonacci sequence.

It… works? Weird. It feels surreal to be finished with it. I’ve spent eight months working on this, and a year imagining it, and now it’s done.

It’s surprising just how precise computers really are. If you remove just a single wire, the computer breaks. If a count signal turns on when it’s not supposed to for just a few nanoseconds, the computer breaks. If this is how precise my computer has to be, imagine the precision of an actual computer.

When I turn it on, and the lights blink, it’s like magic. Knowing how it’s built and the purpose of every little wire and chip only adds to the magic.

Dear Future Breadboard Computer Builder

Building a computer like this is a balancing act between low-levelness and functionality. Sure, you could build a computer purely out of transistors, but will it do anything? Or you could go one step up, as I have, and build it out of 74 series logic chips, sacrificing a little purity for functionality. 

I will keep this brief so as to not repeat what you will hear so many times in your future (and not bore those of us who aren’t planning a build but are reading this anyways).

My advice is:

  1. Watch all of (or most of) Ben Eater’s 8-bit breadboard computer build series. r/beneater is also a great resource for finding advice and help.
  2. Keep your friends close, and keep your data sheets closer.
  3. Decide how low level you want to go. Do you want to use purely logic gates, or are you content with using register chips? Do you want to wire your own ALU or are you content with an ALU chip? Do you want to use a 6502 CPU and wire the surrounding circuitry?
  4. Know what you’re getting yourself into. Building a breadboard computer is a long and expensive endeavor. If you’re not prepared to take that on, this might not be the right project for you.

When I first imagined this project, I asked one of my friends who work in programming if it was possible.

“You’re crazy,” he said. Feeling dejected, I turned to another friend with a similar background,

“It’ll be hard, but I think you can do it,” he said. That was all that I needed.

I was probably going to build the computer regardless of what they said. Despite me having never written a word of assembly, having no idea how computers actually work, having never wired a simple LED, and having never made a programming language.My lack of experience didn’t matter to me. In the words of my friends, I was “crazy enough to do it.” When describing why I built a darkroom in my attic, my mother said “When he’s into something, he goes all in.” Perhaps I have a bit of an obsessive personality.

The difference between us normal people and a child prodigy is time and dedication. I didn’t come out of the womb programming, I nurtured the skill over many years. PewDiePie dedicated himself to drawing for 100 days and made monumental progress. Every pianist has a moment where they sit down to play hot crossed buns and think “this is hard.” I’m getting ahead of myself, aren’t I.

My point is: you are capable of great things. We all are. You just need to keep putting one foot in front of the other.

Latest

Put Down Your Phone And Connect (After Reading This Article)

Students are no longer allowed to have their devices out in class. 

We Are Not Stopping This Fight: Students React to Trump’s Victory

"We are Americans. We are not stopping this fight until we’re dead and gone."

Trans and Non-Binary Students Fear Trump Victory

Today, trans, nonbinary and gender-nonconforming students face a pivotal election.

Civics: Now & Then Class Endorses Kamala Harris for President

We believe it is a voter’s responsibility to consider how their vote will affect their life and how their choice of candidate could impact the lives of millions of people across the country.

Don't miss

A Portrait of the Teacher as a Bad Man: Why People Get Whiplash All Wrong

Chazelle intended this as a cautionary tale, but there is a greater harm in blending obsession with inspiration. Cinema is a powerful tool, and it’s dangerous when misinterpreted.

Music in Classrooms: Is It Okay for Students to Listen During Class?

Studies show that there are certain genres that are more effective for studying.

Reaction: The Supremes – Where Did Our Love Go

The History and Popular Music of the ’60s class learned about The Supremes' breakthrough album, Where Did Our Love Go (1964). Here are their reactions.

Superficial Love: Examining Elizabeth, Victor’s Favorite Lamp

In Mary Shelley’s Frankenstein, the character of Elizabeth is said to be Victor’s cousin, sister and bride. But is she anything more than an object to serve Victor’s needs and desires? Or is she simply a “shrine-dedicated lamp," existing solely as a decoration to furnish Victor’s love life?

We Are Not Stopping This Fight: Students React to Trump’s Victory

"We are Americans. We are not stopping this fight until we’re dead and gone."
Dashiell Weinstein
Dashiell Weinstein
Dashiell is a senior who likes to code, take photos and play piano.

“I Am Not Eating That Cursed Jambalaya”

I realized I can celebrate my problems. I can experience magical moments with the people I love. That is what keeps me going.

Angry Pigeons: Nico Sardi

Nico Sardi, a senior at NWA, is part of an after school program at NWA focused on creating new music through digital media.

Freshmen Get a Mind Full of New Class

This year, NWA freshmen are required to take the new Mindful Studies class taught by Chris Heckman.

1 COMMENT

  1. Dashiell, I tip my hat to you. What a thing to pull off – building a computer! Thank you for this narrative and your summary of what you learned. Yup, you are capable of great things!

LEAVE A REPLY

Please enter your comment!
Please enter your name here