Einfacher Start mit ESP32 und Arduino-IDE

Ü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.

Microcontroller ESP32-Wroom-32
Microcontroller ESP32-Wroom-32
Microcontroller ESP32-C3-Supermini
Microcontroller ESP32-C3-Supermini

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:

Pinout Microcontroller ESP32 - linke Seite
Pinout Microcontroller ESP32 – linke Seite
Pinout Microcontroller ESP32 - rechte Seite
Pinout Microcontroller ESP32 – rechte Seite

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.

ESP32 auf einem angepassten Breadboard
ESP32 auf einem angepassten Breadboard

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.

Schreibe einen Kommentar