Crafting an 8-Bit Symphony: Building Blocks of a Retro Computer

Pranav
kgxperience
Published in
9 min readJan 29, 2024

Greetings fellow tech aficionados! 🌐 Today, we embark on an ambitious journey, crafting our very own 8-bit computer from the ground up in a breadboard. Imagine the joy of creating a computer from scratch, where every wire and chip is meticulously placed to bring life to your own digital brainchild. In this series, we’ll delve into the fascinating realm of 8-bit computing, understanding the core concepts, and transforming them into tangible circuits.

Absolutely yes!! You heard me right. We are gonna build an actual computer on a breadboard which computes 8 bits of data.

Computer🖥️:

Well, as soon as we hear the wonder name Computer, we all do get reminded of several things, few may get a thought of video games, few may get a thought of movies or any sort of entertainment, few genius minded like me may get a thought of coding and building cool stuffs😉. Anyway, as I mentioned we all do get several thoughts on this. But have we ever taken a moment to think how these enigmatic process is happening behind a system? How are they being encoded behind? How come the impulse of just 1’s and 0’s being transformed into a visual or an audio content? If you have ever wondered, Kudos! If you have not wondered, then Great!!!

Because, you are going to experience a exuberant journey with me in this amazing series where we build together, grow together, and most importantly play together with our electrical equipments. So prepare to get your hands dirty — or at least, covered in solder! 🛠️

So your educational qualification to build a computer with me should be, 🚨️(NO) PhD in Electrical Engineering Required!

Fear not, aspiring tech wizards! This series is designed for enthusiasts of all levels. Whether you’re a seasoned engineer or just starting your journey into the world of electronics, we’ll break down complex concepts into bite-sized, digestible pieces. 🧠💡. Come let’s grind some bites.. OOPS! Bits😅

So Why 8-Bit?

In a world dominated by sleek and powerful 64-bit architectures, why would anyone choose to embark on the nostalgic journey of building an 8-bit computer?Because it’s not just a choice of architecture; it’s a journey into the heart of computing history, a tribute to simplicity, and an exploration of the timeless allure of vintage technology. Stay tuned as we unravel the layers of our 8-bit adventure, where every byte tells a story! 🚀🕹️

Typical 8-Bit Computer

Upcoming Blogs: A Glimpse into the Future of Our Pixelated Adventure

As our adventure is filled with many modules🛠️, as

1. Clock Module 🕰️
— Explore the heartbeat of our system, synchronizing every operation with precision.

2. Latches and Flip-Flops 🔄 — Unveil the building blocks for memory storage and sequential logic in our digital realm.

3. Designing a 1-Bit Register 🔍 — Lay the foundation for data storage at its most basic level.

4. Designing an 8-Bit Register 🛠️ — Scale up our register, bringing together the bits that will define our computer’s capabilities.

5. Registers 📚 — Delve into the collective memory space, understanding how registers shape data manipulation.

6. ALU (Arithmetic Logic Unit) 🧮 — Witness the brain of our computer, where arithmetic and logic operations come to life.

7. RAM (Random Access Memory) 🚀 — Unleash the power of temporary storage, essential for dynamic data handling.

8. Binary Counter 🔢 — Construct a fundamental tool for counting and tracking within our digital universe.

9. Program Counter 🔄 — Navigate the sequence of instructions as we build a program flow controller.

10. Designing an EEPROM (Electrically Erasable Programmable Read-Only Memory) 🖱️ — Create a non-volatile memory module for storing crucial data.

11. Arduino EEPROM Programmer 🛠️ — Equip ourselves with the tools to program and reprogram our EEPROM.

12. 8-Bit Decimal Display 📟 — Visualize our digital outputs with a display unit dedicated to showcasing decimal values.

13. Connecting the Bus 🚌 — Establish the communication highway for seamless data transfer between components.

14. CPU Control Logic — Understand the orchestration of commands and operations within our computer’s brain.

15. Reprogramming CPU with Arduino Programmer 🔄 — Flexibility at its finest — discover the ability to reprogram our CPU using Arduino.

16. CPU Flags Register 🚩 — Unravel the flags that signal conditions within the CPU, shaping the outcome of operations.

“As the hands of the clock move, so do we in the grand journey of our lives. Cherish each tick as a step towards self-discovery.”

And so according to the words we are stepping our first move in this grand journey and the name is ‘Clock’. Clock is a significant factor, either in a Computer or in our real life. It directs, drifts, and determines.

So without further delay why don’t we dive into the ocean of electronics and get ourselves soldered out. Let’s begin our blog journey with our first module — ‘The clock’.

Tick-Tock! It’s Clock⏱️

Imagine a world where Mario jumps at half speed, or Donkey Kong throws barrels out of sync or the pixelated distortion during your favorite 8-bit adventure? These glitches weren’t just quirky graphics — they were the consequences of a tiny unsung hero: the clock module. In this blog, we’ll dive into the heart of 8-bit computers, unveiling the magic of this often-overlooked component and its crucial role in shaping the iconic era of digital gaming. Today will build a ⏱️ module together and alongside will also get to know how and why they are used⭐! Buckle up✈️, tech enthusiasts, as we get ready to tick-tock into the world of ⏱️ modules!

Clock Module

