View Single Post
Posts: 75 | Thanked: 125 times | Joined on Nov 2008
#1
I have been wondering for 2 days since I received my N900 why charging seems hit and miss from non-PC based USB ports, for example car cigarette lighter USB adapters and USB Battery packs. Here's the answer and solution.

The Micro USB spec says that power draw should be under 100mA until the phone and connected power source device (ie laptop, computer, etc) can negotiate a higher current. This negotiation happens over the data pins (the center ones in the big USB plug). If the power source is a "dumb" device which is not capable of negotiation (for example the dedicated wall socket charger), the spec says that the data pins (D+, D-) should be shorted - indicating to the phone that it can draw as much power as it needs (up to 1A?)

My problem is that several USB Power sources that I have (a few car cigarette lighter to USB adaptors, and an APC Portable battery), have the center pins open. The phone therefore tries to negotiate with the dumb power source and obviously fails, and hence proceeds to ignore it.

There are a couple of solutions. For cigarette lighter to USB adaptors, you can probably just pull them apart and solder the 2 center pins of the USB socket together on the PCB. Another solution would be to cut your USB to micro USB cable in the middle, short the D+ and D- (usually white and blue wires from memory - check with a multimeter first!) and neatly join/heatshrink the cut. This would render the cable useless for anything except charging from the dumb power source.

In my case I neither wanted to sacrifice a USB cable, nor did I want to short the pins on the USB socket of my portable battery, as I wanted to retain its "passthrough mode", which transparently passes data through from a PC. Shorting the D+ and D- pins would destroy the passthrough mode.

Instead I salvaged a male to female USB part from an old USB hard disk enclosure (the cable that used to provide extra power to the USB hard disk). I cut the power cable off it, and heatshrinked the wires so they won't short. I then carefully soldered the center two conductors together in the USB socket.

Voila - a "Force Dedicated Charging" USB adaptor, for dumb USB power sources.

Attached are photos. (incidentally, taken with the n900 camera in macro mode - stunning. I had to downscale them for the forum, but the originals are here if anyone is interested)

I wouldn't recommend you plug this adaptor into a PC - although it probably would do no harm as the ports are meant to be current limited, but shorting the data pins together will obviously terminate any communication on the USB bus.

UPDATE:
A lot of people have pointed out that the FM transmitter output power is reduced when plugging any sort of charger in (rendering the FM transmitter close to useless). Nokia have implemented this power reduction due to the fact that the charge cable will act as a transmit antenna, which brings the possibility that the transmit power will be well over legal limits.
If you would like to over-ride this power limitation at your own risk, with the possibility that you'll be transmitting at radio power levels over the legal limit, then grab the modified fmtxd binary from here:
http://jacekowski.org/Maemo/FMTXD
or here (zipped, post 8):
http://talk.maemo.org/showthread.php?t=60567

Make sure FM transmitter is off, then copy the new fmtxd to your n900 (root of the mass storage), then run the following in terminal:
Code:
cp /usr/sbin/fmtxd /home/user/MyDocs/fmtxd.original.backup
sudo gainroot
cp /home/user/MyDocs/fmtxd /usr/sbin/
exit
You should now be able to charge as well as simultaneously transmit (possibly illegally) on FM.

UPDATE 2:
Added photo of my current solution (last photo in below series). These weren't hard to find on ebay, (usb male to female adaptor) and the same solder bridge trick was applied. Much neater than original hack.
Attached Images
    

Last edited by jabawok; 2010-09-03 at 08:33. Reason: Update with neater solution picture.
 

The Following 50 Users Say Thank You to jabawok For This Useful Post: