“But can it run Doom?” is more than just a joke in the tech world. It is also a decent litmus test for the computing power of hardware. That test isn’t very relevant for modern computers, but it is still worth asking when discussing microcontrollers. Microcontrollers vary in dramatically in processing power and memory, with models to suit every application. But if you have an Arduino Nano ESP32 board, you can run Doom as Naveen Kumar has proven.
The Nano ESP32 is a small development board for the ESP32-S3 microcontroller. Espressif developed the ESP32 for IoT applications, so it has onboard Wi-Fi® and Bluetooth® adapters. It also has a relatively high clock speed and quite a lot of memory: 240MHz and 512kB SRAM, respectively. That still isn’t enough to meet the requirements of the original Doom release, which needed a lot more RAM. But Kumar demonstrates the use of a microcontroller-friendly port that runs well on this more limited hardware.
To try this yourself, you’ll need the Nano ESP32, an Adafruit 2.8″ TFT LCD shield, an M5Stack joystick, a Seeed Studio Grove dual button module, a breadboard, and some jumper wires. You’ll then need to compile and flash the Retro-Go firmware, which was designed specifically for running games like Doom on ESP32-based devices. You can then load the specialized WAD (Where’s All the Data) files.
Kumar reports an average frame rate at a 320×240 resolution, which is very playable.