Preventing Trickle charge in Lithium conversions

Inside the Roomba and Scooba and more, Cool mods, Repair and Upgrades - including the all new iRobot Create Kit. Let's void that warranty baby!

Preventing Trickle charge in Lithium conversions

Postby AdrianM » May 23rd, 2017, 1:13 pm

In my hack to replace the standard NiMh battery with a 4200mAH LiFePo4 in my Roomba 530, I was faced with the problem of there being a constant trickle charge. The charge termination method I'd chosen was the old favourite of "faking" a hot thermistor signal which forces Roomba to switch from "Full" to "Trickle" charge but even when keeping the fake temperature above 60C, trickle would continuously cycle between 4mins off, 2minutes on.

With no other way of removing the connection to the battery (using my minimalist charge control scheme) this would gradually over-charge the battery pack so I tried to find a way of shutting down the trickle using only the SCI. Simply reversing off the charging dock certainly cuts off the trickle, but leaves Roomba (and my Electric Imp module controller) drawing around 15mA in sleep mode. Ok for a short break, but a shame when wall power was readily available.

At some point while experimenting with the undocking manoeuvre I noticed a particular sequence of commands appeared to drop battery current to 0mA and stay there indefinitely. I narrowed this down to simply sending Power command (opcode 133) after raising the thermistor signal to >60C and holding it there while charge is no longer required.

All internal power is then supplied from the dock so SCI (and my Imp) remain active. The battery current remains at 0mA (as reported).

No reading of the SCI document clues me into why this should be - am I missing something? Anyway, this proved very useful to me so I thought I'd share.
AdrianM
 
Posts: 22
Joined: May 17th, 2017, 4:27 pm

Re: Preventing Trickle charge in Lithium conversions

Postby glnc222 » May 24th, 2017, 5:45 pm

Adapting lithium to NiMh chargers will depend on the charger algorithm. Standard charging procedures involve topping off timed lower current charging phases after cooling off the battery etc., and can depend on particular device firmware.
In Neato robots, a temperature over 60C is treated as an emergency fire shutdown condition, and only 50C is used to signal charging termination. NiMh charging would not heat much over 25C from room temperature.

In the use of balancers to heat the thermistors, the trickle charging cycles appear to be handled by the balancer bypassing the cells completely, absorbing the trickle charge through onboard resistors. Sufficient bypass current capacity in the balancer is needed, not usual in many off the shelf products -- enhancements were made by users.
In Germany a custom balancer was produced for sale by the original hobbyists for a while, with newer components.

A synthetic heat signal based on voltage, terminating lithium charging when reaching the max voltage, would normally be signaled again on repeat charging attempts, as the cells do not self-discharge, or would instantly move the charger to the max level to trigger signaling.

There were some problems with Neato charging lithium when the pack was already full and the charger began from scratch without a memory of charge monitoring, as from disconnecting the battery etc. When the battery is mostly discharged, the NiMh algorithm performed repeated cooling and full charging cycles until at least 1ah of charge is delivered. This system tries to track the battery charge amount with indicators of available running charge. The problem did not affect balancer based interfaces. The fancy proprietary adapter on Lithium Power Inc. batteries also handles it.

The NiMh charging algorithms are convoluted compared to lithium charging.

The single cell balancer in Germany simply bypassed the cell thorough a resistor when the applied voltage is at or above the maximum, and through a series stack all the way to ground. A comparator controls mosfet switches. A cell in the middle incompletely charged would continue to charge with the bypass current.
glnc222
Robot Master
 
Posts: 4414
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Preventing Trickle charge in Lithium conversions

Postby AdrianM » May 26th, 2017, 5:30 am

glnc222 wrote:In Neato robots, a temperature over 60C is treated as an emergency fire shutdown condition, and only 50C is used to signal charging termination. NiMh charging would not heat much over 25C from room temperature.

What does Neato do next if it thinks it's an emergency??? 50C absolute might be an issue in some territories, a better stratedgy would be differential from ambient but this would cost another sensor.

glnc222 wrote:In the use of balancers to heat the thermistors, the trickle charging cycles appear to be handled by the balancer bypassing the cells completely, absorbing the trickle charge through onboard resistors. Sufficient bypass current capacity in the balancer is needed, not usual in many off the shelf products -- enhancements were made by users.
In Germany a custom balancer was produced for sale by the original hobbyists for a while, with newer components.

