Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Waveshare ESP32-S3-Nano – Der leistungsstarke ESP32 im Nano-Format

Posted on 4. August 20254. August 2025 by Stefan Draeger

Der Arduino Nano mit ATmega328 ist nach wie vor beliebt – kompakt, einfach zu programmieren und ideal für schnelle Prototypen. Doch die Anforderungen an moderne Mikrocontroller sind gestiegen: WLAN, Bluetooth, mehr Rechenleistung und Speicher sind längst keine Luxusfeatures mehr. Selbst Arduino hat darauf reagiert und mit dem Arduino Nano ESP32 ein passendes Upgrade im bekannten Formfaktor veröffentlicht – allerdings zu einem Preis von rund 25 €.

Wer auf der Suche nach einer günstigen, aber leistungsstarken Alternative ist, sollte sich den ESP32-S3-Nano von Waveshare genauer ansehen. Der kleine Mikrocontroller im Nano-Format bringt nicht nur Dual-Core Power, 16 MB Flash, 8 MB PSRAM und USB-HID-Funktionalität, sondern kostet auf Plattformen wie AliExpress gerade einmal ein Drittel des offiziellen Pendants. Einziger Haken: Der ESP32-S3 arbeitet mit 3,3 V Logikpegeln – bei falscher Verdrahtung droht eine Beschädigung.

Waveshare ESP32-S3-Nano: RGB-LED, Modulinos & Arduino Cloud
Dieses Video auf YouTube ansehen.

In diesem Beitrag zeige ich dir, was der kleine Mikrocontroller alles kann, worauf du bei der Verwendung achten solltest, und wie sich der Waveshare ESP32-S3-Nano in der Praxis schlägt.

Waveshare ESP32-S3-Nano - Vorderseite
Waveshare ESP32-S3-Nano - Rueckseite
Waveshare ESP32-S3-Nano - Lieferumfang

Inhaltsverzeichnis

  • Technische Übersicht des ESP32-S3-Nano
    • Pinout des ESP32-S3-Nano
    • Aufbau des Mikrocontrollers Waveshare ESP32-S3-Nano
  • Technischer Vergleich: Arduino Nano ESP32 vs. Waveshare ESP32-S3-Nano
    • Fazit: Wer bietet mehr fürs Geld?
  • Programmierung mit dem Arduino Nano Connector Carrier Board
  • Programmierung des Waveshare ESP32-S3-Nano
    • Beispiel – blinken der RGB LED und BuildInLED am Waveshare ESP32-S3-Nano Board
    • Wichtiger Hinweis zur RGB-LED: Gemeinsame Anode
    • Einsatz mit dem Arduino Nano Connect Carrier und den Modulinos
    • Modulinos über Qwiic einfach verbinden
    • Beispiel: LED-Steuerung mit Tastern – einfach umgesetzt mit Modulinos

Technische Übersicht des ESP32-S3-Nano

Der Waveshare ESP32-S3-Nano basiert auf dem leistungsstarken ESP32-S3R8-Chip mit folgenden Merkmalen:

  • Dual-Core Xtensa® LX7 Prozessor mit bis zu 240 MHz
  • 16 MB Flash und 8 MB PSRAM – ideal für speicherintensive Projekte
  • 512 KB SRAM + 384 KB ROM
  • 2.4 GHz WiFi & Bluetooth LE (BLE)
  • Unterstützung für USB HID (z. B. Tastatur oder Maus via USB)
  • Kompatibel mit Arduino IDE und MicroPython
  • Direkte Unterstützung für die Arduino IoT Cloud

Dank dieser Ausstattung eignet sich der Mikrocontroller für vielseitige Anwendungen – von IoT-Projekten über Sensorik und Automatisierung bis hin zu USB-basierten Eingabegeräten.

Pinout des ESP32-S3-Nano

Damit du den Waveshare ESP32-S3-Nano optimal in deine Projekte integrieren kannst, habe ich dir hier das Pinout übersichtlich zusammengestellt. Die Belegung orientiert sich stark am klassischen Arduino Nano – mit einigen wichtigen Unterschieden:

Wichtige Hinweise vorab

  • Alle GPIOs arbeiten mit 3,3 V – 5 V an einem Eingang können den Mikrocontroller beschädigen!
  • Die Pins sind nicht 5V-tolerant – verwende bei Bedarf Pegelwandler.
  • Der USB-C-Anschluss dient sowohl zur Programmierung als auch zur Stromversorgung (5 V werden onboard auf 3,3 V geregelt).
  • Einige Pins unterstützen ADC, PWM, I2C, SPI, UART und andere Funktionen mehrfach – diese können per Software konfiguriert werden.
Pinout - Waveshare ESP32-S3-Nano
Pinout – Waveshare ESP32-S3-Nano

Aufbau des Mikrocontrollers Waveshare ESP32-S3-Nano

Der Waveshare ESP32-S3-Nano im Arduino-Nano-Formfaktor ist kompakt, aber vollgepackt mit moderner Technik. Besonders auffällig sind folgende Komponenten auf der Oberseite der Platine:

Integrierte RGB-LED
Ebenfalls auf der Oberseite ist eine dreifarbige RGB-LED verbaut, deren Farben sich separat über folgende Pins steuern lassen:

Rot: GPIO46 (D14)
Grün: GPIO0 (D15)
Blau: GPIO45 (D16)

Diese RGB-LED eignet sich hervorragend für Statusanzeigen, Farbcodierungen oder Visualisierungen in IoT-Projekten.

USB-Typ-C-Anschluss
An der Stirnseite befindet sich ein moderner USB-C-Port zur Programmierung und Stromversorgung. Das macht das Board besonders zukunftssicher und kompatibel mit aktuellen Kabeln und Ladegeräten.

Rote Power-LED
Direkt rechts neben dem USB-C-Anschluss signalisiert eine rote LED die aktive Stromversorgung – sie leuchtet dauerhaft, sobald das Board mit Spannung versorgt ist.

User-LED (GPIO48 / D13)
Links vom USB-Port ist eine weitere kleine LED, die über den Pin GPIO48 (alias D13) angesteuert wird. Sie dient als klassische BuildIn-LED, wie man sie von anderen Arduino-Boards kennt – ideal für einfache Blink-Sketche und Tests.

Aufbau - Waveshare ESP32-S3-Nano Mikrocontroller
Aufbau – Waveshare ESP32-S3-Nano Mikrocontroller

Technischer Vergleich: Arduino Nano ESP32 vs. Waveshare ESP32-S3-Nano

Beide Mikrocontroller setzen auf den leistungsstarken ESP32-S3-Chip, bieten WiFi & Bluetooth LE, viel Flash-Speicher und einen Nano-kompatiblen Formfaktor. Dennoch gibt es Unterschiede – besonders beim Preis und den Features rund um Peripherie, Stromversorgung und USB.

Mikrocontroller im Formfaktor des Arduino Nano
Mikrocontroller im Formfaktor des Arduino Nano
MerkmalArduino® Nano ESP32Waveshare ESP32-S3-Nano
Microcontrolleru-blox® NORA-W106 (ESP32-S3)ESP32-S3R8
Prozessorkerne2× Xtensa® LX7, 240 MHz
ROM / RAM384 kB / 512 kB
Flash16 MB
PSRAM8 MB
WLAN / Bluetooth2,4 GHz WiFi, BLE im ESP32-S3 integriert
USB-AnschlussUSB-CUSB-C (mit HID-Unterstützung)
HID-Unterstützung❌ (nicht aktiviert)✅ (funktioniert als Maus/Tastatur)
Digitale I/O Pins14
Analoge Eingänge8
PWM-fähige Pins5
UART / I2C / SPI2x / 1x / 1x
I/O Spannung3,3 V
Eingangsspannung6 – 21 V
I/O Strom pro Pin40 mA
Größe (L × B)45 × 18 mm
BesonderheitenRGB-LED integriert, Arduino Cloud, CE-konformHID-Unterstützung, günstiger Preis
Preis (ca.)ca. 25 €ca. 6–8 €

Fazit: Wer bietet mehr fürs Geld?

Der Arduino® Nano ESP32 punktet mit offizieller CE-Zertifizierung, sauberer Integration in das Arduino-Ökosystem und einer integrierten RGB-LED – ideal für den professionellen Einsatz oder den Bildungsbereich.

Der Waveshare ESP32-S3-Nano hingegen ist ein echter Preis-Leistungs-Tipp: nahezu identische Hardware, native USB-HID-Unterstützung, volle Kompatibilität mit Arduino IDE, MicroPython und Arduino Cloud – und das zu einem Bruchteil des Preises. Für Maker, Bastler und fortgeschrittene Hobbyentwickler bietet dieses Board alles, was man für moderne Projekte braucht.

Programmierung mit dem Arduino Nano Connector Carrier Board

Der Waveshare ESP32-S3-Nano lässt sich perfekt mit dem bereits vorgestellten
Arduino Nano Connector Carrier Board kombinieren. Dieses Erweiterungsboard bietet:

  • vier Grove- und Qwiic-kompatible Anschlüsse (digital/analog, seriell, I2C)
  • eine integrierte Spannungsumschaltung (3,3 V / 5 V) – ideal für den ESP32-S3
  • einfaches Breadboard-freies Prototyping
  • kompaktes Format – perfekt für kompakte IoT-Projekte
Arduino Nano Connector Carrier #1
Arduino Nano Connector Carrier #3
Arduino Nano Connector Carrier #4

Gerade in Verbindung mit Arduino Cloud ergeben sich spannende Möglichkeiten:
Durch die standardisierte Nano-Pinbelegung kann der Waveshare ESP32-S3-Nano direkt in das Carrier Board eingesetzt und über die gewohnten Modulino-Schnittstellen erweitert werden.

Waveshare ESP32-S3-Nano auf Arduino Nano Connect Carrier - 1
Waveshare ESP32-S3-Nano auf Arduino Nano Connect Carrier - 2
Waveshare ESP32-S3-Nano auf Arduino Nano Connect Carrier - 3

Programmierung des Waveshare ESP32-S3-Nano

Der Waveshare ESP32-S3-Nano kommt bereits mit einem vorinstallierten Demo-Programm, das erste Funktionen wie die RGB-LED-Ansteuerung demonstriert. Dieses Beispiel findest du auch auf der offiziellen Wiki-Seite von Waveshare:

🔗 Demo herunterladen (Waveshare Wiki)

Das vorinstallierte Beispiel blinkt unter anderem die integrierte RGB-LED und zeigt so, dass das Board korrekt funktioniert.

Beispiel – blinken der RGB LED und BuildInLED am Waveshare ESP32-S3-Nano Board

// User-LED auf D13
#define led 13

// On-Board RGB (gemeinsame Anode: LOW = an, HIGH = aus)
#define ledRot   14  // D14  -> Rot
#define ledGruen 16  // D16  -> Grün
#define ledBlau  15  // D15  -> Blau

const int PAUSE = 150;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(ledRot, OUTPUT);
  pinMode(ledGruen, OUTPUT);
  pinMode(ledBlau, OUTPUT);

  // alles aus (bei gemeinsamer Anode: HIGH = aus)
  digitalWrite(ledRot,   HIGH);
  digitalWrite(ledGruen, HIGH);
  digitalWrite(ledBlau,  HIGH);
  digitalWrite(led, LOW);
}

void rgbLEDStatus(bool rot, bool gruen, bool blau) {
  // Werte sind Pegel: HIGH=aus, LOW=an
  digitalWrite(ledRot,   rot);
  digitalWrite(ledGruen, gruen);
  digitalWrite(ledBlau,  blau);
}

void loop() {
  rgbLEDStatus(LOW, HIGH, HIGH); // Rot
  delay(PAUSE);
  rgbLEDStatus(HIGH, LOW, HIGH); // Grün
  delay(PAUSE);
  rgbLEDStatus(HIGH, HIGH, LOW); // Blau
  delay(PAUSE);

  // User-LED blinken
  digitalWrite(led, HIGH);
  delay(PAUSE);
  digitalWrite(led, LOW);
  delay(PAUSE);
}

Wichtiger Hinweis zur RGB-LED: Gemeinsame Anode

Die auf dem Board verbaute RGB-LED ist intern mit einer gemeinsamen Anode (Pluspol) verschaltet. Das bedeutet für die Programmierung:

  • Ein LOW-Signal (0 V) aktiviert die jeweilige Farbe.
  • Ein HIGH-Signal (3,3 V) schaltet sie aus.

Das Verhalten ist also invertiert im Vergleich zu typischen LEDs mit gemeinsamer Kathode.

FarbeGPIO-PinArduino-PinAktiv bei…
RotGPIO46D14LOW
GrünGPIO0D15LOW
BlauGPIO45D16LOW

Einsatz mit dem Arduino Nano Connect Carrier und den Modulinos

Der Waveshare ESP32-S3-Nano lässt sich nicht nur als leistungsstarker Standalone-Mikrocontroller nutzen, sondern fügt sich dank seines Nano-kompatiblen Formfaktors auch perfekt in das Arduino Nano Connect Carrier Board ein. Dadurch kannst du ihn nahtlos mit den Modulinos aus dem Arduino Plug and Make Kit kombinieren – ideal für schnelle Prototypen, Schülerprojekte oder smarte IoT-Lösungen.

Ich habe das Plug and Make Kit bereits ausführlich in diesen Beiträgen vorgestellt:

  • 🔗 Was ist drin und wie benutzt man es?
  • 🔗 Richtungsanzeige mit Modulino Movement
  • 🔗 Abstandskontrolle mit Alarmfunktion
  • 🔗 Nano Connector Carrier Board clever nutzen

Modulinos über Qwiic einfach verbinden

Die Modulinos werden über die Qwiic-Schnittstelle (I2C) mit dem Mikrocontroller verbunden. Der Anschluss ist dank der standardisierten 4-Pin-Stecker kinderleicht – einfach einstecken, adressieren und loslegen.

Waveshare ESP32-S3-Nano auf Arduino Connect Carrier mit Modulinos
Waveshare ESP32-S3-Nano auf Arduino Connect Carrier mit Modulinos

💡 Wichtig: Damit die Kommunikation mit den Modulinos korrekt funktioniert, muss in der Arduino IDE unter Werkzeuge → Pin Numbering die Option „By GPIO numbering (legacy)“ aktiviert werden.

Standardmäßig ist „By Arduino pin (default)“ eingestellt – dies führt beim ESP32-S3 dazu, dass die Modulinos nicht richtig angesprochen werden können.

Falls du das vergisst, bekommst du beim Kompilieren jedoch eine aussagekräftige Fehlermeldung, die dich auf das Problem hinweist.

In file included from C:\Users\stefa\AppData\Local\Temp\.arduinoIDE-unsaved202571-17808-8lf0z4.p4cwc\sketch_aug1a\sketch_aug1a.ino:1:
c:\Users\stefa\Documents\Arduino\libraries\Modulino\src/Modulino.h:8:4: error: #error "The current configuration is unsupported, switch Pin Numbering to "By GPIO number" or #undef tone and #undef noTone in the beginning of your sketch."
   #error "The current configuration is unsupported, switch Pin Numbering to "By GPIO number" or #undef tone and #undef noTone in the beginning of your sketch."

Dank dieser Flexibilität kannst du das Plug and Make Kit nicht nur mit originalen Arduino-Boards verwenden, sondern auch mit günstigen Alternativen wie dem Waveshare ESP32-S3-Nano – ohne dabei auf Funktionsumfang oder Benutzerfreundlichkeit zu verzichten.

Beispiel: LED-Steuerung mit Tastern – einfach umgesetzt mit Modulinos

Um zu zeigen, dass sich der Waveshare ESP32-S3-Nano problemlos in das Plug and Make Umfeld integrieren lässt, habe ich ein kleines Beispiel mit zwei Modulinos umgesetzt:
Dem Modulino Button und dem Modulino LED.
Per Tastendruck lassen sich jeweils drei LEDs in unterschiedlichen Farben aktivieren – simpel, aber ideal, um die Kompatibilität des Boards mit dem Nano Connector Carrier und den Qwiic-basierten Modulinos zu demonstrieren.

/*
 * Titel: Modulino Beispiel – LED-Steuerung per Taster mit dem Waveshare ESP32-S3-Nano
 * Beschreibung: 
 * In diesem einfachen Beispielprojekt wird gezeigt, wie sich der Waveshare ESP32-S3-Nano 
 * mit dem Arduino Nano Connector Carrier Board und den Modulinos (Button + LED) kombinieren lässt.
 * Je nach gedrückter Taste (A, B oder C) leuchtet eine RGB-LED in einer bestimmten Farbe kurz auf.
 * 
 * Autor: Stefan Draeger
 * Link zum Beitrag: https://draeger-it.blog/waveshare-esp32-s3-nano-der-leistungsstarke-esp32-im-nano-format/
 */

#include <Modulino.h>  // Bibliothek für das Arduino Plug and Make Modulino-System

// Konstanten für die drei Tasten auf dem Modulino Button
const int BUTTON_A = 0;
const int BUTTON_B = 1;
const int BUTTON_C = 2;

// Modulino-Objekte für LED- und Tastermodul
ModulinoPixels leds;     // Modulino LED mit WS2812-Pixeln (RGB)
ModulinoButtons buttons; // Modulino Button mit drei Tastern

void setup() {
  Serial.begin(9600);      // Serielle Schnittstelle zur Ausgabe öffnen
  Modulino.begin();        // Initialisiert das Modulino-System (I2C-Verbindung etc.)
  buttons.begin();         // Initialisiert das Button-Modul
  buttons.setLeds(true, true, true); // Aktiviert die eingebauten LEDs an den Tasten (zur Anzeige der Tastenbelegung)
  leds.begin();            // Initialisiert das LED-Modul
  Serial.println("---setup---"); // Gibt zur Kontrolle aus, dass das Setup abgeschlossen ist
}

void loop() {
  // Prüft, ob sich der Zustand der Tasten verändert hat
  if (buttons.update()) {

    // Wenn Taste A gedrückt wurde
    if (buttons.isPressed(BUTTON_A)) {
      Serial.println("---TASTE A---");
      leds.set(0, BLUE, 255);  // Setzt LED 0 auf volle Helligkeit in Blau
      leds.show();             // Zeigt die Änderung an
      delay(150);              // Kurze Wartezeit
      leds.set(0, BLUE, 0);    // Schaltet die LED wieder aus
      leds.show();

    // Wenn Taste B gedrückt wurde
    } else if (buttons.isPressed(BUTTON_B)) {
      Serial.println("---TASTE B---");
      leds.set(1, RED, 255);   // Setzt LED 1 auf volle Helligkeit in Rot
      leds.show();
      delay(150);
      leds.set(1, RED, 0);     // LED wieder ausschalten
      leds.show();

    // Wenn Taste C gedrückt wurde
    } else if (buttons.isPressed(BUTTON_C)) {
      Serial.println("---TASTE C---");
      leds.set(2, GREEN, 255); // Setzt LED 2 auf volle Helligkeit in Grün
      leds.show();
      delay(150);
      leds.set(2, GREEN, 0);   // LED wieder ausschalten
      leds.show();
    }
  }
}

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen
Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

link zu Fabook
link zu LinkedIn
link zu YouTube
link zu TikTok
link zu Pinterest
link zu Instagram
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}