Bob Sheldon's Backspace Key Runs Id Software's Doom — Thanks to an Embedded RP2040 Microcontroller

Forget running Doom on a keyboard: this neat project runs it on a single keycap, using an RP2040 microcontroller in a 3D-printed housing.

Software engineer and maker Bob Sheldon III has taken the old challenge of "can it run Doom" to an unusual place: running it not on a keyboard's controller itself, but entirely contained within a keycap on said keyboard — thanks to a hidden Raspberry Pi RP2040 microcontroller.

"Based on an RP2040 [microcontroller], my custom PCB runs a modified version of the Raspberry Pi Foundation's Doom port," Sheldon explains of the project, which shrinks Id Software's seminal 1993 first-person shooter down to the footprint of the backspace key on a keyboard. "What's more, the code is open source!"

Running Doom on a keyboard's controller is one thing, but this neat project crams the game into a single keycap. (📹: Bob Sheldon III)

Sheldon's self-contained computing keycap uses a custom PCB which plays host to the Raspberry Pi RP2040, a dual-core Arm Cortex-M0+ microcontroller which runs at 133MHz — but which has only 264kB of RAM, which proved the most challenging part of porting Doom to the device when Graham Sanderson first managed it back in March last year.

This custom PCB is paired with a small form factor OLED display panel, handily slightly smaller than the footprint of a keyboard's backspace key — and which is then encased in a 3D-printed keycap shell to protect it and allow it to still remain functional as a keyboard key.

The project is notably similar to the work of James Brown, who also took Sanderson's Doom port and encased a Raspberry Pi RP2040 in a protective enclosure — but rather than building a keycap, Brown built a fully-functional LEGO computer brick, complete with motion-based and capacitive controls to allow the game to run entirely independently.

Sheldon has indicated plans to commercialize the Doom-running keycap design, which requires a keyboard and mouse to be connected via a USB To Go (OTG) adapter if you want to do more than just watch the demo, though says there is "a little R&D to do" on the project yet before it's ready to launch — and, thus far, no pricing has been disclosed.

Sheldon's modified source code is available on GitHub under the reciprocal GNU General Public License 2, with added compatibility for selected SPI and I2C displays; he has not released design files or schematics for the custom keycap-sized PCB.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles