Neato XV Lithium Replacement for NiMh Battery - NeatoControl

News and information about the Neato XV-11 Robotic Vacuum. All discussion and troubleshooting questions go here.
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Neato XV Lithium Replacement for NiMh Battery - NeatoControl

Post by C-NUMB »

I changed to Li-ion batteries on my XV-15. These are batteries "acting" like NIMH batteries, should be plug and play.
The problem is that when charging them on a RC charger( NiHM setting) they are great, huge run time compared to original ones. Can clean intended area in one go :thumbup: .

But Neatos own charger stop charging them too soon, about 1500mah short. So would need to mod something, maybe cut off voltage? I have the NeatoControl and it can recognize the XV-15 but not sure what to do?

Any help highly appreciated.

Moderator Edit
-------------------
This topic has been split from the previous thread about NeatoControl. Previous posts are located here:
NeatoControl - program for diagnostic neato robots
glnc222
Robot Master
Posts: 5490
Joined: January 23rd, 2012, 8:19 pm
Location: The Villages, Florida
Contact:

Re: NeatoControl - program for diagnostic neato robots

Post by glnc222 »

I am not sure Neato Control is relevant, but it can display the temperature reading from the battery pack (in the high voltage side pack), used for NIMh charging control. Charging terminates when temperature rises faster than 1C/minute. The adapter circuit in the Lion pack will generate a temperature rise signal on the thermistor line when the charging voltage rises to the maximum for Lion cells, 4-series 16.8v total battery here. For models with the newer system board Rev64 I think (in use a long time now), an undocumented USB command SetConfig BatteryType 3 can switch Neato to the lithium charging procedure where charging terminates on voltage instead of temperature, at the same maximum in the adapter circuit. Neato does not perform the 2nd phase of lithium charging which may be done on an external charger: main phase at constant current until max voltage (2amps in Neato), 2nd phase constant voltage until current falls to zero (adds a few per cent to the charge, depends on specific battery).
Neato Control could reveal whether the adapter inside the pack is incorrectly generating the temperature signal, maybe too early -- a product defect.
I do not understand how you are able to determine the degree of charge delivered RC vs Neato -- from cleaning run time? Neato charge usage is fixed in software about 2ah while the battery has a larger capacity, providing a reserve against deep discharge, and returning to base. This max use will be adjusted down in a model Neato keeps of the battery when aging loss of capacity is detected from monitoring the voltage discharge curve -- premature voltage drop -- to maintain reserve for returning to base. LCD option "New Battery" resets this model.
Not sure if this helps, but what is known.

[edit] One more thing, Neato Control will display the Fuel Gauge per cent charge, 100 when full. This can be manually set when incorrect, if this is affecting the charging somehow. Setting to zero will initiate a charging cycle. Charge into and out of battery is measured by integrating current x time -- in Botvac, a separate IC is dedicated to this function but XV uses the main cpu.
glnc222
Robot Master
Posts: 5490
Joined: January 23rd, 2012, 8:19 pm
Location: The Villages, Florida
Contact:

Re: NeatoControl - program for diagnostic neato robots

Post by glnc222 »

addendum: the Neato NiMH charger performs a 2nd charging phase after terminating main charge at 2amps constant current, ending on temperature rise. The 2nd phase is a lower current topping-off cycle maybe 1/2 amp with fixed time maybe half hour -- which cannot be performed on lithium after maximum voltage reached and resistance rises, so the adapter presumably cuts this off with another temperature signal, not sure how that part works.
The Neato green ring light goes on when the main phase terminates on temperature. Not sure how the Fuel Gauge behaves.
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

Thanks for taking the time for this reply. My RC charger has a option to measure the actual capacity through a load, think its relative accurate. So i tested both after RC charging and after Neato charging. And yes, there is also a big difference in run time. There is also some different in end voltage after charging, charged with a the RC charger obviously higher, now don't remember how much. So the RC charger reacts differently to the 1C/minute signal then i guess. I Might try the SetConfig BatteryType 3, need to study where to add this command, seams like i have the 64 board rev, software is 3.2.18xxxxx
glnc222
Robot Master
Posts: 5490
Joined: January 23rd, 2012, 8:19 pm
Location: The Villages, Florida
Contact:

Re: NeatoControl - program for diagnostic neato robots

Post by glnc222 »

The RC charger may be performing the 2nd Constant Voltage phase of lithium charging Neato omits (even in lithium mode).
The adapter to NiMh charging in the packs may also have something to bypass the NiMh topping-off low current cycle without applying it to the cells. The earliest, German versions used a cell balancing board to physically heat the thermistor, which might do this, but the modern commercial ones have a microcontroller to process this (they even have a sleep mode for long term storage and need to be awakened by applying some voltage to the packs).

