← Back to Projects
EmbeddedShipped

Arduino TFT Tetris

Bare-metal handheld Tetris on Arduino Nano + ST7735 display.

I built this to practice embedded game loops and real hardware debugging. Everything runs on-device: rendering, input handling, collision checks, scoring, and sound cues.

Date
2026
Signal
Embedded
Build stage
Playable prototype complete
Stack
Arduino Nano, C++
embeddedgame-loophardware-debuggingspi
Demo

Project notes

Highlights

What I built

  • Real-time game loop with falling pieces and collision logic.
  • SPI display pipeline tuned for constrained hardware.
  • Physical button controls with debounce handling.

Architecture

How the system works

  • Main loop handles input, state update, collision, and redraw.
  • Grid/tetromino state stored in compact board representation.
  • Piezo signals triggered on key events like line clear/lock.

Challenges

What made it hard

  • Intermittent display issues required solder-level debugging.
  • ST7735 initialization quirks varied by panel variant.
  • Rendering performance had to be tuned to keep controls responsive.

Lessons

What I learned

  • Hardware faults and software bugs are tightly coupled in embedded work.
  • Prototype staging (two-button dev setup first) reduced risk a lot.

Stack / materials

Arduino NanoC++ST7735SPIAdafruit GFX
  • Potential upgrades: rotation polish, difficulty ramps, enclosure design.

Media timeline

Build photos, clips, and process visuals. The goal is to show how the project evolved, not just the final screenshot.

Display bring-up
Control prototype
Build snapshot
Arduino TFT Tetris media 1
Iteration snapshot
Arduino TFT Tetris media 2
Gallery 3
Arduino TFT Tetris media 3