Wenn du einen ESP32 mit MicroPython programmieren möchtest, ist der Raspberry Pi mit dem aktuellen Raspberry Pi OS Bookworm eine ideale Plattform. Die gute Nachricht: Die Programmiersoftware Thonny ist bereits vorinstalliert und bringt viele nützliche Funktionen mit. Doch bevor du direkt loslegen kannst, fehlt noch ein entscheidender Schritt – du musst zunächst ESP32 MicroPython Raspberry Pi flashen, also die MicroPython-Firmware auf deinen Mikrocontroller übertragen.
In dieser Anleitung zeige ich dir Schritt für Schritt, wie du deinen ESP32 unter Raspberry Pi OS Bookworm für MicroPython vorbereitest. Dazu gehören die Installation der benötigten Tools wie esptool.py
, das Herunterladen der MicroPython-Firmware und das eigentliche Flashen des Mikrocontrollers.
Am Ende hast du ein vollständig eingerichtetes System und kannst direkt mit der Entwicklung eigener MicroPython-Projekte starten. Los geht’s!
💡 Hinweis:
Die Idee zu diesem Beitrag stammt aus einem Kommentar unter meinem YouTube-Video, in dem ich zeige, wie man einen ESP32 unter Windows mit MicroPython flasht. Dort kam die Frage auf, wie das Ganze unter Raspberry Pi OS (Bookworm) funktioniert – und genau das zeige ich dir hier!
Inhaltsverzeichnis
- Virtuelle Umgebung für Python erstellen
- esptool installieren
- MicroPython-Firmware herunterladen und ESP32-C3 flashen
Virtuelle Umgebung für Python erstellen
Unter Raspberry Pi OS Bookworm ist das Erstellen einer virtuellen Python-Umgebung kein optionaler Schritt – es ist zwingend erforderlich, um Tools wie esptool
installieren und verwenden zu können. Andernfalls kommt es zu Fehlermeldungen oder Einschränkungen, da systemweite Paketinstallationen bewusst eingeschränkt wurden.
Schritt 1: venv
installieren
Stelle sicher, dass das Modul python3-venv
installiert ist:
sudo apt update<br>sudo apt install python3-venv
Schritt 2: Virtuelle Umgebung erstellen
Erstelle dir ein neues Projektverzeichnis und wechsle hinein:
mkdir ~/esp32-projekt<br>cd ~/esp32-flash
Darin erzeugst du die virtuelle Umgebung:
python3 -m venv venv
Schritt 3: Virtuelle Umgebung aktivieren
Aktiviere die Umgebung mit:
source venv/bin/activate
Nach der Aktivierung erscheint links im Terminal der Name der Umgebung – z. B.:
(venv) pi@raspberrypi:~/esp32-flash $
Jetzt kannst du alle benötigten Tools wie esptool
installieren und verwenden – ausschließlich innerhalb dieser Umgebung.
esptool
installieren
Nachdem du die virtuelle Umgebung aktiviert hast, kannst du nun das Tool esptool
installieren. Dieses Werkzeug ist notwendig, um die MicroPython-Firmware auf den ESP32 zu übertragen.
Installation mit pip
Gib in der aktiven Umgebung folgenden Befehl ein:
pip install esptool
Das dauert nur wenige Sekunden. Danach steht dir der Befehl esptool.py
direkt zur Verfügung.
Installation testen
Du kannst prüfen, ob esptool
korrekt installiert wurde, indem du die Versionsnummer abfragst:
esptool.py version
Die Ausgabe sollte in etwa so aussehen:
Hinweis: Stelle sicher, dass du dich während dieser Schritte in der aktivierten virtuellen Umgebung befindest – erkennbar am (venv)
in der Eingabezeile. Falls du das Terminal neu geöffnet hast, musst du die Umgebung erneut aktivieren:
source ~/esp32-flash/venv/bin/activate
Im nächsten Schritt zeige ich dir, wie du die passende MicroPython-Firmware für deinen ESP32 herunterlädst und mit esptool
flashst.
MicroPython-Firmware herunterladen und ESP32-C3 flashen
Jetzt, wo esptool
installiert ist, kannst du die passende Firmware für deinen ESP32-C3 Super Mini herunterladen und auf den Mikrocontroller übertragen. Bevor es losgeht, müssen wir jedoch zuerst den richtigen seriellen Port ermitteln.
Seriellen Port ermitteln
Unter Linux kann das etwas unübersichtlich sein – aber mit dem folgenden Befehl bekommst du zuverlässig die zuletzt erkannten USB-Geräte angezeigt:
dmesg | tail -20
Stecke deinen ESP32-C3 Super Mini ein und achte auf eine Zeile wie:
ttyACM0: USB ACM device
Das bedeutet, dein Board ist unter /dev/ttyUSB0
erreichbar (bei manchen Modellen auch /dev/ttyACM0
). Merke dir diesen Pfad, du brauchst ihn gleich beim Flashen.
MicroPython-Firmware herunterladen
Lade nun die passende MicroPython-Firmware für deinen ESP32-C3 herunter:
🔗 ESP32-C3 Firmware v1.24.1 (vom 29.11.2024)
Du kannst die Datei direkt über den Browser herunterladen oder mit wget
im Terminal:
wget https://micropython.org/resources/firmware/ESP32_GENERIC_C3-20241129-v1.24.1.bin
Verbindung testen: Geräteinformationen auslesen
Bevor du die Firmware aufspielst, lohnt sich ein kurzer Check, ob dein ESP32-C3 korrekt verbunden ist. Mit esptool.py
kannst du Informationen vom angeschlossenen Chip abrufen.
Verwende dazu folgenden Befehl (achte wieder auf den richtigen Port, z. B. /dev/ttyACM0
):
esptool.py --port /dev/ttyACM0 chip_id
Wenn die Verbindung klappt, bekommst du eine Ausgabe wie:
Flash-Speicher löschen (empfohlen vor dem Flashen)
Bevor du die neue Firmware aufspielst, solltest du den internen Speicher deines ESP32-C3 vollständig löschen. Das sorgt für einen sauberen Zustand und verhindert Probleme mit alten oder beschädigten Daten auf dem Chip.
Führe dazu folgenden Befehl aus (achte wieder auf den richtigen Port, z. B. /dev/ttyACM0
):
esptool.py --port /dev/ttyACM0 erase_flash
Die Ausgabe sollte etwa so aussehen:
Nach dem erfolgreichen Löschen ist der Chip bereit für die neue MicroPython-Firmware.
Firmware mit esptool.py
flashen
Jetzt geht’s ans Flashen. Achte darauf, dass der ESP32-C3 vorher in den Bootloader-Modus versetzt wird. Bei vielen Boards hältst du dazu beim Einstecken einen kleinen BOOT-Knopf gedrückt.
Dann führst du folgenden Befehl aus – passe den Gerätenamen ggf. an
(/dev/ttyUSB0
, /dev/ttyACM0
, …):
esptool.py --port /dev/ttyACM0 --baud 460800 write_flash 0 ESP32_GENERIC_C3-20241129-v1.24.1.bin
Erklärung der Parameter:
--port /dev/ttyACM0
– Serieller Port deines ESP32-C3--baud 460800
– Übertragungsgeschwindigkeit (schneller als Standard)write_flash 0
– Startadresse im FlashESP32_GENERIC_C3-20241129-v1.24.1.bin
– die MicroPython-Firmware-Datei

Wenn alles klappt, siehst du am Ende eine Ausgabe wie:
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Das bedeutet: Die Firmware wurde erfolgreich übertragen!
Du kannst den ESP32-C3 jetzt kurz vom USB trennen und neu einstecken – oder direkt im nächsten Schritt Thonny öffnen, um dein erstes MicroPython-Skript hochzuladen.
Testen des Mikrocontrollers in Thonny
Nachdem dein ESP32-C3 erfolgreich mit MicroPython geflasht wurde, ist es Zeit für einen ersten Funktionstest – direkt in der Thonny-IDE.

Wichtig: Thonny aus der virtuellen Umgebung starten
Da du esptool
und weitere MicroPython-Tools in einer virtuellen Umgebung installiert hast, musst du Thonny ebenfalls aus dieser Umgebung heraus starten, damit alles funktioniert.
Gib dazu im Terminal (bei aktivierter Umgebung) folgenden Befehl ein:
(venv) stefan@raspberrypi:~ $ thonny
Falls du die Umgebung zuvor verlassen hast, aktiviere sie erneut:
source ~/esp32-flash/venv/bin/activate thonny
Dein erstes MicroPython-Programm
Kopiere folgenden Code in das Editorfenster von Thonny:
from machine import Pin from time import sleep # LED ist an GPIO 2 angeschlossen led = Pin(2, Pin.OUT) while True: print("Hello World!") led.value(1) # LED einschalten sleep(1) led.value(0) # LED ausschalten sleep(1)
Speichere das Skript z. B. als main.py
und klicke auf „Ausführen“ (grüner Play-Button).
Programm stoppen: Klicke auf den roten „Stop“-Button, um die Endlosschleife zu beenden.
Öffne dazu Thonny, wähle unter „Interpreter“ deinen ESP32-C3 aus (z. B. MicroPython (ESP32)
) und den richtigen Port (z. B. /dev/ttyACM0
).
Wechsle dann unten in das Shell-Fenster und gib folgenden Code ein:
from machine import Pin from time import sleep # LED ist an GPIO 2 angeschlossen led = Pin(2, Pin.OUT) while True: print("Hello World!") led.value(1) # LED einschalten sleep(1) led.value(0) # LED ausschalten sleep(1)
Oh mann meine thonny ide will einfach keine Parkete aus pypi suchen und installieren
weis auch nicht was die will . Mom Arbeite ich an 2 Projekten und komm wegen dem scheis nicht weiter . Aber der Rest hat geholfen danke LG Christian
Hi,
gibs denn eine Fehlermeldung?
Alternativ kannst du dir auf dem Gerät (also dem Mikrocontroller) ein Verzeichnis „lib“ anlegen und dort manuell die Module hinein kopieren. Etwas umständlich aber das funktioniert genauso. Was anderes mach Thonny ja auch nicht. Im Paketmanager von Thonny findest du auch einen Link zum Modul.
Gruß, Stefan
Schau dir bitte das mal an wäre vieleicht in der thonny zu programiren.
weist du wo mann das bekommen kann#
Raspberry PI RP2040 Pico Micro Entwicklungsboard Matrix 5×5RGB LED-Matrixmodul