The 10uA figure for deep sleep is just for the ESP32 chip on the board. There are other parts of the board that are powered even during sleep that continue to draw current and that’s likely what you’re seeing. Sadly, neither the ESP32 Thing or ESP32 Thing Plus are optimized for low power use. You may be able to modify the board to drop the current draw though.
I’m not sure about the Thing Plus, but on the regular Thing, you need to cut two jumpers on the back of the board. One powers down the flash memory in sleep mode, and the other disables the power LED. This should get you well under 1mA when running on a battery. I will look at the Thing Plus and see what can be done.
It seems there are 5(ish) operating states for the ESP32. Active, Modem-sleep, light-sleep, Deep-sleep, and Hibernation. Hibernation is rated for 2.5uA. The issue with this is that this only pertains to the IC. I’ve notified internal documentation to have this looked at on our product description.
On that same point, the ESP32 source files seem to indicate the device is being put into Deep-Sleep only, no Hibernation. Depending on the features specific to Deep-Sleep the IC can consume .15mA to 10uA. There is a power LED and other components that will certainly pull more current regardless of the IC sleep state. So 10 - 5 mA isn’t a far stretch without modifying the other physical components on the board.
I am also having issues with lower power sleep on the ESP 32 Thing plus. As far as I can tell, the issue is with the CP2102N consuming the bulk of the power. This is unexpected. According to the datasheet the chip should consume 195uA while in the Suspend" state. According to the USB spec all devices should enter the suspend state when USB is disconnected for more than 3ms. My measurements show the device is consuming more than 4mA while in suspend state is active.
My board shows the following results w/LiPO battery:
Baseline (CPU Active, no BLE, no WiFi): 43mA (lowest reading, .5 sec avg)
Deep Sleep (Timer based wake up): 4.0 mA (lowest reading, .5 sec avg)
ESP32 powered off (Chip_PU Low via Reset button, Power applied to 3.3v rail): 4.8mA (lowest reading, .5 sec avg)
To duplicate the setup:
Disconnect power completely
Use an external power supply to provide 3.3V directly to the 3V3 pin on the ESP32 Thing Plus.
Hold Chip_PU low on the ESP32 by holding the reset button.
Measure current consumed
There is a 10K pullup resistor on the Chip_PU line for the ESP32, but factoring that out should give you a good handle on the power consumed by the CP2102N.
Digging a bit deeper, I checked the errata on the chip:
CP2102N_E103 – Self-Powered Device May Not Enter Suspend
Description of Errata
A device in the self-powered configuration may not enter Suspend mode properly if the USB host is disconnected (i.e. cable unplugged).
Affected Conditions / Impacts
A device may draw additional current on the order of Normal Operation mode (~10 mA) when not connected to USB and in the selfpowered configuration.
Workaround
There is currently no workaround for this issue.
Resolution
This issue is resolved in revision A01 devices with a date code of 1639 or later and A02 devices.
The version of the chip I have shows a date code of 1851, so I should not be seeing this issue, but I am guessing that there is some similar bug here.
Has anybody from Sparkfun reached out to Silicon Labs on this since this seems to be a nagging issue for many users?
One additional datapoint I should have also mentioned is that I was able to confirm that the CP2102N “believed” that it was in the “Suspend” state by looking at the output of pin 17 on that chip. This pin was HIGH.
my expectation is that the ESP32 Thing Plus should consume no more than ~266uA while the ESP32 is in Deep Sleep (Hibernation).
Sparkfun is a great source for IoT prototype development boards. Given that many of us use these boards to baseline our own designs, Silicon Labs should be very motivated to ensure that their devices meet the specs they claim in their datasheets in these critical POC stages.
Has anybody from Sparkfun reached out to Silicon Labs on this since this seems to be a nagging issue for many users?
Digging in a bit deeper it looks like the behavior of the CP2102N may be dependent on its programming, can Sparkfun please share the programming settings that you used for the CP2102N?
Power Mode This setting determines whether the device is Bus-Powered, i.e. it is powered by the host, or Self-Powered, i.e. it
is powered from a supply on the device.
0x80 (Bus-Powered)
The ESP32 Thing Plus implements the CP2102N in “Self-Powered” mode. I wonder if this setting may also impact how the device toggles into its low power mode? (i.e. When “Bus-Powered” it does not not need to go into low power mode while bus powered)
What does seem to have an impact though is placing a 10M Ohm resistor between D- and GND (or a 1N4734A leaky Zener) this seems to cause the CP2102N to settle down to about 250uA of current. This is most certainly the CP2102N and was duplicated in isolation with the [CP2102N-miniEK module from SiLabs. In the ESP32 thing plus I go from 6mA @ 3.3v (applied directly to the 3v3 rail, down to 1.1mA @ 3.3v applied directly to the 3v3 rail. It is not the <300uA I am expecting, but it is a substantial improvement.
@Sparkfun, The key suggestion that I have is: In the next version of this board, that you power the CP2102N from the USB bus. There is no reason to power it from the 3V3 rail. Doing this will completely eliminate this problem from future models and hopefully get the board down into the sub-100uA range. From there, I think replacing the power regulator with one optimized for extremely low quiescent current will get the board into the 10-20uA range (maybe less).
I have a project that should work on battery for very long time, and I have searched for an optimal low power consumption board with deep sleep mode, and then I found this board. I bought this board because I trust with all details that Sparkfun wrote about their boards. For this board they write: 2.5 µA sleep current under hibernation.
I have enter the ESP32 in the hibernate mode. I cut power led off to reduce the current. but I don’t reach 2.5UA, I have only reach 0.8 ma with hibernate mode. Just I want to aske Sparkfun about this point that attracts me to buy the board, how they reach this value of low current with board !!! is it real !!!