As I mentioned earlier, clocks are the conductor, orchestrating the symphony of binary operations. The clock module is a combination of Astable-Monostable-Bistable timers. We will be discussing all the 3 timers and how they are integrated together in building a clock module. So, without any further delay, let’s assemble an Astable timer.

Astable Timer:

As the name itself suggests, Astable timer is a kind of an oscillator which oscillates and generates continuous square wave output without a stable state(i.e) it continuously toggles between high and low states. To build🛠️ this we require,

Components Required:-

1x 555 timer IC ,1x 1MΩ potentiometer, 2x 1kΩ resistors, 1x 100kΩ resistor 1x 330Ω resistor, 1x 2µF capacitor, 1x 0.1µF capacitor, 1x 0.01µF capacitor, 1x LED, Solderless breadboard, 22 gauge wire USB charger and cable or some other 5v power source

555 Timer:

The primary or the essential component to build an Astable multivibrator is this 555 timer. A 555 timer do have 8 pins and each pins shown below perform their own characteristics.

555 Timer Internal Circuit

Hey! Did you had a glimpse of the above diagram. If not, take a closer look. If yes then take even closer look!!! Can you see 3 voltage dividers each of 5kΩ. So is this the reason how this IC got its name???🤓 🤯

Anyway, So how do we start, internally we can see a transistor, 2 comparators, a flip-flop and series of resistors. A power source of 5 Volt is supplied through the 8th pin. But I’m not satisfied with the above diagram, so a simplified version of the above diagram is given below from my point of view.

Working of 555 Timer

The connection flow is as follows: It’s from the 8th pin that the power supply is provided to the IC, and it reaches the first pin, which is obviously the ground pin. The resistor 1kΩ is from pin 7, which connects the 100kΩ at pin 6, and let’s say we have a capacitor of capacity 1 microfarad, which is connected to pin 2.

Ufffff!! these many connections😬, Ok! Take a chill pill! It’s gonna get even more interesting. We are going to give all these connections in a breadboard to understand how this is gonna work.

Typical Astable Circuit

As the power supply is provided, it passes through the voltage dividers. Thus while passing through these 3 voltage dividers, the voltage is literally divided as 1/3, 2/3 and 3/3 of the voltage. That is, while crossing every voltage divider the voltage is getting divided. Below the threshold, (i.e)at the negative of first comparator the voltage is divided as 2/3rd of 5V , so the voltage at that particular point is 3.33. There is a reason why I mentioned the point as negative of 1st Comparator. We will be getting to know about it on the way(worthy will be the wait😉).

Now similarly, as it crosses from the first voltage divider to the second voltage divider now the voltage is divided by 1/3rd of the entire 5V. So at the positive of the second comparator we will be receiving a voltage of 1.6666(rounding off to 1.67).If any confusion on the connections, just scroll up for the diagrammatic representation 📝.

NPN Transistor

Now, let’s connect an NPN Transistor to pin 7, positive of first comparator to pin 6 and the negative of the second comparator to pin 2. From the diagrammatic figure, we can configure that there is no current flow between these pins, initially. So the current flowing there is null or 0. Now, if power is supplied to the IC, the capacitor stores certain amount of voltage and it keeps on increasing. Now comes the role of the comparator. Usually the comparators function is to compare, that, if the positive of comparator is greater than it’s negative. If yes, then it continues, if not, then that particular comparator stops. Similarly here, we can see the 2nd comparator’s positive is 1.67 and the negative side is 0(because initially before supplying current the voltage is 0). And in the first comparator, the positive value becomes 0.

Now, only the second comparator (0<1.67) satisfies the requirement when we compare the starting value with the fixed value; the first comparator fails since the condition would become 0>3.33, which is completely incorrect. As a result, the first comparator is going to shut down, leaving the second comparator operational until it exceeds 1.67. It will ultimately fail to meet both the first comparator criteria and the second comparator requirement once it passes 1.67. Therefore, the graph will not fluctuate at this point. As I previously stated, the square wave rises after reaching a constant point in time.

The first comparator switches on when the voltage rises over 3.33V after a certain amount of time. Upon activation of the first comparator, the capacitor’s excess current is automatically discharged, leading to a voltage drop below 3.33V. At this point, the second comparator activates once more, illuminating the LED and producing an output.

We use an SR Flip-flop because it allows us to set a value and wait for it to reach a limit before resetting it to bring it back. We are opting for the SR Flip-flop because of this. In the breadboard you might be wondering about the unsaid capacitor and a potentiometer. Well!, the potentiometer was added to control

😤Finally, we came to know how this whole damn thing is working. This is just the beginning of a puzzle. Yet lot more to discover. So this is the mode where the state will not be stable and will be toggling continuously between high and low states. However we can control this manually in Monostable State.

So, … hey, wait, wait, wait!!! How can I reveal everything🤓. Stay tuned with me for more updates. There will be a release every week into a new chapter. And our new chapter in this blog series will be on ‘Monostable State’. So it is good to wait for good thing✨ So unitl then it’s a bye 👋🏻.

Embark on this technical adventure, and let the bytes and bits guide us to a pixelated symphony! 🎵

Your Support! Our Adventure!!❤️

Connect me on:

➡️ https://github.com/PranavRajeswari

➡️ https://www.linkedin.com/in/pranav-rajesh-9b694a241/

R️each me out through:-> pranav.mukundh@gmail.com

Circuit Sketch & Connections Credit:-> Abinaya Meenatchisundharam

--

--