Skip to content
2019-12-01

Gameboy Zero

Gameboy Zero

This article is still a WIP

Although I never really played games growing up or had any consoles, I have always been interested in retro gaming, especially handheld gaming. Around 2016 I decided I wanted to build my own handheld gaming console.

Inspiration

There are a lot of examples where people have built their own all-in-one handheld GameBoy. Below is a list of examples I got ideas from.

Prototype (Finished June 2019)

The first build I did was less of a prototype and more of a hand-wired mess crammed into an aftermarket Nintendo Gameboy DMG-01 case.

Hardware

PurposePartExplanation
Case & Buttons & GlassGalaxy Gaming Super FamicomOG Gameboy remanufactured case with super Famicom colored buttons
BrainRaspberry Pi ZeroThe raspberry Pi zero is a very cheap single-board ARM computer capable of running Linux
ScreenCheap Amazon 3.5" composite car screenThis screen is quite popular for these and other raspberry pi projects since it is so small. Modded to accept 5V instead of 12V
ButtonsTinkerboy AIO Controller v3.0.1
Battery3 1000mAh Li-ion phone batteries in parallel to create 3000mAh
PowerAdafruit Powerboost 1000cHandles power delivery and battery charging

Software

PurposeDescription
Operating SystemRetoPie is based on Raspbian, a Debian Linux for the Pi
WIFI config scriptKeyboardless SSID & Password entry
Splash Screen4:3 of strdr-retropie-gb.png
Status IconsMy Code
Boot/Speed OptimizationDisabled dhcpd (cons: no autoWIFI connection), disable Bluetooth in config.txt.
ThemeTFT

Images

Front and chargingBacksideBootBoot SplashscreenCharging and USB portsSD portInsidesInsides 2Controller detail shotRear VentRetro Tech

Video

Lessons Learned

  • This does not have a proper safe shutdown switch. The current switch just cuts power to the Pi and this is known to corrupt the file system. I would like to implement something like this or this
  • The screen is quite bad. It produces a blurry image since it is composite and is power-hungry. As a result, it produces a lot of heat which is uncomfortable while holding.

Version 1 (Finished September 2019)

A much better screen

Hardware

PCB (Ordered 08-09-2019)

SchematicLayoutPopulated PCB FrontPopulated PCB Back

Version 1 included a custom all-in-one (AIO) PCB designed by Peyton. It housed interconnection between the Raspberry Pi, Microcontroller, LCD, battery, charge controller, USB hub, buttons, audio amp, speaker, and power switch. It was designed in EasyEDA and ordered from JLCPCB.

What is on the PCB:

  • FE1.1S: A 4 port USB hub microchip
  • The LCD backlight driver: 3.3V to 24V LED driver. Details
  • Ribbon connector: to connect to LQ035NC111 LCD
  • ATMega32u4 Microcontroller: Handles IO like buttons and battery levels,
  • TI PCM2704: USB audio driver
  • Adafruit Powerboost 1000C: Li-Ion battery charger capable of delivering 1000 mA to the system.

Software

I used much of the same software as the prototype.

Lessons Learned

  • I think the ATMEGA32u4 controller needs pull up/down resistors since the membrane buttons need to be firmly pressed in order to be recognized as input.
  • The Raspberry Pi gets uncomfortably hot after an hour or so, even with a small heatsink. It even thermally throttles for CPU-intensive games. Either updating to more efficient emulator cores or using a fan can resolve this issue, though a fan might drain power and make noise.
  • I was unable to get the USB audio driver to work, it never became recognizable by the Linux OS, leading me to think it was not wired correctly.
  • I assembled the PCB twice since the first one I did I managed to fry the SBC. Since it was soldered directly via the 40pin GPIO, it was virtually impossible to desolder it. This is a bad design choice.

Version 3 (Planned)

Hardware

PCB

The PCB has is planned to accommodate a different audio circuit, (hopefully working this time), and use a more open/standard method of connecting the PI GPIO. I am thinking of using POGO pins and the updated Raspberry Pi Zero 2 W which claimes to be 5 times as fast. I can push it even further and use the new Raspberry Pi Compute Module 3 which connects via a DDR2 SODIMM connector, or even a Compute Module 4, though I think that will be overkill for this project.

References

This page is delivered to you from my garage.