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

  • Spacewar controllers and Feature Creep

    Oscarv3 days ago 0 comments

    So, we want to make the PiDP-1 a very affordable kit to make. Because, the more affordable the more chance that it will find its way to young coders who want to try their hand at PDP-1 programming!

    But we're battling feature creep, we'll just have to add two spacewar controllers. The idea is to make it them tiny, low-cost PCBs that will do the job on their own, but at the same time, can be the PCB inside a proper custom-made wooden spacewar control box. As the original ones were all quite visibly one-off jobs too, a proper spacewar controller must look - artisanal.

    But for those who do not like to tinker, they can use the PCB as-is:

    As we had 36 extra IOs for lights or switches, we did spend the whole day thinking of other exotica to add. For instance, the three PDP-1s that made it onto Arpanet had extra button boxes - the time-sharing operating system used them to hook up multiple Teletypes. 

    But we decided against such things, they can all be done in software and the kit is already a package of 15 PCBs as it stands. And though PCBs are cheap, it does add up.

  • The PDP-1 and Arpanet

    Oscarv4 days ago 0 comments

    We spent the last four days investigating how we can bring our PiDP-1 on Arpanet. Yes, really. Because (1) there is some major history there, and (2) there's a major new project from Lars Brinkhoff where this would be significant Icing On The Cake.

    The history: so Arpanet consisted of IMP routers. Not very well-known is that the software for the IMPs was developed with the help of a PDP-1, at BBN by a small team called The IMP Guys. Actually, in the first-ever instance of remote software updates, the PDP-1 sent over-the-net software updates to all the IMP routers in the field. The PDP-1 also acted as the watchdog for Arpanet stability, constantly chatting to the IMPS in the field.

    And as it happened, we were brought in touch with one of the actual IMP Guys at BBN - who did the coding. We found large parts of the PDP-1D time-sharing system (alas, in PDF format) and lots of technical memos from the IMP Guys. So - we now have to think about how impossible it would be, exactly, to get that all going again on the PiDP-1.

         Arpanet in 1973, with BBN and its PDP-1 in the top-right section

    The major new project: Lars has brought up the simulator of the IMP hardware, running the original software, got the Arpanet code running on PDP-10s with ITS (so we 'have MIT up on Arpanet) and with WAITs (so we 'have Stanford up on Arpanet'). As well as PDP-11s running unix v6. Although, that's not quite up yet. Amazingly, he also wrote a Network Control Program for Linux - so any Linux box now connects to real or simulated IMPs and go out on Arpanet.

    So - imagine, if we can get the PDP-1 at BBN online too, we'd have a pretty full reconstruction of Arpanet circa 1973. But reality now sets in - will we really be able to get the PDP-1's Network Control Program back? Large chunks outside the OS are missing and will have to be rewritten. 

       The PDP-1 at BBN, just before the Era of Arpanet

    --> this is a call for help! If you have any old code, documents or papertapes relating to the PDP-1 at BBN, Stanford or USC, please, please let us know.

  • Making a case out of PCB panels

    Oscarv03/02/2025 at 17:39 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

    Oscarv03/02/2025 at 10:07 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

    Oscarv03/01/2025 at 22:44 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

    Oscarv03/01/2025 at 22:13 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

    Oscarv03/01/2025 at 21:55 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 7 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