RaspBoy – The Movie

Here is a short video of the Raspboy:

Advertisements

The RaspBoy (Part 10) – Grande Finale

Well,  already thought the desire to project Raspboy had lost?
To be honest – almost, because the configuration is quite tedious and not very funny but finally I did the it.

Emulation station was configured quickly – this tool is really foolproof. Retroarch was more difficult – maybe difficult is the wrong word, more complicated.After I edited the configuration file finished I did a test and – hooray, it works!

Ideally in Retroarch one function could be done with several buttons that was necessary. Why?
It’s simple: In “handheld” mode the games are controlled with the GameBoy buttons but via HDMI on the TV and wireless controller player 1 should be controlled wireless and not with GameBoy buttons. A simultaneous pressure on Select and Start exits the emulators.

Also “console mode” works perfectly. However, I will underclock the RasPi, since the thing gets really warm when playing a longer period.
So this project seems to be finished – and now for the planning of the Ark of the Covenant …..

The RaspBoy (Part 9) – Case closed (almost)

First of all:

Here are the updated schematics of the Raspboy:

I tried to get rid of the noise caused by the Amplifier with a self-made shield:

No, that´s not a condom…..

Another epic fail – the noise was´nt very impressed of the shield. So I installed the old Amplifier again – Better crappy sount than no sound – or noise on the LCD.

I almost closed the Raspboy-Casing by gluing the screw-mounting (which I cut off another GameBoy case) into the Raspboy. It worked perfectly.

Too bad this method worked only with 3 of the 6 screws, so there is a little gap on one of the corners of the RaspBoy case…

The RaspBoy (Part 7) – Goodbye Teensy!

Thanks to one of the kind readers on my Blog (Many thanks Hugo!) I started to research a way to use the GameBoy Buttons without the Teensy and – was successfull! There is a great tutorial from Adafruit available

Goodbye Teensy, hello GPIO Pins of the Raspberry Pi!

First of all I had to check if the PCB of the Buttons is still working – after torturing it with my soldering iron it was in a VERY bad shape:

YES, i know, it looks very very bad, but it is still working!

So I soldered the wires to the GPIO Pins and started to modify the tool which is needed to tell the RasPi what to do with the pins.

The tutorial is for a 6 Button setup (4 directional and 2 fire-buttons) so I used 4 more GPIO pins (caution: some of them are preallocated and cant be used). Connected to the RasPi with SSH I downloaded and unpacked this Zip-File and modified the retrogame.c

Even if you have little of no experience in programming this is really easy:

First of all open the file with nano (You´ll find it in the unpacked Adafruit-Retrogame Folder) with

nano retrogame.c

You´ll find the Key-assignment at about line 110 using the format ( {GPIO PIN , KEYCODE} ). Just copy one of the lines and paste it 4 times into the file and assign the GPIO Pins and Keycode the way you need it.

Here are some lines of my retrogame.c:


ioStandard[] = {
// (using HDMI or composite instead), as with our original
// retro gaming guide.
// Input Output (from /usr/include/linux/input.h)

{ 10, KEY_LEFT },        // Left
{ 9, KEY_RIGHT },       // Right
{ 25, KEY_UP },           // Up
{ 9, KEY_DOWN },      // Down
{ 11, KEY_A },             // A
{ 23, KEY_S },             // B
{ 7, KEY_Q },              // X
{ 24, KEY_W },           // Y
{ 18, KEY_TAB },       // Select
{ 17, KEY_ENTER }, // Start

// For credit/start/etc., use USB keyboard or add more buttons.
{ -1, -1 } }; // END OF LIST, DO NOT CHANGE

// This pin/key table is used when the PiTFT isn’t found

N

ow you have to compile the file with

make retrogame

And edit the rc.local with

sudo nano /etc/rc.local

 pasting the following line BEFORE „Exit 0“ (Adapt the path if necessary)

/home/pi/Adafruit-Retrogame/retrogame &

and save.

Now create with

sudo nano /etc/udev/rules.d/10-retrogame.rules

the .rules file and paste

SUBSYSTEM==”input”, ATTRS{name}==”retrogame”, ENV{ID_INPUT_KEYBOARD}=”1″

in your editor – then save.

Now to a restart with

sudo restart 

DONE!

Now I have to get rid of the battery-problem….

The RaspBoy (Part 6) – The Battery Problem

I decided to replace the 5V Battery with a normal battery for mobile phones, a PCB for charging and a DC-DC Converter (to convert the 3,7V to 5V)

The tiny PCBs fit perfectly in the GameBoy case not needing much room. I also replaced the mini-amplifier (boy, this thing was crap!) with another (better) one so I can use an internal speaker too.

Also an new USB Hub is now inside the RaspBoy, because 2 of the 4 USB ports of the old one were not working (yes, it was my fault..)

So I disassembled the new one…

…and removed 3 of the 4 USB Cables. Then I soldered the USB Cable of the Teensy and the wireless-receiver to the USB-ports and put the Hub into the RaspBoy.

YES, a wireless Receiver!

I had an XBox360-wireless-USB-receiver which I don’t need anymore, so I disassembled it and….had no clue where to put that big PCB….

I cut away not needed Parts of the PCB (It is a little bit bigger than it has to be) and had luck:

It fits perfectly in the Cartridge slot of the GameBoy Case and even the connect button is accessible!

When its done the Raspboy, connected to an TV with HDMI is a nice retro-console with wireless-controllers – well, at least thats the plan…..

When I power the whole thing directly without the Battery the RaspBoy works perfectly (almost), but there is a problem with the new battery: The RaspBoy tries to boot, but then (after a split second) it does a reboot . Also the Screen powers off, and then back on…

Also the PCB of the Gameboy Buttons or (more likely) the Teensy did´nt like the hours of soldering on it: There is an extreme input-lag when controlling the Raspboy with the internal buttons. The Raspboy won’t boot when the wireless Keyboard and the Teensy are connected to the RaspBoy simultaneously too….

I´ll do a fresh install of the RetroPi software first before I order a new Teensy – maybe I screwed up one of the config files….

UPDATE:
Thanks to attentive reader Hugo the Teensy is history. You don´t need that thing for using the GameBoy Buttons, because you can use the GPIO Pins of the RasPi! Read more in my next Post….

The RaspBoy (Part 5) – Energy Crisis

Be warned: The diagrams in this post are …lets call it beta… because there are several problems with the battery
I created them because of many requests (OK, it was only one….)

Problem 1: Annoying safety switch

The battery has to be switched on with an extra micro switch – quite annoying, so I planned to get the needed energy directly from the battery – without the battery-controller. Well… many persons told me not to do that because of current fluctuations and possible deep discharge.

Problem 2:

The battery-controller serves 1A to charge the battery. 1A – no more (only less..). This is a big problem when operating the RaspBoy while charging, because the RasPi and Pheriphery already require little bit more than 1A, so it´s not possible to operate the RaspBoy when battery is discharged

The solution: Another battery, more boards (luckily only 2 tiny ones)

User Jensma donated a 3,7V battery charger (right) and a 5V regulator (left) (many, many thanks for that!!) so I only need a different battery and some luck and my battery-problems are history.

Here comes the diagrams of the current wiring:

Power supply (and Composite):

I soldered the current supply directly to the Raspy (Ground = yellow):

USB and amplifier:

Note, that the +5V and Ground for the USB Hub are from the “Main power supply” and not from the USB port. The USB port only gives 500mA – this could be to less for the USB devices connected to the HUB.

The RaspBoy (Part 4) – The external ports

The RaspBoy needs some external ports for connecting GamePads and USB Sticks, because I dont want to disassemble the whole thing for doing this.

One of the new USB ports will be where the “Link-Cable-Slot” was. A normal USB port fits perfectly in there!

I had to be more “creative” o get the other needed USB Ports, because the RasPi only has 2 USB out of the box (One of the two is needed by the Teensy (GameBoy-Buttons)

I found a “spider-like” USB Hub – extremly tiny. I disassembled it, removed 3 of the 4 wires of the USB Hub PCB, soldered the “Teensy-USB-wires” directly to the HUB and placed the remaining original USB Port, behind the battery cover. So every time a second GamePad is needed I only have to open the battery compartment and connect it to the hidden USB port.

 Why extra Gamepads?

I also made a hole for the Raspberry Pi´s HDMI Port in den Gameboy Casing, for connecting it to a TV. So the Raspboy will be a Handheld AND Retro-Console!

I wanted to use the Original GameBoy Volume-Control to adjust the Volume. BUT: Normally the potentiometer is held in place by the PCB – normally – there is no PCB any more……. Inspired by the World-Wide-Web I created a bridge between the Volume Control and the USB Port with a small metal plate. After some fails and burned fingers the volume control is in place.

 I solved the SD-Card-Problem with a second SD Slot connected with a ribbon cable to the original one. The new Slow will sit in the cartridge slot.

The RaspBoy (Part3) – A history of epic fails

Now I have to get rid of all the unnecessary pars of the Raspberry Pi because there is not much roome inside a GameBoy Case:

Warning: This Blogpost is not suitable for professionals because of excessive violence against electrical appliances

The following parts are not needed: The Ethernetport, the USB-Port, the Audio, and Composite-Port.

So i successfully desoldered the Audio and Composite Port and moved on the the 2 remaining ports to desolder them – theoretically….
Well, i tried to desolder them for about an hour to remove them the more elegant way, but I failed miserably.

After that I tried a more …..lets call it… unusual way…….. Armored with a rotary tool and cutting disc I carefully cut the Ports off the raspberry Pi and removed the rest with a side cutter and a scalpel.

After that operation, which will be remembered as the RasPi massacre I powered on the RasPi and – it still works! Honestly I have thought I finally destroyed it, but it seems that the small Raspi is tougher than a T1000…..

After soldering the audio and video connections I found a picture of the correct wiring of the USB port on the web. After wiring I powered on the RasPi again and —– the USB was dead….

Lets start the troubleshooting:
I removed and replaced the whole USB wiring and removed the Hub – without success.
After troubleshooting for a long time  he solution was quite simple:
The wiring of the USB port in the picture I found was on the opposite side of the RasPi, so I need to wire it mirrored!
So I corrected the mistake and the USB is working now

Finally I put everything in the Raspboy where it belongs – or should belong as you see on the picture I measured correcly, the battery and the Raspy fits perfectly so the SD card is accessible from the back after removing the battery cover……..NOT!

For sure everything fits perfectly, but here is not enough room left to pull out the SD card….

The RaspBoy (Part 2) – The GameBoy Buttons

Lets move on with the assembling of the Raspboy.

I decided to install 2 more buttons to be able to play games which requires more than 2 fire-buttons (almost every game beyond 8-Bit).

Now I had 2 options:

2 more GameBoy-Style buttons, or 2 smaller ones. I fond a picture of a 4-button-modded GameBoy which looked…well..kinda wrong….

OK, a 4 button Gameboy looks always wrong, but I simply did´nt like it….

So I disassembled my C64-Competition-Pro-Thingy (The one with the C64 in it) and removed 2 of the small red buttons. I mutilated another GameBoy PCB and hot-glued it to the other one so I had one PCB for all 10 Buttons.

(On the picture you see the Gameboy with the enlarged opening for the Display, the Teensy 3.1 and the mini amplifier)

Now I have to teach the Raspboy to use the buttons:

I removed the unnecessary parts of the “Main-PCB”, interrupted some of the traces, and soldered some wires on it. (Soldering something on traced is a pain).

I connected the wires with the Teensy, connected the Teensy via USB with my Macbook, uploaded the “Gamepad” script (I modified it before, because I needed 10 instead of 9 buttons) – DONE!

And its ALIVE, powered only by battery!

As I said I enlarged the Display opening in the case. The original size is good for GameBoy games, but too small for everything else. The original Display glass fits still perfectly.

But I had to get rid of the grey bezel. I could not grind it off, because I have no polishing machine. So I used a chrome polish to “polish” of the printed bezel and a car polish to get rid of most of the scratches of the chrome polish. I know that this was not the best solution but it served the purpose… 😉

The RaspBoy (Part 1 – The LCD)

I´ll give the pinball a little break for a smaller project: The Raspboy

Raspberry Pi and a 3,5″ LCD in a Gameboy-Case.Portable. With working original buttons.

Well, the Raspi needs 5V (USB), the LCD 12V – a little problem.

The LCD: I bought a cheap, chinese LCD (30 Euro) – a rear-view-monitor for cars.

Back to the voltage-problem:

I found outt, that the LCD can be powered with 5V too, but unfortunately the instructions I found are for another PCB – I think the 8-legged IC on the left should be removed, but it has no printing on it so I´m not sure.

After some research I finally found out, that on the backside of the PCB a 5V connection is pissible. After removing the PCB from the LCD (This pad sticked very the PCB VERY good on the LCD) I found the solder bump labeled with “5V”:

Horray, it works!!

The attempt to power the whole thing with the 5V Battery (An external Batterypack for Smartphones) failed – after pressing the battery´s On-Button multiple times the Raspy and LCD worked.

I´ll use a Teensy for the controls – my first try of programming a microcontroller. The Teensy should arrive in the next few days. I hope I solved the starting issue until then…

Problem solved: I simply removed the DC/DC Converter (the non-labeled IC) and now everything works fine!