news

ESP32-Powered PDP-11 Minicomputer

Shanghai, China
Jan 27, 2021

Downscaling a PDP-11 and bringing it to the present, with ESP32.

Espressif’s Software and Technical Marketing Manager, Jeroen Domburg, otherwise known as Sprite_tm, has just built an ESP32-powered ultra-compact replica of a DEC VT-102 terminal, emulating a PDP-11 running 2.11BSD.

Sprite_tm has always been interested in PDP-11 computers, because they have been at the forefront of information technology since the 1970s, when they were first launched by Digital Equipment Corporation. For example, ‘the first computer game, SpaceWar!’, Sprite_tm explains, ‘was written on a PDP-1. It wouldn't be the last game written on a PDP machine, though. Apart from the aforementioned arcade games, all the way in Russia on a cloned PDP-11, Russian software engineer Alexey Pajitnov wrote a certain title called “Tetris”, which later was spread all over the world’.

Nowadays, developers can still enjoy the historical PDP-11 software by using SIMH, the most frequently used PDP-11 emulator ‘which seems to run on most POSIX'y OSses’, as Sprite_tm puts it. Given the POSIX compatibility of ESP32, and ESP-IDF, Sprite_tm decided to give this project a try, using ESP-WROVER-KIT, as his ESP32-based development board of choice in this particular case.

Running Tetris on a tiny PDP-11 needed a lot of creative thinking, hacking and hard work. ‘ESP32 was configured to emulate an PDP11-23 with 256K of RAM and a RX01 floppy disk drive, giving 256KB of disk space for the operating system and game files’. Then, Sprite_tm used SIMH on his laptop to create a blank disk and installed RT11 onto it. Next, he took the Russian games disk containing Tetris and copied the binary over. That disk image would get flashed alongside the emulator to ESP32. Sprite_tm didn't bother with the terminal at this point. Instead, he opted to just pipe the console of PDP-11 out of the debugging serial port of ESP32. This actually allowed RT11 to run, while it also provided a command line.

Subsequently, Sprite_tm worked on porting 2.11BSD and its TCP/IP networking stack, which got connected to the outside world via ESP32’s Wi-Fi radio and the ESP-NETIF abstraction layer. Then, with a resin-based 3D printer, Sprite_tm created a VT-102 case, modeled in OpenSCAD and customized for the tiny PDP-11. The case contained a 1.8" 320 × 240 LCD, which made the entire PDP-11 microcomputer approximately a 1/6.6th replica, compared to the original a VT-102 serial terminal with its 12" display.

On spritemods.com you can find a detailed description of the tiny PDP-11. The source code, PCB design files, and case models have been released on GitHub. If you want to see the final result in action, you can view the following demo on YouTube.

Share this article
Reuse this content