Overview
A fully bare-metal real-time game console, hardware and software, built with Elijah Silguero. We designed the custom PCB and enclosure, then wrote a 3D game engine that renders at 20 FPS using interrupts and SPI, all within the tight constraints of 128 KB flash and 32 KB RAM.
The Problem
A game console is a full stack in miniature: a board to design and fab, a display and inputs to drive, and a renderer fast enough to feel like a game, all on a microcontroller with kilobytes of memory and no operating system underneath. Rather than target a dev board, we designed our own hardware from the schematic up and wrote every layer of the engine bare metal against it.
What We Did
Custom PCB & enclosure
Designed a custom PCB in KiCad integrating graphics, audio, communication, and user input, plus a custom 3D-printed enclosure to house it.
Bare-metal 3D graphics engine
A 20 FPS 3D graphics engine in C, driving an ST7735 display over SPI with interrupt-driven rendering, no OS, no framework.
Dual-board communication
UART-based inter-board communication links a second board so additional peripherals run without starving the render loop.
Asset pipeline
Built an asset-processing pipeline that converts image and audio data into formats fitting within 128 KB flash and 32 KB RAM.
Demo
The full console running, from boot to gameplay.
Gallery





Results
- A 20 FPS 3D game engine running fully bare metal on a self-designed PCB, within 128 KB flash and 32 KB RAM.
- End-to-end ownership of the stack: schematic and board layout, enclosure, engine, and asset pipeline.
- Built with Elijah Silguero.
