Laptop battery reset bq20z40

How to Reset, Reprogram and Calibrate BQ20ZXX family chips after battery cells replacement

Post Date: June 13, 2021

This tutorial is about full reprogramming and recalibrating BQ20ZXX family chips after battery recelling.

Before I proceed I would like to mention that you DON’T need to do it if you are not planning to recell (replacing the cells) the battery.

The BQ20ZXX family is impedance tracking gauges that rely on certain parameters in order to calculate FCC properly. The purpose of this tutorial is to show you how this complex system works. It should also be noted that this procedure is for advanced users and it requires an additional adapter EV2300 from Texas Instruments that is used for the chip reprogramming.



As always we need to search for the core of the problem. This battery model is very popular and used in many HP laptops, the model is MU06. In this case, after connecting the battery to NLBA we can see that all 3 cell groups are at 0 volts, Cycle Count is 631, so the cells are completely dead and must be replaced. In addition, the chip is SEALED meaning that it’s password-protected so no actions can be done until the chip is UNSEALED. And there is also a PF condition /locked chip/  indicated by PFStatus = 4031.  We can find this information by pressing the Read Chip Info button.





So the cells have already been replaced with new so now we need to proceed with UNSEALING and clearing PF.

Here we will be able to see the great NLBA capabilities again! We will UNSEAL the chip /hack the password/ with only 1 click. We go to the reset tab, choose the BQ20ZXX family chip from the menu. Read chip info again just to make sure that we still have the same conditions and yes we do. Press UNSEAL/BOOT button after a few seconds we will see them in the log a massage

Operation Status = Unsealed, FAS

PF Status = 0000

So the chip is now UNSEALED /password removed/ and is in FAS / Full Access Mode/ meaning that now we will be allowed to read and edit the DataFlash (EEPROM).

Also PF Status has changed to 0000 meaning that the PF was also automatically cleared. In case it was not cleared you will need to press the CLEAR CHIP ERRORS button.

Now if we go back and read the battery parameters we can see that the charging voltage and charging current have appeared again and the Output Led of NLBA is on so there is the voltage at the battery connector.







As I mentioned earlier in order to reprogram the chip you will need an EV2300 adapter and BqEvsw software. The software is free and can be downloaded from the TI website, the adapter costs around 100 euro.

NOTE: There is an option to make bqEVSW working through NLBA device, contact the admin if you really need it.

It connects to the battery the same way like NLBA, ground, clock & data lines required.



Using EV2300 to read laptop battery parameters


So we connect the EV2300 adapter to the battery and we start the software. It auto-detects the chip and takes us to the initial screen. On the start screen, we press the REFRESH button and it will read all battery data similar to NLBA.


Next, we need to read the DataFlash so first press DATAFLASH button on the left and then press READ ALL. After a few seconds, we can see the contents of the DataFlash are displayed.

There are many settings that can be adjusted but we will cover only the most important ones that we need.


Press the SBS Configuration tab

Here we can change parameters.

Design Capacity – The original was 4400mah but I’m using 2400mah cells so in 3s 2p configuration the new Design Capacity will be 4800mah.


Also, reset Cycle Count to 0


Change the Manufacture Date


Remaining Capacity Alarm – Should be set to 10% of the Design Capacity so in this case 480mah.



The next step is OPTIONAL.

Here we can change the Charging Current and Charging Voltage value.


I always like to use a charging current that is about half of the design capacity in this case I will reduce it to 2500mah. The Original was 3080mah.

You can also change the charging voltage to increase cells life.

Example: If you change it to 12300mv the cells will charge to 4.1v instead of 4.2v. So if your goal is for the battery to last longer during the years you can do this.

So by undercharging cells to 4.1v, you can increase their life by 20-30%.

But in this case, I will leave it to 12600mv.



Next, go to the Gas Gauging tab.


Here we will change all the Qmax Values to be the same as Design Capacity 4800mah. Also, change Update Status to 00 and reset the Delta Voltage to 1mv.

Now we are almost done with reprograming the chip so press write all button.



The next step is to update the Chemistry information.

Press BqEASY button in the left corner.

Press Yes Enable Chemistry Selection.

In 90% of the cases, you will be fine if you select chemistry id 100, this is the default for 18650 LiCo02 cells. But just to be sure you can check the manufacturer’s datasheet for your cells and choose the right chemistry id from the list.

After the proper chemistry id has been chosen press Update Fuel Gauge Dataflash. The process takes a few seconds to complete.

This is was the last step in reprograming the chip.






First, let’s move the battery back to NLBA so we can check the results so far.

We can see that the programing was successful.


Design Capacity has changed

Manufacturer Date has changed

Remaining Cap. Alarm has changed

Charging Current has changed

FCC has increased but it’s still not what we want because the chip is not calibrated yet.

Max Error is 100% this is what we want because now the chip is learning mode.

But now the NLBA output led is off and you can also see that there is no current flowing from the battery. This is ok. After the chip reprograming the charge and discharge MOSFETs are not active so we need to force them to activate.



We will do this by going to the Reset tab/ SMBus Commands and write the following command write word 0006 to register 46.



After this NLBA output led will be on meaning the MOSFETs have been successfully activated. And we can confirm this by seeing the small current consumption from the output led of NLBA.



The next step will be to discharge the battery to around 3.0v per cell. If you have the option in NLBA to ignore SOC and discharge below %0 you can use it. I don’t have it so I just use discharge until  0%.

The discharge current is your choice but I don’t recommend using more than 2 amps for a 3s 2p battery.



After the discharge is finished we need to do something very important. We need to start the IMPEDANCE TRACKING ALGORITHM.

This is used by the chip for proper self-calibration and accurate SOC readings.

We will do this by  going to the Reset/ SMBus commands tab

Enter the following command  write word 0021 to register 00

After the command has been sent, all the hard work is finished!



After we have enabled the impedance tracking the next step will be to fully charge the battery to 100% and let it REST FOR 2 HOURS! It’s extremely important to wait at least 2 hours after the battery is fully charged!

So after the full charge and 2 hours rest, we check the results.

We can see that FCC has magically increased and it’s very close to what we expect. That’s perfect.

Max Error value has changed to 3%.  This means that the first learning cycle was successful! If FCC has not increased and the max error value is still at 100% then you need to wait at least 1 more hour!



The next step would be to fully discharge the battery to 0% and let it rest for 5 hours!

So we check the results after the battery has been fully discharged and rested for 5 hours.

We can see that FCC has been adjusted slightly one last time and the max error value is 1%.


Success! Now the chip is fully calibrated and the battery is ready for normal usage. The SOC readings will be extremely accurate just like from the factory!



Let’s do one final check with BQEvsw just to make sure everything is ok.

We can see that QMAX values have been updated properly, update status has also changed properly.

The delta voltage registered is only 8mv, this result can only be achieved with good quality brand cells!



In the end, you might think that NLBA did very little in the whole process but you are wrong. It did the most important part of the process, UNSEALING the chip.  Because if you remember what I told you earlier non of these operations would be possible if the chip was SEALED. Great job NLBA team!

NOTE: As it was mentioned at the beginning, if EV2300 is missing you can contact the admin to offer a solution to use bqEVSW with the NLBA device.

You might also ask why do you need additional hardware and software to do all these settings. The answer is very simple. NLBA is the newest product on the laptop battery repair market so it will take time for the developers to implement different features. But with the speed that it’s moving forward, it’s already more powerful than much other software that is on the market for many years already and I’m confident that soon we will be able to do all these settings with just a few clicks. Keep up the good job guys.

by Atanas Genov

Leave a Reply

Your email address will not be published. Required fields are marked *