PiDP-11: RECREATING THE PDP-11/70
Building the PiDP-11 should take about 6 hours. Tools required: Soldering iron, side cutter, Phillips screwdriver.
1 PCB, 1 case, 1 acrylic front panel, 1 back panel, 1 base mount
11 red, 13 magenta toggle switches,
1 white, 3 red & 2 magenta momentary switches
2 brackets (1 item, snap into two) to mount/support switches during soldering
64 red 5mm LEDs + 64 LED spacers to mount them higher on the PCB
1 shield to push LEDs into their exact space and keep them there
2 rotary encoders, 2 knobs
1 key switch with mounting nut and key
1 40-pin extra-height Pi connector
1 UDN2981A IC or equivalent & 1 IC socket
12 resistors (390 ohm), 6 resistors (1K ohm, or 820 ohm in recent kits)
5 M3 screws, 5 M3 nuts, 5 brass M3 10mm hex spacers to mount PCB
After September 2020: 5 extra M3 nuts to add on the hex spacer, see below
4 M5 screws to mount back panel
3 M2.5 bolts, 3 M2.5 nuts, 3 M2.5 nylon hex spacers to mount the Pi
There are some spare parts in the kit, as well as some zip ties.
Missing from the picture is the back panel, seen at the page bottom
Important change in kits - please read
From September 2020 onwards, the acrylic front panel has a thickness of 2mm, instead of the previous 4mm. Please check your kit.
To compensate for the thinner front panel, the 5 brass spacers used to fix the panel into the case then need an extra nut. See the picture; this is important but not shown in the Youtube videos.
In kits that have a 2mm acrylic front panel, the 5 brass spacers MUST be extended with a nut.
Beige-o-Vision made a brilliant 4-part series on constructing the PiDP-11. Thank you, Colin! That work will save many hours for many people!
You should of course read the detailed instructions below and certainly note the Important Change above, but to start:
The series pretty much describe all the things you should know. Only two comments from my side: First, you won't need to clean the solder pins of the switches, unless they are have a matte, dark sheen on them. Very unlikely, it occurred in an early batch of kits though. Secondly, it is best to put some more insulation between the Pi's USB connectors and the PiDP board. Sharp solder pins can pierce through tape, use a bit of cardboard.
Now for the detailed descriptions... but >>thank you!<< to Beige-o-Vision for the professional how-to video series.
1. Prepare your Pi
The pidp11 software runs fine without the PiDP-11 board plugged in. Set up & test your Raspberry Pi before you start soldering.
Any Pi from the Pi Zero up to the Pi 4 can be used. But a Pi 2, 3 or 4 is recommended.
Read the manual (link, open in MS Word or OpenOffice) for more important details. But, in short, set up your Pi to the point where you have an internet connection going, and then install the pidp11 software:
sudo mkdir /opt/pidp11
sudo wget https://www3.ispnet.net/pidp11/pidp11.tar.gz
sudo tar -xvf pidp11.tar.gz
Using Raspberry Pi OS 11 (versions downloaded after 30 October 2021)? Apply this fix:
sudo ln -sv libreadline.so.8 libreadline.so.7
Next, download and install all the PDP-11 various operating systems:
sudo wget https://www3.ispnet.net/pidp11/systems.tar.gz
sudo tar -xvf systems.tar.gz
After installing the Pi/PiDP11, reboot and:
if your Raspbian is set up to boot into the command line, after login you will find yourself in the PDP-11 boot menu.
if you're set up to boot into the GUI, open a terminal window and enter ./pdp.sh to grab the terminal of the already running PDP-11.
Helpful to know: The PiDP-11 has its terminal connected to the Linux ‘screen’ program (link). This virtual terminal is then (automatically) connected to whatever device you happened to log in on. The PDP-11 is oblivious to whether you use serial, ssh, or a HDMI monitor.
If you are in the PDP-11, type CTRL-A d. You told 'screen' to leave the PDP-11 for the moment and now find yourself at the Raspbian CLI. You should read the manual, but because you won't: Pi’s must be properly shut down before powering off. Enter "sudo shutdown -h now".
This is also a good time to consider what terminal you want to use with the PiDP-11:
the Pi’s HDMI monitor and a USB keyboard,
ssh sessions wirelessly, if you enable that on the Pi. Enable VNC too and you get your GUI without any need for a HDMI monitor!
the PiDP board has a serial port. You can use a laptop or real terminal through that (link).
Later on, you can add up to 4 more serial terminals. But for now, testing using option 1 and/or 2 alone is good enough.
Good solder flows, bad solder clings to your iron. I like Stannol HS10, but google for other good brands (leaded, 0.5-1.0mm). Set your soldering iron to the lowest comfortable temperature, which should be around 275-325 degrees C - just set it as low as is comfortable. Do not overheat parts, especially switches, by touching them with the soldering iron for too long! A few seconds max. Tip: use masking tape (not really sticky tape!) to fix components flush to the PCB when soldering them in.
Note that the Pi GPIO connector goes on the back of the PCB, everything else on the front.
Start with 30 diodes above the switches, 6 diodes around the rotary switches and 1 diode to the left of the IC socket. Polarity matters: match the black stripe on the diode to the stripe on its PCB footprint.
Proceed with 6 1K (820 ohm in recent kits) resistors, and the block of 12 390 ohm resistors. Polarity does not matter.
Solder the GPIO connector, on the back of the PCB. Two pins first, check that it sits straight.
Solder the chip socket on the front of the board, with pin 1 and the socket ‘notch’ facing upwards.
Now come the 64 LEDs. Polarity matters: long leg to the left, see the little drawing above the PAR_HIGH LED to show how all LEDs must be inserted. The LEDs need to be pushed onto the provided 64 LED spacers, so they come out a bit higher on the PCB. Put LEDs + spacers into the PCB. Once all are inserted (not soldered yet), push the LED cover on top of them with a small amount of force. The top 1mm or so of each LED will peek out of the cover. Make sure (by looking from aside) that all of them are like that. Push around them to make sure they sit equally high. Now: flip around the PCB, check if their long legs are all on the correct side, and solder up all LEDs. 1 pin per LED first, then check they sit flush and solder up the other pin. You can remove the LED cover to fix any problems, and reseat it. The LED cover is intended to be on the LEDs permanently, when you're finished.
LED spacers are actually a great help when putting in LEDs. When you know how to use them; see the pictures below. The solid end of the spacer goes onto the PCB, the hollow end faces the LED. Put the LED into the spacer, with its pins only protruding a bit. Now mount the LED+spacer onto the PCB. Once the LED is in, press it in all the way. A click, and the LED is solidly in the right place. But best press the LED in with two fingers, not one.
Note that the breadboard area and the RS-232 port area next to it, at the top of the PCB, are expansion options. They are not used in the normal kit - so the 10 capacitors and 2 chips are not in the parts bag! You'd only use this with the 4-port RS-232 hack (see link for details). Don't worry, you have the 4 extra terminals anyway, over ssh/wifi normally.
Music & Blinkenlights recently posted the PiDP-8 build process on Youtube. Useful to watch if you are new to soldering. It'll show you good practice, and what to expect (even though it's for the PiDP-8). Thanks, Ralph!
Solder the 2 rotary encoders, flush against the PCB, not tilted. They come with their pins bent (before they go in my parts bag!). Just straighten the pins. Their two side clips might need to be bent out a bit to fit the PCB easily. Encoders are delicate, the stem can break off. In the case, they'll be protected. But for now, be a bit careful.
Put the IC in the chip socket. Bend its two rows of pins to a 90 degree angle on a flat surface, so it fits the socket neatly.
Now, before you mount the switches, some testing…
Note how the LEDs sit high up on the PCB through the LED spacers. The LED cover panel helps keep everything in its exact place.
3. Test the board
Insert your Raspberry Pi. You'll see that it is a good idea to insulate the top of the metal USB and Ethernet connectors with a bit of cardboard or plastic, they're very close to the PCB. Do that, and power up. You should see ALL leds light up (check #1) once booting up is completed. This is because the LAMP TEST switch is not mounted yet.
It is also nice to see if the lights go off when they are supposed to. To check, short the upper two solder holes of the TEST switch footprint (with a clipped-off diode leg or something). You can do no damage. Most LEDs will go off (check #2), and you'll have Blinkenlights.
Leave the TEST pins shorted and see if the ENA_HALT switch works: short the top two pins of this switch footprint. Now check your terminal: blinking stops and you should see the simh> command prompt (check #3).
Similarly, short the top two pins of the CONT switch. LEDs will resume blinking, and also visible because you are now on a new line on the terminal (check #4). Lastly, turn the two rotary encoders and check (check #5) that the light scrolls through the group of LEDs next to them.
Why these checks before soldering the switches? If something does not work, you should fix it now. See the Troubleshooting doc (for the PiDP-8 or 11, same circuit). Problems should be easy to fix, the PCB is just point-to-point wiring that you can check against the schematic/board layout. But suppose you cannot get it to work even with help from the forum, then the PCB with electronics is actually the cheapest part of this kit. Switches are expensive. So if all else fails, I can send you a new PCB and electronic components, and you’ll not be much poorer! Score: only 0.13% of builders have needed that :)
Positioning of the Raspberry Pi.
Check #2, disable the lamp test:
connect 2 pins with a bit of metal wire
4. Prepare the case for mounting
The following is important. You can damage your case if you ignore this: since September 2020, the front panel has a thickness of 2mm. Older panels were 4mm. To compensate for the 'missing' 2mm, a nut must be attached to the brass hex spacer. See pictures below. Sorry for the complication!
Add a nut to the 5 spacers if you have
a kit with a 2mm front panel. If you have the older version with a 4mm front panel, leave the nut off.
Take the acrylic panel, remove the disposable cover film on the front. Not the white paint on the back, that is protecting the artwork... Place the panel in the case and use the 5 brass hex spacers to screw it into place firmly. Hex spacers are the things with a screw on one end, and a hole on the other.
They are sometimes difficult to get in. Tip, if necessary: temporarily, put the M3 bolt into them. Now you can use a screwdriver. When the hex spacer is in, tighten it with pliers (don't scratch the panel though), then unscrew the bolt whilst fixing the hex spacer with the same pliers. Also, if the spacers just won't 'catch' the thread in the case and you lose patience: it is 100% safe to make the 5 holes in the front panel a bit larger with a 3mm drill bit.
Mount the key switch in its place on the acrylic panel. Use the matching nut to secure it in place. Tighten reasonably firmly, but do not scratch the acrylic panel with pliers. Tip: cut out and use a bit of the disposable cover film that you peeled off the front of the panel, so that the nut of the key switch does not scratch the panel artwork.
Proper metal inserts: custom made. Design nightmare, but looks great now
Panel with 5 brass hex spacers
(click to zoom)
5. Prepare for soldering the switches
Toggle switches click On and Off, momentary switches spring back. Solder the right switch into the right place, and put switches in with the right direction. Some of them click up, some click down.
The switch bracket has labels to remind you. The switch bodies will go into this bracket, and that bracket stays on forever. Note that the switch bracket has 28 holes, plus 2 side cutouts: there are 30 switches. The switch bracket is not for structural strength, just as a soldering alignment aid.
There is a second, narrower, bracket: the Switch Fixer. Snap it off the other bracket now. Its purpose is to be pressed on top of the 30 switches, forcing them into neat alignment when you're soldering, and then it's discarded.
Preparation steps, prepare all the switches by checking:
You will need to bend the outer pins of some switches in a tiny bit (0.1mm) before they fit nicely in the PCB. Before you continue, test fit each of them into the PCB. Do it now, and sort them by type (momentary/toggle, purple/red) during the test fitting. It saves hassle later on.
Some builders of early kits reported that the solder lugs on switches had oxydised a bit, making them a matte dark gray and hard to solder. If you have that (unlikely now): scrape their sides with a knife, that's sufficient.
Sometimes, the blob of glue around the switch pins is a bit much, preventing them to sit in line with the others. Some builders insist on using their side cutter or box knife to cut off a bit of the glue blob, but do not overdo it like some have done... If you treat more than 4 switches this way, you are certainly overdoing it. Pick the 4 worst offenders after visual inspection and leave the rest in peace. Really. Doing nothing is absolutely fine too. But this was feedback from builders, so if you can't help yourself, feel free :)
In earlier kits, the included zip ties are too short to go around the switches. Then, rig two zip ties together to make one long one. See pictures.
6. Soldering the switches
This has to be done neatly in a straight line. Below is the failsafe procedure, and thus, it is described in excruciating detail. But don't think it's all that hard, relax. Keep in mind:
(1) You will always have some slightly varying spacing between switches. That's OK. There is some play in the switch hinges anyway, which will undo your submicron precision. Once the acrylic panel is put on, a 0.25mm difference in spacing between switches is really no longer noticeable.
(2) The text below is written in exhaustive detail, written for the lowest common denominator in skills. And knowing that some builders get obsessed regarding precision because I just talk about it too much here... sorry.
To be honest, I plug in all 30 switches, press the switches in using the 2 brackets and the zip ties, look for switches that need some further wiggling to fall in line (this, I do carefully) and solder them up, that's it. Looks fine, see all the pictures on this site, they were all done that way. But the elaborate procedure below is more foolproof, and can't hurt.
With that out of the way:
Step 1. Push two PURple TOGgle switches into the left- and rightmost of the 28 slots of the switch bracket. As the legend tells you, the left-hand one will be mounted so you can push it UP, and the right-hand one upside down, so you can push it DowN.
Step 2. Mount the bracket with the two switches into the PCB. Note: the two outermost switches on the PCB will fit in the side cutouts of the bracket, and these two outermost switches will come later. You are now mounting the second switch from the right and left into the PCB.
Step 3. Put all the other switches in the PCB, fitting them through the switch bracket. Do the leftmost and rightmost switch the last. Check for the right colour, toggle/momentary type, and push up/down.
Step 4. Press the second (narrower) bracket (yes, the Switch Fixer) firmly on top of the switches (you will not scratch the switches, you'll just see some powder from the PCB). This forces them to sit neat & straight.
Step 5. Pry the switch bracket (the lower one, between switches and PCB) up a bit. Then, look at the pictures below. Use the zip ties to clamp the Switch Fixer very tightly onto the row of switches. The Zip tie goes over the top of the Switch fixer, and underneath the switch bracket at the bottom. If you put the zip ties diagonally across a switch (see picture) it will not try to find itself a way in-between the switch bodies.
Tension up again, then wiggle ill-behaved switches so they fall in line (look along the line of switch tops and switch sides). Excessive detail, but the failsafe procedure is...
The switch fixer has a bit of room so you can move the switches up and down a bit. Do that for all of them, and then leave them pushed down at the end.
Now tension up the zip ties again.
Use some sticky tape to fixate the left- and rightmost switches to the rest of them.
Flip the PCB over and press down on the board between the solder pins all along the row of switch pins, which will push stubborn switches closer onto the board.
Then, push at the top of each individual switch so you're sure it is in all the way.
TAKE A BREAK. It matters ever so much.
Step 6. After you come back, check that all switches sit on the PCB at a 90 degree angle left-right and tilt-up/tilt-down. Look along the row of switches - are their tops sitting in a straight line? Also, check if the bottom edge of the switch caps sit in a reasonably neat line along the switch bracket's edge. See the picture below of what is considered perfect. You will not be able to get it better than this, nor will you need to. A bit less even is OK too.
If one or two switches do not exactly sit in line to your liking, just don't solder these ones yet, and do them individually after step 7.
Look along the line of switches.
This is how it should look.
Now, solder just the center pin of each switch. Then solder up the top pins, and afterwards the bottom pins. This way, each switch gets some time to cool off between pin soldering. They can overheat and die.
The Youtube movie shows how you solder the switches. Play on full screen mode.
Position the solder tip parallel to the switch tab, making contact with the PCB but not yet the switch tab. The PCB warms up (so solder will flow nicely), one second later let the solder tip make contact with the tab too. Make that sawing motion whilst you push the solder into the corner of iron, solder tab, and PCB.
Step 7. Clip off the zip ties. Also, important: pry the switch bracket down towards the PCB. It will be in the way of switch toggling if left at the top. If you have the PiDP-11 completed, but you discover that a switch does not want to toggle: it's because the switch bracket is not fully pushed down onto the PCB.
7. Wrapping up
A. Secure the Pi in its place using the three M2.5 bolts on the front of the PCB, the nylon M2.5 hex spacers at the back, and the 3 M2.5 nuts at the back of the Pi.
If your kit is from before June 2019, check if your GPIO connector has two or three plastic spacers to make it taller. If you have only two, then: you might need to snap off about 2mm from the nylon spacers with a side cutter. This does not need to be very precise, the bolt will catch the spacer anyway.
Did you insulate the metal USB and Ethernet connectors (see highlighted text in section 3)? If not, you'll see some LEDs burn dangerously bright afterwards. Thin tape is not enough - a bit of thin cardboard or plastic is.
B. Mount the PCB into the case:
Put the 5 M3 bolts in the PCB, so they come out at the front.
Put the 5 M3 nuts on the front side, leaving about 1mm of space between the nut and the PCB.
The M3 nut + the brass spacer (+ extra M3 nut in case of 2mm panel) together provide the right spacing between PCB and acrylic panel.
So the bolts are now fixed to the PCB but rattle a bit. Good.
Place the PCB in the case, screwing the 5 bolts onto the spacers. Push the PCB towards the upper end of the case as you screw in the bolts, and check for neat alignment between the row of switches and the V shaped bulge in the case. Then tighten up.
In case your switches don't align neatly with the case, there are two useful tricks:
(1) (See picture) if the row of switches does not line up with the case, you should know that the holes in the PCB through which the nuts are mounted are slightly oval. So you can fine-tune the vertical positioning of the switches a little bit and tighten the bolts then. This may occur if you did not solder in the switches perfectly straight up on the PCB, and this is the easy fix in such cases.
(2) If the switches stick out of the case (they're 'too long'): maybe, you didn't solder switches deep enough into the PCB. No problem, unmount the PCB, put a washer or just some thin cardboard between the lower two nuts (the ones on each side of the switches) and the PCB to add some distance. Mount again.
As the case of the PiDP-11 is an exact replica of the original bezel, it will not stay upright when you toggle the switches. They simply protrude far from the case's centre of gravity. Yes, the PiDP-11 is the first self-toppling desktop computerⓇ. The included base mount is meant for this, so place it underneath the PiDP-11. It's just wood, but will look very classy if you apply simple wood stain or varnish. That can wait, but please do it at some later time, it looks so much better...
Mount the two knobs on the rotary encoders. Not too close to the panel, they have a hidden push button function, check for the click. The knobs have a little tightening screw in their sides.
Now comes the back panel with its 4 big screws. It has press-out connector slots. If you press out any slots, first use a knife to weaken the press-outs. Also, the 4 screws will take some force the first time, but they will not break anything.
Some builders, including me, fix the wooden base mount onto the PiDP case forever with double-sided sticky tape. If you do, leave out the bottom two screws and just let the bottom of the back panel be fixed in place by the slot in the wooden base. Think about this later on though.
Cables... By default, you lead your standard Pi cables out the back through a press-out. The simple default setup is to use same the cables you always used with your Pi, and simply lead them out through a press-out slot on the back panel. Either [power cable + HDMI + USB keyboard], or [power cable + USB-TTL Serial cable] or just only the power cable (using ssh wifi connections for terminals and VNC as the graphics display).
Most people will keep it at that, I expect. You are done!
But think of the setup you want to use now or later on. You can hook up the key switch (so far decoration only!) to control power in two ways, hook up TTL or RS-232, DB-9 or DB-25 serial ports, and mount USB connectors on the back panel's push-out connector slots. Click the button to consider some options:
The back panel included in the kit