You are currently viewing Pico-GB Raspberry Pi Pico GameBoy Emulation Console 🕹️

Pico-GB Raspberry Pi Pico GameBoy Emulation Console 🕹️

For all those who feared their Game Boy days would be but a memory, worry no more! The Game Boy may be dead, but with the Pico-GB you’ll have a chance to revive it.

The Pico-GB is a retro-gaming emulation console that ressembles to the original Nintendo Game Boy released in 1989.

It is based on the $4 Raspberry Pi Pico microcontroller. The case and buttons are 3D printed. The screen is a 2.2-inch LCD with a resolution of 220×176 pixels and 65K colors. There are 8 buttons: 4 for the DPAD + 4 action buttons (A, B, select, start). The buttons are 6x6x6mm micro push buttons. The sound is provided by a MAX98357 amplifier and a 2W speaker.

The Pico-GB can play original Game Boy DMG games using a modified version of the RP2040-GB (DMG) Game Boy emulator from Mahyar Koshkouei (deltabeard).

You can also develop your own games in C or Micropython!

What you need

To make the Pico-GB, you need the parts below:

1xRaspberry Pi Pico
1x2.2inch ILI9225 176×220 LCD Display Module
8xMicro Push Button Switch, Momentary Tactile Tact Touch, 6x6x6 mm, 4 pins
1xMAX98357 I2S Audio Amplifier Module
1xWeewooday 2W 8 Ohm small speaker 2.8cm (1.1in) diameter, 6mm high
1xEEMB Lithium Polymer Battery 3.7V 2000mAh
1xTP4056 Micro-USB Charger for Lipo Batteries
1xSS12F15 Miniature Slide Switch
1xSolderless Breadboard
1xSolderable Breadboard
1xDupont Wires Assorted Kit (Male to Female + Male to Male + Female to Female)
2x20 pins 2.54mm right angle male headers
1xPreformed Breadboard Jumper Wires
SUNLU PLA+ 3D Printer Filament
Grey, Red, and Black or the colors of your choice!
4xM3x4mm Hex Socket Head Cap Screws
4xM2x4mm Hex Socket Head Cap Screws
4xM2x6mm Hex Socket Head Cap Screws
6xM2x8mm Hex Socket Head Cap Screws
DISCLAIMER: Some links are affiliate links. As an Amazon Associate I receive a small commission (at no extra cost to you) if you make a purchase after clicking one of the affiliate links. Thank you for supporting the channel!

Recommended tools

3D Printer (e.g. Creality Ender 3 V2)
Yihua 939D+ III Soldering Station (e.g. Yihua 939D+ III)
Set of 4 hexagonal screwdrivers (1.5 mm, 2mm, 2.5mm and 3mm)
Digital Multimeter
DISCLAIMER: Some links are affiliate links. As an Amazon Associate I receive a small commission (at no extra cost to you) if you make a purchase after clicking one of the affiliate links. Thank you for supporting the channel!

3D Printing

All parts are printed in PLA/PLA+ except for the pads which are printed in TPU. I print the shell with “Rapid prototyping” print settings and the buttons with “Super Quality” print settings. Because they are small parts, the buttons benefit from a small layer height (e.g. 0.12mm) to achieve the best quality. Alternatively, you can print the buttons in TPU for a softer feel.

Pico_GB_slicing_top
Pico-GB top cover
Pico-GB bottom cover
Pico-GB buttons
Pico-GB lens

Under the buttons, like on the original Game Boy, there are elastic pads to improve the feeling of pressing the buttons. They are printed in TPU with these print settings. TPU is notoriously difficult to print. The secret is to print slowly (20mm/s) + slow down the retractions or disable them completely (with a Bowden system) + keep the build plate at room temperature (TPU adheres very strongly, no need to heat the build plate). If you don’t want to use TPU, you can print them in PLA, the buttons will just feel a little bit less qualitative (more noise + less rebound).

Pico-GB TPU Pads

Electronics

The diagram below shows how everything is connected to the Raspberry Pi Pico. Note that the 3V3 (OUT) pin is used to power the LCD display and the MAX98357A amplifier.

Pico-GB: Raspberry Pi Pico Pins Assignment

Software

It’s easier to flash the firmware before starting the assembly so that it’s possible to test that everything is working as expected at every stage of the build:

  • Connect your Pico to your computer while maintaining the BOOTSEL button (The white button on top of the Raspberry Pi Pico)
  • Count to three, then let go of the BOOTSEL button
  • After a few seconds, your should see your Pico appear as a removable drive – as though you’d connected a USB flash drive or external hard drive.
  • On your computer, you’ll see a new drive for the Raspberry Pi Pico
  • Drag & drop the RP2040-GB.uf2 file over this drive to install the firmware on the Pico

