RaspberryBoy – BuildLog #6

Actual project state

I realized that I’m taking this project like a summer project and I rarely work on it on the other part of the year. Last summer I was planning to finish it, I wish I could. At least I was able to work on some of the components, and that gave me the material for some blog articles.

This summer, though, I started with new ideas and new components (which you’ll see in a minute) and I’ve almost finished, I’m planning to finish it by the end of this year.

I’ve also tried to find some circuit drawing program to better explain the wiring I do on each post but I found only boring schematics drawing programs. Since I like colors I think I have to draw them myself with some graphic program. I’m also planning to make something about four more posts on this project, in which I’ll explain what I’ve done in different macro areas of the parts, and in the end some final thoughts.

 

Change of direction: a new case

Last summer I worked and modified a transparent-green game boy case to house all the components. After finishing the modification I wasn’t happy with the results so I decided to take a new case and modify it from the beginning. I’ve found on Ebay a kit for the “GameBoyZero project” which also has  a screen protector and a modified (and clean) breadboard for the controls. With this kit, it will be much more easier handling the controls. I’m not regretting having modified (and ruined) the transparent green case, but I didn’t like it, and I wanted an opaque one. Modding this case was a lot easier this time because I’ve already done it several times, and if something is scratched on the inside, it is invisible on the outside. So the case is ready (for the second time).

System configuration

For the system configuration I found an interesting tool (GitHub repository) that can convert GPIO inputs from the Raspberry in keyboard events, which is exactly what I was looking for.

In other projects I’ve seen people  using an external unit (Tinsy-board) that handles the controls and it’s connected via USB to the Raspberry, but I don’t like this solution because it brings more complexity to the wiring.

After installing correctly the operating system (RetroPie), I installed this utility. The configuration is very easy and it’s all inside one text file. I founded a very explicative tutorial on Adafruit (linked in the repository).

As you can see, the configuration file is very simple: every input is related to a physical pin on the Raspberry, it’s only matter of connection.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Sample configuration file for retrogame.
# Really minimal syntax, typically two elements per line w/space delimiter:
# 1) a key name (from keyTable.h; shortened from /usr/include/linux/input.h).
# 2) a GPIO pin number; when grounded, will simulate corresponding keypress.
# Uses Broadcom pin numbers for GPIO.
# If first element is GND, the corresponding pin (or pins, multiple can be
# given) is a LOW-level output; an extra ground pin for connecting buttons.
# A '#' character indicates a comment to end-of-line.
# File can be edited "live," no need to restart retrogame!

# Here's a pin configuration for the PiGRRL 2 project:

LEFT 4 # Joypad left
RIGHT 19 # Joypad right
UP 16 # Joypad up
DOWN 26 # Joypad down
LEFTCTRL 14 # 'A' button
LEFTALT 15 # 'B' button
Z 20 # 'X' button
X 18 # 'Y' button
SPACE 5 # 'Select' button
ENTER 6 # 'Start' button
A 12 # Left shoulder button
S 13 # Right shoulder button
ESC 17 # Exit ROM; PiTFT Button 1
1 22 # PiTFT Button 2
2 23 # PiTFT Button 3
3 27 # PiTFT Button 4

# For configurations with few buttons (e.g. Cupcade), a key can be followed
# by multiple pin numbers. When those pins are all held for a few seconds,
# this will generate the corresponding keypress (e.g. ESC to exit ROM).
# Only ONE such combo is supported within the file though; later entries
# will override earlier.

 

 

 

 

Assembling the parts

This time was easy, because I took one cable from the control board for every control in it and soldered to the specific pin in the Raspberry, as specified in the configuration file, even if in the photo you can’t see the Raspberry connected to the cables yet. Then I attached 2 more cables for R and L buttons that I will put on the back of the case. At this point, it seems like there are a lot of cables but they can be managed very easily. After finishing soldering I tested the controls with the operating system and they all works smoothly (as expected).

In this last photo I’ve mounted the screen (taken from the green case) and the screen protector in place. I have few more major topic to discuss for the mounting which I will cover in the next posts of the series. Stay tuned 🙂

