Close
0%
0%

Replica of the PDP-1: PiDP-1

Blinkenlights and vectordot graphics from 1959

Similar projects worth following
The DEC PDP-1 was, in many ways, at the root of modern computing: interactive - with keyboard and graphics display. It spawned spacewar, the very first computer video game; teco, the first text editor; and the interactive debugger (DDT).

Despite its tiny brain, it pioneered time-sharing, and was at the origin point of Arpanet: IMP code was written on a PDP-1, and a PDP-1 sent out software updates to the IMP routers across the net.

More importantly, it spawned Hacker Culture. And today, it is a great retro platform for graphics demos. The Type 30 display was an odd mix of vector and pixel display, and coding for it is remarkably simple.

Angelo and I decided to make a replica driven by a innovative type of emulator: though ported to C, it does not emulate the machine at the logic level, but on the circuit level. The C code is ported back from VHDL.

Main site: obsolescence.dev/pdp1.html

The PiDP-1 comes out of a loosely organised group of computer history hobbyists. In various cooperations, we did a PiDP-8, -11, and last year, a PiDP-10. They all share the idea of being a 'computer history capsule': a functional replica that should provide a realistic experience of how it felt to operate these historical machines, with their Blinkenlights - front panels - to debug, monitor and even program them. But also, with a curated software archive built-in that preserves as much of their software history as possible.

The PiDP-1 is done different in one respect - the simulator underneath still runs on a Raspberry Pi, but simulates the original system on a much lower level, that of the circuitry. In fact, the current C simulator is a port back from the original VHDL project. It makes the simulation much slower. But then, the original ran at the equivalent of 0.2Mhz, so speed is not an issue.

But there is a purpose for this level of simulator detail: once you 'get' the PDP-1, you'll see it is a great retro platform for demo coding. There is fun to be had with running the world's first computer video game, spacewar. Some of the original graphics demos are enjoyable, as is playing around with the historical software tools that have been preserved. Nevertheless, hacking together a simple graphics demo or backporting a modern video game is very satisfying.

With the PDP-1 team at the Computer History Museum, we want to invite hackers and democoders to look at the PDP-1 - with the best of their code being run on the only real PDP-1 still alive at the CHM. With that goal in mind, we better make sure there is absolute fidelity in the PiDP-1's simulation...

hackaday-case-example.kicad_pcb

Example case made of solderable PCB panels, perhaps this is useful for other projects, as it contains the trial-by-error optimum for press-in slots, solder point placements etc., that we derived for the PiDP-1 case, taking into account PCB manufacturing tolerances (router drill bits are not always identical, which causes you to seek the safest best-fit...)

kicad_pcb - 429.32 kB - 03/02/2025 at 17:08

Download

  • 1 × Raspberry Pi Zero W recommended, other Pi's are fine as well
  • 1 × UDN2981 Driving LEDs with extra oomph
  • 1 × 74HC138 Electronic Components / Misc. Electronic Components
  • 1 × 74HC238 Logic ICs / Decoders, Encoders, Multiplexers, Demultiplexers
  • 58 × 4148 diodes One per switch, plus some more for spacewar controllers

