DIY Projects

Build a Retro Handheld Inside an NES Gamepad with an ESP32-S2

Build a Retro Handheld Inside an NES Gamepad with an ESP32-S2

Here is a Saturday build you can actually finish before the weekend runs out: a full retro handheld that hides inside an old NES-style controller. YouTuber Logic Gate Labs cracked one open, noticed the shell was mostly empty air, and turned that dead space into a pocket emulator that plays 8-bit classics and even Doom.

What Logic Gate Labs packed in

The original board comes out first, leaving just the plastic shell, the D-pad, and the face buttons. Into that gap goes a Wemos ESP32-S2 Mini, a 1.54-inch 240 x 240 TFT screen, a MicroSD module for ROM storage, a 500 mAh lithium-polymer cell, a TP4056 charging board, a tiny speaker, and a slide switch for power. An ESP32-S3 with PSRAM would have run ROMs straight from memory with less stutter, but the bigger board simply would not fit the housing, so the S2 won the slot on size alone.

The parts-and-cost reality

Logic Gate Labs pegs the whole build at roughly $17 with commonly stocked parts, or about half that if you source directly from overseas sellers. That puts a working emulator handheld somewhere near PHP 500 to PHP 1000 in real money. The fiddly part is not the price, it is the fit: internal ribs get trimmed with a knife, fresh holes are drilled for the screen, USB port, card slot, switch, and speaker, and a thick bare copper wire runs through as a single ground rail so you are not soldering a dozen separate ground leads back to the microcontroller. Thinner signal wires let the two halves close again.

Spend a Sunday on it

Software is where you will lose an afternoon. The handheld runs the Retro-Go emulator framework, compiled with ESP-IDF and CMake because the ESP32-S2 is not a stock Retro-Go target, so expect to edit a config or two before it flashes clean. Doom runs too, using the PrBoom-Go engine and a Freedoom WAD dropped on the SD card. If you have a drawer full of dead controllers and a spare ESP32, this is the weekend project that turns one back into something you will actually pick up. Full build notes are on the original write-up at Hackster.io.

Frequently Asked Questions

Why use the ESP32-S2 Mini instead of an ESP32-S3?

The S3 has PSRAM to hold whole ROMs in memory for smoother play, but the larger board will not fit inside the controller shell. The smaller S2 Mini won the slot on physical size, so the build trades a little emulation smoothness for a case that actually closes.

How much does this handheld cost to build?

Logic Gate Labs estimates about $17 with commonly stocked parts, or roughly half that if you source the ESP32-S2, TFT, TP4056, and 500 mAh LiPo directly from overseas sellers. In peso terms that lands somewhere around PHP 500 to PHP 1000.

What will I learn if I build this?

You practice tight enclosure wiring, running a single bare-copper ground rail instead of many ground leads, and drilling clean openings in a plastic case. On the software side you compile the Retro-Go framework with ESP-IDF and CMake for a non-standard target, which is real embedded toolchain experience.

This article was inspired by reporting from Hackster. Find the parts and modules to build it at Circuitrocks.

// written by Ann Arandia

Ann Arandia covers community projects and maker events for the Circuitrocks blog. She writes about local workshops, kid-friendly electronics, and the Philippine maker scene — the people, the meet-ups, the projects that come out of them.