Restoring a laptop battery by flashing the controller is one of the most effective ways to restore the capacity of a battery that has “died” due to a failure of the BMS chip. However, without special equipment - programmer - this process is impossible. Such devices allow you to read data from the chip, modify the firmware and write it back, resetting charge cycles or correcting calibration errors.

But not all programmers are equally useful: cheap Chinese clones can “kill” the battery completely, while professional solutions (like EZP2023 or TL866II Plus) require soldering iron skills and understanding of protocols I2C/SMBus. In this article, we will look at which devices are suitable for beginners and which ones are only for service centers, and we will also tell you how to avoid typical firmware errors that lead to irreversible damage to the controller or even fire of the battery.

What is a laptop battery programmer and how does it work?

The programmer is an electronic device that interacts with the battery management chip (Battery Management System, BMS) via standard interfaces. The main task is to read and write data into the non-volatile memory of the chip, where the following is stored:

  • 🔋 Current capacity (in mAh) and history of charge/discharge cycles;
  • 📊 Calibration data (cell voltage, temperature thresholds);
  • 🔧 Error flags (for example, “discharged below a critical level”);
  • 🔒 Unique identifiers (to protect against counterfeiting).

Most modern laptops (from Lenovo to Dell) use chip-based controllers TI bq20z, Sanyo/Maxim or NXPthat communicate using a protocol SMBus (variety I2C). The programmer is connected to the contacts SDA And SCL on the battery board and then via software (e.g. Battery EEPROM Works) allows you to edit data.

It is important to understand: the firmware does not restore physically degraded cells! It only “deceives” the system by resetting cycle counters or adjusting capacity data. If the battery is swollen or has lost more than 50% of its capacity, the programmer is powerless here.

📊 What brand of laptop do you have?
  • Lenovo
  • HP
  • Dell
  • Asus
  • Acer
  • Apple
  • Other

Top 5 programmers for battery firmware: comparison of capabilities

The choice of programmer depends on your budget, skills and battery models you plan to work with. Below is a comparison of popular solutions from budget to professional:

Model Chip support Interfaces Difficulty to use Price (2026)
TL866II Plus 24Cxx, 25Cxx, 93Cxx, TI bq20z I2C, SPI, MICROWIRE Medium (requires a soldering iron) ~15 000 ₽
EZP2023 24Cxx, 25Cxx, Sanyo, Maxim I2C, SPI, UART High (for experienced) ~20 000 ₽
CH341A 24Cxx, 25Cxx (limited) I2C, SPI Low (but many fakes) ~800 ₽
USBasp Only AVR (not for BMS) ISP Not suitable for battery ~500 ₽
Battery Medic TI bq20z, Sanyo (specialized) SMBus Low (for beginners) ~5 000 ₽

For beginners the best choice is Battery Medic or CH341A (subject to purchasing the original version and not a fake from AliExpress). Professionals prefer TL866II Plus for wide chip support and stability. But USBasp and similar devices for firmware AVR-controllers are not suitable - they do not work with memory I2C in batteries.

⚠️ Attention: Cheap clones CH341A often burn out when connected to a battery due to lack of voltage protection. Check reviews of a specific seller before purchasing!

Step-by-step instructions: how to flash a laptop battery

The firmware process can be divided into 4 stages: preparation, connection, reading/editing data and writing. Let's look at each step using the example of a programmer TL866II Plus and batteries from HP Pavilion with chip TI bq20z80.

Determine the model of the chip on the battery board (look for the marking bq20z, MAX17047 etc.)

Download the firmware for your model (for example, from the forum BadCaps)

Install drivers for the programmer (for TL866MiniPro)

Prepare a soldering iron with a thin tip (0.5 mm) and solder

Disconnect the battery from the laptop and disassemble the case (carefully so as not to damage the thermal sensors!)

-->

Step 1: Connecting the programmer

Find the contacts on the battery board SDA (data) and SCL (clocks) - These are usually labeled or located next to the BMS chip. Solder the wires from the programmer to them, observing the polarity. For TL866II Plus use an adapter I2C:


TL866II Plus → Батарея

GND → GND (минус)

VCC (3.3V)→ VCC (плюс, если есть)

SDA → SDA

SCL → SCL

Step 2: Read Data

Launch the software MiniPro, select the chip type (for example, 24C02 for bq20z80) and run the command Read. Save the dump to a file .bin. If reading fails, check:

  • 🔌 Soldering quality (contact must be reliable);
  • 🔋 Battery voltage (if below 2.5V, the chip may not respond);
  • 🔧 Correct choice of chip in the program (incorrect memory type will lead to an error).

Step 3: Editing the Firmware

Open the dump in Battery EEPROM Works or HxD. Main parameters for adjustment:

  • 📉 Design Capacity — factory capacity (do not change if you are not sure!);
  • 🔄 Cycle Count — cycle counter (can be reset to zero);
  • 🔋 Full Charge Capacity — current capacity (set the real value after calibration).

Step 4: Record and Check

Write the modified dump back to the chip (Write in MiniPro). After flashing:

  1. Assemble the battery and connect to the laptop;
  2. Discharge completely, then charge to 100% (calibration);
  3. Check the capacity in HWiNFO or BatteryBar.
💡

If after the firmware the laptop does not see the battery, try disconnecting and reconnecting it with the power off. Sometimes resetting the BIOS helps (remove the CMOS battery for 10 seconds).

Common mistakes and how to avoid them

Even experienced craftsmen make mistakes that lead to permanent damage to the controller or even a short circuit in the battery. Here are the most common mistakes:

⚠️ Attention: Never flash a battery connected to a laptop! This may cause a conflict between the BMS and the power system, resulting in overheating or charging failure.
  • Incorrect voltage: Connecting the programmer with 5V to a chip designed for 3.3V, will burn the microcircuit. Always check the datasheet for the chip!
  • 🔥 Short circuit when soldering: Touching the soldering iron tip to adjacent contacts (for example, SDA And VCC) can damage the board. Use a magnifying glass and fine solder.
  • 📱 Incompatible firmware: Recording a battery dump Dell into the chip from Lenovo will lead to calibration errors. Always check the models!
  • 🕒 Interrupting the process: If you turn off the programmer while recording, the chip may become blocked. Use a UPS or laptop with a full charge.

Another common problem is a “dead” chip after unsuccessful firmware. In 80% of cases it can be revived by closing the contacts WP (Write Protect) to ground before recording. If this does not help, the BMS chip will need to be replaced - and this is a task for the service center.

What should I do if the battery does not turn on after flashing the firmware?

If the battery is not detected after flashing the firmware, try:

1. **Reset BMS**: Disconnect all wires, short-circuit the contacts B- And P- for 10 seconds (only for experienced ones!).

2. **Check the power supply of the chip**: Measure the voltage on the VCC - should be 3.0–3.3V.

3. **Reflash with a different software version**: Sometimes a dump from a similar battery model helps.

4. **Replace BMS chip**: If nothing works, the chip may have failed. In this case, it is easier to buy a new battery.

Is it possible to flash a battery without a programmer?

In theory, yes, but in practice it is extremely risky and limited to a few scenarios:

  • 🔌 Via laptop (for some models): Some batteries Lenovo And Dell allow you to reset the cycle counter through the BIOS engineering menu (combination Fn + Esc or Ctrl + Alt + B). However, this only works if the chip is not locked.
  • 📱 Using Arduino: You can assemble a homemade programmer based on Arduino Nano and libraries Wire.h, but this requires knowledge in programming and electronics.
  • 🔋 Hard reset: Disabling the battery for a day sometimes clears BMS errors, but this does not affect the capacity.

Without a programmer you will not be able to:

  • Change the factory settings of the capacity;
  • Remove the "Replace Battery" flag in HP or Acer;
  • Recover data if the chip is damaged.

If your goal is simply to reset the cycle counter, try utilities like Battery Reset (for Asus) or Lenovo Battery Gauge Reset. But remember: this is a temporary solution that will not return the actual capacity.

💡

Without a programmer, you can only reset the BMS software errors, but not correct the physical degradation of the cells or reflash the chip from scratch.

Is it worth flashing the battery yourself: pros and cons

Flashing your battery at home can save you money, but it comes with risks. Let's weigh the pros and cons:

Pros Cons
✅ Savings (firmware in the service costs 3,000–8,000 ₽) ❌ Risk of damaging the battery or laptop
✅ Ability to “reanimate” an old battery ❌ Requires soldering and electronics skills
✅ Flexibility (you can experiment with settings) ❌ Laptop warranty will be void
✅ Useful experience for further repairs ❌ The firmware will not restore swollen or severely degraded cells

If you're a beginner, start with a cheap battery from an old laptop (e.g. Sony Vaio or Acer Aspire) to practice. For expensive models (like MacBook or Dell XPS) it is better to contact the service - a mistake can cost the price of a new battery.

Also keep in mind that after flashing the battery can:

  • 🔥 Overheat (if temperature limits are reset);
  • 📉 Discharge quickly (if the cell capacity does not match the data in the chip);
  • 🚫 Refuse to charge (if the cell type is incorrect).

Where to buy a programmer and components

When buying a programmer, it is important to avoid counterfeits - especially when it comes to CH341A And TL866. Here are verified sources:

  • 🛒 Official dealers:
    • AutoElectric.ru (for TL866II Plus);
    • ChipDip (original EZP2023);
  • 🌍 Foreign sites:
    • AliExpress (only from sellers with a 98%+ rating and reviews in Russian);
    • eBay (look for lots marked “100% Original”);
  • 🔧 Accessories:
    • Wires DuPont (to connect to the battery);
    • Flux RMA-223 (for soldering);
    • Multimeter UNI-T UT33D (to check voltage).

The average cost of a kit for a beginner (programmer + wires + soldering iron) is about 10,000 rubles. If you plan to flash batteries regularly, it is better to immediately take TL866II Plus - it will pay off after 3-4 successful restorations.

⚠️ Attention: On AliExpress often sell "improved" versions CH341A with the inscription "24/25 Series". These devices don't actually support I2C correctly and may damage the chip. Check for the presence of the original chip CH341 on the board!

FAQ: Frequently asked questions about laptop battery firmware

❓ Is it possible to flash the battery from a MacBook?

Technically yes, but it is extremely difficult. B MacBook proprietary chips are used TI bq20z451 with write protection. You will need specialized software (for example, CoconutBattery to reset cycles) and a programmer with support SMBus (For example, Bus Pirate). The risk of the battery becoming “battered” is very high - it is better to contact a service center.

❓ How to find out the model of the BMS chip in my battery?

Disassemble the battery case and find the largest chip (usually 8-16 legs). It will have markings like bq20z80, MAX17047 or S-8261. If the inscriptions are erased, look for a datasheet by laptop model on sites like BatteryUniversity or BadCaps.

❓ What to do if the capacity has not been restored after the firmware?

This means that the battery cells have physically degraded. The firmware does not restore the chemical composition of lithium-ion cells! In this case, only replacing the cells will help (for example, with 18650 from Samsung or Panasonic) followed by BMS calibration.

❓ Which batteries cannot be flashed?

You should not try to flash:

  • 🔥 Swollen batteries (risk of explosion!);
  • 📱 Batteries with damaged contacts or traces of oxidation;
  • 🔋 Batteries over 5 years old (cells are usually completely degraded);
  • 🚫 Batteries with proprietary chips (e.g. Microsoft Surface).

❓ How to check that the firmware was successful?

After flashing:

  1. Install the battery into the laptop and fully charge/discharge (calibration);
  2. Check the capacity in AIDA64 or HWiNFO;
  3. Make sure that the laptop displays the charge percentage correctly (without jumps);
  4. Measure the voltage at the terminals with a multimeter (should be ~10.8V for a 3S battery).

If the capacity has not changed, but the errors remain, the firmware did not help.