aerobotics

NES game console based on ESP32

 
Overview

Table of Contents generated with DocToc

Introduction

An open source game handheld based on ESP32, which can run standard NES (Japanese version is FC) games and supports mono audio. Let you reminisce about your childhood at any time.

The firmware is based on the secondary development project of Espressif Systems and moononournation. Github address: https://github.com/moononournation/esp32-nesemu

(This link is currently invalid. It may be that the author deleted the code himself, but there are other forks of this project on GitHub. Just search for esp32-nesemu on Github)

new version update

【V1.1-200807】

  • Different games can now be selected by pressing the D-pad while booting up. Supports up to 5 built-in games. (The firmware needs to be re-programmed. For details on how to download the game, see the chapter "Downloading the Game")

characteristic

  • Low cost: Only one ESP32-WROOM-32 module implements all functions without external Flash, SRAM and DAC.
  • Easy to make: The RC components are packaged in 0805 and are easy to weld. The tolerance issues of low-end 3D printers have been taken into account when producing the 3D file of the shell, which improves the success rate of shell production.
  • Good compatibility: Most NES games tested can run perfectly
  • Conveniently download games: Games can be downloaded without recompiling the source code. The built-in ESP32 automatic download circuit eliminates the need for manual reset during downloading.
  • Built-in battery: Built-in lithium battery charging circuit and low battery indicator circuit.
  • Low power consumption: The 400mAh battery can last for about 3 hours.
  • Multi-function: All available IOs of ESP32 are introduced on the board and can be used as an ESP32 development board.
  • Three indicator lights: red: low battery; blue: charging; green: battery full.
  • [2020/08/07]You can download 5 games at one time

Precautions

  • Be sure to turn on the power switch when downloading the game!
  • Game ROM size should not exceed 1M
  • The default charging current is about 400mA. If you use batteries of different capacities when making your own, please modify the value of R19 according to the datasheet of the TP4056 charging management IC to reset the charging current.image.png

keymap

image.png

IO mapping

Function IO Comments
LCD-SCLK GPIO18
LCD-MOSI GPIO23
LCD-DC GPIO17
LCD-CS GOIO5
LCD-RST GPIO4
KEY-UP GPIO14 With 4.7k ohm pullup resistor
KEY-DOWN GPIO32 With 4.7k ohm pullup resistor
KEY-RIGHT GPIO33 With 4.7k ohm pullup resistor
KEY-LEFT GPIO27 With 4.7k ohm pullup resistor
KEY-A GPIO35 With 4.7k ohm pullup resistor
KEY-B GPIO34 With 4.7k ohm pullup resistor
KEY-START GPIO16 With 4.7k ohm pullup resistor
KEY-SELECT GPIO13 With 4.7k ohm pullup resistor

Example

Run Contra game

IMG_4014.jpg

Run routine as ESP32 development board (LittleVGL)

image.png

How to make?

Prepare materials

The following products need to be purchased on third-party platforms

Other components can be purchased in Lichuang Mall according to the BOM form. The battery link is: lithium battery 700mA.

Prepare the crust

Use a third-party 3D printing service or print the shell yourself. The model file of the shell is in the attachment. image.png

Prototyping PCB

IMG_3998.jpg

Start making

1. Solder the front components of the PCB (do not solder the screen) image.png

2. Solder the components on the reverse side of the PCB (do not solder the battery) image.png

3. Power the PCB through the red box position, the power supply voltage is 3.3V, and connect the PCB to the computer through USB. image.png

4. Use the serial port assistant software on the computer to check whether the ESP32 outputs the startup Log normally. If not, please recheck whether the component welding is correct (you don’t need to care about the Log content, as long as the log is output normally) image.png

5. Close the serial port assistant and download the "ESP32-FLASH Download Tool-Already Setup.zip" in the attachment. image.png

6. Run the tool image.png

7.Select ESP32 Download Tool image.png

8. Check whether the key settings are consistent with the following pictures (the downloaded tool has already been set, and no changes are required under normal circumstances) image.png

9. Select the correct COM port and click Start to start downloading.

image.png

10. Under normal circumstances, the download should start automatically, and the progress bar will start to move, as shown in the figure:

image.png

11. If the download does not start automatically for a long time, press and hold the "Download" button, then click "Reset", and then click "START" on the download tool again. image.png

12. If the error is still reported after following step 11, the component may be damaged or the welding is poor. Please recheck the welding.

13. After waiting for the program to download normally, disconnect the USB connection and power supply. The picture below shows the download ends normally. image.png

14. Weld the screen, but do not fix the screen yet. image.png

15. Make sure the power switch is off (the lever is at the top when it is off), and then solder the battery image.pngimage.png

16. Turn on the power switch. If there is no abnormality, the "TANK" game screen should appear. If the screen is white or the screen is not bright. Please recheck the welding and downloading from the first step after disconnecting the battery. image.png

17. Use a 2.5mm diameter drill bit to expand the screw hole. If you do not have the relevant tools, you can also use self-tapping screws. image.png

18. Tear off the LCD screen protective film (follow your own habits, you don’t have to tear it off if you don’t want to). Use the double-sided tape that comes with the LCD screen or glue it yourself to fix the screen (be sure not to fix it crookedly!), put the PCB into the bottom case, place the buttons, cover the top case, and tighten the screws. image.png

19. Done, let’s start playing~

Download new games

1. Prepare the game ROM file (*.nes)

image.png

2. Run the "ESP32-Flash Download Tool-Download Multiple Games" in the attachment

image.png

3. Click the button in the red box, select the file type as "All Files" in the pop-up file selection dialog box, and then select the game ROM file you want to download.

image.png

4. Turn on the power of the game console (important!!!) , connect the game console to the computer via USB, then select the correct COM port and click START to start downloading

image.png

5. After the download is completed, press the "Reset" button of the game console to run the first game by default.

image.png

6. Press and hold the direction key without losing it, then turn on the power (press the reset key when it is on), and different games will automatically start according to the direction key pressed. Contrast as follows

Game serial number Arrow key
1 Default (no keys pressed)
2 Arrow keys-up
3 Arrow key-down
4 Arrow keys - left
5 Arrow key-right

Picture appreciation

IMG_4002.jpg

IMG_4011.jpg

参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-06-15 22:32:58
  • I want to get a 32-inch board.
  • Help with simple keyboard control LED lights
  • Review of my 2015
  • LPC1313 timer query method
  • Do you feel that the threshold for making PCBs is getting lower and lower? What is the reason?
  • Management and intelligence of cabling systems (1)

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号