E klenge Package vu Seeed XIAO ESP32 Boards ass hei a sonneg Galera fir mech ukomm, an déi éischt Saach, déi meng Ae gefaangen huet, war d’Bestëmmung fir eng Batterie an eng extern RF Antenne.
Am Fall wou iergendeen sech freet, gëtt XIAO “SHYOW” ausgeschwat oder no genuch.
Dëst ass e ganz interessant klengt Board fir Batterie-ugedriwwen Projeten, besonnesch wou den Apparat de gréissten Deel vu sengem Liewen schlofe kann a wake just wann eppes geschitt.
De Bord
Dëst ass de Seeed Studio XIAO ESP32-C5. Den ESP32-C5 ass en Single-Core 32-Bit RISC-V Apparat deen op bis zu 240 MHz leeft, mat 8 MB PSRAM an 8 MB Flash. Ech huelen un datt d’Iwwerschrëft soll sinn “DUAL-BAND 2.4Ghz an 5Ghz WiFi”. Keng flott bloen Himmel Fotoen dës Kéier – d’AI huet se komplett verwiesselt sou zréck op Old-School Fotografie 🙂
De XIAO C5 ënnerstëtzt:
- 2,4 GHz an 5 GHz Dual-Band Wi-Fi 6
- Bluetooth 5 LE
- Zigbee 3.0
- Thread 1.4
- I2C, SPI an UART
- Bis zu 11 GPIOs
- Fënnef ADC Channels
- JTAG Verbindungen op der hënneschter Pads
- Onboard Batterie Laden a Batteriespannungsmessung
De Board ass déi vertraute XIAO Gréisst, just 21 × 17,8 mm.
Déi extern Antenne
Dës Brieder hunn eng kleng U.FL-R-SMT1 Connector fir d’RF Antenne. Ech hunn dës ëmmer als schmerzhaft geduecht, awer wann ech meng rezent Bréifkëscht Alarm gemaach hunn, ass et mir opgefall datt an eng extern Antenne fir d’LoRa praktesch wier amplaz d’While Lot ausserhalb vun der Bréifkëscht ze setzen – awer ech digresséieren.
Déi gutt Noriicht ass datt d’Brieder mat enger Antenne geliwwert ginn. D’Antenne mat dësen geliwwert ass markéiert “XIAO FPC Antenne A-01”.
Also, an der Praxis, brauch ech net fir eng passend Antenne op d’Juegd ze goen ier ech se testen.
D’Antenneverbindung ass wichteg fir normal RF Operatioun. Och wann den ESP32-C5 selwer selbstverständlech wäert opmaachen a lafen ouni d’Antenne ugeschloss, ech géif de Radio net bewosst bedreiwen ouni eng passend Antenne verbonnen.
Den ESP32-C5 ënnerstëtzt souwuel 2,4 GHz wéi och 5 GHz Wi-Fi, sou datt d’Antenne gëeegent ass fir d’Frequenzen déi benotzt ginn.
Déi Batterie Pads
Op der Ënnersäit vum Board sinn zwee kloer markéiert Batteriepads: – BAT + Dës sinn geduecht fir eng 3,7 V Lithium Batterie.
De Comité enthält eng SGM40567 Batterie Opluedstatiounen ICa Seeed bitt och Circuiten fir d’Batteriespannung ze moossen. D’Batteriespannungsmessung benotzt GPIO6, mat GPIO26 kontrolléiert de Miesskreeslaf sou datt et deaktivéiert ka ginn wann et net néideg ass fir Stroum ze spueren.
Seeed seet datt den XIAO ESP32-C5 mat engem Computer iwwer USB verbonne ka bleiwen, während eng Batterie ugeschloss ass, dank dem agebaute Batterieschutz / Management Circuit vum Board.
Natierlech muss d’Batteriepolaritéit suergfälteg beobachtet ginn wann Dir un d’Pads soldéiert.
Ass d’Batterieverbindung wierklech fir Schlofmodus?
Net spezifesch. D’Batteriepads liwweren einfach d’Mëttel fir de Bord vun enger Batterie unzedreiwen. Schlofmodus ass eng Funktioun vun der ESP32-C5 Firmware, awer d’Kombinatioun vun enger Batterieverbindung an dem ganz nidderegen Deep-Schlofstroum mécht dëse Board besonnesch interessant fir Batterie-ugedriwwen Sensoren.
Seeed gëtt eng schaffen déif-Schlof Beispill an deem D0 (GPIO1 / LP_GPIO1) gëtt benotzt fir den ESP32-C5 z’erwächen. De Verwaltungsrot ënnerstëtzt och Timer erwächen.
Eng nëtzlech Warnung vu Seeed ass datt d’JTAG Pins – MTMS, MTDI, MTCK an MTDO – sollten am léifsten fir JTAG gehale ginn anstatt als déif Schlof Wake-up Pins während der Entwécklung benotzt ze ginn.
Och wann de XIAO an déif Schlof erakënnt, verschwënnt säin USB Hafen. Et muss erëm erwächen ier den USB Hafen sichtbar ass.
Stroumverbrauch
Dëst ass wou d’Saachen interessant ginn … den ESP32-C5 Dateblat gëtt déi folgend typesch Chipstroum:
| Modus | Typesch Stroum |
|---|---|
| Liicht Schlof | 0,25 mA / 250 µA |
| Liicht Schlof mat den zousätzleche Kraaft Domainen zougemaach | 0,06 mA / 60 µA |
| Déif Schlof | 0,012 mA / 12 µA |
| Kraaft aus | 0,002 mA / 2 µA |
Des sinn ESP32-C5 Chip Figurengemooss vun enger 3,3 V Versuergung ënner de Konditiounen, déi vun Espressif spezifizéiert sinn. Si sollten net automatesch als de komplette Stroumverbrauch vun engem fäerdege Batterie-ugedriwwenen Projet behandelt ginn.
Den erwächen Stroum ass eng ganz aner Saach. Zum Beispill gëtt den ESP32-C5 Dateblatt Peak Wi-Fi Iwwerdroungsstroum sou héich wéi ongeféier 339 mA an 2,4 GHz an 381 mA op 5 GHzjee no Transmissiounsmodus a Kraaftniveau.
Dat heescht déi wichteg Figur fir eng real Batterie Projet ass den duerchschnëttlech aktuell iwwer Zäitnet nëmmen d’Déifschloffigur … zum Beispill, e Sensor, dee meeschtens bei ongeféier 12 µA schléift, fir eng kuerz Zäit erwächt, mat Wi-Fi verbënnt, e Message schéckt an direkt zréck schléift, kéint e ganz nidderegen Duerchschnëttsverbrauch hunn.
Dat ass genau d’Zort vun Uwendung déi ech fir dës Brieder am Kapp hunn.
En nëtzlechen Ënnerscheed: Liicht Schlof versus déif Schlof
Liicht Schlof léisst erheblech méi vum System verfügbar a ka séier erwächen. Deep Schlof schléisst d’CPUs an déi meescht vun den digitale Peripherieger aus, léisst de RTC System a Low-Power Memory lafen.
Fir en einfachen Batteriesensor deen nëmme muss erwächen wann e Schalter den Zoustand ännert, oder a reegelméissegen Intervalle, déif Schlof ass den interessante Modus.
Den ESP32-C5 enthält och e getrennten Low-Power RISC-V Prozessor, deen e puer interessant Méiglechkeeten opmaacht fir Uwendungen déi Low-Power Veraarbechtung brauchen, während den Haaptprozessor schléift.
Wat ech wëll testen
Anstatt einfach d’12 µA Figur aus dem Dateblat ze akzeptéieren, ass de offensichtleche nächste Schrëtt eng vun dësen aktuellen XIAO ESP32-C5 Boards ze moossen.
Ech wëll feststellen:
- Aktuelle Verbrauch beim Laafen normal.
- Aktuelle Konsum am Liicht Schlof.
- Aktuelle Konsum am déiwe Schlof.
- Stroum gezeechent wann Dir erwächt a benotzt Wi-Fi.
- Wéi séier et aus déiwe Schlof erwächt.
- Wéi praktesch ass et e GPIO als Erwächen-Input ze benotzen.
- Schlussendlech ass den duerchschnëttleche Stroum vun engem echte Batterie-ugedriwwenen Sensor.
Dat wäert eng vill méi nëtzlech Batterieliewensfigur ginn wéi einfach d’Batteriekapazitéit duerch den ugekënnegten Deep-Schlofstroum ze deelen.
Firwat dëse Bord meng Opmierksamkeet gefaang huet
D’Kombinatioun ass zimmlech zwéngend: e klenge 21 × 17,8 mm Board, Dual-Band Wi-Fi 6, Bluetooth LE, Zigbee a Thread, Batterieladung, eng extern Antenneverbindung an en zitéierten ESP32-C5 Deep-Schlofstroum vun nëmmen 12 µA. Fir Zigbee, ech denken, datt déi Säit dovunner muss waarden bis et méi wéi just Schalter / Glühbir Beispiller schwiewen – ech hu Probleemer virzestellen datt dëse Board mat Zigbee benotzt gëtt fir e Liicht un an auszeschalten well Smartplugs SOU bëlleg sinn (obwuel ech de Punkt kéint fehlen). Seeed hu vill Informatioun zum Thema Zigbee wann Dir wëllt méi déif graven.
Fir eppes wat normalerweis déi ganzen Zäit waakreg muss sinn, ass dee Power Deep Sleep Power Wäert net besonnesch spannend, awer fir eppes wat Méint laang an enger Bréifkëscht, Paart, Schapp, Gaart, Schaf oder aner Fernplaz sëtzt an nëmmen erwächt wann et néideg ass, kéint et wierklech interessant sinn.
De nächste Schrëtt ass also offensichtlech: gitt een op d’Bänk, setzt eng Batterie op déi BAT Pads, a moosst wat de komplette Seeed Board tatsächlech verbraucht.
Versuch 1 – 2.4G oder 5G WiFi
Et muss een iergendwou ufänken – a mat ESPHOME ass dat ganz einfach. Ech hunn Suer gemaach, ech hat 2 WiFi SSIDs verfügbar comfast a comfast5g (aus offensichtleche Grënn) – datselwecht Passwuert dat ech an enger ESPHOME Geheimnisdatei halen.
Hei ass mäin initialen Testcode – dee fir d’éischt Kéier geschafft huet (mat ESPHOME blénkt Dir den Chip iwwer Serien déi éischte Kéier – a vun dann un kënnt Dir WiFi benotzen.
###############################################################################
# Seeed Studio XIAO ESP32-C5
#
# First test firmware
# Pete Scargill September 2026
#
# What this version does:
# - Connects to my 2.4 GHz "comfast" Wi-Fi network initially
# - Provides a Web UI
# - Provides the Home Assistant ESPHome API
# - API encryption is deliberately NOT enabled
# - Measures the voltage of a connected Li-ion battery
# - Provides a Web UI selector to switch between:
# comfast = 2.4 GHz
# comfast5g = 5 GHz
# - Displays Wi-Fi signal strength
# - Displays firmware version
# - offers deep sleep at a button press
#
# What this version does not do:
# - No external I/O
# - No sensors other than battery voltage
#
###############################################################################
substitutions:
device_name: xiao-esp32-c5
friendly_name: "XIAO ESP32-C5"
firmware_version: "0.12"
esphome:
name: ${device_name}
friendly_name: ${friendly_name}
comment: "Seeed Studio XIAO ESP32-C5 - Wi-Fi and battery test"
project:
name: "pete.xiao_esp32_c5"
version: ${firmware_version}
###############################################################################
# ESP32-C5
###############################################################################
esp32:
board: esp32-c5-devkitc-1
framework:
type: esp-idf
###############################################################################
# Logging
###############################################################################
logger:
###############################################################################
# Home Assistant API
#
# Deliberately NO encryption.
###############################################################################
### Reboot timeout 0 to stop it rebooting if no clients while testing
api:
reboot_timeout: 0s
###############################################################################
# OTA updates
###############################################################################
ota:
- platform: esphome
###############################################################################
# Wi-Fi
#
# We start on the 2.4 GHz network.
#
# AUTO allows the ESP32-C5 to use either supported band. The Web UI selector
# below chooses which of our two SSIDs it connects to.
###############################################################################
wifi:
ssid: "wififorus"
password: !secret wifi_password
band_mode: AUTO
# no timeout while testing.
reboot_timeout: 0s
###############################################################################
# Web interface
#
# Version 2 is the current ESPHome web interface.
# "local: true" means the supporting web files are stored on the ESP itself.
###############################################################################
web_server:
port: 80
version: 3
local: true
###############################################################################
# Basic status
###############################################################################
text_sensor:
# Our own project/firmware version.
# This is deliberately separate from the ESPHome version.
- platform: template
name: "Firmware Version"
lambda: |-
return {"${firmware_version}"};
update_interval: 60s
icon: "mdi:tag"
web_server:
sorting_weight: 10
entity_category: diagnostic
# Shows the Wi-Fi network to which the C5 is currently connected.
- platform: wifi_info
ssid:
name: "WiFi SSID"
web_server:
sorting_weight: 10
ip_address:
name: "IP Address"
web_server:
sorting_weight: 11
sensor:
###########################################################################
# Wi-Fi signal strength
###########################################################################
- platform: wifi_signal
name: "WiFi Signal"
update_interval: 10s
unit_of_measurement: "dBm"
accuracy_decimals: 0
icon: "mdi:wifi"
web_server:
sorting_weight: 20
###########################################################################
# Battery voltage
#
# Seeed's XIAO ESP32-C5 uses:
#
# GPIO26 = enable battery measurement circuit
# GPIO6 = ADC battery voltage input
#
# The hardware uses a 1:2 voltage divider, so the ADC voltage is doubled.
###########################################################################
- platform: adc
pin: GPIO6
name: "Battery Voltage"
id: battery_voltage
attenuation: auto
update_interval: 10s
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 2.0
icon: "mdi:battery"
web_server:
sorting_weight: 5
# How long the C5 has been running since its last restart.
- platform: uptime
name: "Uptime"
update_interval: 10s
icon: "mdi:timer-outline"
###############################################################################
# Define battery management
# GPIO26 is battery management enable
###############################################################################
output:
- platform: gpio
pin: GPIO26
id: battery_measurement_enable
###############################################################################
# On-board LED
# GPIO27 controls the user LED.
###############################################################################
- platform: gpio
pin: GPIO27
id: onboard_led
inverted: true
###############################################################################
# Battery measurement enable
#
# GPIO26 controls the battery-voltage measurement circuit on the XIAO C5.
# We leave it enabled in this first version because we are not yet trying
# to minimise battery consumption.
###############################################################################
switch:
- platform: output
name: "Battery Measurement Enable"
id: battery_measurement_switch
output: battery_measurement_enable
restore_mode: ALWAYS_ON
web_server:
sorting_weight: 2
###############################################################################
# GPIO27 controls use LED - add a control into the WebUI
###############################################################################
- platform: output
name: "On-board LED"
output: onboard_led
icon: "mdi:led-on"
web_server:
sorting_weight: 1
###############################################################################
# Deep sleep
#
# No automatic sleep time is configured yet.
# The Sleep Now button below allows us to test deep sleep manually.
###############################################################################
deep_sleep:
id: c5_deep_sleep
###############################################################################
# Manual deep-sleep test
#
# Pressing "Sleep Now" immediately puts the C5 into deep sleep.
# At this stage there is no automatic wake-up timer, so the board will
# remain asleep until it is reset or otherwise given a configured wake source.
###############################################################################
button:
- platform: template
name: "Sleep Now"
icon: "mdi:sleep"
on_press:
- deep_sleep.enter:
id: c5_deep_sleep
web_server:
sorting_weight: 4
###############################################################################
# Wi-Fi band/network selector
#
# This is deliberately simple.
#
# Selecting "2.4 GHz" connects to:
# comfast
#
# Selecting "5 GHz" connects to:
# comfast5g
#
# Both use the same password stored in secrets.yaml.
#
# Changing networks will temporarily disconnect the Web UI and Home
# Assistant API while the C5 reconnects.
###############################################################################
select:
- platform: template
name: "WiFi Network"
id: wifi_network
icon: "mdi:wifi-cog"
optimistic: true
restore_value: true
options:
- "2.4 GHz"
- "5 GHz"
initial_option: "2.4 GHz"
set_action:
- if:
condition:
lambda: 'return x == "2.4 GHz";'
then:
- logger.log: "Switching Wi-Fi to 2.4 GHz - comfast"
- wifi.configure:
ssid: "comfast"
password: !secret wifi_password
save: true
timeout: 30s
else:
- logger.log: "Switching Wi-Fi to 5 GHz - comfast5g"
- wifi.configure:
ssid: "comfast5g"
password: !secret wifi_password
save: true
timeout: 30s
web_server:
sorting_weight: 3an déi resultéierend WebUI déi an engem Browser funktionnéiert – déiselwecht Adress wéi den ESP selwer – port 80, wann net anescht uginn.
An et huet GESCHAFFT. De Board huet op ssid “comfast” ugedriwwen a wann ech den Dropdown op 5Ghz geännert hunn, ass et op den 5Ghz WiFi “comfast5g” gewiesselt (Browserfrëschung brauch zu deem Zäitpunkt). Batteriespannung, Signalstäerkt, ssid, IP Adress – Signalstäerkt – alles wat Dir braucht fir de Ball ze rullen. Net beandrockt? Déi meescht ESPs an aner IOT Apparater kënnen net op d’5Ghz Band zougräifen an déi 2.4Ghz Band gëtt zimlech séier voll.

Natierlech wollt ech komplett sinn – also zréck op 2.4Ghz geflunn

Eng aner Erfrëschung fir d’Resultater ze gesinn ..

Notéiert d’Signalstäerkt … Nächst maachen ech e puer niddereg Kraafttesten awer net schlecht fir en einfachen Start …
Mat enger einfacher Ergänzung zu mengem Sensor Sektioun – ech hunn den Up-Time Indikator bäigefüügt – praktesch ze wëssen wann Dir experimentéiert ..
# How long the C5 has been running since its last restart.
- platform: uptime
name: "Uptime"
update_interval: 10s
icon: "mdi:timer-outline"A grad esou…

Eng lescht Saach fir den Owend – de 4.00v ass well ech de Board vun engem vu menge PC USB Ports lafen … a fir elo ze beréieren ass de Board nëmme liicht waarm.
Dunn hunn ech dat am Log entdeckt – anscheinend ginn et Standard ESP Astellungen déi den ESP32-C5 ausschalten wa keng Clienten – ech wëll net datt et ausschalt wann ech testen sou … e klenge Mod op API a WiFi Sektiounen …
### Reboot timeout 0 to stop it rebooting if no clients while testing api: reboot_timeout: 0s ############################################################################### # Wi-Fi # # We start on the 2.4 GHz network. Change the name of your SSID(s) to match and ensure # You have the relevant password secret(s) in your ESPHOME secrets file # # AUTO allows the ESP32-C5 to use either supported band. The Web UI selector # below chooses which of our two SSIDs it connects to. ############################################################################### wifi: ssid: "comfast" password: !secret wifi_password band_mode: AUTO # no timeout while testing. reboot_timeout: 0s
An all Fall ass de reboot_timeout d’Ännerung déi den C5 Timing stoppt. Zënter datt dës 2 Ännerungen gemaach goufen, ass d’Eenheet fir 10 Stonnen Iwwernuechtung op inklusiv eng Ännerung vun 2.4Ghz WiFi op 5Ghz WiFi mat der WebUI.
Notéiert datt wärend den ESP32-C5 wéi e groussen Upgrade schéngt, huet den ESP32-S3 méi RAM, awer de fréiere ass ëmmer nach Stroosse virun de Likes vum gemeinsame ESP32-C3.
Wann Dir mäi Artikel iwwer d’C3-baséiert Abrobot Eenheet mat klenge Display liest – ech hunn et niewent dem C5 am Moment am Test lafen – wa béid op 2.4Ghz WiFi zimlech no bei mengem Bürorouter sinn, notéiert datt ech en -17dBm WiFi Signal op der C5 kréien, awer e -50dBm Signal op der C3. Ech hat ursprénglech schrecklech Probleemer fir e Signal op der (intern Antenne) C3 vu mengem Gang ze kréien an hunn e WiFi Zougangspunkt eigentlech a mengem Büro missen aféieren fir zefriddestellend Operatioun ze kréien. Dat ass absolut net néideg fir dëse Seeed C5 Modul – OK déi extern Antenne wier e Péng a Raumbegrenzte Projete fir sécher ze sinn, awer dat ass e BESCHREIWEN Signalënnerscheed wann de Raum kee Problem ass.

Nächst – eng 3v6 Lithium ION Batterie – wat ze vill wier fir en onreguléierten ESP wéi et um 4.2v peak ass – direkt un d’BAT Pads op der C5 verkabelt. Seeed Websäit seet datt wéinst dem effizienten Buck Converter – dëst just gutt ass. Mat der Batterie sécher op den C5 verkabelt, weist mäi 5-Zifferen Meter eng Spannung e puer Prozent méi héich wéi déi onkorrigéiert Spannungslesung vum C5 Board selwer.
Ech loossen et e bëssen ugeschloss fir sech ze settelen.. net schlofen – just laafen – d’Batterie ass zënter Méint an engem Schaf, sou datt et am Schouss vun de Gëtter ass wéi laang dat dauert. Zäit fir Shopping ze goen.

Déif Schlof
Nächst Experiment … füügt déif Schloffäegkeet a Software an e WebUI Deep Sleep Button fir ze testen …
###############################################################################
# Deep sleep
#
# No automatic sleep time is configured yet.
# The Sleep Now button below allows us to test deep sleep manually.
###############################################################################
deep_sleep:
id: c5_deep_sleep
###############################################################################
# Manual deep-sleep test
#
# Pressing "Sleep Now" immediately puts the C5 into deep sleep.
# At this stage there is no automatic wake-up timer, so the board will
# remain asleep until it is reset or otherwise given a configured wake source.
###############################################################################
button:
- platform: template
name: "Sleep Now"
icon: "mdi:sleep"
on_press:
- deep_sleep.enter:
id: c5_deep_sleepMat dem uewe geschitt näischt bis ech den déif Schlofknäppchen am WebUI schloen, da geet de C5 schlofen ouni Wakeup Time Set.
Meter op mA Gamme a Serie mat der Kraaft an e schnelle Scheck ier Dir den C5 schlofen. Ech gesinn typesch 120ma am normale Gebrauch – Batterie bei 3.73ma no der WebUI. An elo, 15uA. Ech denken, datt de Vëlo d’Kraaft et erëm bréngt. Tatsächlech 94ma fir e puer Sekonnen dann 120ma wann de WiFi an domat WebUI online kommen. Ooh-err … no e puer méi Sekonnen gesinn ech 30ma oder sou. D0 zu Buedem Moment erwecht och den C5.
Ech sinn op 2.4Ghz WiFi iwwregens bis elo. Ech kann op 5Ghz WiFi wiesselen op engem Laf also ech wäert.D’Benotzung vum 5Ghz Netzwierk mécht nëmmen e klengen Ënnerscheed zum Stroumverbrauch an natierlech am Schlofmodus wäert et net relevant sinn. Eng Saach, déi ech just gemierkt hunn – mam USB-C Connector uewen a mat enger 18650 Batterie (onbekannt Ladungszoustand) déi den C5 ugedriwwen huet, hunn ech et e puer Stonnen hannerlooss, no deem de Board gestuerwen ass – kee Betrag u Knäppchen dréckt géif et erëm an d’Liewen bréngen. Wann ech USB fir e puer Minutten ugeschloss gouf, gouf et offensichtlech datt den USB d’Batterie gelueden huet – soubal de Board erëm an d’Liewe geruff ass, hunn ech d’USB Verbindung ewechgeholl an no enger Zäit ass de Board erëm gestuerwen – bei ongeféier 2.75v op mengem Meter (2.55v op der interner Ladungsindikatioun). Ech hunn USB erëm ugeschloss an dat war wann ech festgestallt hunn datt d’rout Luucht uewe lénks vum USB Connector, anstatt den zimlech nëtzlosen POWER Indikator, deen Dir dacks op esou Boards fannt, blénkt fir LARGING ze weisen. Dat gefällt mir.
Ech verloossen de Verwaltungsrot iwwer USB fir e puer Stonnen ze lueden a kucken wat geschitt.
Bedenkt datt mat enger voll gelueden 18840 Batterie an dem ESP32-C5 voll waakreg, dee leschte schéngt zimmlech waarm ze ginn.
Méi geschwënn…
Quellen
Seeed Studio – XIAO ESP32-C5 Getting Started:
Espressif ESP32-C5 Series Spezifikatiounen