Assembly

Soldering the headers

When you unpack your Raspberry Pi Pico, you’ll notice that it is completely flat: there are no metal pins sticking out from the sides. For this project, you’ll need to attach two 20-pin 2.54mm right angle male headers. You can also solder the wires directly to your Raspberry Pi Pico if you don’t have right angle male headers.

Connecting the display

Connect the ILI9225 display to the Pico with ~15cm long wires with Dupont Female connectors as shown below:

  • LCD VCC = +3.3V (OUT) = RED
  • LCD GND = GND = BLACK
  • LCD CS = GP17 = WHITE
  • LCD CLK = GP18 = GREEN
  • LCD SDI = GP19 = BLUE
  • LCD RS = GP20 = PURPLE
  • LCD RST = GP21 = GREY
  • LCD LED = GP22 = YELLOW (when present)
Pico-GB Display Circuit
Pico-GB Display Circuit

Note) Not all ILI9225 displays have a LED pin. However, if a LED pin is present, it must be connected to +3.3V or to a positive voltage between 0 and 3.3V (to adjust the brightness) otherwise the display won’t display anything

Note) The display VCC pin is not directly connected to the +3.3V pin of the Pico because there is only one 3.3V output on the Pico but we need to power multiple devices with 3.3V (ILI9225 LCD display + MAX98357 power amplifier module)

CAUTION) Not too many things can burn your Pico or your computer, but always check your connections twice. In particular, always check that there is no short between the +3.3V pin and the ground pin!

After connecting the display to the Pico, you can check that your screen works correctly by connecting your Pico to USB.

Connecting the buttons

Solder the push buttons to the solderable breadboard as shown on the image below. Each button is connected to the GND on one side and to the Raspberry Pi Pico on the other side. To connect the buttons to the Raspberry Pi Pico, I use ~10 cm wires with a female Dupont connector on one side.

  • UP = GP2 = BROWN
  • DOWN = GP3 = YELLOW
  • LEFT = GP4 = PURPLE
  • RIGHT = GP5 = GREY
  • BUTTON A = GP6 = BLUE
  • BUTTON B = GP7 = WHITE
  • SELECT = GP8 = ORANGE
  • START = GP9 = GREEN
  • BUTTONS GND = GND = BLACK
Pico-GB Buttons Breadboard
Pico-GB Buttons Circuit

Adding sound

Connect the MAX98357 amplifier to the Pico using ~10cm wires with Dupont female connectors and the speaker to the amplifier as shown below. As there is only one 3V3 output on Raspberry Pi Pico which must be shared between the LCD display and the sound amplifier, you can use the (+) line on the top of the solderable breadboard to distribute the 3.3V to all boards. Connect the 3.3V output of the Raspberry Pi Pico to the (+) line of the breadboard then connect each component that needs 3.3V to this (+) line.

  • MAX98357A DIN = GP26 = BLUE
  • MAX98357A BCLK = GP27 = GREEN
  • MAX98357A LRC = GP28 = WHITE
  • MAX98357 GND = GND = BLACK
  • MAX98357 VIN = 3V3 (OUT) = RED
Pico-GB Sound Circuit
Pico-GB sound circuit

Connecting the SD Card Reader(optional)

The SD Card reader will be used to store ROMs and save files. This feature is currently under development

Connecting the battery and charger (optional)

You can play your Pico-GB by simply connecting it to USB. However, if you want to use your Pico-GB anywhere and make it a portable handheld game console, you can add a Lipo battery + a on/off switch + a USB charger. As the power consumption of the Pico (even overclocked to 266MHz) is very low, this gives days of autonomy!

Note) The preferred way to provide power for Raspberry Pi pico when it is not connected to USB is to provide a voltage between between 1.8 and 5.5V to the VSYS pin.

CAUTION) Do not turn on the battery when the Pico is already connected to a power source via its micro USB connector. I kept the power circuit very simple but it should normally include a Schottky diode to prevent problems if you also supply power to the VBUS pin.

Pico-GB Power Circuit
Pico-GB Power Circuit

Makes

Pico-GB with original Game Boy lens & buttons
The Pico-GB is compatible with original Game Boy lens and buttons
Pico-GB vs. Nintendo Game Boy
Pico-GB vs. Nintendo Game Boy
Pico-GB transparent
Transparent Pico-GB playing Super Mario Land!
Inside the Pico-GB Game Boy
Inside the Pico-GB Game Boy
Pico-GB: Button position on breadboard