V
Visla Hardware
Portal R&D
🧩 Moduli & Shield ✓ Verified · 2026-06-05 ✓ In stock 🧪 Tested bench

XIAO ESP32-S3 (Seeed board)

Seeed Studio (chip ESP32-S3R8)
🏭 Chip @ 1k pcs
€7.49
production BOM
Form factor 21×17.8mm14µA deep sleep boardLiPo charging onboard
📑 Indice sezioni

Curiosity

Seeed XIAO ESP32-S3 (SKU 113991114, $7.49): variant board del chip ESP32-S3, con form factor “thumb-size” 21×17.8mm classico XIAO, antenna ceramic + UFL onboard, LiPo charging management integrato, 4 modi power (Active/Modem/Light/Deep sleep). Vincoli importanti rispetto al chip puro: solo 11 GPIO esposti (vs 45 chip), 1× UART (vs 3), 1× I2C (vs 2), 1× SPI (vs 4) — il resto resta interno al modulo. Per Visla v2 PCB NON usiamo questo board ma il modulo ESP32-S3-MINI-1-N8 direttamente (più piccolo, JLC-friendly per PCBA). Lo XIAO è il bench dev kit.

⚡ Bench-test consumi Visla 2026-06-05 (FNB58 inline + sketch ciclo)

Setup: XIAO ESP32-S3 standalone (no Expansion Board), cavo USB-C → FNB58 USB-C inline → Mac. Sketch test-power-modes.ino che cicla 5 stati ogni ~103s, durata cattura 320s = 3 cicli completi. Sample rate FNB58 ~24 Hz via Bluetooth.

XIAO ESP32-S3 power consumption FNB58 bench 2026-06-05

Risultati misurati

Stato cicliAtteso datasheetMisurato benchVerdetto
ACTIVE_FULL (3s) busy loop CPU 240MHz80-100 mA42-43 mA picco⚠️ Sotto datasheet — averaging FNB58 + CPU non saturava 100%
ACTIVE_IDLE (10s) loop + delay25-30 mA28 mA stable✅ centro range
MODEM_SLEEP (10s) WiFi+BLE off25-27 mA28 mAIndistinguibile da ACTIVE_IDLE — USB-CDC native sempre attivo
LIGHT_SLEEP (20s) timer wake1-3 mA2.7-3.0 mA✅ OK, floor USB-CDC quiescent
DEEP_SLEEP (60s)14 µA (datasheet)2.7-3.0 mABLOCKED by USB-CDC — il transceiver USB-OTG non si spegne mai col cavo connesso

Statistiche per fase (3 cicli, 3420 samples)

Phase clusterN samplesAvg mAMinMaxStdDev% tempo
ACTIVE_IDLE/MODEM_SLEEP (~28mA cluster)190829.2920.9043.004.6155.8%
LIGHT/DEEP_SLEEP w/USB (~3mA cluster)15122.822.6010.100.7744.2%

Cycle average: 17.59 mA · 5.13V USB → potenza media 90.2 mW · capacità ciclo 1.27 mAh per 260s.

🔋 Estrapolazione battery life Visla v2 — scenario reale veicolare

Scenario production realistico Visla v2 Auto: 1 ora di movimento + 23 ore fermo ogni giorno (=4.17% drive time). Tre profili di consumo basati su come gestire le 23h fermo:

Componenti consumo durante “drive” (1h continuo):

  • XIAO MCU active continuous: 28 mA (bench-verified ✅)
  • GPS attivo (es. MAX-M10S): ~10 mA addizionali
  • Modem A7670 TX peak medi (1 burst/min @ 50 mA × 5s): ~4 mA averaged
  • Totale stima drive: ~42 mA durante 1h × 3600s = 42 mAh consumati

Componenti consumo durante “stopped” (23h) — 3 strategie:

StrategiamA media23h consumate
🟢 DEEP_SLEEP no-USB + wake hourly heartbeat (5s @ 42mA ogni ora)0.07 mA + 23×5s/3600×42 = 0.84 mA avg19.3 mAh
🟡 LIGHT_SLEEP con IMU motion-wake (3 mA always-on)3 mA69 mAh
🔴 No sleep — modem registered idle (worst case)25 mA575 mAh

📅 Durata batteria per dimensione LiPo

LiPo capacityStrategia 🟢 deep sleepStrategia 🟡 light sleepStrategia 🔴 always-on
500 mAh (wearable thin)8.1 giorni4.5 giorni19 ore
1000 mAh (compact tag)16.3 giorni9.0 giorni38 ore
1500 mAh (slim box)24.5 giorni13.5 giorni2.4 giorni
2000 mAh (medium box)32.6 giorni18.0 giorni3.2 giorni
3500 mAh (18650 cell)57 giorni = ~2 mesi ⭐⭐31.5 giorni5.7 giorni
5000 mAh (large pack)81.4 giorni45.0 giorni8.1 giorni

Sweet spot per Visla v2 Auto: LiPo 18650 3500 mAh + strategia 🟢 deep sleep + wake hourly heartbeat → ~2 mesi tra ricariche con guida 1h/giorno. Compatibile col target “carica mensile” per uso consumer.

Calcolo dettagliato strategia 🟢 (più realistica):

Daily budget:
  Drive 1h × 42 mA          = 42.0 mAh/day
  Sleep 23h × 0.014 mA      =  0.3 mAh/day
  Heartbeats 23 × 5s × 42mA =  1.3 mAh/day
  ─────────────────────────────────────────
  TOTALE                    = 43.6 mAh/day

LiPo 3500 mAh / 43.6 mAh/day = 80 giorni teorici
Con efficienza pratica 70% (charging losses + LiPo aging) = ~56 giorni

⚠️ Stime presuppongono strategia 🟢 con LiPo standalone (no USB). Con USB connessa floor 2.7 mA blocca il deep sleep e dimezza autonomy.

⚠️ Gotcha critico documentato in memoria (feedback_usb_cdc_blocks_deep_sleep): con USB-CDC connessa l’ESP32-S3 NON entra mai sotto ~2.5-2.7 mA. Per misurare il vero 14 µA datasheet → alimentare via LiPo battery senza USB attaccata.

📊 Osservazioni qualitative dal grafico

  1. Cicli puliti e ripetibili: 3 cicli identici visibili, periodo ~103s come da sketch
  2. Plateau ACTIVE_IDLE/MODEM_SLEEP perfettamente stabile a 28 mA — testimonia ottimo regolatore LDO onboard del XIAO
  3. Picchi ACTIVE_FULL a 42-43 mA brevi (~3s) → CPU max ma non era 100% saturata, datasheet 80-100 mA si vedrebbe solo con benchmarks NN o WiFi attivo
  4. Plateau LIGHT_SLEEP/DEEP_SLEEP a 2.7-3.0 mA molto stabile — buona indicazione che il chip ESP32-S3 entra correttamente in light sleep, è solo la USB a impedire il vero deep sleep
  5. Tensione USB stabile a 5.13V durante tutto il test — l’host Mac eroga senza brown-out anche durante i picchi
  6. “Ramp up” sospetto durante quello che dovrebbe essere deep sleep: rampa lineare ~2.7→28 mA in 60s — non è il chip che si sveglia gradualmente, è probabile un artefatto di FNB58 averaging o un comportamento di USB host che prova a sondare il device addormentato
  7. Energy budget realistico per Visla v2 bench: 17.59 mA avg consumati anche su un ciclo “ottimistico” 33% active → conferma che per autonomia mesi serve duty cycle <5% active

Dati raw

CSV completo della cattura: test-moduli/xiao-esp32s3-expansion-board/test-power-modes/logs/2026-06-05_fnb_capture.csv (7680 sample originali, 3420 dopo filtro settling).

JSON statistiche: /tmp/xiao-power-stats.json (locale, non checked-in).

Specs tecniche

ParametroValore
Chip embeddedESP32-S3R8 (variant con 8 MB PSRAM integrata)
CPUXtensa LX7 dual-core 240 MHz
PSRAM8 MB onboard
Flash8 MB onboard
WirelessWi-Fi 2.4 GHz + BLE 5.0 + Bluetooth Mesh
Antennaceramic onboard + U.FL connector per esterna
GPIO esposti XIAO11 (tutti PWM) — vs chip 45
ADC esposti XIAO9 — vs chip configurabili su tutti GPIO
UART esposti XIAO1 — vs chip 3 (vincolo Visla v2 modem+GPS)
I2C esposti XIAO1 — vs chip 2
SPI esposti XIAO1 — vs chip 4
LED onboard1× User LED · 1× Charge LED
Buttons1× Reset · 1× Boot
B2B connectorNON presente nello XIAO ESP32-S3 base (sì sul Sense variant)
Power inputType-C 5V · Battery 3.7V LiPo
Charging current50 mA fast / 3.8 mA trickle (lento vs nRF52840 100mA)
Operating Type-C5V @ 19 mA (con LDO overhead)
Operating BAT3.8V @ 22 mA
Modem-sleep27 mA (Wi-Fi/BLE off ma CPU on)
Light-sleep2 mA
Deep sleep14 µA (board level, chip nudo 10 µA)
Wi-Fi active220 mA
BLE active217 mA
Working temp-40°C / +65°C (vs chip nudo -40°C/+85°C — board perde 20°C!)
Dimensions21 × 17.8 mm (form factor standard XIAO)
SoftwareArduino IDE · MicroPython · ESP-IDF · PlatformIO
Seeed SKU113991114 (XIAO ESP32-S3 base)
Prezzo$7.49 (10+: $6.50)
Variants XIAO ESP32-S3base · Sense (+camera OV2640 + mic + microSD, longer form) · Plus (production SoM)
Note Seeed da Sep 2024Lotti CN warehouse includono pin header preassemblati, lotti vecchi US no
PackageInclude modulo XIAO + antenna esterna + 2× 7-pin header
Stock VislaXIAO ESP32-S3 Pre-Soldered in arrivo Seeed order #4000531955
HSCODE8517180050 (CN/US) · 8543709099 (EU)

🧪 Note dal bench Visla

  • $7.49 plug-and-play su Grove Base: bench dev kit più economico per testare ESP32-S3 senza saldare nulla
  • LiPo charging onboard 50mA: niente TP4056 esterno, USB-C plug-and-charge — risparmia PCB design
  • UFL antenna esterna $2.20: con stilo 2.4GHz Seeed range BLE/Wi-Fi >100m
  • 14 µA deep sleep verificato Seeed: comparabile col chip nudo (10 µA), aggiunge solo ~4 µA del regolatore LDO
  • ⚠️ Solo 1× UART esposto: per Visla v2 (A7670E modem + MAX-M10S GPS contemporanei) devi usare SoftwareSerial (instabile a >115200) o passare al modulo MINI standalone sul PCB
  • ⚠️ Working temp -40°C / +65°C: il chip ESP32-S3 nudo arriva a +85°C ma il board Seeed perde 20°C — per Visla v2 Auto estate italiana sotto sole l’enclosure può superare 65°C (problema)
  • ⚠️ Charging 50mA fast vs nRF52840 100mA: tempi ricarica ~2× più lenti per batterie >2000mAh
  • ⚠️ NO B2B connector nel XIAO base (Sense variant sì): per stack di add-on board fisso passare a Sense o usare Grove cables
  • ⚠️ Antenna ceramica onboard è debole: per qualsiasi range serio (>10m indoor con muri) attiva UFL + stilo esterno
  • ⚠️ Modem-sleep 27 mA è ALTO: non assumere “Wi-Fi disabilitato = low power”, devi entrare attivamente in light/deep sleep
  • USB-C 12V uccide: input rated 5V, dare 12V brucia il LDO buck interno (incidente bench Visla v1)

⚠️ Gotchas

  • Pin diversi dal chip nudo: il numbering XIAO (D0-D10) NON corrisponde ai GPIO Espressif — usa pin table Seeed
  • Reset button è “real reset” ma Boot button NON è collegato a GPIO 0 (è collegato a chip BOOT pin del controller USB) — diverso da DevKitC Espressif
  • Lotti pre-Sep 2024 NON hanno pin header — verifica al ricevimento (potresti dover saldare)
  • Operating temp 65°C max è limite hard del board, NON del chip — se chip-only design preferire MINI module per Visla v2 Auto outdoor estate
  • Sense variant è form factor PIÙ LUNGO (~25×21mm vs 21×17.8) — non drop-in con il base in production PCB
  • Plus variant ($16.40) ha B2B connector + microSD + RTC + more memory — production-ready ma costa 2×

🔗 Risorse