While most people who build their own computer from chips want the finished product to do something useful, there’s something to be said about a huge bank of switches and a bunch of blinkenlights. They’re incredibly simple – most of the time, you don’t even need RAM – and have a great classic look about them.
[Jim] wanted to build one of these computers and wound up creating a minimal system with switches and blinkenlights. It’s based on the Z80 CPU, has only 256 bytes of RAM, and not much else. Apart from a few extra chips to output data and address lines to LEDs and a few more to read switches, there are only two major chips in this computer.
With the circuit complete, [Jim] laser cut a small enclosure big enough to house his stripboard PCB, the switches and LEDs, and a few buttons to write to an address, perform a soft reset, and cycle the clock. One of the most practical additions to this switch/blinkenlight setup is a hand crank. There’s no crystal inside this computer, and all clock cycles are done manually. Instead of pushing a button hundreds of times to calculate something. [Jim] added a small hand crank that cycles the clock once per revolution. Crazy, but strangely practical.
[Jim] made a demo video of his computer in action, demonstrating how it’s able to calculate the greatest common divisor of two numbers. You can check that video out below.
48 thoughts on “A Z80 Computer With Switches And Blinkenlights”
uh, that’s cool! I think I’m going to build one :D
A mechanical clock – that’s awesome. Makes me think someone needs to build a steampunkish computer with a swinging grandfathers clock pendulum!
Also vaguely reminded me of an old apple ][(e?) hack where someone coded a pre-emptive multitasking OS. To trigger the IRQ for the next timeslice, he built an external clock with a speed control knob that let him manually manage the timeslices.
I really wish I knew enough about clockwork to pull that off. Might just be incentive enough to learn, in fact.
No clockwork needed – just use a rotary encoder. Cheap encoders put out 12, 18, and 24 pulses per revolution.
I created one of those after being exposed to the PDP-11/23 as a 11-12 year old. I even had it online with two modems, I called it PSX-11 and it had a forum,multiuser (3) chat, command line with batch programming, multiple accounts with their own drive space, etc.. all based on the RSX-11 OS syntax and the behavior of a forum/BBS on the PDP-1090 I had access to. all running on an apple IIe with two disk drives and two hayes modems.
Pretty cool I thought as a 11 year old in the mid 80’s.
Which reminds ME of what I saw on the Digital PDP-10 (KA-10 processor): it had a speed control knob, which you could use to slow the CPU WAAY down – don’t remember how far, but this was a debugging aid, and it was slow enough you could see individual instructions executing, looking at the blinkenlights panel. The hardware manual warned you, though, that since the CPU was asynchronous (i.e., different instructions had different execution times), turning the speed knob all the way up would cause some instructions to terminate before they were completed.
It would be cool if the clock was just a crank.
Those toggle switches will produce lovely little blisters on your fingers if you use them over and over again to key in the bootloader, the flat handle switches on the IMSAI are much more user friendly
How do you tighten all those nuts when they’re sitting that close together?
Now I won’t be able to sleep tonight…
Oh wow… he must have tightened them all in SEQUENCE. He was probably able to get like 1/16of a turn on each, before having to go to the next one in the line. That must have taken forever. Just a tiny bit of a turn on each one to finally set them all. UGH!
By twisting the part on the inside instead of the nut.
Exactly, from the inside out. Had to solder all the switch wires prior to installing and tightening from the inside…..I assume. Built a Z80, Popular Electrnonics I think. Not as cool as this one though?
No, the switch body is much larger than the nut. You couldn’t twist more than one in this way.
They look too close together, but there’s actually JUST enough room to turn one nut if the one next to it is in the right position. I didn’t measure it. It was just plain luck that that worked.
You lucky bastard ^_^
Romless? Try ramless! http://arbitrary.name/blog/all/elec8.html
Or how about this one, with no RAM or ROM (i.e. no memory at all)! Yet, it is running a program and doing useful things. Specifically, it scans an 8-digit 7-segment display to produce messages. http://www.sunrise-ev.com/membershipcard.htm#nametag
Wow! Thanks for that! (I wonder if HaD will actually post about it…)
Why is this article tagged 8080 and Z80?
It doesn’t seem to have ANYTHING to do with a INTEL 8080 CPU, only a Zilog Z80.
The tags aren’t there for you.
The Z80 is binary compatible with the Intel 8080.
That’s right, As I remember it was one of the selling points that the Z80 was a superset of the then-popular 8080.
Quite right, it has nothing to do with the 8080. I think was tagged with this because I mentioned the Altair 8800 as inspiration for the panel switches.
Geez-this sight corrects my intentional misspells, but correct Brian’s. It’s a conspiracy.
I guess the “computer” tag isn’t for you either.
Meant to spell it “computer” like Brian.
Nice build! These kits might be a nice way to get an easy start into Z80 computing:
this is cool. I like this.
very cool, the hand crank is a nice touch!
The crank is a lovely idea. But now I have an image in my head of a third world country, where a bicycle dynamometer is powering a small computer. With a geared attachment turning the clock crank.
Similar to the shortwave radios that you wind up.
What is the lowest power computer system? I’m guessing something based on a calculator.
Looking at the video, the hand-cranked clock generator is clearly putting out more than one clock pulse per revolution.
Reading the article, he mentions that the clock line is connected to the least-significant-bit of a hex, or decimal, rotary encoder switch. If hex, then it would pulse high and low 16 times per second (8 high, and 8 low.) A very imaginative way to generate very low-speed pulses for a computer.
A great project! I particicularly like the instruction set summary on the cover, and the hand crank.
On using the crank to power it: A CMOS Z80 could be used to get the power consumption down. The LEDs would then be the biggest power hog. Discrete superbright blue or white LEDs could be used; the best of them are visible at 100 microamps.
For the ultimate in low power, I’d use an 1802 CPU, with an LCD display. I’ve gotten these to run on less than 2.5v at 1 microamp!
Be advised, some CPU’s have a minimum clock speed. Has to do with refreshing dynamic memory.
Yes, some CPUs have dynamic REGISTERS, so this wouldn’t work. The Z-80, however, was fully static, and had no minimum clock speed.
Modern CMOS Z80s are completely static, and work at 0 clock speed. But the early NMOS Z80s might not. My 1982 Zilog Z80 data sheet says TwCl is the clock low time, and is specified at 2 usec max. TwCh is the clock high time, and has this note: “Although static by design, TwCh of greater than 200 usec is not guaranteed.”
This basically means “it might work”. :-) If it doesn’t, try another chip; especially a *newer* or CMOS chip.
Thanks for the correction.
Yes! Modern CPUs have dynamic logic, so can’t be clocked below a certain frequency. But interestingly, a Z80 is fully static but also has refresh logic and can use DRAM, if you clock it at the 6-10MHz range it’s capable of rather than the few hertz I’m using it at.
where i can find a full schematic for this project?
i want to build one
what this think can do
I am new to Hackaday. I am looking for help in building a front panel Z80 computer similar to this one, but a bit bigger. Is there a place on hackaday for a development forum?
Also look at the “classic” front panel designs for the Altair 8800 and IMSAI 8080. The schematics are all online, and you can even (sometimes) get PC boards for them from sites like N8VEM. They were originally designed for the S-100 bus with an 8080 CPU, but were later upgraded to support the Z80, as it was also a very popular CPU on this bus.
A similar project here: https://youtu.be/Ni3Ta1KuqTM
Please be kind and respectful to help make the comments section excellent. (Comment Policy)