As soon as I heard of the PiDP I knew I would have to have one. Created by Oscar Vermeulen, whose KIM Uno kit I’d previously bought, it’s a brilliant recreation of a PDP-8/I using SIMH running on a Raspberry Pi. What’s more, it has loads of blinkenlights.
So why did the kit sit in my office for eight months before I started building? Certainly work and other tedious aspects of life got in the way. It has to be admitted, though, that I was intimidated by a couple of things. First, I’d convinced myself that I had to paint the brown switches before assembling the machine (all the switches were white). And second, I was convinced I would screw up the orientation of the 89 LEDs, creating a massive unsoldering effort.
As it turned out, building the kit was extremely easy, thanks to the online instructions. Apparently, the 2016 version is even easier because it uses different switches that are already the right colour and ready to mount. The electronics are very basic – aside from the switches and LEDs, there’s a bunch of diodes, a handful of resistors and one IC.
When it comes to cabling, you’re left up to your own devices. Some people have drilled a single hole to feed in a USB cable to power the Raspberry Pi, running it headless. I don’t much like powering things on and off by plugging – I prefer a switch. I also had a hunch that I might try cramming other things into the box (hasn’t really happened yet), so I decided a nice switching power supply might be in order.
I happened to have a few DFRobot DC/DC regulator boards hanging around, and also a really classy push-button switch with built-in LED.
I put the switch in the side of the case and, in the back, a 5.5/21mm barrel jack socket. I can now power the device with any supply from 5V to 18V. The 5V output from the switching DC/DC regulator powers the push-button’s LED (I soldered a resistor inline) and the main PCB for the PiDP. Oscar designed-in an optional serial port with connections for RX, TX, +5V and GND and the latter two can be use for powering the whole deal.
It really wasn’t long – part of an afternoon and an evening – to get the thing built to this stage.
The switches are still unpainted and the Ethernet and USB ports of the Raspberry Pi are inaccessible. At first I though I’d made a mistake somewhere – whenever I powered up, the RPi would boot but then shut down again. It was late, I was tired and somehow several empty beer bottles had appeared on my desk.
The following morning, in the light of a new day and with my brain rebooted I realised that I’d misunderstood which is the ‘on’ position for each switch and which the ‘off’. I had them all down instead of all up. Oscar has tweaked the SIMH PDP-8 code so that having certain switches on will gracefully shut down the machine. With all the switches off, it worked as advertised.
On the second day (this is starting to sound biblical) I used some rubbing alcohol and cotton earbuds to remove the red dots from the switches. Then I broke out the Humbrol enamel modelling paints. I haven’t used Humbrol paints since I made model aeroplanes, way back in my forties (just kidding). Anyway, I’d bought a tin of A0103 Tan Gloss no.9. From colour charts, this seemed to be a good match. I also bought white gloss, but then decided to leave the white switches unpainted. As delivered, they’re a kind of ivory colour which seems very retro somehow. It took two coats to get a reasonable finish on the brown switches. It’s not perfectly smooth, but then neither am I.
The next step was to fire up the drill. I made a row of overlapping 16mm holes in the left side of the case, then scraped away with a craft knife to smooth things out. It was easy to do this because the case is made of bamboo and easily workable.
That made the Ethernet and USB ports available. The only other thing to consider was the HDMI. I knew this machine would spend most of its life running headless. But every now and then it’s handy to be able to plug in a monitor. The problem is the lack of space inside the case. No matter how I tried – even using a variety of 90-degree HDMI adapters – I’ve yet to find a way of plugging in an HDMI cable. So I’m leaving that for another day.
I’m ridiculously pleased with the on/off switch. The cool blue glow is very hi-tech. With the main LEDs blinking away, you can convince yourself that something important is happening.
Oscar’s code is very easy to install. There’s a hacked version of SIMH to compile, plus some code that runs in parallel to read the switches and blink the lights.
But while I was keen to learn something about how PDPs work – never having used one – I had a hunch that I wouldn’t be spending a lot of my life in the OS/8 world. So, rather than having the machine boot into SIMH and the PiDP mode by default, I hacked away at some scripts. The Raspberry Pi boots up normally and I can switch into PDP mode just by running a Bash script. One of the members of the forum devoted to the PiDP came up with a ‘deep thought’ program (and other members have since improved on it). This randomly flashes the LEDs, but unlike SIMH doesn’t use much in the way of resources, especially CPU cycles. So I have the machine run that at boot time.
Also, rather than having user ‘pi’ run the SIMH PDP-8 simulation, I created a user ‘pdp’. I’ve also created other users – ‘altair’, ‘altairz80’ and ‘vax’ so that I can use the PiDP as my SIMH machine. I’ll configure those so that they run their respective simulations whenever you SSH into them.
In the absence of a monitor, I’ve put the PiDP on top of another project – the 1950 HMV radio I’ve adapted as a Raspberry Pi case (and details of that will be coming soon).
The 5in display of the HMV is modest, but at 800 x 600 it’s still more resolution that you might expect from a PDP! And it means I can watch the LEDs flash as I use the machine, SSH-ing from the HMV to the PiDP. What’s more, the HMV even has a few blinkenlights of its own. Bliss!