Posted on

RetroPie Image with Built-in Support for USB Audio, GPIO Controller Inputs, and DPI

I have tested these RetroPie images myself and included all the necessary software and settings.

Download and extract the compressed file using 7-zip.

These images should work with the tinkerBOY Controller v3.0 without changing anything.

In order to use the Adafruit Retrogame program for the GPIO controller inputs with the tinkerBOY Controller v2.0.1, v1.1, or v.1.2 you just need to uncomment the line # /usr/local/bin/retrogame & from /etc/rc.local and edit the file at /boot/retrograme.cfg to match your GPIO configuration.

The tinkerBOY DPI Adapter v1.0 also works with these images out of the box.

Posted on

tinkerBOY PowerSwitch v1.0 Prototype #1

Got my pcb orders yesterday and was very excited to assemble one. Unfortunately it didn’t work on my first test. It’s abnormally consuming too much power around 1A without even a load on it and the output voltage is way below 5v. 🙁 I went to view the schematics again and found out that I connected some of the components wrong. So I tried cutting some traces and re-routed some of the components. I re-tested it again and this time the output voltage is 5.2v and consumption without load is just what I expected. It works! 🙂

Well, not really. Haha..😂 I read somewhere before that it’s very important to use short and wide traces for high switching boost converter but obviously I forgot to consider that with the design of my PowerSwitch. Eugene also mentioned something about this on my Facebook page. This is probably the reason why i’m hearing a high-pitched squealing noise when powering a Pi 3. What do you think?


Posted on

5V Boost + Battery Charger + Safe Shutdown = tinkerBOY PowerSwitch

I’m currently working on a power board for Game Boy Zero which I will be calling the tinkerBOY PowerSwitch. It’s supposed to be a builtin upgrade for my tinkerBOY Controller v3.0 but I decided to design it separately and integrate a slide switch. This way, it’s not limited to just my v3 but can be used by anyone using any controller board as well as my other controllers like the v1.1, v1.2, v2.0.

The 3 most important features will be 5V boost, battery charger, and a safe shutdown feature. I’m almost done with the design and I will be ordering some PBCs soon so I can test it. So don’t forget to subscribe to my facebook page at for updates.

Posted on

How To Setup Putty To Automatically Login To Your Raspberry Pi

I’m always looking for ways to save time so here’s how you can setup putty to automatically login to your Raspberry Pi.

Let’s Get Started

  1. Go to the folder where you installed putty.exe, left click on it to select it, right click on it and choose “Create shortcut”. 
  2. Select the newly created shortcut file, right click on it and select “Properties”. In the “Target” text field, add the line  pi@ip -pw raspberry replacing the ip with your Raspberry Pi’s ip address. 
  3. Click OK and you’re done. Now every time you open the shortcut link it will automatically login to your raspberry pi.

That’s it! 🙂

Posted on

tinkerBOY DPI Adapter v1.0: Visual Guide for Raspberry Pi Zero (without header pins)

This method does not use a 40-pin header pins but it’s easier. Place the  Pi Zero on top of the DPI Adapter and align the holes. Use a binder clip to hold them together.

Now, start soldering each of the Pi Zero’s GPIO holes making sure there’s a proper contact to each of the holes on the DPI Adapter.

You can also solder from the bottom just to make sure each holes are soldered properly.

The final step is to solder the Pi Zero’s USB data pins (D+ and D-) to the 2 holes on the DPI Adapter. These holes will connect the Pi Zero’s data pins to the D+ and D- pads on the adapter for connecting any USB device. (Note: The D+ and D- pads on the DPI board are mislabeled. The upper pad should be D- and the lower pad should be D+. Thanks to Paul for reporting.)

The 5VIN and GND pin holes below the tinkerBOY DPI Adapter are your 5v and GND inputs.

Posted on

tinkerBOY DPI Adapter v1.0: Brightness Control

On this guide, I will be showing you how to add brightness control functionality for the tinkerBOY DPI Adapter. You need a tactile button switch for it.

Let’s get started

Wire one pin of the button to the GPIO10 pad on the back of the DPI Adapter and the other to any GND.

On the software side, you just need to download and run a program in the background and just press the button to control the brightness.

Login to your pi via SSH and enter the following command:

wget && sudo bash

