Hey everyone,
Meet PiBoy Advance—a DIY Game Boy built inside the shell of a Game Boy Advance, powered not by a Raspberry Pi, but by something far more minimal: the Raspberry Pi Pico.



Unlike the full-fledged Raspberry Pi that comes with operating systems and multimedia support, the Pico is a microcontroller. That means no Linux, no built-in graphics stack, and no luxury of high-level emulation frameworks. Everything—from display handling to sound generation and ROM loading—had to be engineered from scratch. And that’s exactly what makes this build special. However, we are not really building the emulator from scratch; we are using an existing Pico GB project repository. All the circuitry has been built from scratch.
PiBoy Advance runs Game Boy ROMs directly from an SD card, displays them on an ILI9225 screen, and even outputs sound using a MAX98357 I2S Module.
The shell used in this project was arranged from a local marketplace in my city, which is the Lajpat Rai market. It's one of the biggest electronics marketplaces in India; it's in front of Red Fort, New Delhi, and here you can find a bunch of old retro games and related stuff. I even got an OLED PSP and PS2 from here, which I will be using in a future project.
By following the PICO GB pinout info found on their GitHub page, I was able to make a simple circuit that houses the PICO display and the sound module together along with buttons for controls.
Additionally, because we are making a handheld device, we had to provide a stable power source, so we added a power management circuit in our setup, which uses a LiPo cell to provide power to our PICO setup.
This article covers the complete build process of the PiBoy Advance project, so let's get started with the build.
Materials Required
These are the materials required in this build-
- Custom PCB (Provided by NEXTPCB)
- Raspberry Pi PICO
- ILI9225 Display
- MAX98357 Audio Module- With Low Profile Speaker
- Gameboy Advance Body kit
- LiPo Cell 3.7V 1000mAh
- IP5306
- 1uH Inductor
- 10uF 50V 1206 Capacitor
- Push Button- 4.5 x 4.5 x 4.5
- SMD Push Button
- Vertical Push Button
Hardware
For our Game Boy Project, we're using the Pico-GB repository created by YouMakeTech; this version was a fork of the RP2040-GB Game Boy (DMG) emulator from deltabeard. Here the PICO serves as the brain of the project. I did try to use PICO 2 and even PICO W, but this only works with the PICO RP2040.
For the display, we have to use the ILI9225 display, which runs more than 70 fps, which is insane. The original DMG project didn't support audio out, so youMakeTech modified the original file and added a few key functions that include I2S sound, meaning we had to use an I2S amplifier module. For this, we chose the MAX98357 audio module that is connected to a small form factor 1W speaker, which will provide audio output for our device. a small fun fact, this small 1W Speaker is harvested from DF ROBOT'S unihiker k10 Dev board.
Game Boy Advance Shell


One of the most important parts of this project is the Original Nintendo Game Boy Advance replacement body kit, which I purchased from a retro game vendor that sells vintage consoles like the PS1, PS2, XBOX, and others at a local electronics market.
I saw this orange Game Boy advance shell while the seller was selling replacement body kits for handheld devices, and it made me think, "Why not build the entire Game Boy from scratch?" Since the body is brand new, all I had to do was develop the circuitry, which should be really, really simple.
The D-pad, A, B, and trigger buttons are all included in this shell, along with the front and rear enclosures and a few more pieces on the left and right sides of the device.
It even features a Game Boy Advance logo and a front PC Cover, this PC cover part has an adhesive tape stick on the back, which allows us to take off the protective covering and attach it to the front body.
Breadboard Version
PCB Design


The PCB for PiBoy Advance is split into two major sections: the Pico Setup and the Peripheral Connections. At the heart of it all is the Raspberry Pi Pico, which interfaces with the ILI9225 display, MAX98357 audio module, and a set of push buttons for user input.
We’ve made full use of the RP2040’s GPIOs to handle all button inputs:
- GPIO2 - Button Up
- GPIO3 - Button Down
- GPIO4 - Button Left
- GPIO5 - Button Right
- GPIO6 - Button A
- GPIO7 - Button B
- GPIO8 - Select
- GPIO9 - Start
The SD card slot of ILI9225 is wired for SPI communication with PICO through following GPIOs:
- GPIO12 - MISO
- GPIO13 - CS
- GPIO14 - SCK
- GPIO15 - MOSI
- GND - Pico GND
- VCC - Pico VBUS
The Display is powered via the Pico’s 3.3V and controlled through the following GPIOs:
- VCC - 3.3V
- GPIO22 - LCD LED
- GPIO21 - RESET
- GPIO20 - RS
- GPIO19 - SDI
- GPIO18 - CLK
- GPIO17 - LCD CS
The audio module is powered by VBUS and connected as follows:
- VCC - Pico VBUS
- GND - Pico GND
- GPIO28 - LRC
- GPIO27 - BCLK
- GPIO26 - DIN
The second major section of the PCB design focuses on power management—an essential part of any handheld device.
For the PiBoy Advance, we chose a single-cell LiPo battery as the power source, charged via a USB Type-C port. To handle power regulation, we integrated the IP5306, a compact power management IC capable of delivering a stable 5V at up to 2A from a 3.7V Li-ion or LiPo cell.
The IP5306’s output is routed directly to the VBUS pin of the Raspberry Pi Pico, which in turn powers the display, the Pico itself, and all other components on the board. It’s a clean, centralized setup that keeps the system efficient and compact.
This IC also includes smart features like low-cut and high-cut protection and a battery fuel indicator LED. During charging, the LED blinks slowly and becomes solid once the battery is fully charged. When the battery is low, it blinks rapidly every two seconds—making it easy to monitor power status without extra circuitry.
Once the schematic was finalized, we moved on to the PCB layout. The board outline shape was based on the shell dimensions, and component placement was guided by the 3D model.
The top side of the PCB houses all SMD components, including the display and push buttons, while the bottom side holds the Raspberry Pi Pico, battery terminals, and the MAX98357 audio module.
Power Source
For PiBoy Advance, we chose a 1000mAh 3.7V LiPo cell as the power source. Its compact size made it a perfect fit inside the Game Boy Advance shell. While we initially hoped to use a higher-capacity battery, space constraints made that tricky. Thankfully, it’s not a major issue—this device draws significantly less power than typical Raspberry Pi-based emulation setups. With the 1000mAh cell, we’re getting a solid 2.5 to 3 hours of gameplay, which is honestly impressive. It even outperforms my ROG Ally, which barely manages an hour!
The battery assembly process was straightforward. We soldered the positive terminal of the LiPo to the Battery CON + pad on the PCB, and the negative terminal to the Battery CON – pad. To secure the cell to the back of the board, we used double-sided tape and press-fit it into place—keeping the setup clean, stable, and low-profile.
RESULTS
Here’s the end result of this small but seriously fun project: a handheld console that looks just like a Game Boy Advance, but inside, it’s running Game Boy games on a custom-built circuit powered by the Raspberry Pi Pico.
From the outside, it feels like a nostalgic throwback, but open it up and you’ll find a fully DIY setup—a custom PCB featuring the Pico, connected to an ILI9225 display, SD card slot, and audio module, all stitched together without relying on a full-sized Raspberry Pi board.
We ran a bunch of classics, from Tetris to Pokémon to Zelda, and the Pico handled every game flawlessly, without breaking a sweat.
Thanks to the onboard battery, we got a solid 2.5 to 3 hours of backup, which was perfect for outdoor use—we even took it trekking and played a few rounds when we reached our destination.


Here’s the end result of this small but seriously fun project: a handheld console that looks just like a Game Boy Advance, but inside, it’s running Game Boy games on a custom-built circuit powered by the Raspberry Pi Pico.
From the outside, it feels like a nostalgic throwback, but open it up and you’ll find a fully DIY setup—a custom PCB featuring the Pico, connected to an ILI9225 display, SD card slot, and audio module, all stitched together without relying on a full-sized Raspberry Pi board.
We ran a bunch of classics, from Tetris to Pokémon to Zelda, and the Pico handled every game flawlessly, without breaking a sweat.
Thanks to the onboard battery, we got a solid 2.5 to 3 hours of backup, which was perfect for outdoor use—we even took it trekking and played a few rounds when we reached our destination.
CONCLUSION
Overall this project has been completed, and all the files related to this project are attached, which you can use freely for making your own PiBoy Advance!
For full technical documentation and development logs, kindly refer to my Hackster.io profile: