Back to Projects
PRJ/Project

The M0+rix: Segfaulted

20 FPS bare-metal 3D game engine on a custom PCB — 128 KB flash, 32 KB RAM

CARM M0+ AssemblyKiCadSPIUARTBare MetalTM4C123 (ARM Cortex-M4)Custom PCBST7735 displayCustom enclosure

Overview

A fully bare-metal real-time game engine running on a custom-designed PCB. The engine renders at 20 FPS using interrupts and SPI communication, all within the tight constraints of 128 KB flash and 32 KB RAM.

Hardware Design

Designed a custom PCB in KiCad integrating peripherals for graphics, audio, communication, and user input, along with a custom enclosure.

Graphics Engine

Developed a 20 FPS 3D graphics engine in C using interrupts and SPI for display communication. UART-based inter-board communication links additional peripherals.

Asset Pipeline

Built an asset processing pipeline to convert image and audio data into formats that fit within the 128 KB flash and 32 KB RAM constraints of the microcontroller.