Power Supply
Power Sources
The ESP32-S3-DevKitC-1 can be powered through three methods:
1. USB Power (Recommended)
Either USB port provides 5V power:
| Port | Connector | IC | Notes |
|---|---|---|---|
| UART (J2) | Micro-USB | CP2102N | Programming + Power |
| USB (J4) | Micro-USB | Native ESP32-S3 | USB-OTG + Power |
2. External 5V Supply
Apply 5V directly to the 5V header pin:
| Parameter | Value |
|---|---|
| Voltage Range | 4.5 - 5.5V |
| Maximum Current | 800 mA |
| Protection | D1/D7 Schottky diodes |
3. Direct 3.3V Supply
Bypass the LDO by applying regulated 3.3V to the 3V3 pin:
| Parameter | Value |
|---|---|
| Voltage Range | 3.0 - 3.6V |
| Maximum Current | Limited by supply |
| Notes | Bypasses onboard regulator |
Power Path
graph TD
USB["USB 5V"] --> D1["D1 (Schottky)"]
EXT["External 5V"] --> D7["D7"]
D1 --> RAIL["5V Pin"]
D7 --> RAIL
RAIL --> LDO["SGM2212 LDO"]
LDO --> V33["3.3V Rail"]
V33 --> ESP["ESP32-S3"]
Schottky Diodes (D1, D7)
The 1N5819HW Schottky diodes provide:
- Reverse polarity protection
- OR-ing between USB and external 5V
- Low forward voltage drop (~0.3V)
LDO Regulator
SGM2212-3.3 Specifications
| Parameter | Value |
|---|---|
| Input Voltage | 4.5 - 5.5V |
| Output Voltage | 3.3V ±2% |
| Maximum Current | 500 mA |
| Dropout Voltage | 300 mV @ 500 mA |
| Quiescent Current | 65 μA |
| Thermal Shutdown | 150°C |
Current Budget
Typical Current Consumption
| Component | Current |
|---|---|
| ESP32-S3 (active, 240 MHz) | 70 mA |
| Wi-Fi TX | +280 mA |
| Wi-Fi RX | +25 mA |
| Bluetooth TX | +60 mA |
| Bluetooth RX | +25 mA |
| RGB LED (max brightness) | 20 mA |
| Total (worst case) | ~450 mA |
Budget Example
Planning a project with:
- ESP32-S3 running Wi-Fi (150 mA average)
- 5 external LEDs (10 mA each = 50 mA)
- Small sensor (10 mA)
- Total: 210 mA
This fits within the 500 mA LDO limit with margin.
Low Power Modes
Sleep Mode Current
| Mode | Current | Wake Sources |
|---|---|---|
| Active | 70-350 mA | - |
| Modem Sleep | ~20 mA | CPU timer, GPIO |
| Light Sleep | ~130 μA | Timer, GPIO, touch |
| Deep Sleep | ~7 μA | Timer, GPIO, ULP |
| Hibernate | ~5 μA | Timer only |
Deep Sleep Configuration
#include <esp_sleep.h>
void enterDeepSleep(uint64_t sleepTimeUs) { // Configure wake sources esp_sleep_enable_timer_wakeup(sleepTimeUs);
// Optional: GPIO wake esp_sleep_enable_ext0_wakeup(GPIO_NUM_4, LOW);
// Enter deep sleep esp_deep_sleep_start();}Battery Operation
For battery-powered projects:
LiPo Battery Connection
graph LR
subgraph "Option A: Via 5V rail"
LIPO1["LiPo 3.7V"] --> BOOST["Boost/Buck to 5V"] --> PIN5V["5V Pin"]
end
subgraph "Option B: Direct 3.3V"
LIPO2["LiPo 3.7V"] --> LDO["LDO 3.3V"] --> PIN3V3["3V3 Pin<br/>(bypass onboard LDO)"]
end
Battery Monitoring
Use ADC to monitor battery voltage:
#define BATTERY_PIN 4 // GPIO4 with voltage divider#define VOLTAGE_DIVIDER_RATIO 2.0 // R1=R2=10K
float readBatteryVoltage() { int adcValue = analogRead(BATTERY_PIN); float voltage = (adcValue / 4095.0) * 3.3 * VOLTAGE_DIVIDER_RATIO; return voltage;}Power Design Tips
1. Decoupling Capacitors
The board includes bulk and decoupling capacitors:
- 10μF on 5V rail
- 10μF on 3.3V rail
- 0.1μF near ESP32-S3 power pins
2. High-Current Peripherals
For motors, relays, or high-power LEDs:
- Use external power supply
- Add isolation (optocouplers, transistors)
- Consider separate ground planes
3. Noise Reduction
- Keep high-frequency signals away from power lines
- Use ferrite beads on noisy loads
- Add local decoupling for sensitive analog circuits
4. ESD Protection
The board includes ESD protection diodes (LESD5D5.0CT1G) on:
- USB data lines
- Boot/Reset buttons
- Critical GPIO
Power Consumption Measurement
Using USB Power Meter
- Insert USB power meter between USB cable and board
- Measure idle current
- Trigger various modes (Wi-Fi, BLE, sleep)
- Record measurements
Using INA219 Module
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219;
void setup() { ina219.begin();}
void loop() { float voltage = ina219.getBusVoltage_V(); float current = ina219.getCurrent_mA(); float power = ina219.getPower_mW();
Serial.printf("%.2fV, %.2fmA, %.2fmW\n", voltage, current, power); delay(1000);}