Game developer & designer. Unity 3D lover. Movie fanatic.

RaspberryBoy – BuildLog #5

 

Here we are again on this slow (but constant) process of building my RaspberryBoy. For those who don’t know what it is, it’s a retro console, made using parts of an original Game Boy and a Raspberry Zero (explained here).

This time let’s talk about the audio circuit. Like said (here) I bought an audio amplifier from Adafruit and like most of the tutorials on the matter recommend, I connected the red cable and the brown cable (I didn’t have a black one) to power the amp, I took the power directly from the Raspberry Zero. I wired the green and orange cables to an audio jack just to test it with an audio source. In the final version these two cables will take audio source from the Raspberry, but I’m not ready yet for this.

Eventually the white and blue cables had to connect the output jack and the speaker in a way that if some headphones are plugged in the speaker it will automatically disable itself.

The wiring is still rough and the audio is a little bit noisy but I will replace the wires with some thicker ones and be more careful with the soldering. To complete this audio step, I will have to connect the external audio card to the Raspberry and I will have to enable it as the main audio source, for that I think I will have to use some commands from the operating system. I will put this step on a future post, maybe regarding the system configuration.

While writing this post I realized that this buildlogs could be more useful if I included some wiring diagram especially while talking about wiring matters. In the future post I will make diagrams when needed and I will update the previous ones and add the diagrams. In the next step I will modify the input board for input controls. Stay tuned 🙂

Game developer & designer. Unity 3D lover. Movie fanatic.

RaspberryBoy – BuildLog #4

The screen and the case

Firstly I have to apologize but I’m not working so much on this project and the articles are posted rarely. Anyway, my idea is to proceed component by component and talk about how I managed the issue of fitting all the stuff in the case and making it work. In case you didn’t read the previous posts, here they areThis post is about how I’ve prepared the screen and the case.

 

The screen

My choice for the screen was similar to this one (link), apparently used for car parking as monitor for not bumping obstacles. This type of screen is often used in projects like this because it’s very small, compact and cheap, but some of them need some electronic modification to run the screen to a different voltage, but fortunately was not my case. I started to unmount the screen to take only the panel, and it was pretty easy, I have to admit. After replacing its cable with thicker ones, I’ve placed some black tape to cover the metal to avoid unwanted contacts. I try and tested the screen with the Raspberry with temporary soldering and it worked! It’s just a little bit noisy but I think it depends on the quality of the fast soldering I’ve done.

The case

To modify the case, I used a rotary tool with different heads, and following the tutorial of wermy on sudomod(link) I cut out all the unneeded parts  for this build. This processes are probably the most difficult of the project, and after finishing the work I was not really happy with the results. I will change the case in the future maybe.

 

The next post will be on audio and how I will settle the audio components in order to work. Stay tuned 🙂

 

 

Game developer & designer. Unity 3D lover. Movie fanatic.

RaspberryBoy – BuildLog #3

 

Little and short update: finally I think I have all the parts for my RaspberryBoy!

  1. DMG-01 case – green transparent
  2. TFT screen, for car parking
  3. Optical fiber 
  4. Buttons and controls
  5. External USB audio card (Sabrent)
  6. Micro Switches
  7. Speaker and audio jack from an original DMG-01
  8. Cartridge reader from an original DMG-01
  9. Original cartridge
  10. Micro USB board (Adafruit) 
  11. Power Board (Adafruit) 
  12. Audio Amplifier (Adafruit)
  13. Micro SD breadboard (Adafruit)
  14. Empty modular breadboard
  15. Raspberry 0
  16. Battery 2700 mAh
  17. Old DMG-01 mother board

raspberryboy_materials

 

The tools I’m using basically are:

  • Screwdrivers
  • Rotary tool with different heads
  • Soldering iron
  • Solder sucker
  • Hot glue
  • Cables of different sizes

 

Now the hard work. I will start modifying the actual case. I’ll have to work very carefully because it is a transparent one. I’m not sure on the results, I think it will be clearly noticeable that the case has been modified but since it’s my first work and I won’t have to sell it, sadly I have to sacrifice the beauty and concentrate on the functionality.

Once the case is done I will unmount the screen and set it up to fit in the new case. I will devote a specific post on that. Stay tuned 🙂

Game developer & designer. Unity 3D lover. Movie fanatic.

RaspberryBoy – BuildLog #2

Disassemble the DMG-01

In the last post I talked about the beginning of the project and what I will have to do in the future weeks which is starting to disassemble an original (not functioning) DMG-01 and starting to modifying the case using a rotary tool. I did it, and I did a good job, not perfect by the way, which is why I ordered an extra case to make the official modifications only when I’m sure of all the matters I can encounter doing it.

Meanwhile I’m waiting for the last few parts to arrive and I started to disassemble the motherboard, for taking the parts I can reuse in my build, which are: the audio speaker, some switches and (most importantly) the cartridge reader. The final goal of using the original cartridge reader is to modify a cartridge and put inside of it the micro SD for the Raspberry SO, in a removable fashion, and use the cartridge itself as an external “cartridge SD”.

I was able to remove all the components not needed like the old screen, some capacitors and resistors since I’m gonna replace the screen and use the circuit just for the controls. The next step for the motherboard will be to cut it and to keep just the part near the controls and modify it allowing to have four buttons instead of the standard two. Recently the guy that created this build uploaded a video showing all the custom motherboards created by usersof his forum (video). If I can’t get my motherboard working these are good alternatives.

I’m also taking a look at the forum and some other videos. There are lots of new inputs for a custom project like mine. Just to mention one extra thing I can add, is to use an optical fiber to bring outside the lights of the charging module to make the charging state visible.

In the next post I will show you all the parts I have (hopefully the complete set) and all the things I’m planning to do (and what I’ve already done). The build state is still pretty rough right now but I’m going to refine all the details.

Stay tuned for future posts 🙂

 

Game developer & designer. Unity 3D lover. Movie fanatic.

RaspberryBoy – BuildLog #1

Discover the Raspberries

Recently I’ve bought a Raspberry Pi 3 and I started to play with it and installing some dedicated operating systems and doing some researches on what could be done with this tiny machines. The model I bought is not even the smallest one. If I have to describe it in one word, it would definitely be amazinglySmall 🙂 .

I also came across the vast set of projects done with the Raspberries (here) and I’ve found a lot of interesting projects of different genres and purposes. Finally I discovered the branch of projects about retro modding, in which this tiny machines are used to create custom retro consoles with an operating system containing lots of emulators of retro consoles. You can either use a plain Raspberry Pi to play with this emulators or you can put it in a case, portable or not.

There are a lot of good projects like the ones proposed in the Adafruit (here) with detailed circuit diagrams and high res photos. The projects are mostly created with 3D printed cases for portable consoles similar to different Game Boy versions.

By the way, Adafruit is the best place to go if you want to create any type of project with Raspberry and other similar devices. They have a lot of products and kits that can avoid a lot of headaches if you don’t know much about electronics and you have to build some parts by yourself.

Starting my build

I finally found this video with this guy showing his project to take an existing Game Boy DMG-01 and modify it and he did a pretty good job. He used a Raspberry Pi 0 and several other parts. He also posted a series of video like a step by step guide and his site has a very useful wiki section and a forum as well.

I have a little knowledge of electronics and a propension to use screwdrivers and tools so why not! I started to look around and try to find all the components I need to make my version of his Game Boy Zero, called RasperryBoy. I’m planning not to do everything he did but I will take his tutorials as inspiration. After several hours of research I found almost everything I need, or at least all the sites to find the parts. I live in Italy so to contain the shipment costs, I searched for italians or europeans retailer of Adafruit.

While the parts was on its way, I started with disassembling the case and make practice using a rotary tool. I think modifying the case is the most difficult part for the project because it’s visible. I had an old original DMG-01 and I started to modifying its case with the rotary tool nut I’m not sure if this case will be on the final build. I will post periodic updates on this project. Stay tuned 🙂

Game developer & designer. Unity 3D lover. Movie fanatic.