PICO Blasters






Greetings everyone and welcome back. meet PICO BLASTER.
Powered by the Raspberry Pi Pico and a vibrant 64x32 LED matrix panel, this unique Game Console transports players into the retro charm of "Space Invaders."
What started as a previous microcontroller-based project has now evolved into an exciting and highly interactive gaming experience: PICO Blaster. With strategic modifications, including a newly designed button control board and a custom-built frame, this revamped Game Console device redefines the retro gaming landscape.
PICO Blaster brings a fresh twist to the classic "Space Invaders" concept. Players control a spacecraft using a four-directional button PCB board, allowing seamless movement across the LED matrix display. As circular projectiles in three different sizes approach from the right side, the challenge is simple yet thrilling: shoot them down before they reach the ship. Armed with two types of weapons—rapid-fire bullets and a high-impact blaster—the game tests both strategy and reflexes.
Each projectile is color-coded based on size and difficulty: the smallest orange projectiles require a single bullet, medium yellow projectiles need two, and large red projectiles demand three hits to destroy. For players under pressure, the blaster offers a powerful advantage, capable of obliterating all projectiles in its path with a single shot, though limited by a 10-second cooldown.
PICO Blaster showcases a perfect blend of creativity and technical ingenuity, offering a rewarding experience for both players and developers.
This article dives into the project's journey, from hardware modifications to gameplay mechanics, unveiling what makes this game a standout achievement.
Supplies
These were the materials used in this project:
- Custom PCBs
- Raspberry Pi PICO 2
- RGB Matrix 64x32
- IP5306 IC
- 10uF Capacitors
- USB Micro Port
- 18650 Lithium Cell
- 18650 Cell holder SMD version
- Push Buttons
- 3D printed Parts
RGB Matrix Game Console Project





We are reusing one of our previously built game console project.
Snake Game Console Project consists of a 64x32 RGB matrix board coupled with a PICO Driver board. For controls, we have included a D-pad Button board that is connected to the GOIO of the PICO 2.
This console has an onboard power source, which is a single 3.7V 2600mAh lithium-ion cell that powers the device, making it a portable game system that we can take anywhere and start playing.
Previously, we created a basic Snake Game for this console in which we could control a Snake. The goal was to guide the snake to eat a red dot, and as the snake munched on the red dot, its size increased. The score counter will keep track of how many dots our snake has consumed. Game over happens when the snake bites itself.
You can find out more about this project from the article below.
PICO DRIVER






The main component of our console is the PICO Driver Board, which is essentially a breakout board for the PICO that allows us to connect an RGB matrix's HUB75 connector to the PICO. It also has a 3.7V Lithium Cell Power Management circuit, which ensures that the PICO and RGB matrix work at a consistent 5V.
For a quick overview of the PICO Driver Board's assembly process, see our prior project, where we went into detail about how the assembly was completed.
BUTTON BOARD Assembly


- The button board assembly process begins by placing tactile switches on the Custom Button Board.
- Flipping the board over, we solder the tactile switch pads, permanently installing them in place.
CONSOLE ASSEMBLY








- To begin the console assembly, detach the Left Holder section of the console and remove the screws that secure the holder to the PCB and RGB Matrix.
- We then installed the new 3D-printed Left Holder in place of the prior holder mounting position, using the same screws to secure it to the PCB and RGB matrix.
- By flipping the console over, we installed the button Board PCB with two M2 screws.
WIRING





- For the button PCB wiring, we only need to connect both buttons to GPIO 27 and GPIO 28, with their common Ground connected to GND of PICO 2.
- For connections, we used long jumper wires connected to the button board's pads and then to the back side of the PICO DRIVER board.
- After the wires have been linked, we can enter the main code into our PICO and test the console.
PICO BLASTER GAME CODE
This was the code we prepared for this project, and it's a simple but Long one.
Setup for the LED Matrix Display
This Section Configures pins to control the 64x32 RGB LED matrix. the Adafruit_Protomatter initializes the matrix library for displaying pixels, text, or graphics and Control pins (CLK, LAT, OE) handle data timing and refresh rates.
Spaceship Setup
This Section Defines the spaceship's size and starting position (shipX, shipY) on the screen. Initially, the ship is centered vertically.
This is a binary representation of the spaceship sprite. Each row represents one horizontal layer of the ship (an arrow-like shape pointing right).
Projectile Handling
This Sets up an array to track projectiles' positions and activation state (projX, projY, projectileActive) and Defines a maximum of 5 active projectiles (MAX_PROJECTILES)
Firing Logic
This Section Checks button input (BUTTON_FIRE) and ensures firing respects the cooldown (fireRate) and then Activates the next available projectile and positions it to fire from the center-right of the ship.
Missile Initialization
This part Creates variables for missile position and activity. Initially, the missile is inactive (missileActive = false).
It also sets a longer cooldown compared to projectiles (missileCooldown = 10 seconds).
Missile Firing
This Fires a missile with a cooldown. The missile starts from the center-right edge of the ship.
Rock Initialization (Obstacle)
This part Sets up rock attributes: position (rocks[i][0], rocks[i][1]), size (rocks[i][2]), and movement speed (rockSpeed = 1). Also, Rocks spawn every 500ms.
Rock Movement
This part Moves rocks leftward by subtracting their position (rocks[i][0] -= rockSpeed). Rocks off-screen are reset for reuse.
Collision Detection—Projectile vs Rock
This Checks if a projectile intersects a rock. If true:
- Marks the projectile inactive.
- Tracks the number of hits the rock has taken.
Game Over Logic - When Ship Collides
This section ends the game when the ship collides with a rock and then displays the "Game Over" screen.
RESULT



Here's the end result of this simple build: a working same invaders game that we built from scratch running on our CUSTOM GAME CONSOLE, which was also built from the ground up. The entire system is a DIY game console setup that can currently play two games: Snake and this new PICO BLASTER.
We can maneuver our spacecraft up, down, left, and right using the Direction Buttons, and we can fire bullets or blasts using the Weapon Buttons.
The screen refresh rate is super smooth and PICO 2 is handling this task quite well. If our spacecraft hits any projectile, we are greeted with a game over screen that shows a whole yellow circle showing that the circles WON. this splash screen stays for 5 seconds, and then the whole game resets.
This game is currently very basic and made up of simple geometrical shapes. We may further change this code by adding sprites to the game file, which are created using a pixel art generator and then turned into .H files. We can add more adversaries and objects to our game to improve its overall functionality.
Reach out to me if you require any extra assistance.
This game code, as well as the build instructions for this project or the snake game console, are accessible in this article, and it was previously published, so feel free to tweak the code and create your own game console.
Thanks for reaching this far, and I will be back with a new project pretty soon.
Peace.