My Raspberry Pi Thinks It’s a PDP-8!
Constructing the PiDP-8 minicomputer front panel for SimH.
Some time (2 years?) ago I purchased a PiDP-8 kit, an extremely cool Raspberry Pi (896-8660) powered project that combines an “operator front panel” comprised of switches and indicators, with the SimH multi-system computer history simulator, to create an authentic looking, albeit miniaturised, PDP-8. In this post we take a quick look at the PDP-8 and SimH, before moving on to finally assembling the PiDP-8.
But what is a PDP-8 I hear you cry? Well, a 12-bit machine introduced in 1965 and seemingly the world’s first successful minicomputer. Which is to say not a mainframe computer filling up a room with many racks of equipment; something that could sit on top of a desk, no less!
And what a beautiful thing the original “Straight-8” was, with logic modules on display behind hinged acrylic doors and a base festooned with indicators. Which it ought to be, considering it was priced at $18,500. That said, such an iconic computer, it has gone on to become highly collectible and you’d be lucky if you could buy a Straight-8 in good condition now for the same figure.
Image source: yaymii.org
The later PDP-8/I, introduced in 1968, doesn’t quite have the same retro-futuristic appeal, but does feature an enticing selection of indicator lamps and toggle switches. While these can be had for much less, they are still highly collectible and fairly hard to get hold of. On top of this they are rather bulky and a great deal more so if you add useful peripherals, such as a tape punch and reader.
Image source: vintagecomputer.net
SimH, the Computer History Simulation Project, is a fantastic collection of software that allows you to use modern hardware to simulate a plethora of classic computer architectures; from the legendary 1974 Altair 8800 microcomputer that ran Microsoft’s first ever product, Microsoft/Altair BASIC — to that venerable 1980s minicomputer powerhouse, the DEC VAX. Many other architectures are supported, including the incredibly successful PDP-11 and, of course, its ancestor the PDP-8.
SimH can be compiled to run on Linux — very well too on a Pi! — BSD and other UNIX platforms, and there are even Windows executables. Support is also included for simulating useful peripherals, such as tape, card and disk storage, and in some cases network interfaces.
However, it’s all well and good using a terminal window to interface with a simulated computer, but nothing really beats the experience of having the switches and indicators of an operator front panel!
Assembling the PiDP-8
Note: if assembling your own kit please consult the official assembly also.
The kit comes packaged in its bamboo enclosure and upon removing the front panel there were a couple of bags of components, along with the main PCB and a smaller switch bracket PCB.
One bag contained a lot of yellow LEDs, along with resistors, diodes, an IC and screws.
The second bag was filled with rocker switches, featuring what I’m guessing are custom plastic caps.
As previously mentioned there are two PCBs, but the smaller one is really just to aid switch alignment — how frustrating it would be if they were all fixed at odd angles.
Diodes and resistors were fitted first.
LEDs were fitted next — 89 of them to be precise!
Switches were lined up using the PCB bracket and soldered to this to secure them in place.
The pins were obviously soldered to the main PCB.
By carefully following the instructions, checking and re-checking the alignment before soldering pins into place, a neat row of switches was obtained.
Next the Raspberry Pi header and stand-offs were fitted.
While the kit can be used with older and smaller Raspberry Pi boards, a version 3 Model B (896-8660)was used, as this integrates wireless and with its additional processing power is able to simulate incandescent lamp glow, while also running the PDP-8/I simulator at 24x times the speed of original hardware.
A ready-to-run original disk image is provided by Oscar Vermeulen, creator of the PiDP-8. However, it’s now recommended to use the new and updated images from Warren Young.
The disk image was written out to an SD card, this was inserted into the Pi and power applied. After a short delay, the front panel sprung into life as the SimH simulator started.
The supplied wooden blocks were secured to the underside of the PCB, with one of these requiring — as the instructions suggested might be the case — a piece of cardboard taping to it in order to raise the board a little higher in the enclosure. Next, the wooden case was drilled where screws would secure the assembly in place and a Micro USB cable would enter for power. Finally, the assembly could be fitted together
I must say that Oscar has done a fantastic job with this kit, and in particular with the attention to detail paid to the switch caps and printed front panel.
Now that we have our functional and eminently aesthetically pleasing PDP-8 simulator, in a future post we’ll take a look at running programs on it. In the meantime, if classic computer architectures are your thing, you might be interested in taking a look the following posts:
CommentsAdd a comment
The PDP8 was a great machine to learn how computer hardware really worked. I did four weeks at Manchester with DEC on two PDP8 courses, and we traced every logic path through the machine (try doing that on a Pi). They put 'faults' on by putting slivers of tape over edge connector fingers, and we had to identify the 'fault' just using the front panel switches and circuit diagrams.
By the end of it you really understood how the hardware executed the instructions, and it was great fun at the same time. I've always considered these courses one of the most valuable contributions to my career in electronic engineering.
Those were the days. Computers were real. We had (University of AZ) a PDP-9. 18 bit version of the PDP-12. Lights and switches, punched tape in and out. Teletype for a console. Core Memory. I thought it fabulous then, even more so know. Sadly, it is almost certainly in a landfill somewhere.
For you kids--core memory was non volatile. Boot time--unless you were reloading--ZERO. Push "Start" and it executed the next instruction after where it was when you pushed "Stop" and shut it down.
@lichau and wasn't core memory minute ferrite rings with an X and Y bit addressing wire and a third sense wire to read the 0 or 1? I believe they were hand made by Spanish silk workers as they were the only people with the sight and dexterity to thread the wires. Those were the days.....
[Comment was deleted]
For the longest time i had a KA-10 console, bringing it with me from house to house as i moved. Then i figured that i would never have a use for it so tossed it. Didn't even bother to scavenge the switches. Who woulda thunk i could have resurrected it with something so small and cheap and faster? C'est la vie.
Ah, the PDP/8. It was back in the 70's. I was a tech in a telephone equipment factory. I was responsible for the Omni2000, a rack tester that would check a newly built equipment rack for wiring errors. It had some 7000 relays and a PDP8/e. Just for fun, I got a book on PDP8 assembly language programming and learned to program it. I wrote a program that would echo characters back to the terminal. As a tech, this was useful because it verified that a lot of stuff was working. Our PDP8's had these gorgeous core memory cards, with tiny magnetic cores weaved into a mesh of wires. There was an accessory board that would make the machine remember what it was doing when power was removed. So you could cycle power, and it would just pick up where it left off.
To start it up from scratch, there was a bootloader program that you would key in to the front panel flapper switches - click,click,click....click...DEPOSIT! I hand disassembled that bootloader program, and it was a marvel of efficiency. It would actually eat it's own initializer code and use it for data storage.
Well I HAVE DEC PDP 11-34's, VAX 730's and VAX 750's, also APPLICON CAD-CAE-CAM systems, Mitsubishi monitors, VT100's, Digi-Data Tape drives, CDC and Memorex full size removable hard drives, ETC. - anyone interested? They're in Barstow CA, USA. Larry LEHenson (at) msn (dot) com
Not sure what happened to my earlier comment .... The Intersil IM6100 was the first micro I ever programmed in 1975. It was CMOS so low power. The system was a data aquistion unit and had to be programmed by toggling in the binary to battery backed RAM. Programming in numeric machine code with no assember - youngsters don't realise how easy they have it! The system did its job (even after one of the engineers put the battery round the wrong way and wiped out the whole system, had to toggle it all in again...)
I built a PDP8 back in 1977 using the Intersil 6100 chip-set when I did an industrial placement with Wildt Mellor Bromley in Leicester (note it closed one of its factories in 1977, it staggered on for a little bit more).
It was for controlling patterning units on a circular knitting machine via direct magnetic pulse selection - I wrote a dissertation on the subject comparing this with an indirect method of selection using flipped segments on secondary small rotating drums that was Stibbe's engineers preferred method.
These drums were the standard method of patterning using fixed arrays of pins. Due to a number of considerations (heat/lubrication/friction/rotational speed/magnetic pulse stability/&c.) the move to making them programmable on the fly was not the same order of magnitude complexity as trying to manipulate each knitting needle directly.
My analysis came out in favor of the indirect method - my dissertation was placed under restricted access citing commercial sensitivities!!!
My favourite ole timer Computer. I worked on the PDP 8, then the 11 then the Eclispe.
Such a reliable machine....but expensive. I mainly programmed in Assembler, very rarely in Focal and, purely out of interest, Dibol. A brilliant machine - a pity DEC is no longer with us. @Boss , Ah yes, that console switch concert to start the IPL.
Memories... Think it was a PDP8 I learnt my first machine code programing and interfacing on. It was around1965 but it had piano keys to load the boot loader which from memory allowed the teletype or punch card reader to input real code.
I had done "higher level" assembler code on an ex town hall computer (using paper tape), but what I recall most on this huge raised floor computer was the engineers diagnostics and control panel. It provided the facility to raise and lower the logic supply voltage which allowed pending failures to be identified before they occurred! Is this technique possible now?
At the console you could also select individual address and data lines to listen to! Not for music although it was fun, but again diagnostics - I now wonder how this would have helped!