Lolin32 is an easy go-to board for quick prototypes and low quantity production runs requiring ESP32. They are supposed to be (Wemos) Lolin32, but find no mention whatsoever on wemos site! So it looks like a cheap, mass-produced clone on D32.
The good thing about the board is that it has plenty of GPIO pins all neatly arranged with enough ground pins thrown in!
Another good thing is the built in LiPo charger circuit that makes adding batteries easy.
The one huge drawback it has is that its USB to Serial chip (CP2012?) seems to be connected to ME6211 LDO’s 3.3V output which also powers the ESP Wroom32 SoC. (It could also have been powered by the USB VBus, but it has not been!)
The CP2012 draws about 25mA without the SUSPEND pin being connected (which could have reduced the consumption to about 330uA). The suspend pin does not seem to have been used on the board (looks like NC).
So even if the ESP Wroom32 goes to deep sleep, the entire board seems to draw about 25mA! No chance running a battery powered device using that current draw.
Solution? The only solution seems to be a micro surgery of sorts and if one intends to keep the USB-Serial functionality after the surgery, a tiny slide switch prosthetic required as well.
- Sharp cutting blade/ Xacto knife
- Soldering iron
- Tiny SPST slide switch
- Hot glue
- Flip over the Lolin32 board to the bare side.
- Use the cutting blade and VERY carefully make an incision that breaks the power trace in the location indicated in RED
- Scrape off the black solder mask on either side of the cut made to expose the copper trace as shown in YELLOW.
- Thats all! The board deep sleep current consumption now magically drops down to 50uA! Interestingly about 40uA out of this can be attributed completely to the ME6211 LDO, according to its data sheet [Supply Current, ISS, @VIN= VOUT+1V = 40 μA]. So the ESP itself consumes about 10uA only. Nice.
At this point of our process however, the USB-to-Serial adaptor has been wasted.
To get to use it, lets add the slide switch prosthetic:
- Solder in a SPST slide switch as shown on the copper traces exposed on either side of the cut (made previously in step3).
Done! Now when you need to program the board, slide the switch such that the trace is completed and slide it off in production.
Since the switch needs a solid anchor to the board, glue it in using hot melt glue etc. so that it does not come off (or much worse, pull out the copper trace while you try to toggle!)
This is what it should look like once all is done. Congrats, you can now use deep-sleep/ ULP through code and still use the LiPo charger and standard JST-PH connector to add a LiPo battery to power the board!
We used CurrentRanger from LowPowerLabs to get the low-current measurements. Its a necessary (but moderately expensive) tool for any low power IoT workbench!