Zum Inhalt springen

ESP32

aus Wikipedia, der freien Enzyklopädie
ESP32-Prozessor (Bildmitte) auf einer Leiterplatte bestückt. Links die gedruckte WLAN-Antenne
Bild des ESP32-Die

Der ESP32 ist eine kostengünstige und mit geringem Leistungsbedarf ausgeführte 32-Bit-Mikrocontrollerfamilie der chinesischen Firma Espressif, die im Jahr 2016 vorgestellt wurde.[1] Die Mikrocontroller sind mit einfach zugänglichen freien Softwareumgebungen wie Arduino programmierbar, oder sogar vollständig ohne Programmierkenntnisse mit ESPHome. Dies ermöglicht den einfachen Aufbau und die Vernetzung von netzwerkbasierten Aktuatoren und Sensoren, und hat zu einer weiten Verbreitung der ESP32-Mikrocontroller in der Hobbyelektronik geführt. Die Bezeichnung ESP32 alleine bezieht sich entweder auf die gesamte Produktfamilie, oder ausschließlich auf den ESP32 genannten Mikrocontroller erster Generation.

Je nach Modell gibt es wesentliche Unterschiede in der Leistungsfähigkeit und Funktionalität der Mikrocontroller. Sie bestehen intern entweder aus einem oder zwei Prozessorkernen der Xtensa-Architektur von Cadence (ehemals Tensilica), oder seit 2021 auch mit RISC-V-Kernen[2] (C-Serie und P4) und arbeiten mit einem anpassbaren Systemtakt von maximal 160 bis 360 MHz. Der interne RAM weist eine Größe von 272 bis 768 KiB auf, kombiniert mit einem internen Festwertspeicher (ROM), der einen unveränderlichen Bootloader enthält.[3] Wie der Vorgänger ESP8266 besitzen die meisten Modelle aus der Familie ESP32 keinen internen Flash-Speicher für die anwendungsspezifische Firmware. Diese wird in einem externen, seriellen Flash-Speicher abgelegt, der über dezidierte Pins an den Prozessor angeschlossen wird und durch Cache beschleunigt wird.[4] Die meisten Modelle unterstützen Flash-Größen von 1–16 MiB und SPI-Geschwindigkeiten bis 80 MHz.

Die ESP32-Familie weist diverse Peripherieschnittstellen auf, unter anderem stehen mehrere UARTs, SPI-, CAN-, PWM- und I²C-Schnittstellen, ein RMT genanntes FSK-Modul für Infrarotschnittstellen, ein integriertes Wireless Local Area Network (WLAN nach IEEE 802.11 b/g/n), das auch Bluetooth und je nach Modell 802.15.4 (ZigBee, Thread und Matter) unterstützt, und eine Ethernet-Schnittstelle über das Media Independent Interface (MII) zur Verfügung. Als analoge Schnittstellen sind diverse Möglichkeiten vorgesehen, wie Analog-Digital-Umsetzer und Digital-Analog-Umsetzer für die Verarbeitung analoger Signale und eingebaute Sensoren, oder ein integrierter Hall-Sensor zur Messung der magnetischen Flussdichte sowie Kapazitätsmesser für Berührungssensoren. Intern besitzen die Mikrocontroller eine kryptografische Einheit zur Hardwareunterstützung von Verschlüsselungsverfahren, beispielsweise dem Advanced Encryption Standard (AES), deren Einsatz aber in bestimmten Fällen wie dem RSA-Kryptosystem und damit dem wichtigen HTTPS-Protokoll eine Verlangsamung statt einer Beschleunigung bewirkt.[5] Weiterhin enthalten manche Modelle einen mit ca. 16–40 MHz langsamer getakteten Koprozessor mit niedrigem Stromverbrauch, der neben einer Echtzeituhr auch die Abfrage von Sensordaten im Bereitschaftsbetrieb erlaubt.

Die ESP32 sind in den Chipgehäusen Quad Flat No Leads Package (QFN) untergebracht und werden im Handel meistens auf kleinen Modulen unter Bezeichnungen wie ESP-WROOM vertrieben. Diese halbfertigen Leiterplattenmodule umfassen neben dem Prozessor und einem seriellen Flash-Speicher für die Firmware auch die Antenne sowie eine Stromversorgung und erlauben so einfache Anwendungen, beispielsweise im Rahmen der Hobbyelektronik.[6]

Hauptplattform für die Softwareentwicklung ist ein Software Development Kit (SDK) unter MIT-Lizenz namens ESP-IDF[7], basierend auf FreeRTOS, welches die Programmierung in C, C++ und (inoffiziell) Rust ermöglicht. Offiziell unterstützt wird weiterhin die Softwarebibliothek esp-rs[8] für die Entwicklung in Rust. Von anderen Entwicklern werden weiterhin verschiedene Entwicklungsplattformen zur Verfügung gestellt, einschließlich Arduino (C++), MicroPython (Python), NodeMCU und Lua RTOS[9] (beide Lua) oder ESPHome[10].

Undokumentierte Bluetooth-Befehle im ESP32

[Bearbeiten | Quelltext bearbeiten]

Im März 2025 fanden Forscher von Tarlogic Security undokumentierte Host Controller Interface (HCI)-Befehle in der ESP32-Bluetooth-Firmware, was zu Diskussionen über deren Funktion und mögliche Auswirkungen führte.[11] Diese Entdeckung wurde am 6. März 2025 auf der RootedCON-Konferenz vom Tarlogic Security-Team vorgestellt.[12] Die identifizierten Befehle, wie z. B. „Write Memory“ (0xFC02), sind herstellerspezifische HCI-Befehle, die in erster Linie zu Debugging- und Testzwecken verwendet werden. Diese Art von Befehlen ist in Bluetooth-Controller-Implementierungen üblich, um die Entwicklung und Fehlerbehebung zu unterstützen. Sie sind nicht Teil des Standard-HCI-Befehlssatzes und werden in der Regel in kontrollierten Umgebungen verwendet.[13]

Während sie zunächst als „Hintertür“ bezeichnet wurden, wurden sie nach weiteren Klarstellungen als „undokumentierte Debugging-Funktionen“ eingestuft. Wie der Hersteller erklärte, sind diese Befehle für die Fehlersuche vorgesehen und über Standard-Bluetooth-Verbindungen nicht aus der Ferne zugänglich. Sie können jedoch verwendet werden, wenn eine Entität physischen Zugriff auf das Gerät hat oder dieses in einer HCI-UART-Konfiguration arbeitet, welche das Senden von HCI-Befehlen über eine externe serielle Schnittstelle erlaubt. Die Befehle sind nur im originalen ESP32-Chip vorhanden, nicht in den neueren Serien ESP32-C, ESP32-S und ESP32-H. Um den Bedenken der Sicherheitscommunity Rechnung zu tragen, kündigte Espressif an, dass zukünftige Versionen des ESP-IDF den Zugriff auf diese Debugging-Befehle beschränken sollen und die Dokumentation für herstellerspezifische HCI-Befehle verbessert werden soll. Diese Maßnahmen sollen zusätzliche Transparenz schaffen und sicherstellen, dass Entwickler gut über die verfügbaren Funktionen informiert sind.[14]

Modellvergleich

[Bearbeiten | Quelltext bearbeiten]
Modell Prozessortyp max. Takt RAM ROM Cache max. Flash-Größe Koprozessor GPIOs Besonderheiten
ESP32 (Original) 1–2x Xtensa LX6 240 MHz 520 KiB 448 KiB 64 KiB (2x32) 8 MiB ja 34 I2S-Schnittstelle
ESP32-H2 1x RISC-V 96 MHz 320 KiB 128 KiB 16 KiB 4 MiB nein 19 802.15.4
ESP32-C3 1x RISC-V 160 MHz 400 KiB 384 KiB 16 KiB 16 MiB nein 22
ESP32-C5 1x RISC-V 240 MHz 384 KiB 320 KiB 32 KiB 32 MiB ja 29 802.15.4
ESP32-C6 1x RISC-V 160 MHz 512 KiB 320 KiB 32 KiB 16 MiB ja 31 802.15.4
ESP32-S2 1x Xtensa LX7 240 MHz 240 KiB 128 KiB 16 KiB 1 GiB (10,5 MiB gleichzeitig) ja 43 USB, Kamera- und LCD-Schnittstellen
ESP32-S3 2x Xtensa LX7 240 MHz 512 KiB 384 KiB 32 KiB I, 64 KiB D 1 GiB (32 MiB gleichzeitig) ja 45 USB, Kamera- und LCD-Schnittstellen
ESP32-P4 2x RISC-V 360 MHz 768 KiB 128 KiB 16 KiB L1I, 64 KiB L1D, max. 512 KiB L2 64 MiB ja 55 JPEG und H.264-Hardwarecodecs, MIPI- und LCD-Schnittstellen
Commons: ESP32 – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Espressif Announces the Launch of ESP32 Cloud on Chip and Funding by Fosun Group. 7. September 2016, abgerufen am 8. Dezember 2023.
  2. Enter at Your Own RISC! – Intermezzo mit RISC-V und dem ESP32-C3. heise online, abgerufen am 29. November 2022.
  3. Heap Memory Allocation. Espressif Systems, archiviert vom Original am 14. Juli 2019; abgerufen am 3. September 2019 (englisch).
  4. ESP32 Datasheet Version 2.3. Abgerufen am 22. Juni 2018.
  5. Performance Evaluation of Cryptographic Algorithms on ESP32 with Cryptographic Hardware Acceleration Feature. 22. Februar 2022, abgerufen am 28. Dezember 2024.
  6. Großer Bruder: Espressif ESP32. heise online, abgerufen am 22. Juni 2018.
  7. ESP-IDF Programming Guide - ESP32 - — ESP-IDF Programming Guide v5.5.1 documentation. Abgerufen am 18. September 2025.
  8. esp-rs. Abgerufen am 18. September 2025 (englisch).
  9. Lua RTOS for ESP32. Abgerufen am 22. Juni 2018.
  10. ESPHome – Github. Abgerufen am 22. Dezember 2024.
  11. Undocumented backdoor found in Bluetooth chip used by a billion devices. BleepingComputer, 6. März 2025, abgerufen am 9. März 2025 (englisch).
  12. Tarlogic detects a hidden feature in the mass-market ESP32 chip that could infect millions of IoT devices. Tarlogic Security, 6. März 2025, abgerufen am 12. März 2025 (englisch).
  13. CVE-2025-27840. National Vulnerability Database (NVD), 7. März 2025, abgerufen am 9. März 2025 (englisch).
  14. Espressif's Response to Claimed Backdoor and Undocumented Commands in ESP32 Bluetooth Stack. Espressif Systems, 10. März 2025, abgerufen am 12. März 2025 (englisch).