Modifying GameBoy Advance SP

I decided to go on a retrowave and bought a Gameboy Advance SP. And it wouldnt be me, if I will not try to find a way how to improve and modify it.

I bought an aftermarket backlit LCD and a beaten GB SP model AGS 001 from eBay, which had frontlit LCD. And because GBA SP dont have audio jack, I wanted to integrate also a Bluetooth transmitter for my bluetooth headphones.

After a few iterations and I ended with this.

You can order the PCB here:

Order from OSH Park

You need to choose option 2 oz copper, 0.8mm thickness, otherwise the PCB will not fit under the display back cover !

The schematic is here, in case you want make your own mod based on this one.

The microcontroler is Microchip PIC12F1840 and the program you need to flash in (via e.g. PicKit 3) is here:

As an alternative PIC12F1822 can be used, the program for that is here:

Parts:

DesignatorDescriptionValue (Type)
C1Capacitor 080522uF
C2Capacitor 120622uF/16V
C4Capacitor 060333pF
D1,D2Shottky diode1N5819HW
D3LED 0603Blue
D4LED 0603White
L1Inductor 120622uH or 33uH
Q2,Q6MOSFET P ChannelAO3401
Q3,Q4,Q5,Q7MOSFET N ChannelAO3400
R1,R6Resistor 0603910k
R2Resistor 060333k
R3Resistor 060310k
R4Resistor 06037k5
R5Resistor 060310R
R7,R8Resistor 06033k3
U1Step up converter 12VMT3608
U38-bit MicrocontrollerPIC12F1840-I/SN
or PIC12F1822-I/SN
U4Touch pad detectorTTP223-BA6

After assembling and soldering all components, I put a kapton tape on the back and on that a piece of double side sticky tape. (There is an older version of PCB on the pictures, where Q1 was planned, but was not needed, so it was bridged by a 0 ohm resistor)

On the display the back-light terminals need to be separated. I used a bit of soldering flux and and unsoldered them from each other. The ones which are on the display need to be isolated with kapton tape.

As a next step, I prepared the Bluetooth module (BTM). I soldered 0,14 mm2 (AWG 26) wire on terminal pads +5V, PGND, LED, IN_L, IN_R, CON. (Terminal marking is on the oter side of the BTM) Again, I used the double-side sticky tape to stick it on the GBA SP board. Then I soldered the other end of PGND wire negative battery terminal 2.

In the bottom shell, I prepared a hole so the BTM will fit there, and removed the “cross stand-off”

Afterwards I soldered the other end of wires: IN_L (BTM) to LOUT (GB), IN_R (BTM) to ROUT (GB) and soldered the rest of the wires on the GBA SP board: U83, SW, VDD3, BT+, BT- . Instead of VDD3, VCC testpoint can be used too. For me the VDD3 seemed a bit better. It is necessary to mark somehow the other ends somehow. I used color marker. I shaped all the wires so, it will be easier to avoid them to be pinched when the shell will be assembled back together again.

Then it was time for the hardest part, I put the display part and board part close together and put all the wires and flat cable through the hinge. Hinges itself and flat cable cover I had mounted in advance.

On the display part, the wires go out after the first flat cable loop.

I connect the flat wire from the display to the connector on the mainboard.

Adjusting the shape of the wires was the next critical step, before closing the bottom parts.

I played with it carefully, until it was something like this. I aslo gently pull and push the wires, to achieve the desired position, so they do not get pinched when closing the shell. I almost forgot to put back in the speaker.

Then I screwed the board to the “keyboard” shell part.

Then, the tedious part was comming. I solder the wires to the PCB on the displays back side. On the PCB (back side), there are markings ner the solder holes which correspond to the GBA motherboard pads or Bluetooth module connection points. For clarification: VDDx on PCB goes to VCC on GBA , BT-PWR goes to +5V o the BT module, BT-LED goes to LED on the BT module and BT-CON goes to CON on the BT module. Obviously, I soldered also the two wires for the power for the display.

I shaped shaped the wires so they go above the flat cable, where is the cutout for the cable.

I put the displays back lid on.

I secured it temporary with a duck tape.

I secured also the bottom part with duck tape and put a battery in. It was time to turn it on.

I could then put all the screw where they belong. However, there is a small issue which I haven’t solved yet and is that the display back plastic lid get bulged out/bent, if I screw it properly. It is due to the PCB and its components thickness. The Chinese aftermarket shells are very brittle, so they will most probably crack. I was trying to preheat it with a hot air gun and kind of pre-stamp the PCB to the lid, but it didn’t come out well as you can see on the following photos.

I will try to some other method to make more room for the PCB. Probably heat up some rectangular metal part and heat-stamp a cavity there.

The functionality is as follows:

Short touch (approx 3 sec.) turns on Bluetooth, then again short touch turns it off. Activating touch “button” is signaling by white LED. After turn on the bluetooth module (blue LED is blinking), the module is searching for bluetooth devices. It can take few minutes. It connects to the first one it finds. After successful connection the blue LED blinks twice rapidly with a pause. Then the devices are paired and the module remembers it for the next time. When you want to reset the pairing “touch” the button longer (approx. 5 sec.) The searching and pairing should start again. If power state (ON or OFF) of the bluetooth module is not remembered after power off.

The original brightness button now cycles between 5 levels of display backlight intensity. It is remembered after power off.

Battery life with 950mAh battery, lowest brightness and with Bluetooth on is 2,5 hours until the red light indicator on GBA turns on and then another 3,5 hours until the bluetooth starts to disconnect and after next approx. 10 minutes it dies completely. But this may vary depending on the brightness level and the game/cartridge.

So thats all folks. Thank you for reading.

PS: Here are photos with number coded hints so it is easier to track where each wire is going. Wires are connected 1 to 1, 2 to 2 and so on….