Andres Moreno
Published © GPL3+

RetroDS v2: ESP32-S3 NES Handheld on a Custom 4-Layer PCB

A handheld NES emulator on my own 4-layer ESP32-S3 PCB, hand-assembled and debugged with a multimeter. Sound, saves and a 3D-printed case.

AdvancedShowcase (no instructions)20 hours17
RetroDS v2: ESP32-S3 NES Handheld on a Custom 4-Layer PCB

Things used in this project

Hardware components

ESP32-S3-WROOM-1U-N8
×1
ST7789 2.0 inch 240x320 IPS display
×1
MCP73871 Li-ion charger
×1
AP2112K 3.3V LDO regulator
×1
3.7V 1500mAh Li-ion pouch cell
×1
Slide switch (TE 1825159-1)
×1
RetroDS v2 custom 4-layer PCB
×1
E-Switch TL3315NF100Q SMD tactile switch
×10
MicroSD card module (SPI)
×1
PTS810 SMD tactile switch (BOOT and RESET)
×2
MAX98357A I2S amplifier module
×1
4 ohm 3 W speaker
×1
GCT USB4105 USB-C receptacle
×1

Software apps and online services

Arduino IDE
Arduino IDE
KiCad
KiCad

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
3D Printer (generic)
3D Printer (generic)
Digital multimeter
Hot air rework station

Story

Read more

Schematics

Schematic sheet 1: ESP32-S3 and controls

KiCad schematic of the RetroDS v2 board: ESP32-S3-WROOM-1U, display, SD, audio and the 10 buttons.

Schematic sheet 2: power and USB

USB-C input, MCP73871 charger with load sharing, slide switch and AP2112K 3.3 V LDO.

Code

NesCat 0.5 emulator by Nathalis (base firmware, GPL-3.0)

The open-source ESP32 NES emulator RetroDS is built on (the original repo was removed; this is a public GPL-3.0 copy). My v2 port changes the display driver, audio, pins, storage and timing as described in the story.

Credits

Andres Moreno
3 projects • 0 followers
EEE student at UWA, Perth. ESP32 firmware, KiCad PCBs and Fusion 360 parts. Building a two-legged robot and 3D-printed RC cars.

Comments