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.

by Logic Gate Labs

FULL CAD BOM FIRMWARE DOCS

WorkshopOpen-hardware

difficulty
●●●○○
time
a weekend
license
MIT
repo
repo ACTIVE1 stars

WHAT YOU’LL NEED

  • Electronic partsfull list with part numbers in the repo BOM
  • Dev board / microcontrollerruns the project firmware

Partner

A portfolio for your buildsShow your work on a clean portfolio site — makers get up to 55% off annual plans.Try Pixpa
1

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.

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?

Printnothing required
BuyWemos ESP32-S2 Mini, 1.54 inch 240×240 TFT display, MicroSD card module, 500 mAh LiPo battery, TP4056 charging board, small speaker, slide power switch, cheap NES-style gamepad housing
Toolssoldering iron, wire strippers, multimeter, USB cable for flashing, screwdrivers, possibly a rotary tool for shell trimming
SkillsIntermediate: confident soldering of small wires to development board pins, flashing ESP32 firmware, patience with tight internal fitting and wire routing. No PCB design or custom firmware required.
TimeA weekend: one afternoon for ordering and receiving parts, one evening for flashing and first assembly, one more session for fitting and debugging wiring inside the tight shell.
Cost$ — under seventeen dollars for all electronic parts from usual suppliers; gamepad housing a few dollars more if you do not already have one
SafetyLithium-polymer battery requires care: do not puncture, short, or overcharge. The TP4056 charging board handles the charging if wired correctly. No mains voltage. Keep the battery away from children and metal objects during assembly.

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

A desktop 3D printer that prints in full colorPartner · Kickstarter
A desktop 3D printer that prints in full color

HeyGears G1: 10M+ colors and transparent parts in one print, plus UV printing on flat objects. Figures, parts and labels — no painting.

See how it prints

Gallery

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 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. 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. 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?

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.

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.

GitHub

Star the project on GitHub

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.