This balancer must have been working hard to shunt a ~30W charger when not in trickle. The whole bypass scheme does not appeal to me. Especially when standard Lipos are being used.

glnc222 wrote:There were some problems with Neato charging lithium when the pack was already full and the charger began from scratch without a memory of charge monitoring, as from disconnecting the battery etc. When the battery is mostly discharged, the NiMh algorithm performed repeated cooling and full charging cycles until at least 1ah of charge is delivered. This system tries to track the battery charge amount with indicators of available running charge. The problem did not affect balancer based interfaces. The fancy proprietary adapter on Lithium Power Inc. batteries also handles it.

That sounds like it would be a problem for my simple Roomba mod. I would have thought that running down the battery and counting the apparently surpluss charge ought to reset the Neato though - otherwise it's dead-reckoning its charge level and that would drift without ongoing min-max recalibration.
glnc222 wrote:The NiMh charging algorithms are convoluted compared to lithium charging.

Too true. And LiFePo4 is even simpler. Some people are dropping LiFePo4's directly into 12V Lead acid battery applications although I would be keeping a careful eye on how that went.
glnc222 wrote:The single cell balancer in Germany simply bypassed the cell thorough a resistor when the applied voltage is at or above the maximum, and through a series stack all the way to ground. A comparator controls mosfet switches. A cell in the middle incompletely charged would continue to charge with the bypass current.

Maybe a reasonable approach with standard Lipos but (here I go again) cranking every cell up to 100% of its (inevitably different) Ah capacity is going to put all the safety margin at the bottom end of the discharge phase where LiFePo4s are more in peril.
AdrianM
 
Posts: 22
Joined: May 17th, 2017, 4:27 pm

Re: Preventing Trickle charge in Lithium conversions

Postby glnc222 » May 26th, 2017, 2:13 pm

When the Neato battery is too hot there can either be a "pausing to cool batteries" msg or a system shut down with an error message (like something so wrong maybe check the battery and system before using...or you are gone because house on fire; thermal fuses in packs have very high temp rating). The newest system boards with WiFi have not been examined. Also msg for missing thermistors.
Roomba could be simpler.
Neato's monitor the voltage discharge curve and charge usage when running, to adjust programmed charge usage run time for aging of the battery over time (an unused charge buffer 30 per cent maintained against deep discharge). I suspect a premature exhaustion of charge based on voltage triggers correction of the model maintained. It cannot discharge the battery to measure capacity except by running. When charging with an initial low voltage indicating an empty condition, heating terminates the charging but it resumes when cool, whereas once a sufficient charge is recorded enough for one room, heating permanently stops the charging -- except for the follow on timed trickle to top off the fussy NiMh for maximum run time. An indicator light goes from red (deep discharge, abnormal), to orange blinking, solid orange, blinking green, solid green finished. Rising temperature (with NiMh algorithm) in blinking green stops and switches to solid green; heat in orange state just pauses. Still a follow on trickle phase will occur after full indicator. (Graphs in Neato forum, "lithium ion revisited" thread.) Also based on voltage, maintenance trickle charge (if you can call half an amp trickle) cycles periodically occur -- 3200mah pack; there is some question whether on the dock, the low cpu load is still supplied from the battery -- I never got to that test assuming best design, not always the case with these robots). There are reports such cycles do not appear when using lithium replacements in NiMh mode.
Neato also seemed to keep its battery model in dynamic memory so lost when disconnecting the battery, and it always charges briefly to calibrate on reconnecting. Samsung advises using the disconnect switch anytime, maybe more flash memory; lithium pack. The battery voltage is also adequately indicative with lithium,easier to handle. It does not do calibrating charge cycles on re-connecting like Neato. It has a three position charge state indicator bar on display.

An inexpensive PIC based Malaysian data logger with nice software makes charging profile graphs on PC's.
glnc222
Robot Master
 
Posts: 4414
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Preventing Trickle charge in Lithium conversions

Postby glnc222 » May 27th, 2017, 3:42 am

Maybe of interest, the Botvac uses a Maxim battery management IC Maxim MAX17047 supplying a fuel gauge measurement of charge (integrating I x T) for use by system board cpu's. More accurate than inferences from battery voltages affected by temperature and loads.
glnc222
Robot Master
 
Posts: 4414
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.


Return to Robotic Hacking

Who is online

Users browsing this forum: Agfadoc, dex1i38, KeldBroe, Metalworker, PerceptualRobots, vtvrobot, Wing Nut and 169 guests