Back in 1968, a book titled “How to Build a Working Digital Computer” claimed that the sufficiently dedicated reader could assemble their own functioning computer at home using easily obtainable components. Most notably, the design utilized many elements that were fashioned from bent paperclips. It’s unclear how many readers actually assembled one of these so-called “Paperclip Computers”, but today we’re happy to report that [Mike Gardi] has completed his interpretation of the 50+ year old homebrew computer.
The purist might be disappointed to see how far [Mike] has strayed from the original, but we see his embrace of modern construction techniques as a necessary upgrade. He’s recreated the individual computer components as they were described in the book, but this time plywood and wheat bulbs have given way to 3D printed panels and LEDs. While the details may be different, the end goal is the same: a programmable digital computer on a scale that can be understood by the operator.
To say that [Mike] did a good job of documenting his build would be an understatement. He’s spent the last several months covering every aspect of the build on Hackaday.io, giving his followers a fantastic look at what goes into a project of this magnitude. He might not have bent many paperclips for his Working Digital Computer (WDC-1), but he certainly designed and fabricated plenty of impressive custom components. We wouldn’t be surprised if some of them, such as the 3D printed slide switch we covered last month, started showing up in other projects.
While the WDC-1 is his latest and certainly greatest triumph, [Mike] is no stranger to recreating early digital computers. We’ve been bringing you word of his impressive replicas for some time now, and each entry has been even more impressive than the last. With the WDC-1 setting the bar so high, we can’t wait to see what he comes up with next.
From the learning point, do you think building and operating in a computer like this one can have any value today ?
The simpler and easier to understand each concept is, the easier it is to grasp the whole.
What computer did you ‘cut your teeth on, and how well did you understand it’s internals?
My start was with a Minivac 610 back in ’63 in the 5th grade.
opps – back in ’61 and it was a minvac 601.
In case you haven’t see this yet: https://www.instructables.com/id/Minivac-601-Replica-Version-09/
I HIGHLY recommend that anyone who’s reading these comments check out this free course on building a computer plus operating system plus programming language plus compiler from scratch! I’ve never had so much geeky fun as when I worked through the first chapter or so!!
https://www.nand2tetris.org/
Wow. Just watching the teaser video for this, if the course really covers what he says it does, this is what everybody interested in computer science should be doing. I was missing some of the control aspects of CPU design until I watched Ben Eater’s most excellent series on building an 8 bit computer, which covers all of the hardware aspects by sticking to the fundamentals and not getting bogged down in the optimizations that have become part of standard CPU design. But Eater stops at assembly language, and I think I know why: developing a compiler for a completely custom instruction set is another big step. Shimon Schocken promises to cover that AND a basic (but not BASIC!) operating system, in this course. Okay, I’m willing to spend some time on this. I’ve long felt that both C and Python are more complex than they need to be, having a great number of features I haven’t used in forty years of working with them, so I’d be interested in a low-level compiled language that allows me to explore different instruction sets without being stuck in assembly language.
Oops – my comment was about the nand2tetris course linked by CMH62.
I ‘cut my teeth’ on a Digi-Comp I back in 1965.
So did I, but my teacher would get mad because I spent my class time trying to figure out the best way to program Tic-Tac-Toe.
And yes, it would win most times if it moved first.
That’s a good question.
Back then, computers were pretty simple, and the difference between this and a “real computer” wasn’t so great. You would go through the basics to get to the “real” computer.
Now, computers are everywhere, and most people use them without getting near the bare metal. Even if you start with basics, there are way more levels above it like fifty years ago.
Besides, the basics are a lot more available than back then. Instead of a rare book, there is endless material.
Another consideration is that fifty years ago most people had no access to computers. So something like this gave you a tiny bit of access. I remember in 1968 or 69 reading a story in the paper about two kids who “built their own computer”. That was a big thing then, though in retrospect they must have built something like this. I know at the time I.decided I wanted a computer for myself, before it was possible.
Now, computers are everywhere, you can get a “real” one without effort or real cost. You don’t need a terribly simple computer to get a computer.
So I suspect much of this is nostalgia rather than learning.
I remember the article you mentioned. They built the paperclip computer from the book. I was also lucky enough to have had a copy of that book at the time.
For many computers are pure magic. I believe at least a significant minority would find learning about innards in a hands one way would be a very rewarding process.
I think it’s even more valuable than it was back when the book was written. Computers today are even closer to magic than the Big Iron of the 1960s was. Today we don’t even get toggle switches and blinkenlights. Just LCD panels with pixels so small you can’t even discern them, and glass screens that make the computer do things when you touch them.
It’s true that Arduino does an admirable job of demystifying things, but even with that, there’s a gap between the code you write and what happens when you run it. The closest anybody comes to really explaining things is Ben Eater in his YouTube series, where he goes down to the gate level on designing and building an 8-bit computer. But even THAT is still a bit of hand-waving, for people who don’t know electronics. With a paperclip computer, the only thing you have to take on faith is that if you make a complete circuit out of a battery, a light bulb, and a couple pieces of wire, the light bulb will light. The rest you can SEE with your eyes and mess with with your hands.
If you’re writing drivers for any iot/Arduino/micropython/etc./etc. circuitry then you are usually doing a lot of shift registering and bit banging. This is only one step above what he’s doing here so while this knowledge isn’t useful for everyone, this project is certainly a demonstration of a mastery of knowledge that’s useful for some in this modern day.
I’d stick with Arduino, and perhaps learning machine code on an old 1980s 8-bit computer. That’s all pretty close to the hardware. Particularly I started on the ZX Spectrum, where much of everything is done in software loops from the CPU, only minimally decoded and helped by hardware. William Tang wrote a book called something like “Spectrum Machine Language For The Absolute Beginner” that successfully teaches you machine code from scratch by the end of the book. It very much lets you see the relationship between software, binary numbers, and electrical voltages switching gates on and off.
Modern computers have way too much abstraction, which is helpful to the companies who actually want to produce finished products for them, but too abstracted from the real bits and voltages.
I suspect this one has too many stretches, where real principles are compromised for the sake of making the thing out of bloody paperclips. And surely it’s going to be unreliable? You also have to do much of the analysing and logic yourself, following procedures to read lights then set switches. I have a digital copy of the book but haven’t tried actually making one, it inspires me to think though that missing out one arbitrary step, or misunderstanding it, would lead to vexing errors later.
It’s a shame all their effort didn’t go as far as figuring out home-brew relays. You can make an actual computer with those. You’d just need lots of enamelled wire and some nuts and bolts, some steel, some not. You could create useful adder circuits and maybe join blocks together to make an actual semi-automatic computer, with perhaps the drum still being moved manually to keep it all ticking at a comprehensible rate. And the drum itself looks like trouble waiting to happen. All a lot to ask of a kid who thinks he’s gonna make himself a robot pal and ends up with an infuriating pile of paperclips.
For people interested primarily in software, and in making use of microcontrollers to control simple hardware, something like Arduino or an 80s home computer is perfect. The value of projects like this, and like Ben Eater’s most excellent YouTube tutorials, is for people who want to really understand what is happening in the hardware, who might be interested in implementing their own CPUs, using FPGAs or even simpler programmable logic. Of course, nobody is going to implement anything to actually USE, on a paperclip computer – they might as well work things out on paper.
I’m loving the discussion of the learning value of building artifacts like the “paperclip computer” in today’s world. Truthfully I don’t even know where I am on the “not relevant” -> “very relevant” scale myself. However I hope we can all agree that at the time they were first introduced, they had a significant impact on improving computer literacy. Edward Alcosser, James P. Phillips, and Allen M. Wolk were pioneers. They helped to teach a generation of young people about “Computers” at a time when access to a real 60s era computer was out of the question for the average person.
I know that this is not exactly what you are asking, but my personal experience building WDC-1 was very valuable. Because I chose to use some different technologies in my implementation:
1) I learned a great deal about relay based computing when designing my ALU.
2) I got to mess with 7400 series logic chips which I had never done before.
3) I discovered that mostly mechanical encoders rock.
4) I found out that Binary to BCD conversion is hard, but there are some cool ways to do it.
5) I had fun.
IDK about learning value but i had fun watching you create WDC-1 :) I hope You’ll create more projects like this
Thanks Peter.
Thanks. We have fun too.
I was surprise by your using of a drum as storage device, and not tape. The story of the Mel came into my mind immediately, as he use machine language as well as drum.
For teaching value, I think it is still relevant. Guess you may need to introduce IPL and the drum first. Then load address A, B … Bare metal.
In a sense make the step by step becomes button and light would be useful. That is what I feel when I do the first microcontroller course in coursera decade ago and light up the led. It is so different world from the nearly 30 years programming I did (even I had involved 6502 and Ibm 370 assembler).
Anyway. Fun.
Thanks for taking the time to reply Dennis. I was big 6502 fan back in the day and also did some 370 assembler ;-) A similar teaching tool to WDC-1 was the CARDIAC “cardboard” computer (https://www.instructables.com/id/CARDIAC-CARDboard-Illustrative-Aid-to-Computation-/). One thing that I liked about it was that you could actually write a bootloader for it. Cool.
Yes. Computers still work the same as they did in the 1940s, so this is still relevant. To be REALLY relevant, though, we need a multi-core paperclip computer with a pipelined architecture and speculative execution…
https://www.computerhistory.org/collections/catalog/102654910
I stumbled onto this newsletter that began in 1966 called the Amateur Computer Society.
Covers a lot of the early computers that people built at home and the tech they came up with.
Very cool!
There was an article in Byte about tge group. Can’t remember a date, but I think before 1981, and not in the first year or two.
Likely it got mentioned in a magazine when it was a new thing. I can’t imagine any other way they found each other, owning/building your own computer in the sixties was extremely rare.
As I recall from the Byte article, ACS was a mix, people building and others had scrounged up a computer I think mostly needing work. I think Hal Chamberlin was a member, he was later known for his writing about comouter music. Roger Amidon, and his “spider” computer was in there, that mass of wire shown on the cover of Byte in 1977.
As an aside, “ECS”, Carl Helmer’s newsletter about his computer system that caused him to become editor of Byte, that’s available online. I guess at archive.org, but can’t remember.
Oh no – HUGE rabbit hole. Down we go…
Wait !!! … take this shaving kit, in case there are any overly hairy yaks.
I LOOOOVE the program memory and the “core” memory. That slide switch is pretty fancy. What I would suggest for the program memory is to add a ratchet and pawl mechanism to advance it one position with each press of a lever. In the video, it seems to be a bit tricky to get it to the next word, since there is an intermediate position between each word.
Great idea ratchet and pawl. If I ever get around to building the “high density” program drum I’ve been thinking about I’ll give it a try.
I’ve been wanting to see someone add automation to this design. No matter the form it takes, building to the book’s design is essentially an electric abacus. This “computer” doesn’t do anything without manual intervention at every step. (Which is why I never built one after reading the book and discovering what it is and is not.)
What it does do is teach the operator the functioning of the most basic elements of an electronic computer via requiring literally hands on operation.
This teaches the basics of how a computer works. Why clock cycles matter and what the magic is doing. Moving a value from the core, to the ALU to the output. The idea of stored memory instructions and how they matter. If you have ever thought about how a computer works on the lowest of levels, this is the tool to do it with.
Maybe more for hardware engineers than software engineers. I am sure the instruction set could be implemented in JavaScript if someone were so inclined. This is about how values move through the various parts of the computer.
All of that stuff really does matter – it lets people know what a computer can, and cannot, do. I really liked the CardIAC paper computer, for that very same reason – the operator had to do ALL of the work, but really learned how the computer worked.
I can’t remember the title, which happens, but I remember reading that one, and perhaps one other. But that one did run on DTL as opposed to TTL families which were just becoming current then.
My brain looks at this and thinks, implement a truth table for the drum storage in relays, segment and spread out the instructions on a larger drum, use the clock bits to latch in changes. But that kind of defeats the spirit of the manual project. (:
That’s a fantastic project, but the video presentation is as boring as batsh|t.
If you planned it, and presented with a bit of pizazz, I would have watched it from end to end, however I watched 30 seconds, then grabbed 10 second bits every two minutes, and still understood what was going on !
If you made the blocks as a subscription kit, you’d sell thousands – but get someone else to do the tutorial.
I’m in my sixties, time is too valuable !
Thanks (I think). I’m in my 60s as well and time IS too valuable to plan and execute a really slick video :-)
I think your video is fine. I watched all of it.
Compared to so many of the projects that are “documented” ONLY with a YouTube video, I’d much rather this approach of actually writing up all the details in a way we can actually go over and learn something from.
this is great, I love it!
Thanks for posting.
also very interesting to see in operation is this video (from the same youtube channel):
https://www.youtube.com/watch?v=EURnpaVIK04
Would have loved to see this implemented without resorting to using an Arduino.
Then do it, and let us know when it’s done.
Mike – This is very cool. We have a Comspace CT-650 (https://history-computer.com/ModernComputer/Personal/Arkay.html ) on display in our museum. Ours is in Gallery 6 at https://museum.syssrc.com/album/pan/#.
I would love to purchase an instance of your version of the paper clip computer for our museum
You know, as long as you already have a microprocessor in there, you might as well add servos to rotate the drum, flip the switches, and move the slider on the core memory.
In the high-stakes game of maker one-upsmanship, henceforth all instances of “could have done it with a 555” should be replaced with “could have done it with a 3D-printed cam and some reed switches”.