Skip to main content
Version: ACS CC

Arcade Gaming Console

info

Author: Dămoc Mara - Andreea
GitHub Project Link: link_to_github

Description

This arcade game is built on STM32 using bare-metal Rust. It polls four buttons for real-time movement on a TFT LCD. The system tracks gameplay logic, including collision detection and scoring. Feedback is provided via three LEDs for lives and a PWM buzzer for sound effects. The project demonstrates full hardware-software integration—combining digital inputs, visual rendering, and sensory feedback in a memory-safe environment.

Motivation

The motivation behind this project stems from a nostalgic passion for classic arcade games. By building a mini-console from scratch, I wanted to take a fun and engaging approach to learning embedded systems. This project merges my interest in gaming with technical skill-building, providing a hands-on way to understand how hardware and software interact to create a real-time interactive experience.

Architecture

The STM32 microcontroller serves as the central control unit, directing and managing all hardware components and executing the game logic developed in Rust. The four directional buttons are tactile switches connected directly to the STM32 GPIO pins to control the player's movement (Up, Down, Left, Right). OLED Display (SSD1306) is connected via SPI (or I2C) for real-time rendering of the game world, player character, and status messages. Life Indicator LEDs show the remaining player lives. Passive Buzzer: Connected to a pin for dynamic tone generation. It provides auditory cues for game events, such as losing a life.

Log

Week 5 - 11 May

Week 12 - 18 May

Week 19 - 25 May

Hardware

The system is powered by an STM32 microcontroller (ARM Cortex-M), utilizing its SPI, GPIO, and PWM peripherals to interface with external components.

Schematics

Project Schematic

Bill of Materials

DeviceUsagePrice
Display LCDGame screen35 RON
BreadboardConnecting the components7 RON
NPN transistorsElectronic switch3 x 1.5 RON
ButtonsUser input6 x 2.5 RON
BuzzerAuditory feedback12,5 RON

Software

LibraryDescriptionUsage
st7735-lcdDisplay driver for ST7735Used for the 1.77" TFT display
embedded-graphics2D graphics libraryUsed for drawing sprites and text
cortex-m-rtStartup code and runtimeBare-metal execution for STM32
  1. The Embedded Rust Book
  2. Cortex-M Guide