Build a Portable NES Console Using an ESP32 and Arduino
The barebones NES console is outfitted with a TTGO ESP32 board, 4" LCD module, amplifier, speaker, and several buttons.
Plenty of projects have been created using the versatile ESP32 microcontroller, but perhaps the most prominent are retro game consoles. SBCs, MCUs, and other development platforms have made it easy to replicate those systems, as the embedded CPUs have more than enough muscle to play your favorite retro games. That said, most DIY portable consoles tend to recreate Nintendo’s Game Boy, but maker Chen Liang decided to go with its big brother, Nintendo’s original NES.
Liang built his Arduino NES using parts from AliExpress, such as a TTGO v1.7 ESP32 development board, a 4" ST7796S SPI LCD module, a MAX98357 I2S amplifier module, and a PCB-mount mini speaker. It also packs a PSP analog joystick, six buttons, and a LiPo battery, all of which are wired together on a compact 400-hole breadboard. For the emulator, Liang went with a modified version of Nofrendo designed to work with the Arduino IDE, rather than the default Windows, Unix, and BeOS.
To support as many display options as possible for the Arduino NES, Liang changed the display implementation to use Arduino_GFX, which can take advantage of different resolutions and formats. As with any retro emulator, users need ROMs to play the corresponding games, which can be downloaded from anywhere (insert a legal disclaimer here), and then saved to a media of your choice. Liang has uploaded a detailed walkthrough of his Arduino NES on his Intractables page for those who would like to replicate his setup, including links to the necessary code to get up and running.