Skip to main content
Version: ACS CC

The Mini Arcade

Pocket-sized arcade action for solo challenges or head-to-head fun.

info

Author: Iulian Alexa
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-iulianalexa

Description

This handheld mini-console delivers a diverse collection of engaging numeric mini-games, controlled by dual keypads for both solo brain teasers like Sudoku and competitive two-player challenges. Players can test their calculation speed, memory of number sequences, and reaction time in intense 1v1 battles across multiple rounds, with scores tallied to determine the winner.

Motivation

I chose this project because it taps into something I enjoy: the simple joy of accessible gaming. The idea of creating a small, portable, and cheap mini-arcade that doesn't need a computer is exciting. It's reminiscent of retro consoles, from a time when fun activities weren't always about intense competition. Focusing on straightforward, engaging numeric mini-games controlled by keypads offers a cool mix of nostalgia and something a bit different, emphasizing quick thinking and friendly rivalry.

I also thought it would be interesting to try and connect a USB keyboard to a microcontroller using Rust (without the TinyUSB C bindings).

Architecture

Hardware Integration

  • The Raspberry Pi Pico 2W acts as the central processing unit, running the software.
  • The display is driven by the Pico 2W to provide the visual interface for all menus, games, and feedback.
  • The MicroSD module integrated in the TFT display module allows for writing and reading leaderboard scores.
  • The buzzer, connected to a GPIO pin on the Pico 2W, provides simple audio cues.
  • The USB hub allows the Pico 2W to receive input from the two keypads.
  • LEDs are used for additional visual feedback.

block

Software Flow

block

Log

Week 28 April - 4 May

  • ordered hardware components
  • soldered headers to the microcontroller
  • performed USB tests

Week 5 - 11 May

Week 12 - 18 May

Week 19 - 25 May

Hardware

  • Raspberry Pi Pico 2W - The microcontroller
  • 2.2'' LCD TFT SPI 320x240 ILI9341 display - Display and Micro SD module
  • 2x A4Tech NumericPad Fstyler FK13 USB Black - User Input
  • LOGILINK Hub USB 2.0 4 ports - Join Keyboards to allow connecting to MCU USB
  • Active Buzzer - Audio feedback
  • LEDs - Additional visual feedback

Schematics

block

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2WThe microcontroller40 RON
Raspberry Pi Pico 2WAs Debug Probe40 RON
2.2'' LCD TFT SPI 320x240 ILI9341 displayMain Game Output and microSD card reading/writing for leaderboard scores69 RON
2x A4Tech NumericPad Fstyler FK13 USB BlackUser Input2x 30 RON
LOGILINK Hub USB 2.0 4 portsConnect Keyboards30 RON
Breadboard (830 contacts)Connect Components10 RON
Female USB-A to Male Micro USB AdapterUSB Hub input5 RON
Jumper WiresConnecting Components5 RON
3xR6 Battery HolderPortable Power Source4 RON
2x Active BuzzerAudio Feedback2x 2 RON
ResistorsVoltage regulation and signal protection for components3 RON
LEDsVisual Feedback3 RON
Total273 RON

Software

LibraryDescriptionUsage
mipidsiDisplay driver for ILI9341Used for the display
embedded-graphics2D graphics libraryUsed for drawing to the display
embassy-rpHAL for RP2350
cotton-usb-hostUSB Host StackEnable the Keyboards
rp235x-pacPAC for RP2350Used by cotton-usb-host
defmtDeferred formattingLogging during testing
  1. PM Rust Lab
  2. Some thoughts on using a USB keyboard with the Raspberry Pi Pico
  3. TinyUSB
  4. cotton_usb_host
  5. RP2350 Datasheet