LILYGO T-Energy-S3
| Chip | ESP32-S3 |
|---|---|
| Form factor | Board with 18650 holder and power switch, 91.5 × 32 × 20 mm |
| Flash | 16 MB + 8 MB PSRAM |
| Antenna | PCB antenna (ESP32-S3-WROOM-1) |
| USB | USB-C (native USB), charges the 18650 |
| Install | Browser installer, esp32s3-cdc flavor |
| Price | ~$13 (no battery) |
| Stores | amz/uslilygo |
| GPIO | Function | ESPresense setting |
|---|---|---|
| 0 | BOOT button | — |
| 3 | Battery voltage (1:2 divider) | Battery voltage pin |
| 15 | 32 kHz crystal | — |
| 16 | 32 kHz crystal | — |
| 43 | TXD (4-pin UART connector) | — |
| 44 | RXD (4-pin UART connector) | — |
Template
Section titled “Template”Paste this into the Board Template box on the node's Templates page, then Preview and Apply (firmware v5.0.0b1 or later). It sets the board's pins (and Ethernet type, if it has one) in one go. The LED, input and output lists replace what was configured before, so the result doesn't depend on the node's old setup. See Templates.
{"name":"T-Energy-S3","chip":"esp32s3","settings":{"leds":[],"inputs":[],"outputs":[],"batt_pin":3,"batt_mult":2}}Formatted, with what each value means
{
"name": "T-Energy-S3",
"chip": "esp32s3",
"settings": {
"leds": [],
"inputs": [],
"outputs": [],
"batt_pin": 3,
"batt_mult": 2
}
}LED type: pwm, pwm_inverted, grb, grbw, rgb or rgbw (the last four are addressable). LED control: mqtt, status, motion, count, or output (follows the output numbered byoutput). Input type: pullup, pulldown or floating, with_inverted for active-low. Output type: output, output_inverted, or high/low for a pin that's just held at that level. An output's input is the 1-based input that controls it. power takes ESPHome's hlw8012 values (a cse7766 needs only rx); sel_inverted matches ESPHome's inverted on sel_pin. eth is the Ethernet Type's option number.
- Why this board: a battery-powered node you can carry around, for example to stand at known spots during calibration. Charge it over USB-C and use the power switch between sessions.
- Battery life: ESPresense keeps WiFi and BLE scanning on, so expect roughly 90–150 mA. A 2,500–3,500 mAh 18650 gives about 17–39 hours. Estimate, not a measurement.
- Use an 18650 cell. LILYGO’s board has its own charge (HX6610S) and protection (IP3005A) chips.
- Charge reminder: the template sets Battery voltage pin to GPIO 3 with a ×2 divider, so the node reports Battery (%) and Battery Voltage to Home Assistant. Add an automation to notify you below, say, 20 %.
- Install the
esp32s3-cdcflavor. USB-C goes to the S3’s native USB; the plainesp32s3build talks on the UART pins instead. If flashing fails, hold BOOT and press reset. - There’s no user LED: the red LED shows power and the other two show charging. The
esp32s3build defaults to an LED on GPIO 2, so the template clears the LED list. - The 4-pin connector is UART (RX, TX, 3V3, GND), not Qwiic. For I2C, use two free header pins, for example 17/18.
- GPIO 15/16 drive the 32 kHz crystal. GPIO 35–37 are used by the octal PSRAM.
Sources
Section titled “Sources”- LILYGO T-Energy-S3 repo (README,
pin_config.h, V1.0 schematic) - CNX Software: T-Energy-S3