XIAO ESP32-C3: Kraftig mikrokontroller i miniformat

MiddelsKode på GitHub5 min lesetid

Størrelsen på et frimerke, men kraften til en fullverdig IoT-plattform. Seeed Studio XIAO ESP32-C3 har blitt en favoritt blant makere som trenger WiFi, Bluetooth og lavt strømforbruk i et format som knapt tar plass i prosjektboksen. La oss se på hvordan du kommer i gang, og hva som gjør dette lille kortet så kapabelt.

Hva du trenger

  • Seeed Studio XIAO ESP32-C3
  • USB-C kabel (data, ikke bare lading)
  • Arduino IDE eller PlatformIO installert
  • LiPo-batteri (valgfritt, for batteriprosjektet)
  • En sensor eller LED til testing (f.eks. DHT22 eller en enkel lysdiode)
  • Jumperkabler

Trenger du komponenter til prosjektet? Du finner både XIAO-kort, sensorer og batterier i elektronikk– og kits-kategoriene hos RoboNordic.

XIAO ESP32-C3 spesifikasjoner

Det som skiller denne modellen fra tidligere XIAO-varianter er RISC-V-arkitekturen. I stedet for den vanlige Xtensa-kjernen fra Espressif, bruker ESP32-C3 en enkelt-kjerne RISC-V-prosessor på 160 MHz. Dette gir god ytelse til de fleste IoT-oppgaver, samtidig som strømforbruket holdes lavt.

  • CPU: 32-bit RISC-V, enkelt-kjerne, opptil 160 MHz
  • Trådløst: WiFi 802.11 b/g/n og Bluetooth 5.0 (BLE)
  • Minne: 400KB SRAM, 4MB flash
  • GPIO: 11 digitale pinner, flere med analog inngang
  • Grensesnitt: I2C, SPI, UART, I2S
  • Strøm: USB-C samt ladekrets for LiPo-batteri innebygd
  • Mål: 21 x 17.5 mm

Det innebygde ladeIC-et for LiPo-batterier er en stor fordel — du slipper å legge til separate ladekomponenter i batteridrevne prosjekter, noe som sparer både plass og utviklingstid.

Tips: Hold av litt ekstra flash-plass hvis du planlegger å bruke OTA-oppdateringer (over-the-air). Med kun 4MB flash kan det bli trangt hvis appen din vokser, spesielt kombinert med SPIFFS eller LittleFS for fillagring.

Arduino-oppsett steg for steg

Å sette opp XIAO ESP32-C3 i Arduino IDE tar bare noen minutter, men det er et par fallgruver du bør unngå.

  1. Åpne Arduino IDE og gå til Fil > Innstillinger
  2. Lim inn følgende URL under «Additional Boards Manager URLs»:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  3. Gå til Verktøy > Board > Boards Manager, søk etter «esp32» og installer pakken fra Espressif Systems
  4. Velg XIAO_ESP32C3 under Verktøy > Board > ESP32 Arduino
  5. Koble til kortet via USB-C og velg riktig COM-port
  6. Last opp en enkel test som Blink, men bytt ut pin-nummeret med LED_BUILTIN

Hvis opplasting feiler med «Failed to connect», er dette som regel driverrelatert eller et timing-problem med bootloader-modus.

Tips: Hvis kortet ikke dukker opp som COM-port, hold inne BOOT-knappen mens du kobler til USB-kabelen. Dette tvinger kortet inn i bootloader-modus manuelt.

WiFi og Bluetooth i praksis

ESP32-C3 støtter ikke samtidig WiFi og klassisk Bluetooth, men BLE (Bluetooth Low Energy) fungerer fint side om side med WiFi i de fleste bruksområder — så lenge du er bevisst på minnebruk og timing.

Et enkelt eksempel på WiFi-tilkobling:

#include <WiFi.h>

const char* ssid = "DITT_WIFI_NAVN";
const char* passord = "DITT_WIFI_PASSORD";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, passord);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Tilkoblet!");
}

void loop() {
  // Hovedprogrammet ditt her
}

For BLE anbefaler vi biblioteket ESP32 BLE Arduino, som følger med i ESP32-pakken. Det gjør det enkelt å sette opp en GATT-server for sensorutlesing til en mobilapp.

Dyp søvn og strømsparing

Skal du kjøre XIAO ESP32-C3 på batteri over tid, er dyp søvn (deep sleep) helt essensielt. Kortet trekker typisk noen titalls milliampere aktivt, men kan komme ned mot mikroampere-nivå i dyp søvn.

#include "esp_sleep.h"

void setup() {
  Serial.begin(115200);
  esp_sleep_enable_timer_wakeup(60ULL * 1000000ULL); // 60 sekunder
  Serial.println("Går i dyp søvn...");
  esp_deep_sleep_start();
}

void loop() {
  // Kjøres aldri: brikken våkner via reset etter dyp søvn
}

Merk at ESP32-C3 mister RAM-innhold under dyp søvn, i motsetning til lettere søvnmoduser. Bruk RTC_DATA_ATTR for variabler du trenger å bevare over søvnsykluser.

Tips: Mål faktisk strømforbruk med et multimeter eller en dedikert strømprofilerer før du regner ut forventet batterilevetid. Databladverdier er ofte optimistiske sammenlignet med reelle målinger på et ferdig kort.

Batteriprosjekt: Trådløs temperaturlogger

Et naturlig prosjekt som kombinerer alt vi har vært innom, er en batteridrevet temperaturlogger som våkner hvert 10. minutt, leser av en sensor, sender dataene over WiFi, og går tilbake i dyp søvn.

XIAO ESP32-C3 RISC-V LiPo 3.7V DHT22 Sensor Status-LED BAT+ GND 3V3 GND D0 (signal) D1 VCC GND Signal

Med denne oppsettet kan du forvente flere måneder med batterilevetid på et 1000 mAh LiPo-batteri, avhengig av søvnintervallet og WiFi-tilkoblingstid.

Tips: Reduser WiFi-tilkoblingstiden ved å lagre kanal og BSSID fra forrige tilkobling i RTC-minne. Dette kan kutte tilkoblingstiden betydelig sammenlignet med et fullt scan hver gang.

Vanlige feil

  • Bruker ladekabel uten dataledninger: Kortet lades, men vises aldri som COM-port. Bytt til en kjent god USB-C datakabel.
  • Glemmer strømbudsjett for eksterne sensorer: Noen sensorer trekker for mye strøm fra 3V3-pinnen under oppstart og forårsaker brown-out. Vurder en egen spenningsregulator ved høyt strømforbruk.
  • Forventer RAM-persistens gjennom dyp søvn: Vanlige globale variabler nullstilles. Bruk RTC_DATA_ATTR for data som må overleve søvn.
  • Overser strømbegrensning på ladekretsen: Standard ladestrøm er satt til en fast verdi i firmware. Sjekk databladet før du kobler til store batterier som krever raskere lading.
  • Feil boardvalg i Arduino IDE: Å velge feil ESP32-variant fører til feil pin-mapping og opplastingsfeil som kan være vanskelige å feilsøke.

Avsluttende tanker

XIAO ESP32-C3 er et imponerende lite kort som gjør det enkelt å bygge trådløse, batteridrevne prosjekter uten å ofre ytelse. Kombinasjonen av RISC-V-arkitektur, innebygd ladekrets og solid Arduino-støtte gjør det til et naturlig valg for alt fra sensor-noder til bærbare enheter.

For dypere teknisk detalj, se Seeed Studios offisielle dokumentasjon og Espressifs ESP32-C3 databladside, som begge holdes oppdatert med de nyeste firmware-endringene.

Koden på GitHub
All kode fra denne guiden – kompilert og klar til bruk – ligger i det åpne repoet vårt: robonordic-prosjekter/mikrokontrollere/xiao-esp32-c3

Mer om elektronikk og sensorer

Se alle →