I have a microcontroller that spends 99.9% of its time in deep sleep drawing less than 1mA, and I'd like to power it with an 18650 lithium ion battery that I can also charge in-situ from time to time.
In the past I've used those cheap integrated charge / boost modules (like the MH-CD42 based ones etc) for other projects, but they're all designed for power banks so they all have cutoffs that engage when the connected load drops below 40-50mA. Some of them let you bring a KEY pin low every 20 seconds or so to keep it alive, but I can't do that without having the microcontroller wake up and do it which would completely fuck the battery life and make the whole thing pointless.
If anyone has any suggestions they'd be warmly welcomed, cheers.
Edit: For the benefit of anyone who finds this thread in the future, I ended up using two separate boards to accomplish this, a TP4056-based charging module and a boost module based on a Chinese clone of the MT3608 (I think.) I used these things because I had them on hand, not because they were the best options, or even good options. They're good enough for this application, but maybe not for yours.
I would really not recommend using TP4056-based charging boards for low current applications because you risk damaging your cell. Almost all of them have a low voltage cutoff of 2.5v which is well below the safe discharge threshold for a lithium ion cell. My understanding is they do this to account for around 200-600mV of sag when the cell is under high load and nearing maximum discharge which is fine for high current applications, but you won't get anywhere that much sag when you're drawing less than 100mA so your cell is definitely going to get discharged all the way down to 2.5v. However, in my case the final project uses so little current when idle and I'll be recharging it often enough that there's no chance whatsoever the cell will ever drop below 3v, so I feel comfortable using it.
The MT3608 clone board is unbranded and can be found under various names, generally "CKCS BS01" or "Mini Boost Module Step Up Board". They have two jumper pads on them that you can open and close to set the output voltage, and you can choose between 5, 8, 9 and 12 volts. Maximum output is 5W. They have a tiny blue LED on them that's constantly lit which consumes about 1mA, but you can easily remove it.
In the end everything together draws about 0.6mA while the microcontroller is idling, which is pretty good for an ESP32 but massive compared to how low it could have been if I had made better choices at the start of the project. I wanted to use an M5StampS3 because I have a bunch of them lying around and this was just for fun, but as others pointed out, my options would have been a lot better if I'd chosen something more suited to the task.
Also, if you're interested in using ESP devices in low power applications I highly recommend this excellent series of blog posts by Thorsten von Eicken in which he investigates the most efficient way of using wifi with various sleep modes. His testing is very detailed, and his example code will be useful if you're looking to build a low powered device that just needs to wake up and ping a webhook once in a while.
Anyway, thanks to everyone who gave their advice, cheers!
Link nội dung: https://mcbs.edu.vn/1ma-a26150.html