ATOM Lite ESP32 – Retro Arcade machine

With the continued Wet Weather limiting the ability to get out and about it was a great opportunity to knock over some projects.

Some friends and I bought some ATOM Lite M5 processors some time back mainly for a a simple, low cost and more power alternative for Smart Home projects. The ATOM Lite has been sitting by my keyboard at home for months now and I’ve been itching to build something with it, but with endless possibilities I wanted to do something a little different.

My origins with regards to computers are the early 80’s with 8 bit machines such as Apple II, Microbee, Commodore 64 etc and when you compare these machine’s with the specs of the ATOM lite, all for approx $7 it blows your mind.

ResourcesParameter
ESP32240MHz dual core, 600 DMIPS, 520KB SRAM, Wi-Fi, dual mode Bluetooth
Flash4MB
Power Input5V @ 500mA
PortTypeC x 1, GROVE(I2C+I/0+UART) x 1
PIN PortG19, G21,G22,G23,G25, G33
RGB LEDSK6812 3535 x 1
IRInfrared transmission
ButtonCustom button x 1
Antenna2.4G 3D Antenna
Operating Temperature0°C to 60°C
Net weight3g
Gross weight12g
Product Size24*24*10mm

As mentioned the ATOM Lite with its ESP32 processor is traditionally used for Smart Home automation etc but with those specs I wanted to do something cool and retro.
Although the ATOM doesn’t support video (or sound)  I found some threads on using PIN 25 for Composite video which eventually led me to this GitHub project that essentially achieved everything that I wanted to do saving me weeks of research and was something that I easily completed in an afternoon.

Here the full project –  https://github.com/rossumur/esp_8_bit

The Video here gives a really good over view

Using the above Video and GitHub project I put my project together with the following amendments.

Edits to the primary source file: esp_8_bit.ino

//  Choose one of the video standards: PAL,NTSC
#define VIDEO_STANDARD PAL
//  Choose one of the following emulators: EMU_NES,EMU_SMS,EMU_ATARI
#define EMULATOR EMU_ATARI
//  Many emus work fine on a single core (S2), file system access can cause a little flickering
#define SINGLE_CORE
I found that without enabling the SINGLE_CORE option I would get a MALLOC32 FAILED allocation of MEMORY_mem:65540 error.

Edits to the video_out.h file

#define VIDEO_PIN 25
#define AUDIO_PIN 19 // can be any pin

First Go

After fixing the Memory allocation error I tested the ATOM PAL Video for the first time by simply holding the Composite wires in the ATOM with my fingers and to my surprise I got video.

In the photo below the yellow is the center pin of the composite going to PIN 25 and the black the shield going to Ground.

Now for Sound

Sound is extremely briefly covered in the GitHub article and managed to eventually get sound working as follows with PIN 18 connected to the center PIN via a 1K resister with a 10nf capacitor to ground (See photos below)

Cleaning the Project up

Having proof of concept I wanted to make the project more stable so I used some connectors and solder the composite and audio sockets onto a cables.

Controllers

Because the ATOM comes with Bluetooth it was a bonus to find that I could easily pair a WII controller to the ATOM by pressing the red pairing button on the WII controller during the boot of the ATOM.

Final Outcome

Here’s a quick video showing the finished product in action.

If you have an ATOM Lite lying round or are interested in the project then its a really easy one to complete and results in a really fun and low cost emulator.

ENJOY!!

Happy Computing