Recently I bought myself an OpenMoko Neo FreeRunner phone. It’s a lovely little smartphone that runs Linux, and it is special in that the manufacturer (FIC) has gone to extreme lengths to ensure that all the hardware is open (that is, it has either an open source driver or open documentation (prefeably under a CC license to prevent them disappearing).
Anyway, the application that has got me most excited about the phone (apart from the terminal ) is TangoGPS. In combination with OpenStreetMap (wiki meets maps), it’s great fun (in a creative/geeky kind of way I suppose… I’m wondering why it’s got me so interested, but that might have to be the subject of another post). The trouble is that the phone has to be on the whole time so that it can recieve GPS signals. TangoGPS appears to use a lot of CPU as well, so it tends to eat the battery, giving a battery life as bad as four hours.
I bought an iRiver music player a few years ago. It came with a AA battery pack which I never used because the player had a 12 hour battery life anyway. But it got me thinking. Wouldn’t it be really easy to adapt it for the OpenMoko Freerunner? Turns out it was.
First, I got a few bits together:
- The battery holder (which could be substituted for any four AA batter holder thingo).
- A mini-B USB plug (off a regular USB cable)
- Some heat shrink “spaghetti”
- A nail
Next I cut the wires and nail to length, soldered the positive wire to the nail, and put some heat shrink over it to prefent it shorting the negative wire. Note when soldering to a nail like this, you have to make sure that the nail gets hot enough to bond properly to the solder, so use a pair of pliers to hold the nail if you value the skin on your fingertips.
Next, I inserted the nail into the center of the battery pack plug, which leaves the negative wire long enough to reach down and contact the outside contact of the plug. Then, see that piece of heat shrink over the outside of the wire, coloured blue in this photo? I slid that down over everything and shrunk it down, holding the negative wire in place and keeping the whole thing together. I had a couple of goes to get that right, which is why that blue piece of spaghetti is coloured red in the next photo:
Now the nice thing about this battery pack is that it will clip on the back of the neo. I found that I could charge at 100mA or 500mA just fine. Didn’t try 1000mA, but I suspect that the batteries would be OK with that current, I just haven’t done any calculations.
Now, how much will this extend the battery life? Well, each of my NiMH batteries is rated at 2000mAh @ about 1.35 volts. The neo’s battery is rated at 1200mAh @ about 4 volts. So:
4 Volts * 1.2 Amp hours = 4.8 Watt hours.
1.35 Volts * 4 batteries * 2 Amp hours = 10.8 Watt hours.
So the battery pack has about twice as much energy as the neo’s battery. If you need more you could of course use higher capacity AA batteries, or if you’re a bit crazy you could consider going to C or D cells (lol). But basically you get an approximate tripling of battery life using this method, and this bore itself out in field trials (mapping my mum’s town. My mapping will probably appear next Wednesday, BTW).
So a few things for further study:
- Can we charge the neo at 1000mA from AA batteries without damaging anything? If so, would it be worth fitting the 47.5 kOhm resistor between the “ID” and “GND” pins of the USB connector?
- What is the most efficient way to use the external batteries? Intuitively I suspect it’s best to not charge the internal battery from the external ones as there would be a lot of inefficiency involved. Perhaps running at 100mA charge rate most of the time, then switching to 500mA when the neo’s battery got low?
- Does anyone know how much current the neo draws when it’s set to (say) 500mA and the battery fills up? It would be a very inefficient way to use the external batteries and would generate a lot of heat if it continued to draw more current than it needed.