The ESP32-DevKitC is a board that makes it easy to use the ESP32.
I often use not the Espressif Systems genuine ESP32-DevKitC, but its compatible ESP32-DevKitC because it is cheaper. Using the compatible ESP32-DevKitC, I made a mailbox with a built-in "scale" that notifies me by e-mail when mail arrives. You can read more about this mailbox here.
This mailbox weighs the mail every minute, and when the weight changes, it connects to the Internet and sends an email.
The current during this DeepSleep was quite large, so I decided to examine it in detail.
The current consumption is also large during DeepSleep
I tried to measure the current consumption during DeepSleep with this board alone. This board consumes 11.38mA even during DeepSleep.
The current consumption of the ESP32 alone during DeepSleep is supposed to be a few uA, so 11mA is quite a large current. I wonder where and how much current is being consumed.
Let's take a component and find out
In addition to the ESP32, the ESP32-DevKitC contains a power regulator IC and a USB serial converter IC.
Regulator IC for power supply
The regulator IC used is an AMS1117-3.3. Checking the current consumption in the datasheet, we can see that it consumes about 5mA.
Now, let's actually remove it and see how much the current changes.
I will use hot air for removal.
Hot air is a very useful tool for easy removal of multi-pin surface mount components.
The regulator IC has been removed.
Remove the regulator IC and supply 3.3V from the regulated power supply; the current during DeepSleep has been reduced to 8.15mA.
Since the current before removing the regulator IC was 11.38mA, the current consumed by the regulator IC is 3.23mA. This is approximately as per the datasheet.
By changing the regulator IC to a lower-current-consuming one, the current can be reduced by up to 3mA.
USB Serial Conversion IC
The USB serial converter IC is called CP2102.
The current consumption of the CP2102 is about 80uA when it is in suspend mode.
Now, let's try to remove the CP2102 with hot air.
The hot air made it easy to remove.
The current consumption during DeepSleep has gone down to 0.00mA, which means less than 10uA.
Since the current was 8.15mA before it was removed, this means that all of this current was consumed by the USB serial converter IC.
Is the CP2102 consuming too much current?
The datasheet says that the CP2102 consumes 80uA of current while in suspend mode, but in fact it consumes 8mA. Is the datasheet wrong?
Testing with evaluation board
Coincidentally, I had a genuine SILICON LABS CP2102 evaluation board (and a brand new one that I have never used at all), so I tried to measure the current consumption of this board.
The current consumption of this evaluation board alone was 0.49mA, not 80uA, but there are a few components on it, so they may be consuming some of the current.
Is the compatible ESP32-DevKitC CP2102 compatible?
The IC on the left is the real CP2102 from SILICON LABS. The one on the right is the CP2102 we removed from the compatible ESP32-DevKitC.
The markings are different. The CP2102 in the compatible ESP32-DevKitC may not be the real one, but a compatible one. This is probably why the current consumption during suspend is not as low as the real one.
Replace with CH340C
The compatible CP2102 consumes too much current. However, if we remove it, we will not be able to rewrite the program.
For more information about the CH340C writers, please refer to this page.
I measured the current consumption of the CH340C writers only, and it was 15.8uA, which is much lower than the real CP2102 from SILICON LAB.
Current during DeepSleep
I connected the CH340C write circuit to the ESP32-DevKitC and measured the current during DeepSleep. The result was 18.8uA, which is a great value.
By simply changing the USB serial conversion IC in the ESP32-DevKitC to the CH340C, the current consumption can be dramatically reduced.
Let's check the current consumption of the different ESP32-DevKitC
On the left is the compatible ESP32-DevKitC we've been looking at. On the right is another compatible board that doesn't have the ESP32 on it, but the CP2102 looks like the real thing. I'll also measure the current consumption of this board.
The result was 3.41mA, and since the regulator IC was about 3.2mA, the CP2102 consumed about 0.2mA.
Summary
Current consumption of each IC
I found that the current consumption of the compatible ESP32-DevKitC during DeepSleee was 11.4mA, which is quite large.
The cause is
- Regulator IC is 3.2mA
- 8.2mA for the compatible CP2102
In the case of the real ESP32-DevKitC, it was because the regulator IC was consuming 3.2mA.
In the case of the real ESP32-DevKitC
- Regulator IC consumes 3.2mA
- 0.2mA for CP2102
consumed.
Furthermore, by not using the regulator IC and using the CP2102 as the CH340C circuit, the
ESP32-DevKitC's DeepSleep is consuming quite a bit of current, so I investigated the cause.
I found that I could dramatically lower the DeepSleep current to 18.8uA.
Modifying the mailbox too
As soon as possible, I removed the mailbox with a built-in "scale" that would email me when the mail arrived, esp. I removed the 32-DevKitC CP2102. I used a DCDC converter instead of a regulator, and by removing the CP2102, the current consumption during DeepSleep became 0.07mA. You can read more about this DCDC converter here.
Since the current consumption during DeepSleep is now 70uA, I think it will have a much longer life in battery operation. I'd like to wait and see how long it lasts.