Electronics > Repair
Best way to fix hair clipper that kills 18650 batteries?
(1/2) > >>
jklasdf:
I bought this hair clipper during the pandemic, and it has so far managed to kill the 18650 battery it came with, along with a replacement 18650 I put in after it killed the first one. It was a fairly cheap Surker branded hair clipper, which at the time had reasonable reviews (currently still 4.6 stars with 16,000+ ratings https://www.amazon.com/Surker-Clippers-Cordless-Grooming-Rechargeable/dp/B07ZZYWF3P/). It was $50 during the pandemic (back when it was difficult to buy any hair clipper), although it's available for a lot cheaper now.


There are similar hair clippers (with the exact same LED display) sold under other brand names like Comzio, Kikido, Romanda, Glaker, AngFan, TPOB, etc. I'm not sure who the OEM is, but if I had to guess they likely all come from the same factory. Glaker sells a transparent version (https://www.amazon.com/GLAKER-Clippers-Cordless-Cutting-Zero-Gap/dp/B0CNQZ4XB3/) with an identical circuit layout, and I'm guessing the others are similar also. I would expect all of these to have the exact same problem with killing 18650 batteries.

Here's what's inside:




And here's the PCB front and back (mirrored):


The first time the battery died, I figured it was just a cheap battery and replaced it with a new one. One of the main issues is the charging indicator is not accurate at all. It will happily show 100% charged when the battery is fully drained, and the charge percent seems to be based on a (non-functional) coulomb-counting system or maybe just a simple run-timer. As a result, the battery is often significantly more discharged than what is indicated. Counter-intuitively this seems to lead to better reviews, since people seem to trust the charge indicator (and the charge indicator makes it look like the battery is more charged than it actually is).

The second issue is that the switch to turn the unit on is actually a soft power switch, even though it has a very satisfying click. The power is never actually off. This combined with the fact that there is no over-discharge protection leads to the battery becoming overdisharged (and not accurately indicated on the charge display).

I went ahead and reverse-engineered the circuit the second time it killed the battery:


A couple of things stand out:

* The boost converter and microcontroller never actually turn off: the switch is a soft power switch.
* The DW01 battery protection IC has an overdischarge prevention pin which is not actually connected to the protection FETs.
* Normally, one half of the 8205A dual-FET (Q5) would be used for overcharge, and the other half for overdischarge, but maybe the current draw is too high (so they decided to use both halves in parallel)?
* There are two 8205A dual-FETs (Q5 for the charge protection, and Q4 for controlling the motor), but they used different packages for some reason.
* The design, although cheap (and a battery killer), doesn't actually look like it was cost-reduced as much as it could have been (at least for the electronics, which is probably a relatively small part of the total cost).
Now the question is what would be the best way to keep this hair clipper from killing batteries? (And I do realize this is not really worth the time for such a cheap product.) My first thought was to just add a protected 18650. I don't actually have much of any experience with these, but apparently a lot of those are simply a DW01 battery protection IC along with an 8205A dual-FET (exactly the same as used in this hair clipper, but the dual-FET would be used in series: one half for the overcharge/current protection, and the other half for the overdischarge protection). I'm guessing the reason they didn't do that in the hair clipper is to lower the FET on-resistance by running them in parallel. As it is, since everything is controlled electronically, the entire motor current has to go through both Q4 and then Q5 in series, and also through R17||R18 which adds another 50mohms (overall though the on-resistance still seems reasonable to me, so maybe it's for extra current handling?). I'm not sure which 8205A dual-FET they actually use, but maybe they're super cheap ones with bad performance also.