Now, sudo reboot and you’re done.

You should now be able to control the brightness of you DPI screen by pressing the button.

Posted on

tinkerBOY DPI Adapter v1.0: Visual Guide for Raspberry Pi 3

Start by removing the USB ports and ethernet port, cut the header pins, and trim the side of the P1 3 board where you removed the ports.

The idea is to mount the Pi 3 inside the Game Boy DMG case so that the sdcard is accessible via the “CONTRAST” area of the case. Use any rotary tool to trim the upper corners to make space for the 3d printed bracket’s top screw posts so you can easily mount it later inside the case.

Before joining the adapter and Pi 3 together make sure you put any protection like kapton tape in between to avoid shorts. Solder the pin holes from the adapter where the bottom GPIO pins of the Pi 3 are located. Unlike the Pi Zero which can be powered directly from the GPIO pins, the Pi 3 is protected by a fuse so it’s recommended to power it via the PP2 pin. Solder a wire from the DPI Adapter’s “5VIN-Pi3” pin to the Pi 3’s PP2 pin.

This how it looks inside the Game Boy DMG case:

The 5VIN and GND pin holes below the tinkerBOY DPI Adapter are your 5v and GND inputs.

Posted on

tinkerBOY DPI Adapter v1.0: Visual Guide for Raspberry Pi Zero

Start by placing the header pins in to the pin holes designed for the Pi Zero:

And mount the Pi Zero this way:

It’s recommended to put a kapton tape or anything in between the adapter and pi zero to avoid shorts before soldering the header pins to the Pi.

The next step is to cut the pins and plastic below the header pins and solder them to the DPI Adapter.

The final step is to solder the Pi Zero’s USB data pins (D+ and D-) to the 2 holes on the DPI Adapter. These holes will connect the Pi Zero’s data pins to the D+ and D- pads on the adapter for connecting any USB device. (Note: The D+ and D- pads on the DPI board are mislabeled. The upper pad should be D- and the lower pad should be D+. Thanks to Paul for reporting.)

The 5VIN and GND pin holes below the tinkerBOY DPI Adapter are your 5v and GND inputs.

Posted on

tinkerBOY DPI Adapter v1.0: Gettting Started Guide

Method 1: Download my pre-built RetroPie image.

Method 2: Manual

Edit the config.txt and copy/paste the following lines:

Save the file.

The tinkerBOY DPI Adapter v1.0 uses a custom overlay for the DPI interface. Download this file, unzip and place the dpi18_666.dtbo file inside the overlays folder in the boot partition of the sdcard where the config.txt is also located.

That’s it for the settings.



Posted on

How To Add Brightness Control For The 3.5″ GearBest Screen

This guide might also work on any screen that we use for building our Game Boy Zero as long it uses the CL6201 LED driver IC with the “7001” label on it.

I will be using a Raspberry Pi Zero for this tutorial but any Arduino/Atmel chips with PWM pins can also be programmed to do the job. I have actually tested it with an attiny13a and it works just fine.


Before we start, follow the Wiring Guide for the 3.5″ GearBest Screen with 5V Mod. Then start by soldering a wire from the CL6201’s EN pin 4 to the Pi Zero’s GPIO19 pin. The CL6201 Datasheet says that the EN pin can be used to adjust the brightness by connecting it with a PWM square wave signal between 100Hz and 100KHz. That means with the Raspberry Pi’s capability to produce PWM signal we can control the brightness with it.

For the control buttons let’s use two tactile buttons for increasing and decreasing the brightness. Wire the buttons like this:


You can write a program in Python or C to do the PWM routine but let’s keep it simple by using a progam called pigpio and write a simple python to just call it. Login to your Raspberry Pi and install the program by following the instruction at


We are now ready to test the program. Type the command sudo pigpiod to load the pigpio daemon. Now we can test it with the following command format:

pigs p GPIO DUTYCYCLE(0-255)

GPIO is the gpio pin we want to use which is GPIO19 and DUTYCYCLE is what controls the brightness.


pigs p 19 50

The above code should dim the screen. Try experimenting with other DUTYCYCLE values from 0-255.

Now for the actual buttons to control the brightness I wrote a simple python to call the pigpio program. Copy the code below and paste to a new file with .py extension. You can just name it as if you want.

