Gumdrop Mini
A Raspberry Pi Pico‑powered handheld that runs a Rust implementation of a platformer game.
Author: Caraian Sonia-Adriana
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-soniacaraian
Description
I decided to build a handheld console designed to run a Rust reimplementation of a platformer game I had originally created in a previous project, "Princess Bubblegum Adventure". Inspired by the game's candy-themed world, I named the console Gumdrop Mini.
Motivation
I chose this project because I had taken a lot of creative freedom when designing "Princess Bubblegum Adventure" — from the gameplay mechanics to the visual assets, all of which I created myself. I wanted to see the game run on real hardware rather than just in a development environment. Because it was inspired by retro games, it only felt natural to run it on a handheld console.
Architecture
Log
Week 5 - 11 May
Started doing the hardware and finished the documentation.
Week 12 - 18 May
Done the hardware, began designing the case.
Week 19 - 25 May
Started and finished the code, including taking button input, drawing on the SPI display and the general game logic. Modeled and 3D printed the case.
Hardware
The console is built around the Raspberry Pi Pico 2W, and is powered by a 9V battery regulated through a step-down voltage module. User input is handled via push buttons connected on a breadboard, while game audio is played through a buzzer. An LCD display is used for game output.
Schematics
Bill of Materials
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico 2W | The microcontroller | 39 RON |
Modul DC-DC Step Down LM2596S | Voltage regulation from 9V battery to 3.3V/5V | 13 RON |
Baterie de 9V Varta Superlife | Power source | 6 RON |
Conector pentru baterie 9V | Connects battery to power circuit | 1.29 RON |
Breadboard 175 x 67 mm | Prototyping and wiring connections | 12 RON |
Modul cititor card SD | External storage access | 6 RON |
Set fire M-M 40p, 30 cm | Jumper wires for circuit connections | 10 RON |
Set fire M-F 40p, 30 cm | Jumper wires for mixed pin headers | 10 RON |
Set fire F-F 40p, 10 cm | Short jumper wires for compact connections | 5 RON |
Buzzer pasiv 3V | Outputs sound/music using PWM | 1 RON |
Buton 6x6x6 mm | Input controls for the game (e.g., A/B/Start) | 0.36 RON |
2.8" TFT LCD ILI9341 Display | Color display with touchscreen, SPI interface | 67 RON |
4k7 resistor | Resistors | 0.10 RON |
Software
Library | Description | Usage |
---|---|---|
embedded-graphics | A 2D graphics library for embedded systems without a framebuffer. Supports drawing text, shapes, and images. | Used to render visuals for the game on the LCD screen |
ili9341-driver | A Rust driver for ILI9341-based TFT displays over SPI, compatible with embedded-graphics. | Used to control and render graphics on the 2.8" TFT LCD |
tinybmp | A parser for BMP image files with no std dependency, useful for rendering sprites. | Loads and draws bitmap assets onto the display |