Make your own GameBoy with a Raspberry Pi Pico and start coding retro games in MicroPython or C++
Today we are making the Raspberry Pi Pico GameBoy, a DIY game console that looks like the original Nintendo Game Boy released in 1989! But the comparison stops here.
For less than $20, you can make your own game console and start coding games! Retro games are probably the funniest way to learn how to program!
The Pi Pico GameBoy is a DIY game console based on the $4 Raspberry Pi Pico microcontroller. The Raspberry Pi Pico GameBoy can be programmed in MicroPython, a special version of Python made for Microcontrollers, or in C++ for better performance.
The screen is a 1.54-inch LCD with a resolution of 240×240 pixels and 65K colors. There a 6 buttons: 4 for the DPAD + 2 action buttons. The buttons are 6x6x6mm micro push buttons. The sound is provided by a simple piezo buzzer.
The case and the buttons have been designed in Fusion 360, a 3d modeling software from AutoDesk. The case is 3D printed and is about 3:4 of the original Nintendo Game Boy: It fits nicely in the pocket! Do you remember how big the original Nintendo Game Boy was?!
The buttons are kept at a 1:1 scale otherwise they become too small for “old kids”!
Raspberry Pi Pico GameBoy Specs
|Pi Pico GameBoy||Original Game Boy (1989)|
|Size||111x68x25mm (3:4 Scale)||148x90x32mm|
|Screen||1.54 inch LCD IPS||2.6 inch LCD STN|
|Resolution||240×240 pixels||160×144 pixels|
|Color support||65K Colors||4 shades of “gray”|
|Sound||Piezo Buzzer||Speaker + headphone|
|Inputs||Eight-way control pad|
2 action buttons (A, B)
|Eight-way control pad|
4 action buttons (A, B, Start, Select)
|CPU||Raspberry Pi Pico|
RP2040 133MHz dual ARM Cortex-M0+ cores
|Custom 8-bit Sharp LR35902|
|Memory||264KB RAM + 2MB Flash||8KB internal RAM + up to 128KB game cartridge RAM + 8KB RAM for LCD display|
What you need to make the Raspberry Pi Pico GameBoy
In order to make the Raspberry Pi Pico GameBoy, you will need the parts below.
|1x||Download .STL files for the Raspberry Pi Pico GameBoy|
|1x||Raspberry Pi Pico|
|1x||Waveshare 1.54inch LCD Display Module|
IPS, 65K RGB Colors, 240×240 resolution, SPI interface, Embedded ST7789 Driver
|6x||Micro Push Button Switch, Momentary Tactile Tact Touch, 6x6x6 mm, 4 pins|
|1x||9042 Mini Piezo Buzzer Speaker 3.3V|
|1x||Dupont Wires Assorted Kit (Male to Female + Male to Male + Female to Female)|
|1x||Preformed Breadboard Jumper Wires|
|SUNLU PLA+ 3D Printer Filament|
Grey, Red, and Black or the colors of your choice!
|M2x4 mm bolts|
Slicing the parts
I printed these parts in Sunlu PLA+. My print settings (Ultimaker Cura):
- Layer Height: 0.25 mm
- Line Width: 0.4 mm
- Wall Thickness: 0.8 mm (=2 walls)
- Top/Bottom Thickness: 0.75 mm (=3 layers)
- Infill Density: 20%
- Infill Pattern: Cubic
- Printing Temperature: 230 deg C
- Build Plate Temperature: 70 deg C
- Enable Print Cooling: Enabled
- Fan Speed: 100%
- Initial Fan Speed: 0%
- Regular Fan Speed at Layer: 2
- Generate Support: Disabled
See video above
Games for the Raspberry Pi Pico GameBoy
- 20220322: Initial Release (v39)