Why you should not use a SBC kernel on your EVO. Full engg details.

This was originally written and posted on xda-developers.

Let me preface this by saying I am a degreed electrical engineer and I specialized in integrated circuit design. I am slightly out of practice, but the fundamentals don’t change much. I am not an expert on batteries, but I understand the basics of their operation. I will absolutely yield to the engineering experience of people that have devoted significant portions of their careers to the field of battery design and applications. However, I don’t think we have many of those people running around here.

This is a long post, as the topic material requires. If you don’t read it all, you won’t understand what is going on.

I started out this adventure reading this thread:

Will this damage my battery?
This charging method doesnt damage the batteries at all. It shouldnt. Because our batteries dont even charge up to 4.2V without the tweak. They charge up to 4.2V the first charge, then drop all the way down to 4.08V or something and then does these weird short burst chargers to 4.1-4.125V. Thats why there’s the rapid drop in the morning. Because your voltage is actually at 4.125V and that’s not 100%. So with this tweak, the charger keeps charging until you’re at 4.2V (or the maximum voltage your battery can get to) and then it trickle chargers while at that voltage. The charger itself never turns off. Thats not a bad thing. Because as you reach your actual voltage, the mA decreases. Which is why our phones will never be damaged. You ever want to know why its really easy to charge from 50-80% but the charge from 90-100% seems to take so long? Its because from 50% the mA going into the phone is in the 600’s. Once it reaches 90%, the mA is around 150 and once it reaches 95% you’re looking at 90mA. The phone when absolutely idle uses anywhere from 60-120mA, even when on the charger. So charging from 90% to 100% takes longer becaus the mA going into the phone isnt always higher than the mA you’re losing. This is the same with charging past 100%. As you leave the phone on the charger with this tweak, you’re mA will decrease from 50mA all the way down to 2mA overnight. But on the charger you’re losing about 30-60mA already, so you’ll never overcharge the battery, in best case scenarios, you’ll just maintain the voltage of 4.2 or around 4.2V.

Quite frankly, this explanation shows a clear lack of understanding of battery fundamentals and perhaps even the basics of electricity. So I read the thread linked in the above post and got a clearer explanation of SBC kernels.

SBC is a type of “trickle” charging. It’s a full, slow, complete charge and it prevents the 10% drop that most users get when pulling the phone off the charger. This kernel performs best with an overnight charge. Some users asked questions on the safety of the SBC charging method. Ms79723 states that it slowly pushes mV into the battery and thus keeps the battery cool. SBC kernels push the battery past their normal 100% charged point, to a TRUE 100% charged battery. These kernels also charge extended batteries to their maximum and show true “on charger” voltages, which would deem these to be more accurate for checking voltages on your battery. There was and still are concerns of the SBC kernels destroying your battery, but to most people now these dont pose much concern anymore.

The issues people were bring up is that the Li-Ion batteries are charged to the point HTC set them to was for safety of the battery. Li-Ion’s can be unstable at times, but Ms79723 programmed safety temperature and voltage “stops” to kill the charging is they get too high. Bad things can start to form, I said can not will, if the temperature gets above 140f and voltage gets to or past 4230mV. If the mV gets to 4230mV it can causes issues. If it gets to 4300 mV it can cause plating. People are also speculating that the SBC kernels are going to kill your battery and or shorten the life. With the price of eBay batteries now days, if the SBC kernels give you drastically ( which has been seen ) more battery life, then why not? The highest seem on the SBC kernels is 4210mV, which is under both values for issues to start.

Now, let me explain what a trickle charger actually does. Basically, at the end of the charging cycle, you change over to a constant current source (CCS) supply. This means in a true trickle charger, IT WILL CHANGE THE VOLTAGE TO (theoretically) ANY VALUE TO MAINTAIN A CONSTANT CURRENT! That is bad for a Li-ion battery because they react poorly to being overcharged (see the end of this post for an explanation of battery charging and voltage). If you increase the supply voltage beyond the battery voltage, you are guaranteed to overcharge the battery. Check it out:

Trickle charge Trickle charging is designed to compensate for the self discharge of the battery. Continuous charge. Long term constant current charging for standby use. The charge rate varies according to the frequency of discharge. Not suitable for some battery chemistries, e.g. NiMH and Lithium, which are susceptible to damage from overcharging. In some applications the charger is designed to switch to trickle charging when the battery is fully charged.

What about the self-discharge of our Li-ion you say? Well, Li-ions have some of the lowest internal resistances out there, so they barely discharge themselves at all.

Well, why does my battery lose about 10% everytime I unplug it using the stock charging kernels? That seems like bad engineering! It isn’t. It is an engineering decision.

Charging Lithium Batteries
Should be charged regularly.
The cell voltage is typically 4.2 Volts
Battery lasts longer with partial charges rather than full charges.
Charging to 4.1 Volts will increase the cycle life but reduces the effective cell capacity by about 10%.
Can not tolerate overcharging and hence should not be trickle charged.
Charging method: Constant Current – Constant Voltage .
Fast chargers typically operate during the constant current charging phase only when the charging current is at a maximum. They switch off at the point when the constant voltage, reducing current phase starts. At this point the battery will only be charged to about 70% of its capacity.

The experience of battery engineers and device designers has shown them that they can ignore the top ~10% of battery capacity and dramatically increase the cycle life of the battery. That means you can charge and discharge the battery many more times before the actual capacity (power) of the battery drops to 80% of its original maximum. For most people, this is a great tradeoff. But it is not bad engineering. At the very least, it is a bad design decision for some people.

Now, you might be asking yourself why it charges so quickly to ~70% then takes forever to get to the ~90% level. The explanation given by MS79723 makes so much sense you say. Let’s debunk it a little bit.

Constant-current Constant-voltage controlled charge system. Used for charging Lithium batteries which are vulnerable to damage if the upper voltage limit is exceeded. Special precautions are needed to ensure the battery is fully charged while at the same time avoiding overcharging. For this reason it is recommended that the charging method switches to constant voltage before the cell voltage reaches its upper limit.
CCCV Charging
The charge voltage rises rapidly to the cell upper voltage limit and is subsequently maintained at that level. As the charge approaches completion the current decreases to a trickle charge. Cut off occurs when a predetermined minimum current point, which indicates a full charge, has been reached. Used for Lithium and SLA batteries. See also Lithium Batteries – Charging and Battery Manufacturing – Formation.
Note: When Fast Charging rates are specified, they usually refer to the constant current period. Depending on the cell chemistry this period could be between 60% and 80% of the time to full charge. These rates should not be extrapolated to estimate the time to fully charge the battery because the charging rate tails off quickly during the constant voltage period.

The reason the charger switches from a constant current source (CCS) to a constant voltage source (CVS) is nestled in a few engineering details. Much like the opposite of a CCS, a CVS will (theoretically) provide any current required to maintain a constant voltage supply. Now, you can approximate the battery as if it were a simple capacitor. This is not true universally, but it works for this explanation. We have already established that Li-Ion batteries respond very poorly to overcharging. Overcharging means putting too many units of charge into the battery, which can be measured by an excessive voltage on the battery. If you have had engineering physics, you know that if you place a constant voltage in series with a capacitor, it is physically not possible for the voltage on that capacitor to ever exceed the voltage of the CVS, but it may take a long time for the capacitor to reach that voltage. So we have built in safety and much more precision, but it takes longer to charge this way. (If you want to know more about this, you should study up on the mobility of electrons and holes in solid state devices.)

By now, you should be starting to see some similarities to things you observe, but the explanations clearly do not match what others have offered. So, I have to propose a couple of conclusions. If someone doesn’t want to sacrifice the last 10% of capacity on each charge cycle to increase their cycle life, they could conceivably modify the kernel to allow charging at the higher ~4.2V as a CVS. Maybe that is what MS79723 is doing, but I really highly doubt it considering how people are going for hours and only using the top 10% of their battery life. That smells like serious overcharging, which is what would occur in a true trickle charge system. So I would like some clarification from the people putting out the SBC kernels. What charging methods are they ACTUALLY using? How are they controlling them? Do they have an appreciation and deep understanding of the above principles? If they don’t have good answers, I would highly recommend you discontinue use of their kernels immediately.

And one more thing folks. There are no panaceas in deployed hardware. Only engineering decisions.

Edit: Here are some additional comments I had after reading around xda a little bit more:

I should point out that based on what the developers have said and the performance people are reporting, it seems likely that they are overcharging the batteries. However, that is all pending us getting some hard answers from the developers.

I would like to further add that no matter the method you use, if you are able to reliably charge your battery to the exact rated voltage (not give up the 10% capacity) then you are much more likely operating it safely. It is something I would personally be comfortable with, pending the input of an actual battery applications engineer. HOWEVER, I AM NOT A PE and I DO NOT HAVE A STAMP. I AM NOT YOUR EE DESIGN CONSULTANT AND IF YOU DO THAT AND IT STILL BLOWS UP, IT IS NOT MY FAULT. THE ONLY WAY YOU CAN BE ASSURED THAT YOU ARE SAFELY CHARGING YOUR BATTERY IS IF YOU DO SO EXACTLY AS SPECIFIED BY THE DEVICE MANUFACTURER.

Of course, the most accurate and reliable way to charge to that level would be using the scheme used in the stock kernel, but raising the maximum voltage to the rated voltage of the battery.


About wfjackson3
I am an EE working out of industry. My nights I am writing ruby (on rails). Interested in entrepreneurship, technology, economics, integrated circuits, public policy, water treatment.

Comments are closed.

%d bloggers like this: