Best way to fix hair clipper that kills 18650 batteries? - Page 1
Forum section: electronics / repair

author: jklasdf
author_rank: Regular Contributor
timestamp: May 11, 2024, 09:39:47 am
content: 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+ ratingshttps://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?

author: jklasdf
author_rank: Regular Contributor
timestamp: May 11, 2024, 10:02:52 am
content: I've attached some of the english datasheets I could find for the HT66F0175 microcontroller, ME2188 boost converter, and DW01 battery protection IC.

author: Teledog
author_rank: Regular Contributor
timestamp: May 11, 2024, 10:12:34 pm
content: 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!

author: jklasdf
author_rank: Regular Contributor
timestamp: May 12, 2024, 12:54:06 am
content: 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.

author: RoGeorge
author_rank: Super Contributor
timestamp: May 12, 2024, 03:49:09 am
content: Thanks for the schematic.Quote from: jklasdf on May 11, 2024, 09:39:47 amRegarding the BMS (Battery Management System):- there is a SMBus (System Management Bus) standard for Smart Batteries- Smart Battery Data Specificationhttp://sbs-forum.org/specs/sbdat110.pdf- Smart Battery Charger Specificationhttp://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 SMBushttps://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

author: jklasdf
author_rank: Regular Contributor
timestamp: May 12, 2024, 07:39:26 am
content: Hi RoGeorge, there isn't actually a dedicated charger IC on the board (it board is not fully cost optimized, but definitely still built down to a cost). U2 is a general-purpose 8-bit microcontroller from Holtek, and these 8-bit microcontrollers seem to have some kind of proprietary I2C-like programming interface to reprogram the flash memory (likely need some custom initialization sequence at power on to get the microcontroller to use the pins as a programming input). In the actual circuit, the ICPDA and ICPCK pins used for reprogramming (U2 pins 5 and 9) are used asoutputsto drive the LED display, and I think it is unlikely that they programmed the microcontroller to talk SMBus on those pins.The charging circuit consists of Q1 and Q3, which is controlled by a PWM pin on the microcontroller. The charging circuit is not ideal in that when Q1 is switched on fully, the voltage drop across Q1 and schottky diode D1 is not enough to prevent too much voltage from the 5V input from being applied to the battery. The DW01 battery protection IC (U3) should limit any over-voltage on the battery from charging though (assuming it responds fast enough), and I guess they can keep the PWM duty cycle low enough that hopefully the battery isn't too overstressed? I haven't actually measured while charging to see if the battery continuously sees pulses over 4.2V while charging. If so, that might also contribute to killing the batteries.

author: jklasdf
author_rank: Regular Contributor
timestamp: May 12, 2024, 07:54:41 am
content: I decided to make some measurements for how much current the motor actually draws. The following is for supplying power to the motor directly:4.0V: 1.4 to 1.5A (power draw of 5.6 to 6W)3.5V: 1.3 to 1.4A (power draw of 4.6 to 4.9W)3.0V: 1.2 to 1.3A (power draw of 3.6 to 3.9W)There is a very noticeable difference in the motor speed at 4V compared to 3.5V compared to 3V, and I guess I can kind of see why they paralleled both halves of dual-FET Q5 together, instead of using them in series for proper protection of the battery. Doing so makes the motor run slightly faster.I can't see any obvious reason why I can't change dual-FET Q5 to be in series (would require hacking up the board a little), with one of the FETs controlled by the DW01 overdischarge (DO) pin. The current is not really that high. Here's a random TSSOP8 8205A dual-FET datasheet I found (not sure if it's the actual one used) which is rated for 3.5A continuous. Even if the on-resistance is worse (say 100mohm) it should only be a couple hundred milli-volts of extra drop for the two individual FETs in series instead of parallel. The motor speed difference would probably be noticeable, but should still work?Typical application circuit from DW01 protection IC with dual-FET, with OD actually being used for over-discharge protection:

author: jklasdf
author_rank: Regular Contributor
timestamp: May 12, 2024, 08:08:45 am
content: I decided to measure the actual idle current draw, and it is slightly higher than I was expecting.4.0V: 550uA3.5V: 450uA3.0V: 340uASo say maybe 500uA on average when idle, which is roughly double what I had guessed before. If the battery is say only 1500mAh (instead of the 2500mAh stated), that would give 3000 hours, which is 125 days (should still last a few months if the battery were fully charged before hand, but not ideal, especially since the battery charge indicator is wrong and overestimates the % charge).

author: mobby_6kl
author_rank: Contributor
timestamp: May 14, 2024, 06:40:07 pm
content: That's an impressive amount of effort for hair clippersI wouldn't worry about that idle power. It should be 0, but really running the motor for 1 minute will use several orders of magnitude more energy than idling for weeks.For charging, I'd just stick in one of those 1S charging boards from Aliexpress, bypassing any of the existing circuitry. This would also make your life easier if you ever have to travel with this as you could just use USB.I've had a cheapo unit from Lidl where I had to replace the battery and since the charger input was 5v, also replaced their weird jack with USB. I eventually got nicer Philips clippers as a gift which now doesn't last quite as long as it did. There's no obvious way to open it though so I haven't messed with it so far. Probably a bunch of plastic clips that'll get broken instantly.

author: janoc
author_rank: Super Contributor
timestamp: May 14, 2024, 07:09:33 pm
content: Re using a protected battery - protected battery protects you from a fire when you attempt to charge or use a battery damaged by overdischarging. However, it will not protect the battery from dying!Most protection circuits shut the battery off at around 2.5V, some even as low as at 2V. If you keep discharging the battery that low, it will have a very short and unhappy life. The protection circuits are meant to be the last resort measure, not to replace a proper battery charge monitoring/low charge shut-off.If you want to fix this piece of junk, either install a switch or you will likely need to replace the board with something better designed.