How to Charge a Converted Lithium Ion Screwdriver Battery

Due to the rapid development of portable devices of modern household appliances, Ni-Cd and Ni-NiMh rechargeable batteries are widely used nowadays, the service life of which greatly depends on the correct operation. In this regard, there is a need for a device that has the ability to measure the main technical characteristics of the batteries in use, such as capacity and internal resistance, as well as provide the batteries with an optimal charge mode.

The author of the article purchased a Canon A710IS camera that uses two AA batteries as a power source. Almost immediately, it turned out that the camera can only function normally with expensive alkaline batteries costing from 5 UAH. (0.7) With cheaper batteries, he either refused to turn on, or took only a few shots, and then turned off. In this regard, almost immediately, two GP batteries with a capacity of 2700mA / h were purchased. With these GP batteries, the camera could function normally for about a month, while it was possible to take pictures and videos of approximately 2GB.

After a year of operation, the number of shots that the camera could take after the batteries were fully charged, the onset will dramatically decrease. In addition, it was noticed that the self-discharge of batteries increased.

After a year and a half of operation, the camera became almost impossible to use. after a full charge of the batteries, it was possible to take no more than 20-30 pictures (or 6-7 minutes of video), while if the camera was not used for more than a week, it usually even did not turn on. And this despite the fact that there were no more than 30 real charge cycles, with the indicated producer resource up to 1000

Since the batteries were charged with a charger of Chinese origin, and charge-discharge cycles were not performed to prevent sulfation, it was concluded that a possible fault in the premature failure of the batteries was an incorrect charging mode and the absence of discharge-charge training cycles.

When trying to restore the batteries by the method of discharge-charge cycles, it turned out that the capacity of the batteries was a little more than 1000 mA / h and they could not be restored (the capacity was checked by discharging fully charged batteries to an incandescent bulb, and it was approximately determined by the time of the lamp’s luminescence and current consumption capacity). At the same time, checking the capacity of 5-year-old Energizer 2300 mA / h batteries showed a capacity of about 1400 mA / h, but in the camera they showed results similar to GP batteries, with only one positive difference. self-discharge was smaller. the camera turned on after two weeks, but could take no more than 10 pictures.

After all the experiments, it was decided to purchase new batteries and assemble a charger that would meet the following requirements:
– It was very simple in circuit design and did not contain expensive components;
– had the opportunity to accelerate battery charging and conduct training discharge-charge cycles;
– when charging and discharging, the consumed / given capacity in mA / h was calculated. with direct current measurement and at the end of the charge, the internal resistance of the battery was determined;
– the end of charging was determined by the ∆U method and there was a control of the battery temperature;
– it was possible to control the charging process on a computer to visualize it, as well as evaluate the decision to end the charge;

For a long time, a search was conducted on the Internet and various magazines for a suitable scheme, but they were either too uninformative [1], or too complex [2], or did not provide the required technical characteristics.

In the end, the basis of the charger (hereinafter referred to as the charger) was taken from [1], adapted for charging two of the same type Ni-Cd or Ni-Mg batteries. In addition, a three-digit LED indicator was added and new software was written. The charger circuit is shown in Fig. 1.

Fig. 1

A feature of the circuit is the constant measurement of current during the charge-discharge process, which reduced the requirement for its stability and allowed for more accurate calculation of capacitance.

Two power sources are required to power the device. The first one connected to X2-X4 should have a characteristic close to the current source, with an open-circuit voltage of about 4.6 V, and a current corresponding to the desired charge current.

The second, connected to X3-X4, must be a voltage source, with a voltage of 6 11V and a current of at least 50mA to power directly the control and indication circuit. If the voltage of this source is at least 8V, then instead of the expensive stabilizer with a small voltage drop LM2940-5 (DA2), you can use the common stabilizer L7805 (KREN5A).

In practice, a charger was taken from an unknown phone on which DC 5.0V / 740mA was written. In fact, at idle it produced 7V, and the charge current, when connected to two batteries connected in series, amounted to 580mA. This charger (shown as ZU in the diagram) has been redone as follows. The 4.7uF 400V capacitor has been replaced by 10uF 400V, for safety, a 0.25A fuse has been added instead of the resistor used for this purpose, a small radiator is attached to the 13003 high-voltage transistor in the TO-126 package (like the domestic KT815), and, most importantly, on the transformer an additional winding of 15 turns of wire with a diameter of 0.18 mm (in diagram W2) was winded in series with the existing one, after which a VD10 diode of type 1N5819 and a capacitor C2 220 uF 25V were soldered by hinged installation. When winding the additional winding W2, it is necessary that the winding direction be the same as in the existing W1. The voltage across the windings must be added up. The VD10 diode and capacitor C2 were glued directly with a hot glue to the transformer.

The whole alteration took about an hour and a half. As a result, even at the beginning of the charge of completely discharged new batteries, the voltage at terminal X3 did not drop below 7V, while the charge current was 640 mA. At the end of the charge, the current decreased to 560 mA. This made it possible to charge fully discharged 2700mAh batteries in 5 hours. If you need to increase the charge current, you should use a more powerful flyback pulsed power supply, redone in the same way, or use a separate power supply (more preferably) as a current source (X2-X4).

The control circuit is based on the Atmel. Atmega 8A common microcontroller. The controller is tuned to an internal generator with a frequency of 1 MHz. The pins PC0 and PC1 of the controller are configured as ADC inputs. Resistors R8, R6 and R7, R5 form dividers for matching the voltage on the batteries with an internal reference voltage source for the ADC of the controller. 2.56V. Thanks to the dividers, the maximum measured voltage was 2.56 / 3 (31.5) = 3.84V. Zener diodes VD5, VD6 are used to limit the voltage at the inputs at the level of 4.5 V, capacitors C11, C12. to filter the measured voltage.

By measuring the voltage before and after resistor R13, it became possible to measure the charge current, and the requirement for stability of the charge current decreased. When calculating the capacity, the device measures the charge current in mA every second and sums it up. The display shows the value of the sum divided by 3600, i.e. consumed (given) capacity in mA / h. Resistor R13 consists of three 1Ω 0.25W resistors connected in parallel.

The HL2 uses a three-digit LED indicator with a common KOOHI E30361LC8W cathode. When checking, it turned out that even at a current of 2 mA per segment, the brightness of the glow was quite intense. This made it possible to do without additional transistors by connecting the cathodes directly to the controller ports, since the total current did not exceed the 40mA allowed per datasheet per port. As it turned out later, without VD7,8,9 diodes, the indicator also works normally. It is possible to use any similar indicator. With insufficient luminescence, it is possible to reduce the quenching resistors to 560 Ohm.

L1, C3, C4 are used to additionally filter the power supply of the controller. Connector X1 is designed to connect the charger to the computer. Parts R1, R2, R25, R26, VD1, VD2 are used to protect the controller from incorrect connection to an external device (computer). If such a connection is not planned, their use is not necessary.

Button SA1 is used to select the operating mode of the memory when it is turned on. The VD4 LED serves for additional indication of the current operating mode of the memory. Its presence allows you to use the memory without the HL2 indicator (if there is no need for additional information about the charging process). The PB6 port is used programmatically and as an input, for polling a button (when the LED is off), and as an output for indicating the operating mode.

The DS18B20 sensor is used to measure battery temperature. It should be placed as close to the batteries as possible. In the author’s version, the sensor was fixed between the batteries directly in the holder, the hemisphere to the batteries. In its absence, the device also works, but accordingly, the temperature is not displayed.

Elements VT1, VT2, VT3, R11, R12, R9, R10 form the key of the charging current. As a transistor VT1, it is possible to use any low-power n-p-n transistor (for example, KT315B), while it is necessary to increase the resistor R9 to 4.7 kOhm. VT2 can be any similar with a current transfer coefficient of at least 50.

VT4, R14, R15, R16 form a bit key. When the VT4 transistor is turned on, the battery discharge current flows through the resistors R13, R16 and is limited by them at a level of about 410mA. Since the discharge current flows through the resistor R13, it is possible to measure the discharge current and calculate the capacitance given by the battery, there is no need for discharge current sources. As a VT4 transistor, it is possible to use a composite n-p-n transistor, for example KT972, KT827, while it is necessary to increase the resistance R14 to 1.5 kOhm.

XS1 connector is intended for in-circuit programming of the controller.

With the partial use of SMD elements, the board size was 69x50mm. The LED indicator was fixed directly in the memory housing with hot-melt adhesive, and connected to the board using MGTF wires. The case for the entire device was taken from the power supply unit SEGA prefix size 80x55x50mm. In the case, a groove was cut for the battery holder, which was glued with hot-melt adhesive on the inside. The appearance of the board is shown in photo 1, the layout of the components inside the case in photo 2, the appearance of the entire memory in photo3.

How to Charge a Converted Lithium Ion Screwdriver Battery

Photo 1

Photo 2

Photo 3

To connect the circuit to a computer, you need an adapter (data cable) assembled on the MAX232 or its equivalent. The author’s circuit was assembled according to Fig. 2. The terminal Tx of the adapter must be connected to the terminal Rx of the device, and the Rx of the adapter, respectively, with the Tx of the device.

Fig. 2

When developing a program for the device, the algorithm described in [3] was used.

Video: How to Charge a Converted Lithium Ion Screwdriver Battery

The algorithm of the charger consists of several phases:
1. Determining the presence of a battery.
2. The choice of operating mode.
3. Discharge (if selected)
4. Pre-charge (pre-charge).
5. Fast charge.
6. Top-off charge.
7. Maintenance charge.

In the phase of determining the presence of the battery, the charge current supply key VT2 is turned on, and the voltage at the terminals of the holder is measured. If the voltage is higher than 3.3V, then there are no batteries. At the same time, dashes are displayed on the indicator "-". A decrease in voltage below 3.3V is regarded as the appearance of batteries, while the HL2 indicator turns off, and the VD4 LED flashes at a frequency of five times per second.

If within 25 seconds. SA1 button will not be pressed, the device “remembers” its last mode stored in EEPROM and starts to work it out. Those. if there was a power failure, the device will continue to charge the batteries if the last mode was charging, or will go into the drip mode of charging if the charging was over. The only "but." information about the charge (discharge) capacity will be lost, the memory will start counting again. This prevents recharging of fully charged batteries in the event of a power failure.

If the button SA1 during the first 25 seconds. it will still be pressed, the battery voltage is first displayed on the HL2 indicator (the total voltage is divided by two, that is, the average voltage for one battery is displayed), then "ZR1" will flash. charge mode without a discharge pulse. If you press the button again, the "ЗР2" mode will be displayed. charge mode with a discharge pulse. The next time you press “TIME”. discharge mode with subsequent charge in the "ЗР2" mode. Further. in a circle, while the VD4 LED flashes in accordance with the selected mode (see below). The choice of mode is given 10 seconds. since the last button click.

If the discharge mode has been selected, the batteries are initially discharged to a voltage of less than 0.8V per battery. At the same time, the following information is displayed on the indicator in a cycle: “TIME” (mode), “U”, “voltage per battery” (in volts), “A”, “discharge current” (in amperes), “AcH”, “ discharge capacity "(in ampere-hours). The VD4 LED flashes at a frequency of two times per second. If the discharge lasts more than nine hours, “ErH” is displayed. time error. After discharge, the charger always goes into the fast charge mode "ЗР2".

The fast charge mode (both SR1 and SR2) is always preceded by a precharge phase. In this case, the charge current is supplied for 300ms., Followed by a pause of 700ms. Those. the average current is 30% of the measured current at the time of supply. At the same time, the following information is displayed on the indicator: "NZR" (initial charge mode), "U", "voltage per battery", "A", "current in amperes" (average current), "t", "temperature" ( in the city of Celsius). The last two values ​​are not displayed if the sensor is not connected, or the measured temperature is less than 1 ° C. The VD4 LED flashes at a rate of once every two seconds with short flashes. The precharge phase lasts at least 1 min. The main condition for switching to the main charge mode is to increase the voltage on the batteries by more than 1V per battery. If within 30 min. the batteries cannot be “rocked”, the “ErU” error is displayed. voltage error.

The fast charging modes ZR1 and ZR2 are as follows. Charging current is turned on. Once a second, the charging current is turned off and a short pause of 5ms is made. to stabilize. Further for 16ms. six measurements of the voltage across the batteries are made in a row, after which the voltage is averaged. If the mode ЗР1 is selected, then after measurements the charging current is switched on again. If the SR2 mode is selected, then after the measurements, the VT4 transistor turns on, and the discharge current flows through the batteries for 5ms, after which VT4 turns off and VT1, VT2, VT3 turn on again. the charging current starts to flow again.

As an advantage of the ZR1 method, they call the best alignment of the concentration of active substances throughout the volume, the less likely the formation of large crystalline formations on the electrodes and their passivation. An additional advantage of this method is that the voltage measurement occurs without the flow of the charging current, the influence of the contact resistance and the internal resistance of the batteries on the measurement accuracy is practically eliminated. The discharge pulse mode (ZR2) is called FLEX negative pulse charging or Reflex Charging. The advantage of this method is the lower temperature of the battery during charging and the ability to eliminate large crystalline formations on the electrodes (causing the effect of "memory").

In the process of charging, the following information is displayed on the HL2 indicator in a cycle: “ЗР1” (or “ЗР2”, if ЗР2 mode), “U”, “voltage per battery”, “А”, “current in amperes”, “AcH” , “Charge capacity”, “t”, “temperature”, “dt”, “temperature increment”. The last four values ​​are not displayed if the DS18B20 temperature sensor is missing. In ZR1 mode, the VD4 LED blinks once per second at equal intervals of pause and backlight. In ЗР2 mode. also once a second, but with a long pause and short exposure.

After 15 minutes after the start of the fast charge process, the memory remembers the initial temperature of the batteries. Further, the device shows the parameter dt. temperature increase from the beginning of the charge. The initial temperature is remembered after 15 minutes. in order to reduce the effect of heating from the power supply, after turning it on to the full charge current. An increase in the dt parameter to 15 ° C is one of the conditions for the end of charge. The fact is that at the end of the charge, the energy transmitted by the charger ceases to be absorbed by the batteries, and almost completely goes into heat. This causes a violation of the heat balance, and the temperature begins to rise to a certain new value, at which the energy received by the batteries from the charger does not become equal to the energy given by the batteries to the environment. The energy given by the batteries to the environment, to a first approximation, depends on the geometry of the batteries (which has not changed since the beginning of the charge), and the temperature difference between the batteries and the environment. Thus, for each charge current, there will be its own, fairly constant value of the temperature increment at the end of the charge. It is an increment, not a specific temperature value. It was experimentally determined that for a charge current of 600 mA and AA battery format, the temperature increment at the end of the charge is 11 13 ° C. Since this method was used by the author as an additional one, the increment value was chosen with a margin. 15 ° C. In practice, the end of charge by dt is rather rare, as a rule, with old high-capacity batteries.

The main criterion for determining the end of charging is the reduction or constancy of voltage in the 10-minute interval, i.e. dV £ 0. An array of ten cells is organized in the memory of the memory. The charger measures voltage every second and sums it up with the previous values. Every 60 sec. averaging is performed, i.e. the received amount is divided by 60, then the array is shifted, and the received value is written into the empty cell, while the totalizer is reset to zero. Thus, voltage values ​​are always available for the last ten minutes, with a minute interval. After this, a check is carried out for dV £ 0, i.e. all previous voltage values ​​must be greater than or equal to the last Ui³U10. However, after testing the device had to slightly supplement the condition. The fact is that the ADC is discrete, and in this device it has 1024 steps, relative to the reference voltage, 2.56V. Given the resistive dividers, the step of the step is about 3.7 mV. Thus, even if the voltage on the battery does not increase, but is in the middle of the step, the ADC generates a “floating” voltage by the value of the step. Due to multiple averaging (360 measurements are averaged per minute), the real voltage fluctuation in the array at a constant battery voltage was 2 mV. This delayed the moment of determining the end of charging, which often led to the end of charging under the condition of exceeding the temperature dt. In this regard, the condition was somewhat relaxed. out of nine checks of conditions, 5 had to strictly comply with condition Ui³U10, and four could deviate from it by no more than 2mV, i.e. if ui10 then (U10– Ui) £ 2mV. After this change, repeated analysis of the charging curves showed the stability of the operation of the memory.

During the fast charging of ЗР1 and ЗР2, the following accidents are possible: with a charging time of more than 9 hours. error in time “ErH”, when transferring to the battery more than 3800mA / h. error in capacity. ErA, if after detecting the end of charge the voltage on two batteries is less than 2.5V. error in voltage “ErU”. In error mode, the VD4 LED flashes five times per second.

After detecting the end of charging (dV or dt), or if the batteries are heated to a critical temperature of 50 ° C during charging, the charger switches to recharging mode. This mode lasts 20min. and serves to equalize the charge of the batteries in the battery. If the battery temperature is more than 40 ° С, the recharge current is 5%, if less than 40 ° С. 20% of the charging source current. The magnitude of the recharge current is regulated by the pulse method, as well as in the precharge mode.

In the process of recharging, information similar to the main charge mode is displayed in the HL2 indicator in a cycle, only the mode is indicated as "dZR", and information on temperature excess "dt" is not displayed. The VD4 LED flashes at a rate of once every two seconds with long flashes.

After the end of the charge mode, the charger switches to the maintenance dropping charge mode of 0.5% current. In this case, once, immediately after the end of the charge, an approximate calculation of the internal resistance of the batteries is performed, based on measuring the voltage of the batteries without load, as well as under load with discharge resistance, according to the formula Rvn= (Eemf5.97) / Unaked–5.97, where 5.97 is the load resistance (0.335.10.54 (transistor resistance)). The following information is displayed on the indicator: “OK”; "DU". if it was triggered by the method dV £ 0, or "dt". if it was triggered by the condition of exceeding the temperature dt; "U"; “Voltage per battery at the end of the charge”; "EZ"; “Charge capacity"; "E-P" (if there was a discharge mode); "Discharge capacity" (if there was a discharge mode); "RВН"; “Internal resistance at the end of a charge” (in Ohms). The VD4 LED is constantly on. The charge process is over.

To visualize the process, an application was created in the free graphical programming environment Hi-Asm ( There are enough examples on the author’s website Hi-Asm and on the Internet, the author of this article took only four evenings to create a memory application without any programming skills in languages ​​of this level. To start the entire complex, you must first connect the adapter cable to the memory and COM1 port of the computer, run the CHARGER.exe application, then install the batteries in the memory and apply power. After indicating the voltage on the display, select the desired charging mode: SR1, SR2 or ONE using the SA1 button. After the start of the corresponding mode, you need to click the “CYCLE” button in the CHARGER application, as a result, graphs of changes in temperature and voltage of the batteries during charging will begin to be built. After pressing the “CYCLE” button, the application sends a request to the memory once a minute in the form of code 0x0F. In response, the memory sends a packet of eight bytes: four bytes of battery voltage in mV (without a decimal point), then three bytes of temperature (the first two integers, then tenths without a decimal point), at the end is CR (13). All data is sent in ACS code. When the charge process is finished, the charger transmits zeros in all the data, as a result a window appears with the inscription "The charge is finished."

For example, graphs of the battery charge GP 2700mA / h (age 1.5 years). Fig. 3, DURACEL 2650mA / h (new). Fig. 4., of unknown origin with the inscription 700mA / h from the radio-controlled machine (age six months). Fig. 5.

Figure 3 shows the graphs of the battery charge from the camera described at the beginning of the article. As you can see, the batteries were able to give immediately after charging only 1210 mA / h, the efficiency of the charging process was only about 67%, the batteries have a fairly high internal resistance. 0.52 Ohm (for two batteries connected in series). There was no decrease in voltage at the end of the fast charge. Since the efficiency of the process was low, the temperature grew quite intensively throughout the entire time, although the increase in temperature at the end of the charge is still quite obvious.

Fig. 3. GP 2700mA / h (age 1.5 years) Rvn= 0.52 Ohm, Echarge= 1.79A / h, Etime= 1.21A / h

In fig. Figure 4 shows the graphs of the charge of DURACEL batteries purchased instead of GP. Here the graphs from the textbook are a clear peak voltage with a drop of 5mV. The temperature during the charge practically does not increase, and has a very pronounced sharp increase at the end of the charge, with a growth rate of 0.3 ° C / min. The efficiency of the process is about 90%, and the battery resistance is 0.21Ohm. The camera on a single charge of these batteries was able to capture 7GB of photos and video for two months of intensive use!

Fig. 4 DURACEL 2650mAh (new) Rvn= 0.21ohm, Echarge= 2.95A / h, Etime= 2.66A / h

Well, the latest graphs in Fig. 5 show the battery charging process of an unknown Chinese manufacturer. The radio-controlled machine, which was equipped with these batteries, after six months almost ceased to function. the battery charge was enough for 1-2min. As you can see, their real capacity is only 110mA / h, instead of the promised 700mA / h. The voltage graph shows that it is already difficult to call them batteries.

Fig. 5 Unknown 700mA / h (age vn= 0.27ohm, Echarge= 0.23A / h, Eraz = 0.11A / h

The charger practically does not require adjustment. It may be necessary to adjust the voltage dividers, since a rather large error is possible due to the variation in the ratings. To do this, it is necessary to install pre-charged batteries in the memory, and turn it on in discharge mode. In this mode, by selecting R6 or R8, calibrate the displayed battery voltage displayed on the HL2 indicator using a reference voltmeter connected directly to the batteries. After that, turn on the reference ammeter in series with the batteries, and by selecting R5 or R7 (also in discharge mode) calibrate the displayed current. The second way. to calibrate the correction factor inside the program, how and where to change. is in the source notes.

The microcontroller was flashed using a conventional LPT programmer, consisting of 4 resistors (it’s easy to find on the Internet). Programmed fuses: CKSEL3 = CKSEL2 = CKSEL1 = SUT0 = 0. checkmarks. Instead of Atmega 8A, you can use Atmega 8.

When planning the layout of the memory elements inside the case, it is necessary to minimize the effect of heating the batteries from the components of the power supply and the board!

When using the charger with DURACEL batteries, an interesting fact was found out: if the batteries have not been used for more than a month and a half, their capacity after discharge-charge is only 1700 1800 mAh, but after one or two discharge-charge cycles, the capacity is restored to 2600 mAh. But nothing helped the old GP and Energizer batteries. over time, their capacity steadily decreased. The conclusion suggests itself. if you do not use batteries, then at least once a month do them training cycles.

Hex-codes of controller firmware, initial C project (for CodeVisionAVR V2.04.4a), circuit board layout and layout (P-CAD 2006), CHARGER.exe application, its source code for Hi-Asm (v.4.03) are attached to the article.


  1. Dmitry Mosin. Smart charging of NiMh AA batteries //
  2. Abramov S.M. Charger for finger batteries // Radioamator. 2010. No. 9. S.36.
  3. Ridiko L.I. A little bit about charging NiMH and NiCd batteries //

Update 08/20/11: Download (7 MB) updated firmware version with the ability to charge both one and two batteries