Die neuen espressif ESP32 Chip Varianten im Vergleich
Früher war die Mikrocontroller-Welt für den Maker einfach: Es gab die Arduinos, vielleicht den STM32 und die Produkte von espressif: erst den ESP8266 und dann später den stärkeren ESP32.Und es gab nur einen ESP32, mehr Auswahl gab es nicht. Naja, man hatte die Wahl zwischen dem WROOM-32 Modul und dem WROVER Modul. Aber allermeistens fand man das WROOM-32 Modul in seinem kleinen, flachen Metallquader auf den Entwickler-Boards. Der Wrover gab es noch in anderen Ausführungen mit mehr Flash-Speicher oder samt PSRAM, aber von den sonstigen Spezifikationen waren alle ESP32 gleich.
Auch früher gab es zwar schon Varianten von Entwicklerboards, wie hier aufgelistet und beschrieben, zum Beispiel mit integriertem Display, oder mit Kamera als ESP32-Cam und sogar als mobile Retro-Spielekonsole Odroid Go.
Mit dieser kleinen, überschaubaren Welt im Kopf stand ich dann April 2023 auf der embedded World auf dem Stand von espressif und staunte nicht schlecht; ja ich wurde geradezu erschlagen von der neuen Produktvielfalt, die espressif neuerdings zu bieten hatte.
Plötzlich gab es nicht mehr den einen ESP32, sondern ganze Familien, die ESP32-S, die ESP32-C, die ESP32-H und bald wird es auch eine ESP32-P-Familie geben. Und die sind auch noch mal unterteilt in Modelle. Wer soll sich das alles nur merken und auseinanderhalten?
Natürlich möchten professionelle Hersteller, die Geräte in Tausender-Stückzahlen produzieren genau den Chip einkaufen, der auf ihre Bedürfnisse passt und nichts extra oben drauf zahlen für Leistung, die sie nicht brauchen. Und dem kommt espressif mit seiner neuen Modellvielfalt nach.
Für den Maker wird es dadurch allerdings verwirrend. Für ihn kommt es auch nicht auf Tausender-Stückpreise an, sondern er kauf die Chips auf fertigen Boards, und das einzeln oder in geringen Stückzahlen.
Es gibt zwar einen Product Selector (1) von espressif, aber der zeigt noch mehr Untermodelle an und kann einen schon mal bei der ersten Benutzung ein wenig überfordern. Wenn man sich ein wenig mit ihm beschäftigt, kommt man aber schon damit klar.
Es nützt alles nichts, auch als Maker muss man sich mit den neuen Familien und Modellen auseinandersetzen, will man nicht ein falschen Modell kaufen, denn:
- Es gibt Modelle, die haben gar kein WLAN mehr, oder kein Bluetooth
- Manche Modelle sind an GPIO-Pins stark eingeschränkt und haben z. B. nur noch 14 (der ESP32-C2)
- Nur ganz wenige Modelle (die ESP32-S2) haben noch einen DAC, also einen Analog to Digital Converter. Den braucht man, um Eingangsspannung messen zu können, wie vielleicht von einem Fotowiderstand/Lichtsensor
Es gibt aber auch ein paar neue Modelle mit besonderen Features wie etwa:
- Unterstützung der Home-Automation-Funkstandards ZigBee und Threads für Matter (ESP-H2, ESP-C61, ESP-C6)
- Wifi auch im 5 GHz Frequenzbereich (ESP32-C5)
- sehr viele GPIO-Pins (45 beim ESP-S3 und 50 beim ESP32-P4)
- speziellen Hardware-Codecs zum Video-Encoding (ESP32-P4)
- höheren Takt (ESP32-P4 bis zu 400 MHz) oder bis zu 768 KB SRAM (auch ESP32-P4)
Aus "one fits all", also "Einer für alles" für den ESP32 classic wird jetzt "as you need", also "so, wie du es brauchst". Eigentlich eine tolle Sache, nur macht es die Auswahl für den Maker natürlich ein bisschen komplizierter. Deswegen vielleicht folgende Eselsbrücken:
- Die Familie ESP32-C könnte für C wie "cheap" stehen - hier gibt es die weniger hochgetakteten Chips mit weniger Features
- Die Familie ESP32-H (derzeit nur mit dem ESP32-H2) könnte für H wie "hell of cheap" stehen: wenig Takt und Speicher, aber trotzdem hat der ESP32-H2 die SmartHome-Funkstandards. Zum ein- und ausschalten einer Steckdose braucht man ja auch nicht viel RAM oder Takt. Da möchte man es günstig.
- Die Famile ESP32-S könnte für S wie "standard" bzw. "alles beim Alten" stehen. Die Funktionalität, Takt und RAM entspricht ungefähr dem alten ESP32 classic.
- Die Familie ESP32-P könnte für P wie "Power" stehen. Der ESP32-P4 macht mächtig Dampf mit 400 MHz und hat mit 768 KB den meisten Speicher.
- Der ESP32-C2 heißt auch ESP8684
- Der ESP32-C3 heißt je nach Ausbau auch ESP8685 bzw. ESP8686
Nur kurz zur Erinnerung zum Auseinanderhalten, welcher Speicher wofür ist:
- SRAM (Static RAM) ist ein schneller, statischer RAM. Hier werden die Daten gespeichert, die ständig vom Programm geändert werden, wie die Variabeln. Ohne Strom wird der SRAM gelöscht. Er braucht aber keine ständige Aktualisierung wie DRAM (Dynamic RAM), den wir vom PC kennen. SRAM entlastet die CPU bzw. MCU, ist aber teuer.
- Flash, auch EEPROM (Electrically Erasable Programmable Read-Only Memory), ist ein langsamerer Speicher, den zu beschreiben etwas mehr Aufwand bedarf. Hier liegt normalerweise unsere Firmware, die wir auf den Flash gebrannt haben. Und vielleicht statische Daten wie Bilder. Flash-Speicher bleibt nach dem Ausschalten erhalten.
- PSRAM (Pseudo-Static RAM) ist nicht ganz so schnell wie SRAM, aber billiger. Hier kann man schon mal 2 oder 4 MB günstig dazu tun.
- Hinter einem H oder N ist die Flash-Größe in MB angegeben. Warum zwei Buchstaben für eine Sache? Weil hier auch der Temperaturbereich hineinspielt, für den der Flash-Speicher geeignet ist. N steht für "normal" und H für "high temperature".
- Hinter einem R wird die PSRAM-Größe in MB angeben.
Mit den Informationen über das Modell hat man die Feature des Chips und mit den Informationen zu H/N und R hat man den weiteren Speicherausbau, der auch außerhalb des Chips auf dem Board verbaut sein kann.
So weiß man ganz genau, was man kauft. Das heißt, wenn man jetzt noch genau wüsste, welche ESP32-Variante was leistet.
Die große Vergleichstabelle der ESP32-Varianten mit (fast) allen Specs
Dafür habe ich mich durch den Product Selector (1) und Data-Sheets (2, 3, 4, 5) von espressif gequält, um für euch eine Tabelle zu erstellen, in der man den vollen Überblick hat.Wie benutze ich die Tabelle?
Die Tabelle ist wegen der vielen Features sehr breit und nach rechts weiter scrollbar. Auf dem Tablet oder Smartphone einfach mit dem Finger swipen. Auf dem PC etwas markieren (Maustasten halten und nach rechts fahren). Ganz unten unter der Tabelle ist auch ein Slider, mit dem man scrollen kann.
Wenn ihr jetzt zum Beispiel ein ESP32-Modell sucht, dass auch ZigBee kann, dann schaut in der Spalte "sonst. Funk" für "sonstige Funkstandards" nach, welche Modelle das können. Spoiler: es sind der ESP32-H2 und der ESP32-C6 / ESP32-C61.
Oder anders herum: ihr seht gerade ein neues ESP32-Modell in einem Angebot und wisst nicht, was es kann? Sucht links in der Spalte nach dem Modell und schaut, was es so alles kann. Das vermeidet Überraschungen wie zum Beispiel, dass es kein Bluetooth gibt.
Modell | Jahr | Cores | Takt (MHz) | SRAM (KB) | Flash (MB) | PSRAM (MB) | WLAN | Blue-tooth | sonst. Funk | GPIO | ADC (Channel) | DAC | PWM (Ch.) | RT Clock | Hardware-Protokolle | Hardware sonst. | Crypto | Beispiel |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ESP8266 (Modul 12F) | 2014 | 1 | 80 - 160 | 81 | 1 | nein | 2.4 GHz, max. 72 Mbit/s | nein | 16 | 1x 10 bit | nein | 8x | nein | UART, SPI, I2C, I2S | 0 | nein | Beispiel-Board | |
ESP32 (WROOM-32) | 2016 | 2 | 160 - 240 | 520 | 4 | nein | 2.4 GHz* | 4.2, BLE | 34 | 16x 12 bit | 1x | 16x | ja | UART, SPI, I2C, I2S, CAN | Cam Bus, Hall Sensor | AES, SHA2, RSA, ChipID | Beispiel-Board | |
ESP32 (WROVER) | 2018 | 2 | 160 - 240 | 520 | 4, 16 | 4, 8 | 2.4 GHz* | 4.2, BLE | 34 | 16x 12 bit | 1x | 16x | ja | UART, SPI, I2C, I2S, CAN | Cam Bus, Hall Sensor | AES, SHA2, RSA, ChipID | Beispiel-Board | |
ESP32-H2 | 2023 | 1 | 96 | 320 | 2, 4 (H) | nein | 2.4 GHz* | 5.3, BLE | ZigBee, Thread, Matter | 19 | 5x 12 bit | nein | ? | ja | UART, SPI, I2C, I2S | RISC-V, Temp.-Sensor | Crypto1* | |
ESP32-C2 (aka ESP8684) | 2020 | 1 | 120 | 272 | 2, 4 (H) | nein | 2.4 GHz* | 5, BLE | 14 | 5x 12 bit | nein | ? | ja | UART, SPI, I2C, I2S | RISC-V, Temp.-Sensor | Crypto1* | ||
ESP32-C3 (aka ESP8685 / ESP8686) | 2020 | 1 | 160 | 400 | 2,4 (H) | nein | 2.4 GHz* | 5, BLE | 15-22 | 6x 12 bit | nein | ? | ja | UART, SPI, I2C, I2S | RISC-V, Temp.-Sensor | Crypto1* | ||
ESP32-C5 | 2024? | 1 | 240 | 400 | 0, 4 (H/N)? | nein | 802.11 b/g/n/ax, WiFi-6 (2.4 und 5 GHz) | 5, BLE | 20 | 5-7x 12 bit? | nein | ? | ja | UART, SPI, I2C, I2S | RISC-V, USB OTG, Temp.-Sensor | Crypto1* | ||
ESP32-C61 | 2024? | 1 | 160 | 320 | 0, 4 (H/N)? | 0, 2 (R)? | 2.4 GHz, WiFi-6 | 5.3, BLE | ZigBee, Thread, Matter | 22? | 7x 12 bit? | nein | ? | ja | UART, SPI, I2C, I2S | RISC-V, USB OTG, Temp.-Sensor | Crypto1* | |
ESP32-C6 | 2020 | 1 | 160 | 512 | 0, 4 (H/N) | 0, 2 (R) | 2.4 GHz, WiFi-6 | 5.3, BLE | ZigBee, Thread, Matter | 22-30 | 7x 12 bit | nein | ? | ja | UART, SPI, I2C, I2S | RISC-V, USB OTG, Temp.-Sensor | Crypto1* | |
ESP32-S2 | 2020 | 1 | 240 | 320 | nein | 2 (R) | 2.4 GHz* | nein | 43 | 20 x 12 bit | 2x | ? | ja | UART, SPI, I2C, I2S | USB OTG | Crypto1* | ||
ESP32-S2F | 2023 | 1 | 240 | 320 | 2, 4 (H/N) | 2 (R) | 2.4 GHz* | nein | 43 | 20 x 12 bit | 2x | ? | ja | UART, SPI, I2C, I2S | USB OTG | Crypto1* | ||
ESP32-S3 | 2020 | 2 | 240 | 512 | 0, 4, 8, 16 | 2, 8 (R) | 2.4 GHz* | 5, BLE | 45 | 20 x 12 bit | nein | ? | ja | UART, SPI, I2C, I2S | USB OTG | Crypto1* | ||
ESP32-S3-Pico | 2023 | 2 | 240 | 320 | 4, 8 | 2, 8 (R) | 2.4 GHz* | 5, BLE | 45 | 20 x 12 bit | nein | ? | ja | UART, SPI, I2C, I2S | USB OTG, All-In-One-SoC | Crypto1* | ||
ESP32-P4 | 2024? | 2 | 400 | 768 | 4, 8? | 2, 4, 8 (R)? | nein | nein | 50 | ja | ja | ? | ? | UART, SPI, I2C, I2S, TWAI (CAN) | RISC-V, USB OTG, Video Encoding | Crypto1* |
*Crypto1 = AES, SHA2, RSA, RNG, ECC, Secure Boot, Flash Encryption
*USB-OTG max. 12 Mbit/s
*2.4 GHz = 802.11 b/g/n, max. 150 Mbit/s
*H/N = Kennzeichen für Flash, H = High Temperature, N = Normal Temperatur
*R = Kennzeichen für PSRAM
Meine Empfehlungen
Wenn ihr etwas mit den SmartHome-Funk-Standards ZigBee oder Matter (Thread) machen wollt, dann könnt ihr jetzt auch einen ESP32 benutzen. Aber besten einen ESP32-C6. Den gibt es mit 2, 4, oder 8 MB Flash on Board, zum Beispiel über amazon oder AliExpress - wie gewohnt über amazon schneller und teurer (ca. 15 €) als über AliExpress (ca. 6 €) (Preise Stand März 2024).Außerdem hat das Board zwei USB-C-Anschlüsse: Einen für die Programmierung über den PC und einen als USB-OTG-Port, also als USB-Host, zum Beispiel, um Tastatur oder Maus darüber zu emulieren. Der USB-OTG Port ist allerdings nur maximal 12 Mbit/s schnell. Das sind max. 1.5 MB/s, für einen USB-Stick möchte ich das eher nicht benutzen.
Ansonsten könnt ihr natürlich immer noch die guten, alten ESP32 WROOM32-Boards benutzen. Die haben einen guten, universellen Ausbau und sind etabliert und ein gibt unzählige Boardvarianten. Einen Überblick über die unterschiedlichen ESP32-classic-Board-Varianten findet ihr hier.
Wer auf dem Niveau des ESP32-classic weitermachen will, für den dürfte der ESP32-S3 die richtige Wahl sein. Takt, Speicher, Flash: so ziemlich alles beim Alten. Außer vielleicht, dass es jetzt auch USB OTG und mehr Crypto-Funktionen gibt.
Preislich ist man auch auf dem gleichen Niveau wie bei einem ESP32-classic. Beide kostet derzeit aus Fernost um die 7-8 Euro. Es gibt den ESP-S3 auch in der Boardvariante N16R8, also mit 16 MB Flash und 8 MB PSRAM derzeit um diesen Preis via AliExpress aus China. Das ist dann schon wesentlich mehr, als ein ESP32-classic zu bieten hat. Außerdem hat das Board 2 USB-Ports, einen zum Programmieren und einen als USB-OTG-Port. Allerdings hat man keinen DAC. Hier ist der ESP32-S3 also die bessere Wahl in Hinsicht auf das Preis-Leistungs-Verhältnis. Es sei denn, man bekommt ein old school ESP32-Ausverkaufsexemplar, vielleicht noch mit Mikro-USB für 4 Euro.
Wer sparen will und nicht viel Leistung braucht, der könnte zu einem ESP-C2 oder ESP-C3 oder gar ESP-H2 greifen. Sie alle gibt es mit Flash, WLAN und Bluetooth. Man muss aber mit weniger GPIO-Pins leben.
Das kann aber auch ein Vorteil sein, wenn man es klein will. Das ESP32-C3-Super-Mini kostet nur um 3 € aus China und ist wirklich klein: nur 22.5 x 18 mm. Die Höhe bestimmt der USB-C-Port. Trotzdem sind 4MB Flash on board. Mit 400 KB SRAM und 160 MHz Takt kann man wohl leben. Allerdings muss man sich mit den 13 GPIO-Pins begnügen. Dazu gibt es noch 3.3 und 5 Volt an den Pin-Headern. Außerdem befindet sich eine LED und 2 Buttons auf der Platine.
Und selbst der in die Tage gekommene ESP8266 hat noch seine Daseinsberechtigung. Das D1-Mini-Board zum Beispiel ist klein, reicht für die meisten WLAN-Anwendungen aus und ist günstig zu bekommen. Ich gebrauche es nach wie vor sehr gerne für meine Projekte und werde mir noch ein paar sichern, wenn ich sie irgendwo billig im Abverkauf sehe.
Der ESP-P4 ist noch gar nicht als Board herausgekommen. Aber das wird noch einmal ein spannender Kandidat. Bleibt abzuwarten, wie es sich dann tatsächlich schlägt und was er kann.
Quellen, Literaturverweise und weiterführende Links
(1) Espressif Product-Selector
(2) Espressif: Specs für das USB-OTG
(3) Espressif: Specs für den ESP32-C61
(4) Espressif: Specs für den ESP32-C5
(5) Espressif: Specs für den ESP32-P4
(6) Wikipedia: ESP8266
(7) Wikipedia: ESP32
(8) Youtube-Video zu dem Thema von Bitluni
(9) Youtube-Video zu dem Thema von Edi's Techlab
(10) Youtube-Video zu dem Thema von DroneBot Workshop
(2) Espressif: Specs für das USB-OTG
(3) Espressif: Specs für den ESP32-C61
(4) Espressif: Specs für den ESP32-C5
(5) Espressif: Specs für den ESP32-P4
(6) Wikipedia: ESP8266
(7) Wikipedia: ESP32
(8) Youtube-Video zu dem Thema von Bitluni
(9) Youtube-Video zu dem Thema von Edi's Techlab
(10) Youtube-Video zu dem Thema von DroneBot Workshop