Turn your pocket into an arcade with this business-card-sized gaming console! Powered by the CH32V003 RISC-V microcontroller, this project brings classic gaming to an ultra-portable form factor.
- Ultra-Compact Design: Fits in your wallet while packing serious gaming power
- Powerful Brain: Built around the CH32V003 RISC-V microcontroller
- Crystal Clear Display: 0.96" OLED screen (SSD1315) for crisp visuals
- Long-lasting Power: Rechargeable LIR2032 battery
- Intuitive Controls: 5 tactile buttons for precise gaming input
- Open Source: Full hardware and software documentation available
- Classic block-falling gameplay
- Increasing difficulty levels
- Score tracking
- Authentic maze navigation
- Ghost AI patterns
- Power pellets and scoring system
- PCB (Gerber files provided)
- CH32V003J4M6 microcontroller
- 0.96" OLED display (SSD1315) - X096-2864KSWAG01-H30
- 5 tactile switches (TS11092604)
- 1 slide switch (SK-3296S-01-L1)
- LIR2032 battery holder (3034TR)
- 4kHz buzzer (MLT-5030)
- Additional components (See hardware/BOM.csv for complete list)
- Order PCB using provided Gerber files (
hardware/Gerber.zip) - Gather components from BOM (
hardware/BOM.csv) - Refer to the interactive BOM for component placement (
hardware/InteractiveBOM.html) - Use pick and place file for automated assembly (
hardware/PickAndPlace.csv) - Install firmware using one of the methods below
- Install required tools:
- Install Python 3.x
- Install PlatformIO IDE
- Install platform-ch32v:
pio pkg install platform-ch32v
- Clone and build:
git clone https://github.com/annoyedmilk/Business-Card.git cd Business-Card/software pio run -t upload
- minichlink: (GitHub)
- rvprog:
pip install rvprog && rvprog -f <firmware>.bin - WCH-LinkUtility (Windows): (Download)
Comprehensive power analysis conducted using Nordic Power Profiler Kit II. The device operates efficiently across different modes:
- Main Menu: 21.4mA average @ 3.6V
- Tetris: 11.86mA average @ 3.6V
- Pacman: 9.58mA average @ 3.6V
- Buzzer: 30-50mA average, 120mA peaks
- Minimum operating voltage: 2.45V (stable), 2.4V (unstable)
See detailed power measurements
├── documentation/
│ ├── RenderFront.png # PCB front view
│ ├── RenderBack.png # PCB back view
│ ├── current_ripple.png # Power measurement graph
│ └── power_measurement.md # Detailed power analysis
├── hardware/
│ ├── 3D.step # 3D model file
│ ├── BOM.csv # Bill of materials
│ ├── Gerber.zip # PCB manufacturing files
│ ├── InteractiveBOM.html # Interactive assembly guide
│ ├── PickAndPlace.csv # SMD placement coordinates
│ ├── ProPrj_Business-Card.epro # EasyEDA project file
│ └── Schematic.pdf # Circuit schematic
└── software/
├── src/ # Source code
│ ├── main.c # Main application
│ ├── oled_min.c/h # OLED display driver
│ ├── i2c_tx.c/h # I2C communication
│ ├── system.c/h # System initialization
│ ├── spritebank.h # Game sprites
│ └── ... # Additional drivers
├── ld/ch32v003.ld # Linker script
├── platformio.ini # Build configuration
└── COPYING.txt # GPL license
- Insert charged LIR2032 battery
- Power on using the side switch
- Navigate menu with direction buttons
- Select game with action button
- Controls:
- Tiny Tris: Left/Right to move, Act to rotate, Down for soft drop
- Tiny Pacman: Directional buttons to navigate, avoid ghosts!
This project builds on the work of amazing developers:
- Stefan Wagner (@wagiminator) - CH32V003 framework
- Charles Lohr (@cnlohr) - CH32V003 tools & community support
- Daniel C (TinyJoypad) - Original game implementations
Released under GPL-3.0 License. Share, modify, and spread the joy of tiny gaming!
Making the world a little more fun, one tiny arcade at a time! 🕹️


