Arduino-based multi-purpose gadget & retro game console 8×8 LED matrix • Gyroscope • Magnetometer • Touch controls
▶ Click here to watch the full Multi-Matrix demo video
Multi-Matrix is a project which turns an Arduino(Nano), an 8×8 LED matrix, and two I²C sensors into 8 different tools / games — all switchable on the fly with 4 touch buttons and a shift key. Compact, self-contained, and fun to build and play.
| # | Icon | Mode | How it works |
|---|---|---|---|
| 0 | 🧭 | Needle Compass | Magnetometer → single LED points North |
| 1 | 🔤 | Letter Compass | Shows N / S / E / W as full letters |
| 2 | 🎳 | Arcade Bowling | Tilt to aim, shake to roll |
| 3 | 🐍 | Snake | Tilt to steer, eat food, don't crash |
| 4 | 🐦 | Flappy Dot | SHIFT to flap, dodge the pipes |
| 5 | 🎲 | Dice | Shake to roll — result on matrix |
| 6 | 🎱 | Magic 8-Ball | Shake for Yes / No / Maybe |
| 7 | 🔵 | Bubble Level | Tilt the board, center the dot |
| Button | Normal Press | + SHIFT Held |
|---|---|---|
| TOUCH 1 | Needle Compass | Letter Compass |
| TOUCH 2 | Bowling | Snake |
| TOUCH 3 | Flappy Dot | Dice |
| TOUCH 4 | Magic 8-Ball | Bubble Level |
| SHIFT | (Jump for Flappy Bird) | Flappy Bird jump |
| Component | Specification |
|---|---|
| Microcontroller | Arduino Nano / Uno / Mega |
| Display | 8×8 MAX7219 LED Matrix FC16 |
| IMU | MPU-6050 · I²C @ 0x68 |
| Compass | HMC5883L · I²C @ 0x1E |
| Input | 1x Single channel & 4-Channel Touch Sensor |
| Audio | Passive buzzer |
| Arduino Nano Pin | Component Pin | Device / Function |
|---|---|---|
| D10 | CS | MAX7219 8x8 LED Matrix |
| D11 | DIN | MAX7219 8x8 LED Matrix (Hardware SPI Data) |
| D13 | CLK | MAX7219 8x8 LED Matrix (Hardware SPI Clock) |
| D2 | OUT1 | HW-138 4-Channel Touch (Pad 1) |
| D3 | OUT2 | HW-138 4-Channel Touch (Pad 2) |
| D4 | OUT3 | HW-138 4-Channel Touch (Pad 3) |
| D5 | OUT4 | HW-138 4-Channel Touch (Pad 4) |
| D6 | SIG | Single Touch Sensor (Shift Key) |
| D7 | VCC / + | Passive Buzzer |
| A4 | SDA | MPU6050 (Tilt) + GY-271 (Compass) [Shared I²C Bus] |
| A5 | SCL | MPU6050 (Tilt) + GY-271 (Compass) [Shared I²C Bus] |
| 5V | VCC | Shared Power Rail (All Modules) |
| GND | GND / - | Shared Ground Rail (All Modules & Buzzer) |
Install via Arduino Library Manager:
MD_MAX72XX— MajicDesignsWire.h— built-in
At the top of the sketch, set your IMU offsets:
int16_t offsetX = 0; // ← replace with your X offset
int16_t offsetY = 0; // ← replace with your Y offsetTip: Lay the device flat, open Serial Monitor at 9600 baud, and read the raw
calX/calYvalues — those are your offsets.
1. Wire components per the diagram above
2. Install MD_MAX72XX via Library Manager
3. Set calibration offsets in the sketch
4. Upload → enjoy!
Multi-Matrix/
├── assets/ # Project banner, demo video, and build gallery images
├── src/
│ └── Multi-Matrix.ino # Main application source code
├── .gitignore # Prevents tracking of local build and editor files
├── LICENSE # Project license (MIT)
├── platformio.ini # PlatformIO project configuration & library dependencies
└── README.md # Project documentation
Made with jumpers and breadboard
🔍 Click to view AI usage in this project
To maintain full transparency, here is how AI tools were utilized to help build this project:
- Gemini: Assisted in generating the initial prototype code and brainstorming features.
- Claude: Assisted in debugging prototype iterations of the main code, optimizing performance, and providing structure tips for the repository and documentation.
MIT — see LICENSE








