Feed on

I’ve recently started to replay some Gameboy games on my Gameboy Colour, I picked up a Gameboy Advance and eventually got around to doing the AGS101 mod to it which makes it look really nice. Eventually I got to the point where I would have to keep recharging the AA batteries I was using as they weren’t lasting as long and the weight of the 2x AA 2000mAh rechargeable batteries made the GBA feel a bit heavy.

I saw a post where someone fitted a 2000mAh LiPo battery to their GBA, they had do to some modifications to the GBA battery compartment to fit it all. By using a LiPo battery instead of the AA’s, it would save us about 20 grams, while not a lot, ever gram does count and you can tell the difference plus since the LiPo has a higher voltage, it has a higher energy density, so it should give us longer play time than the AA’s. So I decided I would do the same mod and I might make a little voltage regulator and charging board to go along with it.

We can’t just directly hook up the LiPo battery to the GBA, you have to step it down to around 3V. You could go higher but I chose not to as who knows what that might affect seeing as the the GBA has a DC-DC boost converter on board stepping it up to 3.3V/5V.

A DC-DC buck converter could do the job to reduce it to 3V and so could an LDO but from my experiences, both of these options seemed to have quite a high quiescent current (usually around 1mA), we would waste power even when the GBA was powered off. One way around this would be to keep the device in shutdown but then how would you detect if the GBA was powered on?

GBA Reg & Charge v1.1
(sneak peak)

I started looking for a DC-DC and LDO that had low quiescent current and did find an 3V LDO, the NCP698 with a quiescent current of just 2.5uA, it can do 150mA min / 280mA typical current rate but the package size was small.

We need to consider that the GBA consumes about 70-80mA and it can be higher for flash carts (my 512KB MBC5 flash cart was about 150mA) so we need to cover for this, a small SOT footprint part might not work especially if it’s an LDO as it would get quite hot.

Another consideration is the GBA power LED, how could we make it change from green to red when the LiPo battery is at 3.7V or so? At first I was going to have an LED on the board at the back to show when the battery was running low but I really wanted to have the GBA power LED function properly. I found that it turns to red when the voltage hits around 2.3V.

So going with the fact that my brief search of parts wasn’t too successful (little did I know that I should have given the search for low quiescent parts more time), I started looking at building my own LDO using an NPN transistor and an op-amp (which is basically what an LDO is made with, there seem to be different circuit configurations) to have low quiescent current.


After a bit of playing around on which circuit configuration works for me, I found a solution that worked. We can simply use a resistor divider to the op-amp positive side so when the battery is fully charged it gives us 2.6V on the op-amp positive side. The op-amp will always keep the NPN emitter voltage set to the resistor divider voltage so the output will also be 2.6V. When the battery gets down to 3.7V, we have 2.3V on the output.

I built it all up after finding a low quiescent op-amp, the MCP6231 which has 300KHz bandwidth with only 20uA quiescent current. It seemed to work fine, the whole device’s quiescent current is around 40uA so it would take 24 hours for it to discharge the battery 1mA, seems good enough.


The output looks good, around the same as regular LDOs. We do have 92KHz coming from somewhere, I checked the GBA when powered off 2xAA and I had the same thing, so it must be the GBA DC-DC converter feeding back.


When switching on the GBA, we can see it dips very quickly and then tries to catch up. With AA batteries, it’s less significant but it’s still there to some degree. Doesn’t seem to have any effect on the GBA, everything works as normal.

We can now move over to the LiPo battery charging and since I have used the MCP73831 single cell battery charger before so it was easy for me to use that again, just 2x 4.7uF capacitors are required and a resistor sets the charging rate.

I did initially go with the SOT23-5 package and had it charging at a fair 200mA rate due to the heat dissipation. I wanted it to have a higher charging rate so I switched over the DFN package and set it to 450mA charging rate which works well.

There was one user who commented that I should have the device do automatic voltage switching when the 5V power was connected, I hadn’t really thought about that, playing while the battery was charging so it could actually finish it’s charge. We could use mosfets or a dedicated chip to do this but I thought since we are dropping the voltage already with the LDO, we can stick to the simplest solution, just use 2 diodes.

Here’s the end result schematic.

One of the downsides with using any form of LDO is the heat dissipation, so for the NPN I went with a SOT89 style one which seems to do the job. I used some doubled sided foam tape to stick the device to the LiPo battery which also helps dissipate the heat. The efficiency isn’t that great at 62% but it should last the same or longer than using AA’s.

I’m working on the next version of this board which I’m hoping will have a DC-DC buck converter, I did more searching and found one with 20-30uA quiescent current which could give close to 90% efficiency. It’s going to save me a couple of parts on the board but then again we need a way to switch the power LED red when the battery voltage drops to 3.7V to which I’m thinking could be done with a little MCU, mosfet and resistor controlling the DC-DC feedback network, we’ll see how it goes.

Leave a Reply