The quiescent current of the boost converter (ME2188: 15uA) and the microcontroller (HT66F0175: 50uA) is actually not that horrible, although it would be nice if the switch was actually a real power switch (it has a very nice click, and feels like it is, but isn't actually wired up that way). I haven't actually tried to measure the actual quiescent current to see how close they actually get to the datasheet numbers, but assuming say 250uA constant draw from a 2500mAh battery (might not actually be true) should give 10,000 hours, which is over a year.

The actual idle current might actually be larger...I haven't actually measured. But I guess the bigger issue is the charge indicator is not accurate, so it looks like the hair clipper is fully charged, when actually it is overdischarged to the point of damaging the battery.

The Holtek HT66F0175 microcontroller used is reprogrammable using the ICPDA and ICPCK pins, but it's $60 + shipping for the programmer (https://www.bestmodulescorp.com/e-link.html). There is a ESK-303 dev kit which has the programmer built in (https://www.bestmodulescorp.com/esk-303.html), but even at $30 + shipping that's more than what a new hair clipper would cost (although it'd have the same problem). It looks like the in-circuit programming is probably some sort of I2C protocol, but I can't find documentation on it anywhere. Does anyone have the Holtek e-Link programmer or know what the protocol is? Their bigger 32-bit parts use a fairly standard ARM debug dongle, but their 8-bit parts use their own proprietary system (I have honestly never seen or heard of these Holtek 8-bit microcontrollers before...there's a bit more info about them here: https://jaycarlson.net/pf/holtek-ht-66/). Interestingly, the HT66F0175 has the ability to drive LEDs directly with a built-in current limit, but there are still ballast resistors included on the board.

Although it's not really the best use of time, changing the microcontroller programming seems like it could fix a lot of the issues with these hair clippers. Even if the ADC is not that great, it should be able to tell the difference between a 3.7V and a fully discharged 3V battery for instance.

I'm open to any other ideas people might have to keep these hair clippers from killing batteries. Another random question: what is the purpose of diode D5?
jklasdf:
I've attached some of the english datasheets I could find for the HT66F0175 microcontroller, ME2188 boost converter, and DW01 battery protection IC.
Teledog:
If you're doing that much "surgery", can you not install a 18650 battery holder & charge it outside the unit?
If it drains the battery with non-use, just put a plain old (tiny) switch on it.
G' Luck! :-+
jklasdf:
I was thinking about adding an 18650 battery holder (mainly because I don't actually have a spot welder, and 18650 batteries with the solder tabs aren't as common). The battery is not that easy to get to though, and involves dissassembling the entire case, removing a stick-on green spacer thing, and then unscrewing more self-tap screws to get the PCB out (they're already removed in the pictures). Currently the battery is held away from the PCB a little by a black plastic spacer thing, and then the battery being soldered to the PCB keeps things ridgidly in place. There's also another one of the green stick-on spacer things covering the LED pins. Vibration from the motor might be an issue with the battery holder, but I think it could work, just inconvenient as a permanent solution.

Adding another switch would also be an option. I've been trying to figure out a way to get the existing switch to actually disconnect the battery, but couldn't see an obvious way to do it and still have the circuit (including charging) functional. The wires going to the switch (and the switch itself) might not actually be able to handle the full motor current either.
RoGeorge:
Thanks for the schematic.  :-+


--- Quote from: jklasdf on May 11, 2024, 09:39:47 am --- It looks like the in-circuit programming is probably some sort of I2C protocol, but I can't find documentation on it anywhere.
...
I'm open to any other ideas

--- End quote ---

Regarding the BMS (Battery Management System):
- there is a SMBus (System Management Bus) standard for Smart Batteries
    - Smart Battery Data Specification http://sbs-forum.org/specs/sbdat110.pdf
    - Smart Battery Charger Specification http://sbs-forum.org/specs/sbc110.pdf
    - there are some errata and some revisions, don't know which one is the latest, but these might not matter at all, since you would probably use somebody else's implementation:
        - http://www.sbs-forum.org/specs/sbdata10_a.pdf
        - http://www.sbs-forum.org/specs/errata_sbdat110a.pdf

- SMBus, as a clock+data bus, is almost the same as I2C, it is used with many devices, including smart batteries
    - SMBus Standard (generic, not for batteries only) http://www.smbus.org/specs/SMBus_3_2_20220112.pdf
    - highlighted differences between I2C and SMBus https://www.analog.com/en/resources/design-notes/guide-to-comparing-ic-bus-to-the-smbus.html (SMBus only supports lower speeds, and some other minor differences, but in general any I2C microcontroller can be used to talk with SMBus devices)

- there are already many battery analyzers programs, either free or paid, programs that can talk with such a SMBus battery (pack), some are using nothing but a $3 Arduino nano (some random search result, didn't try them):
    - https://github.com/Ri5ux/Smart-Battery-SMBUS-Analyzer
    - https://www.instructables.com/Arduino-Battery-SMS-Bus-Reader/

Since your charger is using some sort of adapter/programmer with I2C, chances are it is so because the charger is implementing the Smart Battery standard over SMBus.  I didn't check if this is true for this particular charger, but if it is so, then the charger can be recalibrated, and IIRC there are voltage limits, too, that can be set for when the charger disconnects the battery.

I would check if this charger IC is implementing the Smart Battery protocol over SMBus (by using an Arduino board as a SMBus master).

Typical Arduino is using 5V, yet many microcontrollers are using 3.3V Vcc.  This shouldn't be a problem, since the SMBus specifies SMBCLK and SMBDAT (SCL and SDA from I2C) should be 5V resilient, even if the controller is of a lower voltage.  You might need to add 2 pull up resistors for clk and data line (10k from each of the 2 lines to Vcc should be OK, some SMBbus slaves might not have pullups at all, and the Arduino's internal pullups might not be enough, look with an oscilloscope, the rising edges should look as sharp as the falling edges, not curved like an exponential RC charging).

Then, load an .ino implementing a Smart Battery Reader in an Arduino, connect GND, clock and data of the I2C to the charger, and see if the Arduino program can talk with the charger.  In case you want to poke at it with your own program, the allocated SMBus address (I2C slave) for smart batteries is 11 (decimal).

Does these make any sense for your charger?


LATER EDIT
-----------------
- added link to Smart Battery Charger Specification pdf
Navigation
Message Index
Next page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod