ESPlay Micro

ESPlay Micro is an ESP32 Based emulator device for playing retro games, able to play classic games NES, GB, GBC, SMS, Game Gear and more.

Similar projects worth following
Everyone loves ESP32 chip, it's wonderfull chip from espressif with great functionality and really mature in software development side. This project most inspired by Odroid Go and Pocketsprite, so why making new one despite buy one of them? Well, i know those devices are great and have well community support, but some of them had some issue that i don't really like. Odroid Go had shared it's spi for both display and sdcard, and they need patched esp-idf version for it and sdcard not work very well in spi mode, at least for my experience. Then pocketsprite only have esp32 wroom module without psram and also without sdcard support so limited portability for save my collection of games.

Then i decided to design my own hardware based on both of them so i could port it's software to my own designed hardware then here i presented to you ESPlay Micro.

The board are designed for the following feature :

  • ESP32 WROVER, Dual core processor with Integrated 4MB Flash + 4MB PSRAM
  • Integrated WIFI and Bluetooth 4 BLE
  • 2,4" ILI9341 TFT Panel
  • More button (expanded via PCF8574 I2C GPIO)
  • Micro SD slot connected to SDMMC Host in 1 Line Mode for save GPIO pin
  • Integrated I2S DAC via UDA1334A
  • Integrated USB to Serial for programming and debugging using CH340C
  • Built-in TP4056 Li-Po charger
  • I2C port for expandable function
  • 3,5mm Headphone jack
  • Smaller Size, PCB only 100 x 50 mm.

And planned ability to run LVGL UI both of C and Micropython ( lv_micropython)


assemby of case

3mf - 115.52 kB - 08/06/2019 at 06:12



assembly of case

Standard Tesselated Geometry - 538.56 kB - 08/06/2019 at 06:12



face plate for 3d printed

Standard Tesselated Geometry - 128.60 kB - 08/06/2019 at 06:12



dpad 3d printed

Standard Tesselated Geometry - 60.73 kB - 08/06/2019 at 06:12



button 3d printed, print 5x of this

Standard Tesselated Geometry - 63.75 kB - 08/06/2019 at 06:12


  • Trial Producton

    Makerfabs3 days ago 0 comments

    A small trial production started, and preorder at:

    the first batch shipping time woudl be estimated 28th, Oct. 

    We prepared a SD card with some simple game installed, so buyer can start playing with the USB cable connected for power.

  • Start to Play

    Makerfabs10/11/2019 at 06:59 0 comments

    with the new firmware, it works much better.

  • Rev2.0 Test Firmware and Sound!

    Fuji Pebri10/01/2019 at 15:27 0 comments

    @Makerfabs sent me 2 PCBA Sample last week, so i could work for the firmware this weekend. After upload the fw i just surprise the sound and button didn't works, i spent two hours to see what happened. I didn't make any changes on button, then after reads the datasheet there's different i2c address scheme between PCF8574AT and PCF8574T. Earlier prototype PCF8574AT was used ( salvaged from 1602 lcd i2c backpack ) and the address 0x38 was used, with this sample PCF8574T the address is 0x20, one problem solved.

    The Sound is different case, after 3 hours struggled with the programming the problem is not the software but really bad typos on schematics, the resistor for R-C filter was wrongly typed from 1 Ohm to 1 KOhm, swap the resistor with the right one and VOILA the sound works. The Sound output are really clean on the headphone and very low noise output from the speaker, really satisfied with the result. 

  • Rev2.0 PCBA Sample Completed

    Makerfabs09/18/2019 at 05:50 4 comments

    The Rev2.0 sample PCBA completed

  • Revision Time!

    Fuji Pebri08/29/2019 at 01:29 0 comments

    So... Yesterday I finished a revision design for next PCB. I will double check it before sending it to manufacturer. This time the prototype PCB will be produce by @Makerfabs.

    Here the changes in this revision so far, i called this pcb-rev2.0 :

    • Audio amplifier chip would be replaced by PAM8403 and used only left channel since audio onboard speaker only mono. I used this chip because the that have inbuilt shutdown circuit and low noise audio profile.
    • Change layout audio blocks, so audio system will be in one block to reduce noise.
    • TP4056 li-ion charger replaced by LTC4054 since it smaller and less external components.
    • Add usb plug detect and charger status, it will be monitored by esp32 to charge management.
    • Add some ESD Protection on sdcard.
    • Moved all port to the bottom edge pcb so it won't interfere while play.

  • New Launcher UI!

    Fuji Pebri08/06/2019 at 06:09 0 comments

    Hi, a bit software updates!

    Long ago i used a quick and dirty hack of GoGo launcher made by odroid-go community member. Now i built from scratch an Launcher Software for Esplay Micro using UGUI library and add some capabilities like uploading file to device using web browser. checkout my github page for code.

    While built this launcher i found a little bit flaw on hardware side, seems the LDO not enough current to supply whole board while wifi enable, backlight TFT are glitching and sometimes esp32 reboot cause of brownout detected, decreasing WiFi TX power seems solve for now, default TX power is 20 dBm and decreasing half of it to 10 dBm uses less power.

    Here some spoiler about it

  • Launcher and Emulator

    Fuji Pebri08/01/2019 at 10:00 0 comments

    Hi, a bit updated for software side. Actually this is a hardware project but have a good and optimize software is a must.
    This week i've developed a launcher and emulator based on Odroid-Go and Pocketsprites. I adopt in-game menu like in Pocketsprite. Also I write a drivers for hardware, not optimized yet but all work. One missing is sound, it's not tested yet cause i don't have i2s chip for now.


  • Esplay now playing Duke3D

    Fuji Pebri07/30/2019 at 04:17 0 comments

    A bit updated from software side, esplay now could play some games that runs on odroid go. I try ported duke nukem 3d from odroid go to be used on esplay micro. Also i still working for emulator, so far nes, gameboy, and sms are working well. Here is the proofing picture

  • Aplha Board Lives and some bugs of design

    Fuji Pebri07/22/2019 at 08:53 0 comments

    I already receive a bunch of ESPLAY MICRO PCB from JLCPCB two months ago but could play with it just a week ago. I don't have any esp wrover lying around so i salvage from another project and decided to assembly the PCB. So far after a couple hours of soldering some smd components it lives with some design bugs found later. The board work as i expected but later i found out some button didn't work, after check the esp32 datasheet i forgot add pull up resistor for some GPIO Pin.

    GPIO number 34, 35, 36, and 39 doesn't have internal pull up/down. No problem i just add some external ones then it work perfecty, add some note to add them on next board revision. here some picture of it.

    ESPLAY MICRO running retro-esp32 launcher by @Eugene Andruszczenko on his Gaboze Express, an awesome launcher design.

    added some pull up resistor to get some button working. Next i will design a 3d printed case for this. I have design for top case like this

