THIS IS AN ORDINARY NES CONTROLLER AND IT IS RUNNING DOOM BY ITSELF
He opened a cheap NES-style gamepad, saw how much empty space was inside, and put a whole console in it.
WorkshopOpen-hardware
- difficulty
- ●●●○○
- time
- a weekend
- license
- MIT
- repo
- repo ACTIVE1 stars
●●●○○ · a weekend · MIT · 1 stars · repo ACTIVE
WHAT YOU’LL NEED
- Electronic parts — full list with part numbers in the repo BOM
- Dev board / microcontroller — runs the project firmware
Partner
COMPAREE VERDICT
This is not a difficult build if you have soldered before, but it is a tight fit and the wiring is fiddly. The clever part is the board choice: a dual-core ESP32-S3 would have been faster, but it physically did not fit inside the gamepad housing, so the single-core S2 Mini was picked as the compromise between size and speed. That trade-off is why DOOM runs slow but playable rather than smooth. The parts list is short and under seventeen dollars from the usual suppliers, which is less than a single second-hand cartridge for the console it imitates. The software is Retro-Go, an existing emulator front end for ESP32 boards, so this is reproducible rather than one person's private firmware. The one thing most likely to go wrong is the screen fit — there is no printed bracket, so you will be measuring, trimming and testing the clearance yourself. The repository does not include detailed photos of the internal layout from multiple angles, so expect some trial fitting. If you want a self-contained handheld that looks like an ordinary controller from the outside, this is the build. If you want full-speed emulation, you will need to accept a larger case and a faster chip.
IN THE REPO
NOT IN THE REPO
- —Parts list with supplier links and flashing instructions are in the repository.
- —The firmware is Retro-Go, a separate long-running open-source project by ducalex — not custom code.
- —No 3D models or CAD files; the build uses a commercial NES-style gamepad housing as-is.
- —No PCB design files — this is a wiring job using development boards.
- —Repository licence is MIT, allows commercial use.
- —Video walkthrough exists but is external (YouTube), not in the repository itself.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Partner · KickstarterHeyGears G1: 10M+ colors and transparent parts in one print, plus UV printing on flat objects. Figures, parts and labels — no painting.
Gallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Read the flashing guide in the repository to prepare the ESP32-S2 Mini firmware (The instructions assume you have already bought the parts listed in the BOM.)
- 2.Flash Retro-Go to the ESP32-S2 Mini following the repository instructions(This step must complete successfully before you start wiring or fitting anything into the shell.)
- 3.Test the screen, speaker and battery connections on the bench before closing the shell(Debugging inside the tight housing is much harder than on the bench.)
KNOWN ISSUES
- The single-core ESP32-S2 Mini is slower than an S3, and that is deliberate — the S3 does not fit in the housing. Do not buy an S3 expecting better performance; it will not close.
- The screen has no printed bracket or detailed internal photos showing exact placement, so expect to measure, trim shell plastic, and test-fit multiple times.
- The TP4056 charging board and battery must be wired correctly or the battery will not charge (or worse, will overcharge). Double-check polarity before closing the shell.
- The repository does not include a schematic diagram showing all the connections in one place — you will follow the written instructions and cross-reference pin assignments yourself.
- DOOM runs slow but playable, not smooth. If you want full-speed classic games, stick to the 8-bit titles Retro-Go was designed for.
- The gamepad housing is a commercial product, not a 3D-printed custom case. If you cannot source the same housing cheaply, the entire fit will be different.
Can I use an ESP32-S3 for better performance?
No — the dual-core S3 physically does not fit inside the NES-style gamepad housing. The single-core S2 Mini was chosen specifically because it is smaller, and that is the reason DOOM runs slower.
What games can it actually run?
Dozens of 8-bit titles through Retro-Go, and a slow but genuinely playable build of DOOM. Do not expect smooth frame rates on DOOM — it is a tech demo, not the ideal use case.
Do I need to compile the firmware myself?
No — Retro-Go releases are available pre-built. The repository flashing guide points you to the firmware you need for the ESP32-S2.
Is there a video showing the internal wiring step by step?
The payload does not include an official walkthrough video URL. The repository has written instructions and a parts list, but no video chapters are provided.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion1
FROM THE COMPAREE TEAM
The dual-core ESP32-S3 would have been faster, but it physically did not fit in the housing — so the single-core S2 Mini was chosen, and that is why DOOM runs slow. Would you take the speed hit for the smaller shell, or would you build this in a bigger case with the faster chip?
Logic Gate Labs
Logic Gate Labs opened a cheap NES-style controller, noticed the empty space, and turned it into a self-contained handheld console. The engineering decision to use the slower single-core ESP32-S2 Mini instead of the faster S3 was driven entirely by the physical constraint of the housing.
DISCLAIMER
- Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
- Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
- Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.

CompareeTEAM18d agoedited
Practical notes from our verification: the repository is a flashing guide and instructions set, not a hardware design — the emulator firmware is Retro-Go by ducalex, a separate long-running open-source project. The parts list is clear and includes supplier links, but there are no detailed internal layout photos showing wire routing or screen placement from multiple angles, so expect some trial fitting. The cost claim of under seventeen dollars is for the electronic parts from usual suppliers and does not include the gamepad housing or shipping. The single biggest thing to know before buying: the ESP32-S2 Mini is slower than an S3, and that choice was forced by the physical size of the housing — you cannot swap in a faster chip without changing the entire case.