ESP32-C3 & LED Filament Project Update to ESP32-S3
Battery-powered LED filament flicker controller, tuned for maximum runtime
Announced September 22, 2026
A battery-operated build driving an LED filament bulb with randomized flicker and an on/off schedule, which ran 16 consecutive days on a single 1200mAh 3.7V cell before the battery finally depleted, thanks to an aggressive low-power duty cycle on the ESP32C3 Board will be changed to an ESP32-S3 with onboard battery charging
Overview
This build was focused on squeezing as much runtime as possible out of a single 1200mAh 3.7V battery while driving an LED filament bulb through randomized flicker and a scheduled on/off cycle. The test concluded at day 16, when the battery finally depleted.
Power Management
To stretch battery life, the ESP32-C3 runs underclocked at 40MHz with WiFi turned off entirely, spending most of its time asleep. A 4 hour on / 20 hour sleep-and-watchdog duty cycle keeps average power draw low, while a 4700uF capacitor bank protects the circuit with a safe power-down when voltage gets too low. Update to ESP32-S3 with on-board battery charging and optimized sleep function
Charging and Component Changes
An in-line USB-C charging board keeps the battery topped up without breaking the circuit. The original 100 ohm current-limiting resistor was swapped for a 220 ohm 1W resistor, which dims the LED filament slightly in exchange for meaningfully longer runtime per charge.
Current Status
Test complete: 16 days on a single charge before the battery depleted. Next up is analyzing the runtime data and planning improvements for the next round.
Key Features
- Ran 16 consecutive days on a single 1200mAh 3.7V Li-ion cell before the battery depleted
- ESP32-C3 underclocked to 40MHz with WiFi disabled to cut power draw
- Duty cycle of 4 hours awake / 20 hours in sleep + watchdog mode
- Drives an LED filament with randomized flicker plus an on/off schedule
- 4700uF capacitor bank for safe power-down under low-voltage conditions
- In-line USB-C charging board for the battery
- Upgraded from a 100 ohm to a 220 ohm 1W resistor to dim the filament and extend battery life
- Board change - ESP32-S3 at 80mHz for the dual-core, with battery management on-board