You might want to observe the maximum voltage reached by the Neato charger, in case it does not come up to lithium maximum full state.

The USB commands can be sent with a section of Neato Control for that, or from a terminal emulator program. Neato has a text command language built in (manual top of this forum), and Neato Control just renders into a convenient graphical interface. There is a similar Neato Toolio program which has an Android version for phones besides Windows for PC's.

When using SetConfig BatteryType 3 it should be tested with NiMh battery to check it terminates on voltage, and also that GetVersion showing configuration (automatic in Neato Control) shows the config setting. NiMh charging can raise voltage o 18.5v dissipating current as heat in NiMh batteries, which will trip over-voltage protection boards in lithium packs.
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

Thanks. Actually connected only the + and - to the RC charger, so guess it can not read any temperature sensor but use other method for stopping the charge. And the charger was set to NiMh so it was tricked by the board on the battery pack to believe it was charging NiMH. The charge seams to be working very well, not much heat and good capacity. Maybe need to make some wires /plugs for easy charge with RC charger without removing the battery:)
Will do some analysis with the NeatoControll, reverting.
glnc222
Robot Master
Posts: 5490
Joined: January 23rd, 2012, 8:19 pm
Location: The Villages, Florida
Contact:

Re: NeatoControl - program for diagnostic neato robots

Post by glnc222 »

You are lucky it was not damaged or even caught fire putting that on an external charger without a thermistor connection. External NiMh chargers may not work by temperature but by a small voltage drop when cells are full -- at least the individiual cell chargers. Temperature is used with enclosed packs where the NiMh heating would be a problem. NiMh continues to charge dissipating as heat when full; lithium just goes high resistance, which will drive a constant-current charger to maximum voltage, even too much for some Neato system board components. Doubtful the adapter in the packs simulate that small drop. Perhaps an over-voltage cut out in the packs operated. The external NiMh charger would not do the 2nd constant-voltage lithium charging phase either. There could be a defect in the Neato charging circuits. There have been defective docks. The data logging feature of Neato Control can capture instability in the dock voltage supply, in other threads.
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

Think the BMS on the battery pack protects for those issues, but can not know for sure. Just measured, charged with neatos own charger: here the result. Voltage a bit low i think?


WallSensorInMM=67
BatteryVoltageInmV=15369
LeftDropInMM=60
RightDropInMM=60
LeftMagSensor=-2
RightMagSensor=-2
UIButtonInmV=3340
VacuumCurrentInmA=0
ChargeVoltInmV=109
BatteryTemp0InC=23
BatteryTemp1InC=30
CurrentInmA=394
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

FuelPercent 87 this might be the key? How to get it charging to 100%?
glnc222
Robot Master
Posts: 5490
Joined: January 23rd, 2012, 8:19 pm
Location: The Villages, Florida
Contact:

Re: NeatoControl - program for diagnostic neato robots

Post by glnc222 »

Good specifications on that battery and low price (not many of those old machines using it anymore).
The higher temperature shown on one pack could be from the adapter signaling full.
The voltage is indeed low like the adapter tripped prematurely. My understanding is the max is 16.8v, 4.2v per cell four-series. Perhaps it falls some after charging voltage removed, not sure. Using BatteryType 3 lithium procedure might change that, has to be tested.
Also manually setting the Fuel Gauge back to zero could initiate another charging cycle where it might fill up, unknown. See the Neato command manual.
Charging cycle starts and stops quickly when system finds the battery already full.
There could be an imbalance in the pack cells where some cell is charged more than others causing a premature termination of charging -- those packs may not include a balancing function.
A volt meter could be applied to the individual cells to see if all the same.

It is Chinese so quality can be questioned -- though they mention using quality Japanese cells, Panasonic or someone, needed as only major makers equipped for high quality control required with lithium for purity required preventing fire hazard -- no off-brand cells usable.

Putting the battery on the RC charger with thermistor connection might check the adapter circuit independent of Neato -- if that charger has temperature control, check the manual.
You can also observe the progress of the battery voltage and temperature while charging in Neato Control, even use the data logging, not sure how to work it (I do not use Neato myself right now).
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

Is the temp reading a signal from the battery or something the neato is reading? Numbers stays about the same even if shut neato down and removed from the charging station. In fact room temp is closer to 30 so the 23 is wrong?
glnc222
Robot Master
Posts: 5490
Joined: January 23rd, 2012, 8:19 pm
Location: The Villages, Florida
Contact:

Re: NeatoControl - program for diagnostic neato robots

Post by glnc222 »