View all 8 components

  • Making a case out of PCB panels

    Oscarv3 days ago 0 comments

    Some more information about how we created the PCB panels that soldered together, form the PiDP-1's case (Cases, we have two variants...).

    In the Files section, we've placed a Kicad PCB design file which turned out to work well; maybe they are interesting for other projects.

    Here is the PCB set that makes up the stand-alone console version of the PiDP-1. Two sides, a top and bottom panel, and a thin panel that sits at 45 degrees at the front-bottom of the case:

    We went through a couple of months experimenting with the solder pads, the sizing of the tongue-and-groove pairs that clip one panel into another, and the fitting of the removable back panels - which are the two strips at the top right. We don't want these to be soldered in permanently, so they just are clicked in. 

    The '3D' solder pads need to be strong, and placed as close to the panel edge as PCB manufacturers allow. Make them too big, and a simple soldering iron will not provide enough heat to make the 3D solder connections. Make them too small, and the do not stick to the PCB well enough.

    Also, the tongue-and-groove pairs that help ensure a perfect alignment required some experimentation. First though - yes, they also provide some extra strength as well, but are not really needed for that purpose as it turns out. Anyway - the problem with these pairs is their precise dimensioning. When the PCB manufacturer routes out the PCB's outline, the router bit does not always have the same diameter. We've done plenty of prototype tests by now so conclude that a 0.1mm of extra space is needed around such features (the tongue is 0.1mm smaller on either side than the groove it fits in) to give (a) a good fit and (b) will not cause trouble in extreme cases of manufacturer tolerance.

    Here is the inside of the case (or frame) used for the rack-mounted PiDP-1, showing the solder points. It takes less than two seconds to do each solder spot, and we found that doing the solder spots every few cm apart already gives all the strength you want. This will hold even if you drop the case on a concrete floor - an unintended experiment.

    We feel the end result is easy to build, but also looks very good from the outside. Here is a detailed shot of the base of a console PiDP-1:

    You can certainly leave out most of tongue-and-groove features. The soldering alone makes the case strong enough. But it does make it a lot easier to construct the case, without having to worry about alignment issues.

    Perhaps more detail than anyone wants, but we spent quite some time experimenting and if you consider PCB cases for other projects, maybe the Kicad file we put in the Files section will be of use.

  • Problems and solutions

    Oscarv4 days ago 0 comments

    The PDP-1 has a somewhat complex shape, and we did not want to resort to either 3D printing or making molds for the case. So I experimented with making a case from PCB panels, inspired by Bobricius's projects.

    In the end, these became the parts for the two case variants (stand-alone console and rack-mounted):

    In all, 19 pieces of PCB just for constructing the cases. But with the current low prices for PCBs, that is still much more affordable than any other approach we tried.

    Constructing a 3D object from PCBs turns out to be very simple, and very strong as well. Here is a detailed shot of the case's inside:

    As it turns out, a couple of solder points on each edge make for a very sturdy construction. You can drop it on a concrete floor without anything bad happening! On the outside, I think it looks pretty nice:

    Side of rack-mounted version

      Side of stand-alone console version

    Another challenge was the mounting of the front panel onto the case. The original has no visible bolts or clamps on its front. Here, too, the solution was to solder the pack of the front panel to the sides of the case. That also allows a very precise fitting of the parts.

  • Choosing a PDP-1

    Oscarv4 days ago 0 comments

    There seems to be a bug that hides the picture in the previous post, this one:

  • Designing the kit - or: make up your mind

    Oscarv4 days ago 0 comments

    The problem with the PDP-1 is, its looks are iconic. You have got to get it right. At the same time, we want to make this a low-cost kit, affordable for anyone. So here is the first problem:

    How do you get such looks in a replica, for a low cost?

    The second problem is of our own making. PDP-1s came in various styles and colour schemes. The iconic blue one is mostly famous because that one is the only one left, at the CHM. There were blue and white front panels, rack-mounted and stand-alone front panel consoles... and between the two of us, we could not agree on the one to replicate.

       Three of the many PDP-1 variants: stand-alone and rack-mounted, white and blue, various peripherals

    So we spent a silly amount of time discussing options. And decided we'd make them all. As in, we'll make a super low-cost 'stand-alone console version' and a 'rack-mounted' version that can actually be hung on a wall (as the rack depth needs to be mo more than 1.5 inches...).

    Also, we'll supply both a blue and a white front panel with each kit. Make the colour choice the problem of each kit builder. The idea is you can take off the one colour panel and replace it with the other colour.

    For the rack-mounted version, we opted to replicate the PDP-1 at Lawrence Livermore, because that avoids the problem of making a mechanical replica of the paper tape reader seen on the front of the middle image. Making that would break the budget. USB sticks will act as paper tapes instead...

  • First planning - Oct 2023

    Oscarv4 days ago 0 comments

    Angelo and I always knew the PDP-1 was next on the to-do list. Angelo had studied the schematics of not only the PDP-1, but also its progenitors at MIT: the TX-0 and TX-2, and had a VHDL simulation of them running.

    Our goal was, as always, to get people interested in hands-on experience with historical machines. But where our PiDP-8/11/10 projects had loads of operating systems, with hundreds if not thousands of games, applications and languages, the software menu for the PDP-1 is more scarce.

    Yes, there is spacewar, a bunch of graphics and music demos, and of course DDT and an assembler. But much has been lost. Those lost treasures include the first-ever text editor, teco. The fun in playing with a PDP-1 must and will be much more in the bare-metal interaction than running software.


    So.

    Our goal will be to entice hackers and democoders to see the PDP-1 as a platform to code for. 

    It is a machine that is capable enough to write serious programs (you have the equivalent of 64K memory if you want to, though most PDP-1s were limited to 4Kw). And the display is fun to code for -- a hybrid between vector display and pixel display, you basically have to generate a constant stream of XY coordinates on the electron beam to refresh the (radar) CRT tube.

    Assembly (demoparty) - Wikipedia

         Why code for C64 or MSX if you can code for the PDP-1? Seriously?

    There is some precedent: Hrvoje Čavrak backported a good game of Pong; Martin Landsteiner did tons of work, including the Ironic Computer Space Simulator. So we'll add two controllers to our replica and the PDP-1 team at the Computer History Museum is interested in running a 'best of' new demos and games on their real PDP-1 (the only working one left in the world). To try and get the PDP-1 a new lease of life as the most retro of games consoles/democoding platforms.

    Why not? We might not succeed in this goal but at least new we have a goal.

View all 5 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates