Skip to Content

Erste Schritte mit XIAO ESP32-S3-Plus und Arduino IDE

Erste Schritte mit XIAO ESP32-S3-Plus und Arduino IDE

Das XIAO ESP32-S3-Plus ist ein kompaktes und leistungsstarkes Mikrocontroller-Board, das für fortgeschrittene Embedded- und IoT-Projekte entwickelt wurde. Es basiert auf dem ESP32-S3 Dual-Core-Prozessor mit bis zu 240 MHz Taktfrequenz. Das Board verfügt über integriertes Wi-Fi und Bluetooth Low Energy für drahtlose Anwendungen.

Im Vergleich zum XIAO ESP32-S3 behält es die kleine Bauform bei, bietet jedoch mehr Speicher und erweiterte I/O-Fähigkeiten. Die Plus-Version verfügt über 16 MB Flash, 8 MB PSRAM und 20 GPIO-Pins.

Das Board unterstützt mehrere Schnittstellen wie UART, I2C, SPI und I2S. Außerdem sind integriertes Batterieladen und Energiesparmodi für einen energieeffizienten Betrieb enthalten.

In diesem Tutorial lernst du, wie du das XIAO ESP32-S3-Plus mit der Arduino IDE programmierst.

Wo kaufen

Das XIAO ESP32-S3-Plus kannst du bei Seeed Studio erwerben. Du benötigst außerdem ein USB-C-Kabel, falls du noch keines hast. Für rechenintensive Anwendungen auf dem Board könnte auch ein kleiner Kühlkörper nötig sein.

XIAO ESP32-S3-Plus

USB C Kabel

Kleiner Kühlkörper 9×9 mm

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Eigenschaften des XIAO ESP32-S3 Plus Boards

Das XIAO ESP32-S3-Plus basiert auf dem ESP32-S3R8 Mikrocontroller. Es verwendet eine Dual-Core Xtensa LX7 CPU mit einer Taktfrequenz von bis zu 240 MHz. Das Bild unten zeigt Vorder- und Rückseite des Boards.

Front and Back of XIAO ESP32-S3-Plus board
Vorder- und Rückseite des XIAO ESP32-S3-Plus Boards

Der Prozessor ist 32-Bit und für Embedded- und IoT-Anwendungen konzipiert. Er unterstützt Vektor-Instruktionen, die die Leistung bei Signalverarbeitung und KI-Aufgaben verbessern.

Das Board ist kompatibel mit gängigen Entwicklungsframeworks. Es unterstützt Arduino, MicroPython und ESP-IDF.

Speicherkonfiguration

Die Plus-Version bietet eine größere Speicherkonfiguration im Vergleich zum Standardmodell. Sie verfügt über 16 MB externen Flash-Speicher und integriert 8 MB PSRAM für die dynamische Datenverarbeitung.

Diese Kombination ermöglicht komplexere Anwendungen wie Pufferung, Bildverarbeitung und Edge-AI-Workloads.

Drahtlose Konnektivität

Das Board integriert ein vollständiges 2,4-GHz-Wi-Fi-Subsystem. Es unterstützt außerdem Bluetooth Low Energy 5.0 und Bluetooth Mesh. Eine externe Antenne kann über eine U.FL-Schnittstelle angeschlossen werden, was Reichweite und Signalstabilität in Embedded-Designs verbessert. Das Foto unten zeigt die Antenne neben dem XIAO ESP32-S3-Plus Board:

XIAO ESP32-S3-Plus with external Antenna
XIAO ESP32-S3-Plus mit externer Antenne

GPIO und Schnittstellen

Das XIAO ESP32-S3-Plus bietet eine erweiterte Anzahl an GPIO-Pins. Es stellt bis zu 20 GPIOs bereit. Weitere Pins sind über castellated Pads auf der Rückseite des Boards zugänglich. Das folgende Bild zeigt das Pinout des XIAO ESP32-S3-Plus:

Pinout des XIAO ESP32-S3-Plus (source)

Das Board unterstützt mehrere Kommunikationsschnittstellen. Es verfügt über zwei UART-Schnittstellen, eine I2C-Schnittstelle, eine I2S-Schnittstelle und zwei SPI-Schnittstellen. Außerdem sind analoge Eingänge über ADC-Kanäle vorhanden.

Ein B2B-Steckverbinder ist für Erweiterungsboards enthalten. Beachte, dass der B2B-Steckverbinder des XIAO ESP32-S3-Plus mit dem Wio-SX1262 Erweiterungsboard kompatibel ist, jedoch nicht mit dem Plug-in Kamera-Sensor-Board.

B2B connector of XIAO ESP32-S3-Plus
B2B-Steckverbinder des XIAO ESP32-S3-Plus

Stromversorgung

Das Board unterstützt USB Type-C als 5 V Stromversorgung. Es unterstützt auch den direkten Batteriebetrieb mit Li-Ion- oder LiPo-Zellen. Ein integrierter Batterieladekreis ist enthalten. Der Ladestrom kann bis zu 100 mA erreichen. Die Batterie muss über Lötpads auf der Rückseite des Boards angeschlossen werden:

Battery solder pads of XIAO ESP32-S3-Plus
Batterie-Lötpads des XIAO ESP32-S3-Plus

Das XIAO ESP32-S3-Plus bietet mehrere Energiemodi, darunter aktiv, Modem-Schlaf, Leichtschlaf und Tiefschlaf. Der Tiefschlafstrom kann im Mikroampere-Bereich liegen, was energiesparende Designs ermöglicht.

Physikalische Eigenschaften

Das Board folgt dem Standard-XIAO-Formfaktor. Es misst 21 x 17,8 x 5 mm. Die meisten GPIO-Pins haben einen Pinabstand von 2,54 mm für Breadboard-Kompatibilität. Zusätzlich gibt es 9 GPIO-Pins mit 1,27 mm Pitch SMD-Castellation, und die Rückseite enthält Debugging-Pads.

Dimensions of XIAO ESP32-S3-Plus
Abmessungen des XIAO ESP32-S3-Plus

Das Layout umfasst einen Reset-Button und einen Boot-Button. Außerdem sind Status-LEDs für Benutzerkontrolle und Batterieladeanzeige vorhanden.

Technische Spezifikationen

Die folgende Tabelle fasst die technischen Merkmale des XIAO ESP32-S3-Plus zusammen:

Parameter Spezifikation
Mikrocontroller ESP32-S3R8, Xtensa LX7 Dual-Core, 32-Bit
CPU-Frequenz Bis zu 240 MHz
Drahtlose Konnektivität 2,4 GHz Wi-Fi, Bluetooth 5.0, Bluetooth Mesh
Flash-Speicher 16 MB externer Flash
PSRAM 8 MB
GPIO Bis zu 20 GPIOs (inklusive zusätzlicher Pads auf der Rückseite)
Analoge Eingänge Bis zu 9 ADC-Kanäle
Kommunikationsschnittstellen 2× UART, 1× I2C, 1× I2S, 2× SPI
USB-Schnittstelle USB Type-C für Stromversorgung und Programmierung
Betriebsspannung 5 V (USB), ~3,7–4,2 V (Batterie)
Batterieunterstützung Li-Ion / LiPo mit integriertem Laden
Ladestrom Bis zu 100 mA
Stromverbrauch (Aktives Wi-Fi) ~81 mA
Stromverbrauch (Tiefschlaf) ~33 µA
Energiesparmodi Aktiv, Modem-Schlaf, Leichtschlaf, Tiefschlaf
Abmessungen 21 × 17,8 mm
Betriebstemperatur -40 °C bis 65 °C
Zusätzliche Merkmale B2B-Steckverbinder, Reset-Button, Boot-Button, Status-LEDs

ESP32 Core installieren

Wenn du das Board mit der Arduino IDE programmieren möchtest, musst du zuerst den ESP32 Core installieren, um die Unterstützung für ESP32-Boards in der Arduino IDE zu aktivieren. Öffne deine  Arduino IDE  und folge den unten beschriebenen Schritten. Bei Problemen findest du detailliertere Anleitungen in unserem Tutorial Install ESP32 core in Arduino IDE.

Zusätzliche URLs für den Boards Manager

Öffne zuerst den Preferences-Dialog, indem du im „File“-Menü „Preferences…“ auswählst:

Open Preferences Dialog
Preferences-Dialog öffnen

Es öffnet sich der unten gezeigte Preferences-Dialog. Unter dem Tab „Settings“ findest du unten ein Eingabefeld mit der Bezeichnung „Additional boards manager URLs“:

Füge in dieses Feld die folgende URL ein: „https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json

Damit weiß die Arduino IDE, wo sie die ESP32 Core-Bibliotheken findet. Im nächsten Schritt installieren wir die ESP32 Core-Bibliotheken über den Boards Manager.

Boards Manager

Öffne den BOARDS MANAGER, indem du auf das Board-Symbol in der Seitenleiste der Arduino IDE klickst:

Board icon in Sidebar
Board-Symbol in der Seitenleiste

Der BOARDS MANAGER erscheint rechts neben der Seitenleiste. Gib oben im Suchfeld „ESP32“ ein. Du solltest zwei Arten von ESP32-Boards sehen: „Arduino ESP32 Boards“ und „esp32 by Espressif“. Wir wollen die esp32-Bibliotheken von Espressif. Klicke auf INSTALL und warte, bis der Download und die Installation abgeschlossen sind.

Install ESP32 Core libraries
ESP32 Core-Bibliotheken installieren

Nach der Installation sollte dein Boards Manager so aussehen, wobei die tatsächliche Version (hier 3.3.7) abweichen kann.

ESP32 core installed
ESP32 Core installiert

Im nächsten Schritt zeige ich dir, wie du das ESP32-Board für das XIAO ESP32-S3-Plus auswählst.

XIAO_ESP32S3_PLUS Board auswählen

Du kannst ein Board über den Dropdown-Selector unter der Menüleiste auswählen. Im Beispiel unten ist ein Arduino Uno als Board ausgewählt:

Bord selector
Board-Auswahl

Wenn du auf den Namen des aktuell ausgewählten Boards (Arduino Uno) klickst, öffnet sich der Board-Auswahldialog. Gib im Suchfeld „xiao s3“ ein und wähle „XIAO_ESP32S3_PLUS“ wie unten gezeigt aus:

XIAO_ESP32S3_PLUS im Board Manager auswählen

Wenn das Board per USB mit deinem PC verbunden ist, solltest du auch den COM-Port auswählen können. Im Screenshot oben ist es COM9, bei dir kann es ein anderer COM-Port sein.

Code-Beispiele

In diesem Abschnitt stelle ich dir einige Code-Beispiele vor, mit denen du die Hauptfunktionen des XIAO ESP32-S3-Plus ausprobieren kannst.

Onboard-LED blinken lassen

Wir beginnen mit dem üblichen Blink Beispiel. Es schaltet die Onboard-LED für eine Sekunde ein und aus. Die Onboard-LED des XIAO ESP32-S3-Plus ist mit GPIO21 verbunden, ist aber invertiert. LOW bedeutet LED an, HIGH bedeutet LED aus. Das siehst du im folgenden Code-Beispiel:

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  Serial.println("Off");
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);     
  Serial.println("On");                 
  digitalWrite(LED_BUILTIN, LOW);   
  delay(1000);                      
}

GPIO lesen & schreiben

In den folgenden kurzen Beispielen lesen und schreiben wir GPIO. Zur Pin-Spezifikation im Code kannst du die GPIO x Nummer oder die Dx Nummer verwenden. Laut Pinout identifizieren D3 oder GPIO4 denselben Pin, und im Code kannst du beide verwenden. Die folgenden zwei Code-Beispiele sind funktional identisch und setzen GPIO4 auf HIGH:

digitalWrite(D3, HIGH);  // D3 == GPIO4
digitalWrite(4, HIGH);  // D3 == GPIO4

Wenn du analoge Signale lesen möchtest, kannst du die vordefinierten Ax Konstanten verwenden. Zum Beispiel liest der folgende Code einen analogen Eingang von A3, was dem GPIO4 Pin entspricht:

int val = analogRead(A3);  // A3 == GPIO4
int val = analogRead(4);  // A3 == GPIO4

Analoge Werte liegen im Bereich von 0 bis 4095, was einer Eingangsspannung zwischen 0 und 3,3 V entspricht.

Touch-Eingabe

Dieses Beispiel zeigt, wie du die kapazitiven Touch-Pins des XIAO ESP32-S3-Plus zur Erkennung von Berührungen nutzt. Wenn du den ersten Pin (D0) des Boards berührst, schaltet sich die eingebaute LED ein. Möglicherweise musst du den Erkennungsschwellenwert anpassen.

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  int value = touchRead(T1);
  Serial.println(value);

  if (value > 30000) { 
    digitalWrite(LED_BUILTIN, LOW);
  } else {
    digitalWrite(LED_BUILTIN, HIGH);
  }

  delay(200);
}

Wi-Fi

Das folgende Beispiel zeigt, wie du das XIAO ESP32-S3-Plus mit einem Wi-Fi-Netzwerk verbindest. Das funktioniert auch ohne externe Antenne, wenn du nahe am Router bist. Für bessere Reichweite solltest du jedoch die Antenne installieren.

#include <WiFi.h>

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("\nConnected");
  Serial.println(WiFi.localIP());
}

void loop() {
}

Bluetooth

Das letzte Beispiel zeigt, wie du einen einfachen Bluetooth Low Energy (BLE) Server erstellst.

#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>

void setup() {
  Serial.begin(115200);

  BLEDevice::init("XIAO-ESP32-S3");
  BLEServer *pServer = BLEDevice::createServer();
  BLEDevice::getAdvertising()->start();

  Serial.println("BLE server started");
}

void loop() {
}

Du kannst prüfen, ob der Server aktiv ist, indem du einen BLE-Scanner auf deinem Handy verwendest. Übliche Apps sind nRF Connect oder LightBlue. Wenn du einen Scan startest, erscheint „XIAO-ESP32-S3“.

Fazit

Dieser Beitrag hat dir gezeigt, wie du mit dem Seeed Studio XIAO ESP32-S3-Plus startest. Seeed Studio bietet weitere Informationen in seinem Wiki.

Im Vergleich zum XIAO ESP32-S3 hat das XIAO ESP32-S3-Plus mehr Flash und GPIO-Pins. Allerdings fehlt das Mikrofon des XIAO MG24 Sense bzw. die Kamera (und das Mikrofon) des XIAO-ESP32-S3-Sense. Wenn du Audio aufnehmen oder Video streamen möchtest, sind diese Boards besser geeignet. Brauchst du jedoch mehr Speicher oder I/O, ist das XIAO ESP32-S3-Plus die bessere Wahl.

Wenn du Fragen hast, kannst du sie gerne im Kommentarbereich stellen.

Viel Spaß beim Tüfteln 😉