Übersicht über den Microcontroller ESP32
Von der Firma Espressif wird einer der beliebtesten und vielseitigsten Microcontroller produziert, der für dezentrale Smarthome-Projekte hervorragend geeignet ist. Es gibt ihn in verschiedenen Ausführungen, diese bauen auf dem SMD-Chip ESP32 auf und führen auf einer kleinen Platine eine Anzahl von Ports heraus, die stark an die Ports und Funktionalitäten eines Raspberry Pi erinnern.
Das Preis-Leistungsverhältnis ist unschlagbar, Stand 10/2026 werden im Internet zwischen 10 und 4 € aufgerufen (ESP32-WROOM-32 oder ESP32-C3-Supermini), dafür besitzt der Controller zwei Cores, ist bis zu 240 MHz getaktet, kann über WLAN oder Bluetooth kommunizieren und steuert analoge und digitale Ein- und Ausgänge, I2C, SPI und DAC an.


Auch bei meinem ersten Kontakt mit dem Winzling stellte sich die Frage: Und wie steuere ich das Teil jetzt an? Es gibt einen MicroUSB- oder USB-C-Stecker, das ist es. Die Lösung liegt in der klassischen Herkunft des Microcontrollers aus der Steuerungswelt. Auf den ESP32 wird kein fertiges Image a la Raspi Pi geladen, sondern es wird ein Steuerungsprogramm erstellt, das dann in einer Endlosschleife läuft und dabei die gewünschten Aktionen (Einlesen von Sensoren, Ansteuern von Anzeigen oder Motoren (mit entsprechenden separaten Leistungstreibern)) ausführt.
Hierzu gibt es diverse Programme, die das erledigen können, das generierte Steuerungsprogramm in Maschinencode kompilieren und an den Microcontroller übertragen. Dies geschieht über die USB-Schnittstelle, die nach der abgeschlossenen Datenübertragung nur noch die Funktion der Stromversorgung übernimmt. Diese Programme heißen IDE – Integrated Development Environment. Ich verwende hier auch die weit verbreitete Arduino-IDE, die komplett alle Komponenten enthält, einen Texteditor für den Quellcode, einen Compiler zum Erstellen des Maschinencode und einen Uploader zum Übertragen des Programms auf den Controller.
Pinbelegung ESP32-WROOM-32
Die nächsten zwei Abbildungen zeigen das Pin-Layout des Microcontrollers. Die Grafiken wurden freundlicherweise durch AZ-Delivery bereitgestellt:
Der Controller ist auf eine kleine Platine aufgesetzt, bei der die beiden Kontaktreihen einen Abstand von 25,4 mm haben. Dies macht es für den Testbetrieb etwas kompliziert, den ESP32 auf einem normalen Breadboard zu betreiben. Ich habe mir hier damit beholfen, ein Breadboard aufzutrennen und damit ausreichend Platz für weitere Bauelemente zu schaffen.

Der Microcontroller ist über ein MicroUSB-Kabel an einem USB-Port des Rechners angeschlossen, von dem aus die Programmierung mit der Arduino-IDE erfolgen soll. Jetzt kann im ersten Schritt überprüft werden, ob er vom Rechner aus angesprochen werden kann.
sudo dmesg | grep tty [ 0.093019] printk: legacy console [tty0] enabled [ 0.359176] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 0.383404] 0000:00:16.3: ttyS4 at I/O 0xf0a0 (irq = 19, base_baud = 115200) is a 16550A [79280.349821] usb 1-1: cp210x converter now attached to ttyUSB0 ls /dev | grep USB ttyUSB0
Der cp210x converter ist der Chip auf dem ESP32, als Schnittstelle wird ttyUSB0 angezeigt,
angeschlossen ist der Microcontroller am Rechner am USB-Port 1-1.
Integrierte Entwicklungsumgebung für Arduino (Arduino-IDE)
Die Abkürzung IDE steht für Integrated Development Environment, damit werden alle Tools bezeichnet, die benötigt werden, um für einen Microcontroller einen ausführbaren Code zu erstellen und an diesen zu übertragen.
Arduino-IDE unter Ubuntu Server 26.04 LTS installieren
Ich gebe es zu, ich habe selbst ein Problem mit foo und bar, ich weiß manchmal bei dieser Abstraktion selbst nicht genau, wo welcher Befehl wie einzugeben ist. In meinen Beispielen nutze ich deshalb (fast immer) den Non-root-Benutzer installer, der dann sein Home-Verzeichnis unter /home/installer hat.
Ein Download der Arduino-IDE ist von der Website https://www.arduino.cc/en/software möglich. Stand 10/2026 ist die aktuelle Version 2.3.10 verfügbar. Die Arduino-IDE wird hier u.a. als ein komplettes Image geliefert und muss nicht installiert werden. Ich mache den Download und die Installation vom Terminal aus:
pwd /home/installer mkdir apps cd apps wget https://downloads.arduino.cc/arduino-ide/arduino-ide_2.3.10_Linux_64bit.AppImage chmod 755 arduino-ide_2.3.10_Linux_64bit.AppImage
Jetzt in der GUI den Filemanager öffnen, in den Ordner /home/installer/apps wechseln und einen Doppelklick auf das Arduino-IDE-Image machen. Bis Ubuntu Server 24.04 wurde die IDE auch sauber gestartet, unter Ubuntu Server 26.04 passiert – nichts. Eine Recherche im Netz offeriert, dass die Bibliothek FUSE2 fehlen soll, diese ist hier aber bereits installiert. Ein Start der App in einem Terminal liefert dann aber eine Fehlermeldung mit Bezug auf den Start des Programms in einer Sandbox:
cd /home/installer/apps ./arduino-ide_2.3.10_Linux_64bit.AppImage [13044:0925/131432.738593:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /tmp/.mount_arduinDCvXZs/chrome-sandbox is owned by root and has mode 4755. Trace/breakpoint trap (core dumped) ./arduino-ide_2.3.10_Linux_64bit.AppImage
Mit folgendem Befehl, der die Sandbox umgeht, wird die Arduino-IDE dann gestartet:
./arduino-ide_2.3.10_Linux_64bit.AppImage --no-sandbox
Starter für Arduino-IDE auf Desktop erstellen
cd ~/Desktop vi arduino.desktop [Desktop Entry] Version=1.0 Type=Application Name=Arduino IDE Exec=/home/installer/apps/arduino-ide_2.3.10_Linux_64bit.AppImage --no-sandbox Icon=/home/installer/apps/arduino-icon.png Terminal=false StartupNotify=false chmod +x arduino.desktop
Die Arduino-IDE kann jetzt direkt über das Icon gestartet werden.