Each pack contains a thermistor, a passive resistance resistor whose resistance changes with temperature, this type lowering resistance as temperature rises. It is connected in series to a fixed resistor on the system board connected to the 5v power supply, yellow wires on the cable, one going to system ground same as the black battery wire. The junction voltage is connected to an analog input on the cpu, with software calibrating to read the temperature in centigrade. The thermistor is rated something like 10K ohms at 20C -- fully identified in the lithium ion battery thread. I am assuming the thermistor labeled "1" is for the high voltage side pack, which controls the charging procedure. Both thermistors are used for a safety shut down at around 60C for possible short circuits or fire in the battery compartment.
Charging terminates when temperature rises faster than 1C/minute as NiMh dissipates current as heat when full.
Lithium does not heat up. The adapter circuit simply bypasses the thermistor with a transistor controlled by a microcontroller for the adapter functions responding to voltage on the battery (simple DIY circuits for this are shown in the lithium battery threads, using a voltage comparator to control a transistor) -- lowering resistance to synthesize a temperature rise signal.
So in NiMh charger mode, the battery voltage rises as the battery fills and when full shows a temperature rise. The ambient temperature should not matter by using changes to identify full. The adapter synthesizes a rise when the maximum voltage is reached, 16.8v vs the 18.5 needed on NiMh to push in full charge.
With Neato set to NiMh charging perhaps this confuses the Fuel Gauge -- which is calibrated in software for the standard battery capacity, though when charging terminates it might automatically go to 100, not analyzed in detail by users here. With Neato set to Lithium charging, the Fuel Gauge might behave differently. It is based on measuring charge amounts (current x time) into and out of the battery, from periodic sampling of the voltage and current sensors (on Botvac a dedicated IC continually monitors).

After terminating charging on temperature rise, the system may allow the batteries to cool before commencing the topping-off trickle charge phase in NiMh charging.

You can create a temporary low temperature by putting the Neato in a refrigerator for a while and then allowing return to room temperature to see how it reads.

Lot of things to investigate I suppose. Never had this problem myself. Mainly helped with the DIY lithium batteries using SetConfig. Since temperature there does not control charging, a fixed 10K ohm resistor can be substituted in absence of a correct thermistor (they come in many different characteristics, temp vs resistance responses).

Not sure what can be of help.
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Re: NeatoControl - program for diagnostic neato robots

Post by vic7767 »

If those packs are similar in design to the Lithium Power packs then the Power Control board is designed to mimic NiMH pack responses to the Neato charging system and will not behave as a Lithium pack so the pack type must be changed back to NiMH, not Lithium.
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

Yes, its mimicking NiMH, and so far only charged it as a NiMH. Did not change anything in neato yet. Just trying to figure out why neato will not charge it full. Will check tonight also charging values with the NeatoControl and hope to find out something. The RC charger is a toolkit RC8 and seams to be able to charge them to specification without any kind of issues, and the run time is much better than ever with the original NiMH packs.
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

And a big thank also to glnc222 for your input and great information so far!
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

Hm interesting finding. It really stops charging very soon. Look like the board in the battery fights against the neato??

A few runs in the bedroom, before charging
Before Charge
BatteryVoltageInmV=15075
BatteryTemp0InC=24
BatteryTemp1InC=31
FuelPercent=66

Early charge, green light flashing
BatteryVoltageInmV=16415
ChargeVoltInmV=16637
BatteryTemp0InC=24
BatteryTemp1InC=28
FuelPercent=67
Charger_mAH=1838


And shortly after, maybe 10min, green light stop flashing
BatteryVoltageInmV=15691
ChargeVoltInmV=23657
BatteryTemp0InC=27
BatteryTemp1InC=31
FuelPercent=87
Charger_mAH=420

After 20min charge, still green light stop flashing
BatteryVoltageInmV=15678
ChargeVoltInmV=23673
BatteryTemp0InC=24
BatteryTemp1InC=30
FuelPercent=89
Charger_mAH=398

If i red this correctly, the battery pack stops receiving charge( safety feature) when neato increases the voltaage...? why so high 23+ volt!? The RC charger have a stable voltage so this does not happen.
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Re: NeatoControl - program for diagnostic neato robots

Post by vic7767 »

Check your battery packs and see if they are both showing the same amount of stored voltage.
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

After another 6 hours
Green led not flashing
BatteryVoltageInmV=15812
ChargeVoltInmV=23844
BatteryTemp0InC=22
BatteryTemp1InC=29
FuelPercent=97
Charger_mAH=0

vic7767 wrote:Check your battery packs and see if they are both showing the same amount of stored voltage.
Have done so both after rc charger charge and neato charge, both packs almost identical. But will double check again.
C-NUMB
Posts: 25
Joined: July 13th, 2021, 1:09 pm

Re: NeatoControl - program for diagnostic neato robots

Post by C-NUMB »

7,82 and 7,93 V, charged by Neato. bigger difference than remember. Next will do the RC charge as the battery is anyway loose.
Post Reply