Generelles zum Einsatz von ESP32 Chips und Modulen
Modellübersicht
Source: https://espboards.dev
- Parametrische Suche nach dem Prozessor:
- Suche nach Boards mit Prozessor:
- ESP32-C6
- Alle Modelle:
- CPUs: 1
- CPU-Taktfrequenz: 160 MHz
- On-Chip SRAM: 512 KB
- PSRAM: -kein-
- GPIOs: 22-23
- Flash-Memory: 4 MB
- ESP32-C6-MINI-1U-H4, ESP32-C6-MINI-1U-N4, ESP32-C6-MINI-1-H4, ESP32-C6-MINI-1-N4, ESP32-C6-WROOM-1U-N4, ESP32-C6-WROOM-1-N4, ESP32-C6FH4
- Flash-Memory: 8 MB
- ESP32-C6-MINI-1U-H8, ESP32-C6-MINI-1-H8
- ESP32-C6-WROOM-1U-N8, ESP32-C6-WROOM, 1-N8
- ESP32-C6FH8
- Flash-Memory: 16 MB
- ESP32-C6-WROOM-1U-N16, ESP32-C6-WROOM-1-N16
- „FH4“ ⇒ F=Flash auf dem Chip, H=High-Temperature, 4=4MB Flash
Serial IO über USB
Ausgabe über USB
Eingabe über USB
Das eigentliche Problem: Der ESP32 kann nativ USB, allerdings nicht als UART sondern nur mit CDC. Der „ESP-IDF Monitor“ kann nur Daten empfangen, aber nicht senden. Daher funktioniert ein getchar() im Code nicht.
OTA (Over-The-Air Update)
Flash Layout (default): ┌─────────────────┐ │ Bootloader │ 0x1000 ├─────────────────┤ │ Partition Table│ 0x8000 ├─────────────────┤ │ NVS │ (WiFi credentials, etc.) ├─────────────────┤ │ OTA Data │ (welche Partition aktiv ist) ├─────────────────┤ │ OTA App 0 │ ← Aktuelle Firmware ├─────────────────┤ │ OTA App 1 │ ← Neue Firmware wird hier geschrieben └─────────────────┘
HTTP Pull (ESP32 holt sich Update)
PC/Server hostet .bin Datei
↓
ESP32 fragt periodisch oder auf Kommando:
"Gibt es eine neue Version?"
↓
ESP32 lädt .bin herunter
↓
Schreibt in inaktive Partition
↓
Reboot → Bootloader startet neue Version
HTTP Push via Telnet-Command (Du schickst Update)
Du tippst: OTA http://192.168.1.100/firmware.bin
↓
ESP32 lädt von dieser URL
↓
Reboot
TCP Push (Du streamst .bin direkt)
nc 192.168.1.42 2323 OTA START <size> → Ready [binary data stream] → OK: Rebooting
Kein Server nötig
Alles über bestehenden TCP Port
Komplexer zu implementieren
ncfür Binärdaten ungeeignet
VS Code ESP-IDF OTA (Tool-gestützt)
idf.py build → firmware.bin erzeugt idf.py upload-ota --host 192.168.1.42 → ESP32 empfängt und flasht
Professionell
Kein manuelles Handling
Custom Script nötig
