Game Boy Zero Custom Parts Guide Part 1

As more and more various custom parts came out for the Game Boy Zero project, more and more people asked if I was going to do a followup guide for making one using all custom and aftermarket parts.  So…  here we are!

In this guide I’ll be showing one of the (many) ways you can piece together a Game Boy Zero using entirely custom and aftermarket parts.  This means that you won’t have to chop up or sacrifice a single original Game Boy part to make this, which is nice.

Below is a list of parts that I will be using in my build:

Oh, and a Raspberry Pi Zero.
Screenshot 2016-09-05 09.32.22


First I modified my case just like in the first build, but this time I left 1-2mm around the edges of the screen so that I can easily attach the screen cover from Dominator when the time comes:

Screenshot 2016-09-05 09.33.07

I used the built-in X/Y button hole guides in Helder’s All-in-one (AIO) board to mark where to drill (super handy!).  This time, in stead of making a pilot hole that I then expanded with a dremel (like I did last time), I used a Unibit from Irwin.  It made it much, much easier to drill clean, perfectly-round holes right where I wanted them:

Screenshot 2016-09-05 09.33.34

Hand Held Legend also sells a similar looking drill bit.

Next I mounted my screen.  I used the BW screen from Amazon because it’s what I had on-hand, but lots of folks are reporting great success with the Gearbest screen, which is apparently very easy to modify to run off 5V and has a nice, consistent (and small) controller board.

If you do get one of the BW screens, be careful taking it apart because there is a *lot* of double-sided tape holding the screen cover on.  I actually broke one screen trying to remove it.  ಠ_ಠ

Screenshot 2016-09-05 09.34.58

Once you get it taken apart, you may or may not need to modify it to run off of 5V.  The one I got has a tiny controller board (nice!) but showed some flickering when trying to run it off of 5V without modification.  Thankfully this particular board was very easy to modify: you just attach a wire from the red input power wire to the regulator chip pin shown here:

Screenshot 2016-09-05 09.35.09

Once I did that all flickering went away and it works great!  If you happen to get a different driver board in yours, be sure to check out the wiki to see if someone else has the same screen and has already figured out if/what you need to modify.

Next I mounted my screen just like I did in part 3 of the original guide:

Screenshot 2016-09-06 00.40.46

I then attached my 3D-printed screw bracket and button wells, which worked wonderfully if I do say so myself:

Screenshot 2016-09-05 09.35.44 Screenshot 2016-09-05 09.35.57

Next I attached some wires to the All-in-one board before putting it and my buttons in the case.  Specifically, I attached wires to 2 of the 3 available USB ports on it (I won’t be using the 3rd one), another set of USB wires to the input pins, and then wires for my L/R buttons.  Screenshot 2016-09-05 09.36.33

If you have a spare USB cable (and who doesn’t?) that you are willing to chop up for this, it’s a perfect source of wire since it’s already color-coded for USB and appropriately gauged for the data and power wires.  You’ll notice I only attached a ground wire to the L button pin on the right-hand side of the above image — I’ll be joining the ground pins on the L/R buttons on the other side of the case so it’s one less wire I have to run between the front/back of the case.

Screenshot 2016-09-05 09.37.30

After I was done with that I went ahead and put it and my buttons in the case and started wiring up the headphone jack and speaker.  The pins for the headphone jack I’m using go (from left to right in the above image): ground, left channel, right channel switch, right channel, left channel switch.  What I mean by switch is that without headphones connected, they are connected to their respective channel.  So, you’d want your speaker hooked up to the switch pins, and your audio source (the all-in-one board) connected to the L/R channel pins.

Since we only have one speaker, we’ll want to join our L/R channels.  You can do this by adding a 10-Ohm resistor on each channel before joining them, as shown in the image below (all I had handy was 22-Ohm but they worked fine too):

Screenshot 2016-09-05 10.02.46

I have yellow for my left channel and green for my right channel.  If you don’t add the resistors, your sound will be distorted and noisy.  Some discussion about this as well as some fantastic wiring diagrams by a3k4 can be found here (thanks a3k4!).  The point at which the resistors join will be connected to one of the speaker wires, and the other speaker wire will be connected to the ground pin on the headphone jack.  It’s also recommended to add some ferrite beads to the ground and L/R wires (before they join) that are attached to the speaker to further reduce noise and make it sound better.  I don’t have any of those at the moment so I’ll have to come back and add mine later.  Helder has mentioned that he may be adding those resistors and ferrite beads to a future version of the AIO board, so definitely keep an eye out for that!

Screenshot 2016-09-05 10.03.04

Now wire it up to the AIO board:

Screenshot 2016-09-05 09.36.58

The naming for the pads might seem a little weird (and Helder mentioned he’d probably update it in a future revision), but you’ll attach the ground wire to the “switch” pad, and the left/right channel wires to the left/right pads.  You should go ahead and test it out before gluing/mounting your headphone jack/speaker.

The setup for this is nearly identical to what I did in part 5 of the original guide: you attach the PWM0 pad on the AIO to GPIO pin 18 on your Raspberry Pi Zero and PWM1 to GPIO pin 13, and add “dtoverlay=pwm-2chan,pin=18,func=2,pin2=13,func2=4” to the end of your config.txt file (definitely check out the original guide if you need clearer instructions for doing all that).  In addition to those things, you also need to connect the 5V/GND input wires on the AIO to your Pi (PP1 for 5V and PP6 for GND), otherwise your amplifier on the AIO won’t have any power:

Screenshot 2016-09-06 01.04.29

And then you also need to attach your volume wheel to the POT1,2,3,4/GND pads on the AIO board:
Screenshot 2016-09-06 01.04.19

If you’re holding your volume wheel with the pins facing down, you can just connect the wires in order as shown above.  After you do that, you should be able to load up RetroPie and test it out!

If that checks out, then you can go ahead and attach your headphone jack and speaker:

Screenshot 2016-09-06 01.07.53

Mine’s a little messy (i.e nothing covering the resistors next to the headphone jack) because I’ll be coming back later to add some ferrite beads, but you get the idea.  🙂  You may need to add a piece of plastic or something under the headphone jack to raise it up a bit to where it needs to be.

I was going to mount the volume wheel, but I’ve got something I want to try out with that, so I’ll save it for next time.  I’m hoping to have the rest of this build wrapped up in one more installment of this guide, but we’ll see how that goes…

Until next time!

wermy Written by: