Esplora X M5Stack

Summary of Esplora X M5Stack


This article details building a retro NES game console by combining the Arduino Esplora as an I2C gamepad with the M5Stack (ESP32) for display and emulation. This setup avoids the long boot times associated with Raspberry Pi solutions, offering instant gameplay access.

Parts used in NES Game Console:

  • Arduino Esplora
  • M5Stack core with 2.0" LCD
  • 2 pins male-male pin header
  • 6 pins male-female pin header
  • Grove Conversion Cable
  • 1 to 1 patch wires for SCL and SDA connections

This instructables show how to combine Arduino Esplora and M5Stack to make a NES game console.

Step 1: What Is Arduino Esplora?

Arduino Esplora is an Atmega32U4 AVR microcontroller board.

It is unique Arduino boards, because it built-in various input sensors out-of-the-box, including a joystick, 4 push buttons, a slider, a temperature sensor, an accelerometer, a microphone, a light sensor, etc.

And also Arduino IDE provided various example for using all of it.

This time I will program Esplora as an I2C slave device to act as an I2C gamepad.

Ref.: https://store.arduino.cc/usa/arduino-esplora

Step 2: What Is M5Stack?

M5Stack start from a kickstarter project at 2017, ESP32 core, built-in 2.0″ color LCD, tiny 5 cm form factor, support stackable modules and grove I2C modules.

Now it already have various core models, tens of stackable modules and also support tons of I2C Grove modules.

Ref.:

https://www.kickstarter.com/projects/179167367/m5s…

https://m5stack.com/

Step 3: Why Play Retro Game With ESP32?

It is a very popular topic using Raspberry Pi to make a retro game console with Retropie distribution.

It do the job very well, but the most notable problem is the boot time.

I do not want to wait over half a minute to enter a retro game, a real game console no need to wait for this!

Then I found esp32-nesemu no need to wait for boot, so I try to use M5Stack to build a NES game console.

Step 4: Hardware Preparation

Arduino Esplora

The official product is obsoleted but it is still very easy to find a clone on the web.

M5Stack

Any M5Stack core with 2.0″ LCD should be ok.

Pin Headers

2 pins male-male pin header and 6 pins male-female pin header.

Grove Conversion Cable

Normal 4 pin Male Jumper to Grove 4 pin Conversion Cable preferred. I did not have this cable in hand, so I just patch 1 to connect SCL and SDA pins myself.

Step 5: Software Preparation

Arduino IDE

Download and install Arduino IDE if not yet:

https://www.arduino.cc/en/Main/Software

ESP-IDF

Follow the setup guide to install ESP-IDF if not yet:

https://docs.espressif.com/projects/esp-idf/en/sta…

Step 6: Program I2C Gamepad

I have written a simple program to read the joystick and buttons input and translate it into I2C message.

Here is the program steps:

  1. Download esplora-i2c-gamepad.ino at GitHub: https://github.com/moononournation/esplora-i2c-gam…
  2. Connect Esplora to the computer
  3. Open Arduino
  4. Upload program

Source: Esplora X M5Stack

Quick Solutions to Questions related to NES Game Console:

  • What is the Arduino Esplora?
    It is an Atmega32U4 AVR microcontroller board featuring built-in sensors like a joystick, buttons, slider, temperature sensor, accelerometer, microphone, and light sensor.
  • Why use ESP32 instead of Raspberry Pi for this project?
    The author chose ESP32 because it avoids the long boot time required by Raspberry Pi Retropie, allowing immediate entry into games.
  • Which software tools are required for this project?
    You need Arduino IDE for the Esplora program and ESP-IDF for the M5Stack configuration.
  • How does the Arduino Esplora function in this build?
    The Esplora is programmed to act as an I2C slave device that reads inputs from its joystick and buttons and translates them into I2C messages.
  • What specific hardware components are needed for the connection?
    The project requires pin headers, a Grove conversion cable, or patch wires to manually connect SCL and SDA pins if a cable is unavailable.
  • Can any M5Stack model be used?
    Yes, any M5Stack core equipped with a 2.0" LCD screen is suitable for this project.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top