limiting charge current for a small lipo battery in an old phone
i had a small lipo battery and wanted to use it in an old phone as a replacement for the vendor one.
the battery is:
nominal voltage: 3.7v
capacity: 400mah
max charge current: 1c
max discharge: 5cfor this battery charge:
1c = 400ma
the problem was that the phone did not know about this smaller battery. with an empty battery it tried to charge it at around 600ma.
this is not a dramatic overload for a few seconds, but it is above the battery datasheet limit. for a small lipo inside a phone body i do not want to rely on “probably fine”.
the goal was simple:
- limit charging current to below 400ma
- do not limit discharge current too much
- do not break the phone's battery detectionthe basic problem
the phone connects to the battery through the usual battery contacts:
phone bat+
phone bat-
bsi / ntc / battery id
the charging controller is inside the phone. i did not want to replace it. i only wanted to insert something in series with the battery positive wire.
the important detail is that the current direction changes.
during discharge:
lipo -> phone
during charging:
phone -> lipo
so a simple resistor in series with the battery would limit both directions. that would limit charging, but it would also create voltage sag when the phone takes current from the battery.
that is not ideal.
the better idea
the better idea is to split the path into two parallel branches:
one branch for discharge
one branch for charging
the discharge branch should have low voltage drop. the charging branch should limit the current.
the circuit became:
discharge
LiPo+ ──────────|>|────────── Phone BAT+
schottky diode
│ │
└──────── 1.5Ω / 1W ─────────┘
charge
LiPo- ──────────────────────── Phone BAT-
so when the phone runs from the battery, current goes:
LiPo+ -> schottky diode -> Phone BAT+
when the phone charges the battery, this diode is reverse-biased, so the charging current must go through the resistor:
Phone BAT+ -> 1.5Ω -> LiPo+
why not put the circuit in the minus wire
electrically, current is the same in the positive and negative wire. so in a simple circuit a current limiter can be placed on either side.
but a phone is not a simple circuit.
the battery negative contact is usually the common ground for many things:
battery
usb ground
charging controller
bsi / ntc measurement
phone logic
possibly shield / chassis reference
if i put a resistor or diode in the battery negative wire, the real battery ground would move relative to the phone ground. that could confuse the charger, battery voltage measurement, temperature sensing, or battery identification.
choosing the resistor
the phone originally tried to charge the empty battery at about 600ma,
the battery limit is 400ma,
i wanted the charging current to be safely below that.
i tested:
Rcharge = 1.5Ω
with this resistor, the charging current became around 200ma:
for a 400mah battery this is:
200ma / 400mah = 0.5c
that is a gentle charge current.
the voltage drop on the resistor at 200ma is:
V = I × R
V = 0.2a × 1.5Ω
V = 0.3v
the resistor power at 200ma is:
P = I² × R
P = 0.2² × 1.5
P = 0.06w
even a small resistor would survive this, but i used a larger power rating because this is inside a phone and i do not want a hot part near the battery.
a 1w resistor is a good comfortable choice. i didn't have one in a pocket but instead i found an old broken charger and there were some SMD 1w resistors inside.
if the current were 400ma, the resistor would dissipate:
P = 0.4² × 1.5
P = 0.24w
so 1w still gives enough margin.
final simple circuit
the working version is:
discharge path
LiPo+ ──────────|>|────────── Phone BAT+
1N5819
│ │
└──────── 1.5Ω / 1W ─────────┘
charge path
LiPo- ──────────────────────── Phone BAT-parts:
D1: 1N5819 schottky diode
Rcharge: 1.5Ω, 1W
1n5819 is not perfect but works.
even better i'd implement an ideal diode / reverse-blocking power switch, but for a small test setup the 1n5819 worked as the discharge bypass.
led indicator
i also wanted a led indicator.
there are two different things a led can show:
charger is connected
or:
battery is actually receiving charge current
these are not the same.
the easy version is just:
5V charger pin ── resistor ── LED ── GND
this shows that external charging power is present.
but it does not prove that current is going into the battery.
to detect real battery charge current, i need to detect the voltage drop across the 1.5Ω resistor.
at 200ma the drop is:
0.2a × 1.5Ω = 0.3v
this is too small for a normal silicon transistor to detect directly. a transistor like s9014, s9013, c945, c1815, s8050, a733, a1015, s9015, 2n3906 and similar parts usually needs around 0.6v to 0.7v between base and emitter to open clearly.
so a single normal transistor is not enough.
a comparator would be the clean solution but i dont have one available.
i considered a rough two-transistor indicator without a comparator.
one possible experimental circuit uses:
Q1: A733 PNP
Q2: S9014 / C945 / C1815 NPN
Q1 senses that Phone BAT+ is slightly higher than LiPo+ during charging. Q2 drives the led.
the rough idea is:
Q1 A733 PNP
Phone BAT+ ───────────── E
B ────── SENSE
C ── R3 33kΩ ── B Q2
LiPo+ ─── P1 10kΩ ─── SENSE
SENSE ─── R2 100kΩ ── GND / LiPo-
Q2 S9014 NPN:
B ─── R3 ── C Q1
B ─── R4 100kΩ ─── GND
E ───────────────── GND
C ───────────────── LED-
Phone BAT+ ─── Rled ─── LED+this is not a precision circuit. it depends on transistor gain, temperature, battery voltage, and resistor values. but for a simple “something is charging” indicator it may be enough after adjustment.
safety checks
after building the circuit, the important measurements are:
charge current into the lipo
voltage directly on the lipo
temperature of the lipo
temperature of the resistor and diode
phone stability during discharge
the current must be measured in the battery path, not only at the usb input, because the phone itself consumes some current too.