Hardwareby XiaoGai · HacksterAn ESP32 handheld that plays NES off a microSD card
Rithin K crammed a 320x240 TFT, a 2S lithium pack and a speaker into a two-piece 3D-printed shell around a plain ESP32 DevKit, then ran NES games at about 60 FPS.
Build sheet
- Brain
- ESP32 DevKit
- Display
- ST7789 320x240 TFT
- Power
- 2S 7.4V 3800mAh Li-ion
- Firmware
- Anemoia-ESP32 (Arduino)
Can I build this?Intermediate · AI 4/5 · $40–70
- Difficulty
- Intermediate
- AI-buildability
- 4/5
- Time
- A weekend
- Cost
- $40–70
The firmware is an existing emulator that needs only pin configuration, which AI can help with, but the soldering, perfboard D-pad, power wiring and case assembly are hands-on.
Based on "An ESP32 handheld that plays NES off a microSD card" on Afterware: https://afterware.xyz/p/an-esp32-handheld-that-plays-nes-off-a-microsd-card
I want to build a handheld NES player on an ESP32 DevKit with a 2.4in ST7789 SPI TFT (320x240) and a microSD card module on a separate SPI bus. Start from the Anemoia-ESP32 emulator and help me set up TFT_eSPI for the ST7789 pins, a config.h for the buttons, SD and I2S audio, and a pause menu on Start+Select.
Estimates based on the original write-up. How AI-buildability is scored. Building with an AI assistant? Connect it to Afterware (free MCP server).
Story
The brain is an ordinary ESP32 DevKit, the kind found in beginner IoT kits. Rithin K ran the Anemoia-ESP32 NES emulator on it, with Wi-Fi and Bluetooth switched off and each of the two cores given its own job: one for emulation, one for audio and buttons. The result is a pocket console that loads ROMs from a microSD card and holds about 60 frames per second.
The case is FreeCAD-designed and printed in ABS as two halves. The orange front holds the ST7789 screen and buttons, and the black back holds a 7.4V 3800mAh 2S pack, a charger/protection board, a buck converter and the speaker. The D-pad is built on small perfboard pieces, and the other buttons are standard tactile switches wired to GPIO and ground with internal pull-ups. Before the ESP32 saw any power, the buck converter was trimmed with a multimeter to exactly 5.0V.
Battery life is listed at 2 to 5 hours, with about an hour to charge. The trick worth stealing is the power-first bench test: a 2S pack and a bare ESP32 can take each other out, so bring up the buck converter alone before anything else touches it.
Hardwareby XiaoGai · Hackster
Hardwareby Janster Benksterinho · Hackster











