Building the PiDP-8 should take about 5 hours. Tools required:
Soldering iron, side cutter, Phillips screwdriver with 2-2.5mm shaft, black tape, drill.
PCB, case, acrylic front panel
11 brown & 9 white toggle switches
1 brown & 5 white momentary switches
1 bracket to mount/support switches
1 40-pin extra-height Pi connector
89 yellow 5mm LEDs, 27 diodes
1 UDN2981A or equivalent IC
12 resistors (390 ohm), 3 resistors (1K)
Plywood mount blocks to fit PCB in case
2 M3*30mm screws to mount front panel
7 M3*9.5mm screws:
3 to fix blocks to case back,
plus 4 to mount PCB on blocks)
3 M2.5 spacers + 3 bolts + 3 nuts,
to mount Raspberry Pi to PCB
You need to supply your own Raspberry Pi and SD card. The $5 Pi Zero is recommended: it is easiest to build into the case. You can use a model A+, B+, 2, or 3 if you're OK making a slot in the side of the case, or if you won't use the USB ports, just Pi 3 wifi. Nice extras: USB hub, WiFi adapter (already built in on Pi3).
Update: Warren maintains the official 'community-supported' PiDP-8 repository, with regular updates and much useful information if you want to delve deeper. The v2017.12.22 SD image needs an online update (see down this page) to fix a bug with the EXAM switch. Probably gone by the time you read this though.
The text maintains a reference to the option of my original SD card for its fast booting and simplicity for non-Linuxers. But even then, you really should explore Warren's updated and improved repository site.
Click to enlarge:
View full-screen for a way to solder the LEDs quickly, and precisely aligned in neat rows.
Quicker way if you have a chip tube (a tiny one is in the parts bag!)
Choose your own Pi-of-Preference, but this is my favourite shopping list if you're new to Raspberries:
Most people just go off soldering the kit. It is really a simple kit and the text is too long with all the exhaustive detail, meant for the lowest common denominator in skills! But really, READ the details. It WILL save you time in the end: all the details builders ask about were already explained here.
1. Prepare & test the Pi
The pidp8 software runs fine without the actual PiDP-8 board plugged in. It is a good idea to test and set up your terminal connection before you start with the hardware.
There are two software options: my original 'mean&lean' SD image that aims to hide the Pi-behind-the-PiDP, or Warren Young's newer extended version, which has regular development updates from the community. You need to learn a bit of Linux though to implement such updates. In return, it gives you a standard Raspbian that allows you to do whatever else you'd like to do with the Pi-inside-the-PiDP. Your choice!
option 1: download it here (Google Drive link); use Etcher to save on SD. Boot the Pi (user: pdp, password: pdp) and you find yourself in OS/8. Main benefit: boots in less than 10 seconds, and you only need to set your wifi's name and password:
CTRL-A, d, sudo nano /etc/network/interfaces, enter your SSID and password in that file, CTRL-X to save, and return to the PDP-8 by typing ~/pdp.sh .
option 2: download it here. Log in as pidp8i , password edsonDeCastro1968 .
Main benefits: there's a version for the Pi 3 that 'glows' the LEDs like lamps, and a version for the Zero/Zero W that 'blinks' the LEDs but is much less CPU intensive. Lamp emulation is sweet if you have memories of it! Even if you opt for the simple option 1, you should spend some time here.
With either option, the PDP-8 terminal comes up straight after you log in, with OS/8 running. Even though the physical front panel is not attached yet. For now, you can escape out of the PDP-8 for an orderly shutdown: Ctrl-E, exit, and then sudo shutdown -h now
First, something else. The acrylic front panel. It has a peel-off protective plastic on its front.
But do not try to peel off the white on the back. That's the panel artwork itself ;)
The #1 problem with kits is bad solder. Good solder flows, bad solder clings to your iron. It's a huge difference. I like Stannol HS10, but google for other good brands (leaded, 0.5-1.0mm).
Pause to think on which side of the PCB components should be soldered. Also, make sure you do not solder the Raspberry Pi header into the footprint of the same-sized expansion port: mask that one off with tape before you start, to avoid confusion.
Start with fitting the 26 diodes above the switches, on the front side of the PCB. Proceed with the 3 resistors (1K) close to the row of diodes, also on the front of panel, then the block of 12 resistors (390 ohm), on the back of panel. For diodes, polarity matters: check that the black stripe on the diode matches the stripe on its PCB footprint.
Solder a 27th diode in at the back of the PCB, on the white line underneath the IC. The polarity matters: the black stripe on the diode should face away from the Pi, and be on the side where the "PiDP-8 Front Panel" text is.
Now come the 89 LEDs. On the front side, and polarity matters. The long legs must be on the left, closest to the Raspberry Pi. Just to leave no doubt: The short legs should be facing the end of the PCB which has the PiDP logo on it (on the back of the PCB). The video to the left shows an efficient soldering technique: solder up one pin of each led, pushing hard against the LED with a finger. This will make them fit straight. At the end, check the LEDs all sit straight, with polarity correct, then solder up their second pins. Another tip: if you have it lying around, a bit of plastic chip tube can hold a row of LEDs neatly in place whilst you solder them in.
The 2 extra LED footprints without markings on the PCB are to be left empty. These are for a Straight 8 replica instead of an 8/I, but would require a different acrylic panel.
Solder the IC/chip socket on the back side of the board, with pin 1 facing down to the switches on the opposite side of the board. Lastly, solder in the 40-pin header that will connect to the Pi. Not into the footprint of the Expansion Connector, a mistake that's easily made. Solder 1 or 2 pins first, then check the connector sits exactly perpendicular to the PCB. Then solder up all the pins.
The X and X*2 ohm resistors marked on the PCB must be left out (they're not included in the kit anyway). Also, the jumper blocks J_COL1 and 2 can be left untouched.
Ralph from Music & Blinkenlights recently posted this Youtube movie demonstrating the build process. Very useful to watch because even a text as long as this one says less than a moving picture.
For novice solderers, it'll also show you what is good practice, and what you can expect. Thanks, Ralph!
Click to enlarge:
For testing: shorting pins to simulate a switch. You could use any metal object, no risk of damage.
Compare your spacewar blinkyness against this
Click to enlarge:
Never necessary but sometimes nice:
In case you notice any Pi Glow with a 5.35V power supply... Red circle: with a sharp knife, cut the trace you can see connecting the two solder pins of diode #27. This will drop the voltage on the board.
3. Quick check
This section is optional, but smart. Check if everything works, before the switches are soldered on. If something does not work, you should fix it now. Any problems should be easy to fix, but if you cannot get it to work: then the PCB with electronics components is actually the cheapest part of this kit. The switches are expensive. So if all else fails, I just send you a new PCB and a new bag of electronic components, and you’ll not be much poorer at this stage!
First look for shorts caused by solder blobs, and for forgotten solder points (main cause of problems). Mount the Pi and power up. The front panel will light up (check #1) after 40 seconds or so (for standard Raspbian), or after 10 seconds ( 'option 1' SD image). Everything just like you did in step 1.
Now, test some switch connections (even though the switches are not in yet). To start, short the upper two solder holes of the STOP switch footprint. Use a bit of wire, or clipped-off pins from diodes, or plug in the switch itself - although keep in mind the contact can be intermittent that way. Anyway, you can do absolutely no damage. If these two switch pins are shorted, the LEDs will freeze: the PDP-8 is halted (check #2).
Let's check the 18 leftmost switches. One by one starting from the left, short each of the leftmost 18 toggle switches, keep the switch shorted and short LOAD_ADDR momentarily. For each one, the corresponding LED on the top row should light up (check #3). After you're done checking the 18 LEDs, short the top two pins of the CONT switch. The PDP-8 starts blinking again (check #4).
If you want to be thorough, one more test. Short the pins of the fourth switch from the left. Keep them shorted, and briefly short the pins of SING_STEP (not SING_INST). This will trigger a reboot of the PiDP to run spacewar. Which has the nice effect of blinking almost every LED. Check against this movie (check #5).
Power down the PiDP (without the switches, that'll be CTRL-E, exit, sudo shutdown -h now, and wait 15 sec before powerdown).
--> If one of the checks has failed, you have a bad contact, check the Troubleshooting page.
New for July 2016: Check for Pi Glow. The Pi 3 is wonderful. But its Official Raspberry Pi power supply delivers 5.35V. That is out of spec for 5V electronics! It cannot hurt the PiDP, but:
If you see all LEDs glow very faintly, not just the ones that are supposed to be on, but all of them:
then you can cut the trace on the front of the PCB, in between the two solder points of the diode that you mounted on the back side of the PCB, just underneath the IC. See picture. Cut the trace and all current will flow through the diode, which has the nice characteristic of dropping the voltage by about 0.6V.
else there's no need for the trace cut. Either way, no risk of damage to PiDP or Pi.
Click to enlarge:
1. Mount a switch in the outermost hole. Press it against the right/upper side and solder just the top end of the switch mount.
2. For the first switches only, also solder the lower sides for strength. Repeat 1. and 2. on the other side of the switch bracket.
3. Mount bracket with its two switches in PCB and solder only the center pin of each switch. Make sure both switches sit straight and perpendicular into the PCB.
4. Now just press the other switches in place. Solder only their center pin into the PCB and only their top end to the switch bracket. Press each switch to the top right end of its slot in the bracket for even spacing.
Click to enlarge:
Recommended setup with Pi Zero, the standard Pi power cable and a USB hub. The big slot in the back is optional, handy for swapping SD cards though!
Click to enlarge:
The serial port on the left of the PCB: you can ignore the TX/RX pins and just use the port to hook up any 5V power supply as an alternative to the Pi's standard micro-USB power cable.
Click to enlarge:
Zoom for placement of slots. Warning/disclaimer: please check exact placement yourself before making final cuts. This is taken from my PiDPs, but there's about 1mm of production tolerance in case dimensions.
WARNING: MEASUREMENTS FOR THE HDMI SLOT IN THE PICTURE ARE NOT PRECISE.
ALL OTHER MEASUREMENTS VERIFIED OK
4. Mounting switches onto the PCB
Make sure you solder the right switch into the right place, and don't solder momentary switches in upside down, see below. The switch bracket included in the kit indicates where Brown/White, and Toggle/Momentary switches go. Toggle switches click On and Off. Momentary switches spring back. You may find you need to bend the pins of some switches straight a tiny bit before they fit nicely in the PCB footprints. With the emphasis on tiny. Do not overheat the switches: don't set your soldering iron to a very high temperature, and press it no more than a few seconds against the switch. But you'll need a few seconds, because the pins are a big heat sink. Just don't keep the iron pressed longer against the switch pins than the minimum necessary time and you'll be fine.
Know this upfront: the PiDP has 26 switches, and there are 24 holes in the switch bracket. The left & rightmost switch go in the side cutouts of the bracket.
Solder the switches neatly in a straight line. Below is a failsafe procedure in exhaustive detail.
But reading through it will avoid confusion and problems, so please take the time to read it anyway:
Take two brown toggle switches and solder their mount (or tab, i.e. the metal 'lip') into the left- and rightmost slots (holes) of the provided switch bracket.
Make sure the switches sit straight, snug against the top right of their slots.
Press your soldering iron into the corner made by the center-top solder pad on the bracket (above the switch tab), and the top of the switch tab. Then, let an ample amount of solder flow. No need for cosmetically precise soldering, this will be invisible later on.
For these first two switches only: also solder the bottom two solder pads, on both sides of the switch. For additional strength. Not necessary for the rest of the switches.
All of this soldering has no electrical function. It's just to fix them in place.
Mount the bracket with its two switches onto the PCB. Note (pls read - often ignored): the two outermost switches on the PCB will fit in the side cutouts of the bracket, not in the slots, and these two outermost switches only come later. You are now mounting the second switch from the right and left into the PCB.
Solder only one pin of each switch into the PCB, ensuring they are pushed in full and straight. Make sure they're not leaning left or right due to sagging down of the somewhat flexible bracket! Check that the bracket also does not lean forward or backward. Reheat switch pins (briefly) to correct if you must, but try to avoid it. Now solder the other two switch pins.
IMPORTANT: since I recently started to mention here that you can always re-heat switches to reposition them, I start getting some requests for spare switches... They die if you overheat them. Make sure you do not hold the soldering iron against them for more than a few (3?) seconds after the solder turns fluid. Get the switch position right the first time if at all possible. Reheat & reseat should be a measure of last resort.
Now just solder all the other switches onto the bracket one by one. Snugly pressed against the top right of their slot, for consistent alignment. Check that they sit straight, flush onto the bracket, evenly spaced. Momentary switches are all operated by temporarily depressing the lower part of the switch. So mount them such that you momentarily press on the bottom half of the switch to actuate a signal. People get this wrong regularly. The 6 momentary switches have their lower half sticking out to the front unless you depress them momentarily.
Only solder the top end of the switch mounts to the top solder pad above them on the bracket. That's enough. The bracket is not for mechanical strength, just as a soldering aid.
Then solder their center pin to the PCB. Just the one pin, so you can still correct a switch's stance if you get it wrong (but avoid it).
Useful tip: as the bracket is a bit flexible, it will tend to sag a bit towards the middle. You do not want that, because you'd have to solder switches in deeper and deeper as you go along. On one side, the previously mounted switch already provides support for the bracket. And on the other side of your newly-pressed-in switch, slide a switch on its side in-between PCB and bracket. It's *exactly* the right height to avoid this sagging-whilst-you-solder problem.
Whilst you are doing the above, regularly look along the line of switches: are they lined up straight, not slightly bulging in an arc? Look from above and below: is the space between each switch pair the same? If not, reheat (briefly) and adjust the switch positions into the right position.
You may want to take a break and check alignment again afterwards. If all is fine, go ahead and solder up the two other pins on each switch.
Note: you will always have some slightly varying spacing between switches. That's OK. There is some play in the switch hinges anyway, and once the acrylic panel is put on, a .25mm difference in spacing between switches is no longer noticeable. The real PDP-8/I had more irregularly mounted switches than your PiDP for sure, but there's a limit to authenticity in this respect :)
Finish up by covering the top and bottom metal mounting ends (tabs) of the switches with a long stretch of black tape. Purely for cosmetic reasons. Use scissors to cut off the excess of tape (it'll be wider than necessary) below the switch row. Excess tape gets in the way once you mount it in the case.
5. Deciding on case slots...
You'll have to decide if & what slots to drill in the wooden case. It depends on what Pi you will use, and what your preferences are. People have done all sorts of variations, see the forum...
If you keep it simple, and I recommend that you do: use the $5 Pi Zero (or Zero W). Then, you only need to drill or cut (a Stanley knife will do) a 1cm hole in the back of the case to lead out the Pi's micro-USB power cable plus a USB cable which you hook up to a small USB hub. The hub can be stuck to the back of the case with double-sided sticky tape, and it'll give you all the I/O you will need. If you are a bad woodworker and you carved an ugly hole in the case: no problem, cut a neat bezel to cover it, from a sheet of plastic or something.
The picture on the right shows the end result. Two comments on it: here, I cut a second, very large slot in the back so I could access the Pi's SD card. That is really not necessary, unless you want swap SD cards regularly.
Secondly, I made the small hole for the two cables right at the bottom. Better do it half-way up from the bottom, then you do not have to lead the cables along the edge of the wooden block, which is very fidgety to do.
The rest of this section is optional, Pi Zero owners can skip it.
But, as said, people do very different things with their PiDPs, all the way up to installing a full set of RS-232 connectors and multiple power connectors....
Normally, a Raspberry Pi 2/3 is powered from its micro USB cable. Space is tight. With many cables, you need to cut the cable sleeve off from the connector, to let the cable make a sharp 90 degree bend, or the cable won't fit well inside the case. An alternative power option is to provide 5V via the PiDP's serial port power pins. Just connect the 5V and GND wires.
Raspberry Pi's Model A+/B+/Zero can be powered from a laptop's USB port! But the Pi 2 and especially Pi 3 cannot. They need their own power supply or you'll have trouble someday with corrupted SD cards.
Do you want/need a slot in the side of the case?
Pi Zero: no!
Access to the USB connector on a Model A+ needs a small slot in the case side.
For access to all 4 USB & Ethernet connectors on Models B+/2/3, drill a larger slot.
Very much not intended is using the HDMI connector. But people still do it: Another slot on top could be made for it. Alternatively, buy a small 90 degrees angled HDMI adapter (make it 90 degrees backwards though). Then it can be led out through the back.
Use a drill to make slots the easy way. Start with a small hole and use increasingly large drill bits. That avoids stressing and potentially cracking the case. For the Model B+'s USB and Ethernet ports, drill 4 holes and cut away the wood between them. A router is nicer than a drill for this purpose, if you have one. But, peace of mind message: If you are like me and potentially mess up on the woodwork, replacement cases can be provided rather cheaply be me or as the Zeller 13333 on Amazon.de. Also, consider making a cover/bezel for your crudely formed slot, cut from plastic sheeting or something.
The picture shows where to drill the holes for either A+ or B+/2/3 Raspberry Pi's. Please do a sanity check though, before drilling. It is easy to make a mistake when measuring out the exact spot.
6. Mounting PCB and acrylic panel into the case
There are blocks of wood in the kit to mount the PCB in the case. First, the long block: slide it onto the PCB, just between the Pi connector and against (but not on to) the top solder lugs of the switches.
Align the end of the long block to the right side of the PCB (looking from the front side with the block behind the PCB). Then, let the block stick out 1mm from the PCB edge. See photo 1. This is needed so the acrylic panel will fit just right above the PCB.
On the other side (the left side, where the Pi is), you should now have just enough room for the serial port connector. See photo 2.
Fix the block onto the PCB: use two 9.5mm screws in the screw mount holes of switch 1 and switch 26. See photo 3. It is fidgety. I am sorry :). Use a small 2mm screwdriver, it fits through the hole of the switch tab above the mount hole. See picture. If you first drill a tiny hole, it's easier.
In summary: the mount block lies just above the switch solder lugs on the PCB,
and should be shifted 1mm vis a vis the PCB.
Click to enlarge photos
Fit 1st mounting block so it sticks out 1mm on this side (needed for acrylic panel screws later on),
Across on the other side of the PCB, the block stops just before the serial port connector. Leave just enough room for the serial port header.
Two 9.5mm screws are used to fix the mount block to the PCB
PiDP-8/I: RECREATING THE PDP-8/I
CELEBRATING 50 YEARS OF PROGRAMMED DATA PROCESSING
Thank you, Raspberry Pi Foundation, for delivering power supplies that could really damage any 5V parts that people hook up to the Pi. Fortunately, not the PiDP. But if you had invested $0.02 in a decent power regulator on the Pi 2 and 3, you would not need to sell us 5.35V power supplies by stealth. Bah!
Click to enlarge the pictures below:
Variant 1 shown with kit made before July 2016: Second mount block. Keep it 1 mm away from the 2981 IC. It matters. Note this variant can also be done with newer kits that have 2 small blocks. This variant is needed for a Pi 2/3.
Variant 2, for kits made after June 2016, if used with a Pi Zero: 2nd and 3rd mount blocks screwed to the top corners of the PCB. If a Pi 3 is used, mount 1 small block as per the first picture above.
PCB fits into the 'lip of the case. Make sure it's mounted with the switch mounts (below black tape) tightly against the case edge.
Case back with screws. Horizontal screws are 38mm from the case's bottom (bottom of case, not bottom of the inset back panel). The 3rd, top, screw is 95mm from the case's left side (same comment).
Mount front panel: optionally, drill 3mm holes at points X and Y for screws. Drill through acrylic, through PCB underneath, into the wooden mount block. Location should be around spots X and Y, give or take 1 mm deviation.
Now comes the second mount block(s). Block(s)? Yes, older PiDP kits have one smaller mounting block; newer kits have two. It does not matter much. In fact, it seems mostly to add confusion rather than improvement. Apologies, but anyway, here is the if-then-else logic of using them:
variant 1: if you (a) have an older PiDP with one small block, or (b) you you want to use anything other than a Pi Zero (W):
--> place the (or one of the two) smaller mounting block perpendicular to the long block, alongside the 2981 IC, then use a screw in mount hole M5. You could add a screw for mount hole M7 but it's not really necessary. See picture 1.
variant 2: only if you have a Pi Zero and you have a newer PiDP kit:
mount the two small blocks on the upper left and right corner of the PCB. See picture 2.
Place the PCB-with-mounting-blocks into the case. The metal bits of the switches (covered up with black tape) should rest into the 'lip' of the case bottom, on the inner edge and against the outer edge. See picture 3! Make sure that on the right side, the PCB's long mount block (the one that protrudes 1mm out of the PCB) is pressed tightly against the right-hand inner wall of the case. That places the PCB precisely behind the acrylic panel it will shine through. And make sure the switch tabs press tightly into the edge of the case.
Note 1: There is a bit of variation in the depth of the bamboo cases. Check if the PCB is sitting flat in the case. If it leans back a bit, tape a 1-2mm bit of cardboard to the back of the short wooden block so that the PCB sits level in its case. See photo #2 to the left for an example.
Note 2: It is normal that the long mount block does not touch the back of the case. This is fine, screws will fixate it in the step below. Many builders try and improve upon this, but it really, really is not necessary. Really.
Keep the PCB in this location, and note the position of both mount blocks inside the case. Fix the wooden mount blocks to the case back with three 9.5mm screws from the outside of the case back, the measured position is shown in picture 4 (click to enlarge).
Drill holes before putting in screws, or you'll risk cracking the case's back panel.
Whilst drilling the holes in the back panel and slightly into the mount blocks inside, press the PCB with mount blocks down against the bottom of the case, so the drill holes will keep the PCB assembly tighly against the bottom (and right hand side) of the case.
Keep holding the PCB and case without moving them. Now put in the screws, whilst you keep pressing the PCB/wooden mount assembly against the case bottom.
Because the wooden blocks are rather wide, the exact locations of the 3 screws in the back panel are not so critical. You'll 'hit' the wood blocks hidden inside the case as long as you keep roughly to the measurements in the photo to the left. The main challenge is to keep the PCB, on its mounting blocks, in the position of (1) hard against the case bottom, and (2) hard against the case's right-hand side. Whilst screwing in the screws.
Now mount the acrylic front panel:
Place the acrylic panel into the case. You might have to force or bend/flex it in before it clicks into position. These panels do not break if you bend them into an arc to fit them in. Bend it in!
Check once more whether the PCB really is (1) flush against the case bottom, (2) flush against the right-hand inner wall of the case (3) neatly horizontal, and (4) the LEDs are placed nicely behind the transparant slots. If not, remount the PCB.
Check if you can flick the front panel switches up and down without hitting the acrylic.
--> If not, then you've mounted the PCB too high - not tightly against the case bottom. You might have to either drill new holes in the back, because the old ones may just be slightly off and can't be corrected, or alternatively, remount the mount block on the PCB upside down and start again with fresh drill holes. Then, you do not need to drill new holes in the case back itself.
Most builders (me, too) ignore the last step because they find the acrylic is stuck firmly into its place already. And a small bit of sticky tape invisibly placed in the edge of the case can make the fit tighter if need be.
But, your preference, you can also do the following: drill two holes on the locations marked X and Y, straight through the acrylic, straight through the PCB, into the wooden mount underneath. You will not damage the PCB, because there's no electronic traces anywhere near where you are drilling. A 3mm hole is fine with the provided (sharp cutting) screws. Not with other screws. So, put in the two M3*30mm wood screws and that's it.
You are done!
And now you are done, have a look if the following terminal connection option is one you like. You might be happy with having your terminal connection over Wifi, or whatever, but this is a neat solution: the two-USB-Serial-Cable setup.