Mini replica of DEC PDP-11 computer runs 2.11 BSD UNIX on ESP32 SoC

The relatively popular Digital Equipment Corporation (DEC) PDP-11 16-bit minicomputers started selling in the 70s, and were still available in the earlier 90s. While being stuck in Europe due to COVID-19 restrictions, Jeroen Domburg (aka Sprite_tm) decided to design a tiny replica of a DEC VT102 PDP-11 terminal based on ESP32 wireless SoC and running 2.11 BSD UNIX through SimH PDP11 emulator.

Jeroen had to do significant work to make SimH works on ESP32 however, with notably the need to optimize the memory footprint:

Obviously, ‘just port SIMH to an ESP32’ is a bit of a understatement for the effort that was needed. Even while SIMH is a pretty nice program when it comes to not using any unique APIs, it still is a system developed for a full-blown workstation and assumes RAM is cheap and plentiful. In order to get it running on an ESP32 and still have some memory left we can use as RAM for the emulated machine, I needed to strip it down first.

He has to significantly strip the network stack and the configuration parser in order for the emulator to fit into ESP32 memory and flash storage, and also removed non-necessary peripherals including tape drives, vector monitors, punch card readers, etc… This allowed ESP32 to emulate a PDP11-23 clone (Russian made ELEKTRONIKA 60M) and run Tetris on a ESP-WROVER32-Kit with display.

Tetris was only using a few tenths of KB of RAM, while the ESP32 was also equipped with 4MB PSRAM adding to the internal RAM, so Jeroen decided to port 2.11 BSD UNIX with a full TCP/IP networking stack to the chip. The latter required the use of ESP-NETIF from the ESP-IDF tying together network interfaces and higher-level code like TCP/IP stacks.

Finally, a case had to be designed, and the final results looks cute enough, and more important appears to work just fine.

You’ll find more details about the full development process on http://spritesmods.com/?art=minipdp11spritesmods blog, as well as all resources to build your own on Github.

Support CNX Software - Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples
Subscribe
Notify of
guest
7 Comments
oldest
newest most voted
Advertisements