I originally planned to try to get this video out by the end of October.
But I just returned from a two week trip to Spain and the south of France–and before I release a video which starts to tie together the registers developed in the third video with the arithmetic logic in the second video, I want to put together these circuits to test to make sure they in fact work.
It’s been about a month, and here’s the third video explaining how computers work from the ground up.
In this third video I discuss flip flops. Starting with two not gates hooked together I discuss how a bi-stable circuit operates, extend this using NOR gates to Set/Reset flip flops, build data flip flops, edge-triggered data flip flops and 8 bit registers which can store up to 8 digit base-two numbers. I also talk a little bit about signal delays through transistor circuits, setup and hold times, and I also briefly introduce edge-triggered Set/Reset flip flops, J/K flip flops and T flip flops, as well as how to use them to build a counter.
All of this, of course, literally comes from the ground up, since everything can be built using 2N3904 transistors, a few LEDs, 330Ω and 10kΩ resistors, and a few switches to wire it all up.
My hope is to release subsequent videos about once a month, give or take.
Sign up for an account and let me know what you think!
So, as promised, about a month later, the second video in my series of videos explaining how computers work from the ground up.
And I mean truly, the ground up; on a breadboard next to me I have a working 1-bit adder circuit made entirely out of 10KΩ resistors, 2N3904 transistors, a few LEDs and 330Ω resistors, and a few switches to demonstrate how it works. Of course once we get passed flip flops and tri-state gates I may not have enough transistors sitting around the house (or enough breadboard space) to actually wire these things up…
Now as a footnote, the reason why the hands-on stuff is important to me goes to my finding an error in the first video, which caused me to rush out a new version of the first video in the series.
That’s because when I used the logic gates from the first video–well, nothing worked. And they didn’t work for reasons I explain in the re-cut video linked below.
I think it’s important to note all this, in large part because science.
Remember: the difference between science and screwing around is that in science, we document our results. And we confess our mistakes when we make them.
So here’s the first video in the series–re-edited and re-uploaded.
Here’s the thing. I started with NPN transistors because my intent is not to start with some sort of weird theoretical “see these diagrams, that’s why it works” nonsense.
I think one thing that is sorely missing from computer science is the hands-on part: the part where you actually touch something tangible and see it work. Sure, you can buy an Arduino and plug it into your USB port and download a program you got from the Internet–but is that the same thing as wiring up individual transistors and seeing basic logic gates working before your eyes?
So I’ve uploaded a new “Quick Video” which shows all five gates in the first “Introduction to Digital Computers” video, wired up on a bread board. I’ve even included show notes with a complete circuit diagram for all five circuits, as well as links on Amazon if you decide to do this yourself.
At the most basic level, computers are not this abstract thing. These circuits are tangible parts, working on basic principles: transistors wired in series or in parallel, outputs attached to the collector(s) or the emitters(s), base being supplied with power (on) or not (off).
Zeros and ones are not theoretical things; they represent something real: power off (zero) or power on (one).
I did some minor tweaks and reshot the opening sequence. This first in a series of videos will attempt, over the next few months, illustrate the design of a basic 8-bit computer built from transistors on up.
The entire series can be found on YouTube, and linked to the new Videos section of this blog.
As I mentioned with my last post, the goal here is to describe how computers work all the way down to the level of transistors. My goal with these videos is to show how, with enough resistors, transistors and other discrete components you could build your own working computer entirely from scratch.
Second, I see this as a foundational set of videos which launch into a second set on computer programming. One reason why I think this way is because while it’s easy for us to think about computer programming as writing some code–we never really stop to think why we write code as a sequence of instructions. We never really give much thought to “what’s under the hood” or why, for example, the most common paradigm for programming is the sequence of steps and not, for example, a Prolog-like set of assertions which is then evaluated by resolving the validity of the assertions in the list of statements.
Okay, I confess I’ve left the gear cutting stuff on the back burner while I recover from a bug I picked up while in Mexico. During my spare time I’ve been working towards a series of videos which I hope to post on this site that discuss various topics in computer science.
The goal of this first series of videos is twofold. First, I want to describe how computers work–and I mean down to the level of transistors all the way up. I want you to feel like if you had enough transistors, resistors, some discrete components and a whole bunch of wire and a lot of time and patience, you could build a computer completely from scratch.
Second, I’m trying to find my “voice.”
See, my entire point in starting this blog is to share what I know and to hopefully get others excited about computers, computer science, electronics, calculators (and that includes mechanical calculators; thus, the gear cutting stuff). And one avenue of teaching is the instructional video.
So by starting with a relatively complex topic, I hope to learn how to put together videos like this.
Practice makes perfect, right?
So here’s the video, any constructive comments are welcome.