Run it by typing the command  python Press each of the buttons and it should increase or decrease the brightness on the screen.

Here’s a demo:

That’s it! Let me know in the comment below if this works for you.

Posted on

Wiring Guide for the 3.5″ GearBest Screen with 5V Mod

I get a lot of wiring inquiries about the 3.5″ GearBest Screen so I decided to make one.

Most of these 3.5″ screens are intended for 12v power supply. The 12V input goes to a chip called XL1509 and converts that to 5V. Like any DC to DC converter there’s always going to be wasted power as a result of the conversion. This is the reason why I highly recommend that you do the 5v mod eventhough the screen works if you feed it with 5v without the need for any modification.

To make the connections more reliable let’s remove the Female JST connector..

..just be careful not to lift the contact pads which I’ve mistakenly done here. Luckily the board has two video connections which are AV1 and AV2. I will be using the AV1.

Cut the cable that came with it and solder the wires directly to the board. In order to do the 5V mod, you just solder the RED wire directly to the XL1509’s Pin 2 or to the SS24’s cathode pin which is easier to solder to. The other end of the RED wire goes to your 5v power supply of course (PowerBoost 5v output). Since the Raspberry Pi only requires just one video connection, solder the YELLOW wire to the Pi’s TV connection. Join the WHITE and BLACK wire and solder them directly to the GND pad on the screen board. The WHITE(GNDTV) wire goes to the GND beside the TV pin on the Pi while the BLACK wire goes to your normal powerboost’s GND output.

Yep, That’s it!

Posted on

How to Disable Digital Volume

Digital Volume is enabled by default so if you want to use the usual Analog Volume Wheel, you need to disable it and there are two ways you can that:

Method 1:

Press and hold the “SELECT” button for 15 seconds to disable Digital Volume and reboot.

Method 2:

With the builtin usb serial communication of the tinkerBOY Controller v3.0 you can easily enable or disable Digital Volume  In order to do that, you need install the minicom program by following the instruction at tinkerBOY Controller v3.0: Settings or proceed if you’re using my pre-built RetroPie image..

Start minicom by typing sudo minicom. Start by checking the current status of the Digital Volume by pressing ‘d’.

Here’s how to enable or disable it:

  • Press the number ‘0’ to enable or disable Digital Volume.

That’s it. 🙂


Posted on

tinkerBOY Controller v3.0: Settings

You can change some settings on your tinkerBOY Controller v3.0 by communicating with it via USB serial using a program called minicom.

Get Started

Login to your Pi via SSH or hit F4 to go to the command line. Install minicom by typing the following command:

sudo apt-get install minicom

Type “y” and press enter.

Wait for it to install.

Setup The Program

Before you can use minicom you need set it up to communicate with the your v3.0 board. Type the following:

sudo minicom -s

Select “Serial port setup” and press enter. Press ‘a’ and change “Serial Device” to /dev/ttyACM0. Press enter twice and select ” Save setup as dfl”. Select “Exit” and press enter.

Commands you can use to display the status of a particular setting:

a – for displaying the current Analog Joystick settings.

d – for displaying the current Digital Volume setting.

v –  for the current software version.

z –  for the Deadzone value.

You can exit the program by “CTRL + A” then press ‘X’.


Posted on

Setting Up USB Audio As The Default Sound Output

Update: You can skip this guide if you’re using my pre-built RetroPie image.

This guide will help you setup the USB Audio on the tinkerBOY Controller V3.0 as the default sound output device in RetroPie.

Assuming you’ve already followed the wiring guide and connected your v3.0 board to a Raspberry Pi, login via SSH or connect a keyboard and hit F4 to go to the command line.

First, check if  usb audio is detected by typing:

cat /proc/asound/modules

Output should be something like:

pi@retropie:~ $ cat /proc/asound/modules
0 snd_bcm2835 – This is the builtin sound device in Raspberry Pi.
1 snd_usb_audio – This is the USB Audio you need to setup as the default sound device.
pi@retropie:~ $

Now create a file by typing:

sudo nano /etc/asound.conf

Paste the following:

New(use this code instead of the old code):



Finally, save the file by CTRL + X, press Y, and press ENTER.

Reboot by typing sudo reboot. You should be able to play sound from your v3.0 board.