gitwtfhub

wtf is esp32-console?

emir173/esp32-console — explained in plain English

Analysis updated 2026-05-18

25CAudience · developerComplexity · 5/5Setup · hard

TL;DR

A homemade handheld game console built on the ESP32-S3 chip, with a custom dual-core OS, dual screens, and fifteen built-in games.

Mindmap

mindmap
  root((E-OS Console))
    What it does
      Handheld game console
      Custom OS
      Dual screen
    Tech stack
      C
      ESP32-S3
      FreeRTOS
    Use cases
      Play built-in games
      Build the hardware
      Flash new games OTA
    Audience
      Hardware hobbyists
      Embedded developers
    Games
      Doom style
      Tetris
      Dungeon crawler

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Build a physical handheld game console from scratch around an ESP32-S3 chip.

REASON 2

Flash and run any of the fifteen included games or three small apps on the device.

REASON 3

Add a new game by writing custom C++ code for the dual-core hardware.

REASON 4

Capture screenshots and GIFs of the console's live gameplay over USB.

What's in the stack?

CC++ESP32-S3FreeRTOS

How it stacks up

emir173/esp32-consolecodemagic-ci-cd/codemagic-patchdivision-36/z-jail
Stars252525
LanguageCCC
Setup difficultyhardhardmoderate
Complexity5/54/53/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1day+

Requires assembling custom electronics hardware, not just installing software.

Wtf does this do

This project, called E-OS, is a homemade handheld game console built around the ESP32-S3, a small dual core microcontroller chip. The whole operating system and every game engine were written from scratch in C++ for this specific hardware, without relying on any existing game engine or emulator. The physical device has two screens: a small color TFT screen that handles the main game display and interface, and a smaller black and white OLED screen above it that shows system status and high scores. It also has an analog joystick with hardware filtering to stop unwanted drift, a simple 8-bit buzzer for sound, and a micro SD card slot for storing game data. Sixteen megabytes of flash storage and eight megabytes of extra memory give it enough headroom to run smoothly. The operating system takes advantage of the chip's two processor cores by dedicating one core entirely to running game logic while the other core is solely responsible for drawing graphics to the screen, which the project says keeps things from stuttering. The main menu is an animated, rotating carousel for choosing between programs, and pressing the joystick button can pause any running game instantly at the hardware level. New games or updates can be installed over the air by reading files from the SD card and writing them to the device's flash memory. The console ships with fifteen custom built games recreated for this small hardware, including a Doom style raycasting shooter, a Mode 7 style racing game, a top down dungeon crawler with boss fights and a shop, Tetris, Snake, Pac-Man, Space Invaders, Flappy Bird, 2048, a rhythm game, a tower defense game, and more, plus three small apps: a flight tracker that pulls real data from the OpenSky Network, a stopwatch and metronome tool, and an Etch-a-Sketch style drawing app. The project also includes Python scripts that can capture screenshots and animated GIFs of the console's screen live over a USB cable while a game keeps running. This is a from-scratch hardware and firmware project, best suited to someone comfortable building and flashing embedded electronics rather than a typical software-only user.

Yoink these prompts

Prompt 1
Explain the hardware parts list I would need to build this ESP32-S3 handheld console myself.
Prompt 2
Walk me through how the dual-core FreeRTOS setup splits game logic and screen rendering.
Prompt 3
Help me understand the OTA bootloader so I can flash a new game onto the device from an SD card.
Prompt 4
Show me how to use the Python capture.py tool to record gameplay footage over USB.

Frequently asked questions

wtf is esp32-console?

A homemade handheld game console built on the ESP32-S3 chip, with a custom dual-core OS, dual screens, and fifteen built-in games.

What language is esp32-console written in?

Mainly C. The stack also includes C, C++, ESP32-S3.

How hard is esp32-console to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is esp32-console for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.