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

ESP32 mit MicroPython unter Raspberry Pi OS Bookworm flashen – So geht’s!

Posted on 25. März 202526. März 2025 by Stefan Draeger

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!

ESP32 mit MicroPython unter Raspberry Pi OS Bookworm flashen – So geht’s!
Dieses Video auf YouTube ansehen.

💡 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
    • Schritt 1: venv installieren
    • Schritt 2: Virtuelle Umgebung erstellen
    • Schritt 3: Virtuelle Umgebung aktivieren
  • esptool installieren
    • Installation mit pip
    • Installation testen
  • MicroPython-Firmware herunterladen und ESP32-C3 flashen
    • Seriellen Port ermitteln
    • MicroPython-Firmware herunterladen
      • Verbindung testen: Geräteinformationen auslesen
      • Flash-Speicher löschen (empfohlen vor dem Flashen)
      • Firmware mit esptool.py flashen
      • Testen des Mikrocontrollers in Thonny
        • Wichtig: Thonny aus der virtuellen Umgebung starten
        • Dein erstes MicroPython-Programm

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 Flash
  • ESP32_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)

3 thoughts on “ESP32 mit MicroPython unter Raspberry Pi OS Bookworm flashen – So geht’s!”

  1. Christian sagt:
    8. April 2025 um 08:47 Uhr

    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

    Antworten
    1. Stefan Draeger sagt:
      8. April 2025 um 09:10 Uhr

      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

      Antworten
  2. Christian sagt:
    14. April 2025 um 23:32 Uhr

    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

    Antworten

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}