View all 9 project logs

Enjoy this project?



fabian wrote 08/27/2019 at 18:43 point

Add sound music player, many people loves radio wifi

  Are you sure? yes | no

Fuji Pebri wrote 08/28/2019 at 00:41 point

Hi, actually it's already on planned list, that's why i added i2s DAC for high quality sound. And the good news is it work in progress, we need a new pcb revision cause the current pcb has bugs with sound design.

  Are you sure? yes | no

Eugene Andruszczenko wrote 08/23/2019 at 18:19 point

@Fuji Pebri has been amazing in his help with rewritting a better launcher with a nicer UI. check out our joint effort on this

Releases are here

It includes 11, YES eleven emulators.

 Nintendo Entertainment System
 Nintendo Game Boy
 Nintendo Game Boy Color
 Sega Master System
 Sega Game Gear
 Sinclair Zx Spectrum 48k
 Atari 2600
 Atari 7800
 Atari Lynx
 PC Engine

  Are you sure? yes | no

Fuji Pebri wrote 08/24/2019 at 04:47 point

Thanks @Eugene Andruszczenko for sending me your Retro ESP32 board, the board are awesome, still wait my GBP case arrive. Btw your retro esp32 has clean sound while esplay micro a lot of noise on low volume on speaker. i2s output has great sound although, i was design audio part carelessly, i will take yours as reference for next revision.

  Are you sure? yes | no

Calebe94 wrote 08/23/2019 at 12:06 point

Good work man.
When I finish my bachelor's degree I will update my project again, and I will definitely use your project as a reference.

  Are you sure? yes | no

Fuji Pebri wrote 08/24/2019 at 14:09 point

Thanks bro, you must update your projects, it was the most inspiration of this projects.

  Are you sure? yes | no

Jonatas wrote 08/06/2019 at 16:01 point

amazing project! could provide a circuit diagram in PDF

  Are you sure? yes | no

Fuji Pebri wrote 08/06/2019 at 16:35 point

Currently the circuit diagram is available in eagle format in my github repository. I'll add pdf format in next commit. Thanks.

  Are you sure? yes | no

Le Roux Bodenstein wrote 08/03/2019 at 17:04 point

Where did you buy the LCD screen? And how do you attach the flex cable to the pcb?

  Are you sure? yes | no

Fuji Pebri wrote 08/05/2019 at 05:40 point

I bought from, search for 2.4" tft screen ili9341. Normally you need flex cable connector, but for this one i designed just soldered directly to the PCB.

  Are you sure? yes | no

de∫hipu wrote 08/01/2019 at 10:31 point

I don't know why I only saw it now. Very nice project! I can see why you printed a case with button caps — those metal buttons are the worst.

  Are you sure? yes | no

Fuji Pebri wrote 08/01/2019 at 14:36 point

Thanks, yes the buttons are hard to press, later i'll change it with the silicon type. Earlier prototype using the same button with your uGame, those button are really good, but it's easily broken. My son could break it in just 2 months.

  Are you sure? yes | no

Brendan Robert wrote 07/31/2019 at 17:08 point

Cool project!  FWIW, I have a major bug-fixed version of the Nofrendo port which might help; it has SRAM save support (Hello, Zelda!) and SD support also.  It's dangerous to go alone, take this: 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates