Now that I’ve been amassing a greater and greater arsenal of iPhone batteries, it’s gotten to the point that it makes most sense to create a connector board that can bring out the Pack+/Pack- pins alongside the HDQ data pin so I can view the gauge’s status in GaugeStudio.
Why use iPhone batteries in DIY projects?
The benefit of using iPhone batteries (note they must be for the iPhone 4 or newer; older ones will lack the fuel gauge) in microcontroller-based projects, is that the fuel gauge allows the microcontroller’s program to read out its current battery level, power consumption, capacity and time-to-empty; you also get the usual built-in protection circuit to safeguard against short-circuits, overcharge/overdischarge and overcurrents.
Additionally, iPhone replacement batteries are easy to find online or in cell phone repair shops, making them cheap and plentiful.
What is this “HDQ” that I keep talking about?
HDQ is a communication bus originally made by Benchmarq (now a part of TI). It stands for “High-Speed Data Queue”, and is a serial bus that transmits data over a single wire. This, however, is not to be confused with Dallas Semiconductor’s 1-Wire protocol. The basic idea is the same but they are completely incompatible with each other.
The board was made up of an iPhone surface-mount connector, a 4-pin connector for HDQ data transfer, a 2-pin male header, and a 2-terminal screw terminal. As with many of my prototype boards, wiring of the board is done with thin, flat solar cell tabbing wire. It’s flat, pre-tinned, and can handle high currents easily.
The benefits of this sort of board is that it allows:
- Easy, removable connections to the battery; no need to solder to the battery terminals directly
- Access to the HDQ data pins and power terminals
- Real-time monitoring of battery State-of-Charge (%), current (mA), voltage (mV), capacity (mAh) and also the remaining time-to-empty (minutes).
- Adaptability for different connectors (either by making a separate board for that connector or by creating a single “universal” board)
- HDQ protocol can be used by a microcontroller via either bit-banging the protocol, or using an on-chip UART. (subject to a separate post in the future)
Although I could have created one large breakout with all the available connectors populated, I wanted to be able to use multiple batteries at once for powering different devices. Additionally, the HDQ bus has no support for addressing multiple devices.
The iPhone 4, 4S and 5 batteries have an additional NTC thermistor pin, but I have left them disconnected since I can read out the battery temperature over HDQ anyways.
Keep in mind that not all Li-Ion batteries have the same charging voltage. The iPhone 4 and 4S batteries use a 3.7 volt cell, charging at 4.2 volts; but the iPhone 5, 5S and 5C batteries are 3.8 volts, charging at 4.3 volts. 4.3 volt cells can charge at 4.2 volts with a capacity reduction of 5-10%, but 4.2 volt cells must not be hooked up to a 4.3 volt charger. There is overcharge protection built into the battery but it should not be relied upon for regular charging. Apart from the usual risk of the battery catching fire (or even just puffing up like a balloon), you also permanently decrease the battery’s capacity and dramatically increase its internal resistance, essentially crippling the battery for life.
Pingback: So Phone Me Maybe: A list of iPhone batteries with gas gauge functionality | Rip It Apart – Jason's electronics blog-thingy
Have you found a supplier for the actual 3 pin battery? If so I’m in need. Thanks for the time.
No luck so far. I’ve only gotten one that was real(ish), and that was an iPhone 5C battery. The reason I say “ish” there is because it was a half-working battery. It techinally was genuine, but it was unconfigured (that is to say that your iPhone would have rejected it if it were to be installed in your phone).
Hi Im thinking of combining 2 iphone 5s battery to get longer battery life. Im going to put the battery on a iphone 5s with a extended housing by combining two iphone 5s. Do you think I can just parallel the connection to make it work? Or the gas gauge wont let me do it. Thanks
You could, but it’s unlikely you’ll be able to get the full benefits of that modification, since the gauge will not recognize the doubled capacity.
Thanks for the reply!