When I was a teenager, I wanted to get an Altair 8800 computer, but I couldn’t afford it. Now, I can. But I wanted something smaller, quieter, and about a million times faster. So I made it. I consider this the crowning achievement of my mid-life crisis nostalgia kick.
The Altair 8800 was, depending on your definition, the world’s first personal computer. It came out in 1975 for $440. That sounds like nothing today, but back then, money was worth more and I was worth less. There was no way I could buy one.
Today, I have the money, and I even have the opportunity: old Altairs come up for sale on eBay about once a month and they sell for a few thousand dollars. But an Altair is, physically, a big computer: 17″ x 18″ x 7″. Add the external floppy disk drives, and the size doubles. I don’t have space for it. Also, I’m no longer interested in writing software in 8080 assembly language or BASIC, nor do I want to play the old text-based games. I wanted a computer that looked like an Altair 8800, but was smaller, ran Windows 7, and ran it fast.
You can watch this video to see the end result of my labor. For those who care about how I built the system and what’s in it, read on.
I started by buying a case on eBay. This was the same type of case that the Altair 680, a smaller sibling of the Altair 8800, came in. It’s only 11″ x 11″ x 4¾”; about one quarter the volume of the 8800! It qualifies as a Small Form Factor case.
The case I bought had been used for some sort of device – it looked like a homemade signal generator. I have no idea if an Altair 680 ever actually lived inside my case (I hope not; it would’ve been sacrilege to destroy it). Anyway, I threw away the signal generator stuff.
Next, I got a high resolution picture of the 8800’s front panel off the web. I took careful measurements of the sizes and locations of the holes for the switches and LEDs, and of the text itself. In a CAD program, I recreated the front panel, scaled down to fit in the 680 case. I sent it off to Protocase for manufacture.
I needed a large printed circuit board for the front panel components. I used the open source KiCad to design a circuit around the Microchip PIC 18F4550 microcontroller. It uses a USB connection to talk to the Windows computer. I multiplexed the LEDs so that there’s never more than four on at a time – that keeps me within USB’s 100mA budget.
All the switches are multiplexed to the microcontroller except the two AUX switches. Those were unused in the original Altair (reserved for future expansion). I wired one AUX switch directly to the PC motherboard’s power switch connector, and the other to the motherboard’s reset connector.
I had thought about using the front panel’s On/Off switch for power and its Stop/Run or Reset switch for reset. But the AUX switch is a momentary contact switch (necessary for turning modern PCs on and off), whereas the On/Off switch is not. Also, I wanted to be compatible with Altair32, an Altair emulator program that can make use of the On/Off and Reset switches on the front panel.
The software on the microcontroller senses the On/Off switch and, if it’s On, flickers the lights in a way vaguely resembling a working Altair 8800. If the switch is Off, all the LEDs turn off except for two: one to indicate power and one to indicate disk drive access. The microcontroller also sends messages to the PC whenever a switch is flipped. I wrote a program that can launch applications on the PC in response to front panel switches. I also downloaded Richard Cini’s Altair32 program, which can emulate an Altair 8800 and run all the old programs. I modified it so that it controls the lights on my front panel and responds to the switches.
For the PC, I used a Mini-ITX motherboard, a dual core hyper-threaded Core i5-660 processor at 3.33GHz, an 80GB solid state drive, a 500GB hard drive, 4GB RAM, and a compact, TFX-size, 300W power supply. The DVD drive and front ports (USB, audio, FireWire) are in external boxes under the computer.
I was very concerned with cooling the interior. I didn’t want noisy fans, but I was putting a fair amount of electronics in a small space. I chose the Core i5-660 because it includes the graphics processor but still runs at a modest 73W. The hard drive is a Western Digital Caviar Green drive, which is low-power (lower speed, too, probably between 5400 RPM and 7200 RPM, but still not bad, and I have the solid state drive to compensate). I used a CPU cooler with a vertical fan. The CPU fan moves air in a direct line, in from the case’s side vent, over the CPU heat sink, and out to the power supply’s intake fan. I couldn’t ask for better airflow. Just to be safe, I made the back panel out of perforated aluminum, to allow more circulation.
The result exceeded my expectations. When the computer starts up, the CPU fan runs at full speed for a second, and is very noisy (I think of it as roaring to life). But as soon as the BIOS software checks the temperature, it slows the fan down to a very low speed. This is the quietest computer I’ve owned in a long time. In normal operation, the CPU temperature stays at 25°C or less. I ran a program to calculate Mersenne primes, which pushes all the CPU’s cores to 100%. The fan got loud, but the CPU temperature stayed below 55°C. Sweet!
Performance is sweet, too. The operating system and programs are on the solid state drive, so boot-up is fast and applications start instantly. I’ve finally broken Alexander’s Law: “the faster the processor, the longer it takes to boot up”. Of course, with the graphics processor integrated into the CPU, it’s not a high-end gaming system (which is fine with me; I have another gaming system).
And of course, I have the coolest retro box on the block. Even my wife is impressed (or at least pretends to be).