Arduino IDE zu PlatformIO

Ich muss heute ein Geständnis ablegen: Ich bin ein Gewohnheitstier. Ein störrisches noch dazu. Während ich in meiner Welt als Webentwickler längst im gleißenden Licht von Visual Studio Code (VS Code) sonnte und die Vorzüge von modernem Tooling genoss, fristete meine Hardware-Programmierung ein Schattendasein in der Steinzeit. Ich wusste zwar schon lange, dass es PlatformIO gibt, aber ich habe mich gesträubt wie eine Katze vor dem Staubsauger. Warum? Weil die Arduino IDE wie diese eine alte, durchgesessene Jogginghose war: hässlich, ein bisschen löchrig, aber man weiß genau, wo es zwickt.

Der „Aha-Moment“: Wenn das Gewohnheitstier zum Hacker wird

Irgendwann reichte es mir. Das ständige Scrollen durch elend lange Drop-down-Menüs in der Arduino IDE, nur um das richtige Board zu finden, hat mich mürbe gemacht. Als Web-Dev war ich verwöhnt von IntelliSense und Auto-Completion. In der Arduino IDE hingegen musste ich jeden Befehl wie digitalWrite mühsam zu Ende tippen – wehe, man vergisst das große ‚W‘, dann sucht man sich dumm und dämlich.

Der Wechsel zu VS Code mit dem PlatformIO-Plugin war, als würde man von einer Schreibmaschine auf ein MacBook Pro umsteigen. Da ich VS Code schon in- und auswendig kannte, fühlte sich die Oberfläche sofort wie „Zuhause“ an. Aber PlatformIO war der eigentliche Gamechanger, der meine Hardware-Projekte aus dem Chaos rettete.

Mein privater Silizium-Zoo: Eine Menagerie des Wahnsinns

Dank PlatformIO ist mein Schreibtisch endgültig zur Elektroschrott-Hutze mutiert. Die Vielfalt der unterstützten Hardware ist schlichtweg krankhaft – über 800 Boards stehen zur Auswahl.

  • Die Klassiker: Meine alten Arduinos (AVR) dürfen jetzt in Rente gehen.
  • Das WLAN-Wunder: Der ESP8266 in all seinen Inkarnationen – vom dicken NodeMCU bis zum winzigen Wemos D1 Mini.
  • Die Kraftpakete: Der ESP32, der so viel Power hat, dass er sich langweilt, wenn ich nur eine LED blinken lasse.
  • Die Minimalisten: Sogar die kleinen ATtinys, die ich früher nur mit viel Gefluche zum Laufen bekommen habe, sind jetzt zahm.
  • Die Exoten: Wenn ich morgen beschließen sollte, STM32 oder Nordic-Chips zu programmieren, muss ich nicht einmal die IDE wechseln.

Linux Mint: Das Paradies für Pinguin-Freunde

Und jetzt mal Hand aufs Herz: Ich nutze Linux Mint. Warum? Weil ich keine Lust mehr auf die Windows-Gängelung hatte. Ich erinnere mich an einen Moment, als ein Windows-User-Installer mal wieder eine Warnung ausspuckte, weil er dem Programm nicht vertraute. Mein Gedanke: „Mit Linux wäre das nicht passiert“.

Unter Linux Mint läuft alles geschmeidig. Kein Stress mit User-Installern, die sich in obskuren Pfaden verstecken. Ein sudo apt install und die Welt ist in Ordnung. Während Windows-Nutzer noch mit ihren seriellen Treibern für China-Klone kämpfen, kompiliere ich schon den dritten Kernel (okay, eigentlich nur ein Blink-Skript, aber es fühlt sich episch an). In VS Code habe ich zudem die Telemetrie direkt deaktiviert, damit niemand nach Hause telefoniert – wir Linuxer mögen unsere Privatsphäre.

Deep Dive: Warum PlatformIO mein Leben rettet

Das absolute Killer-Feature ist die platformio.ini. In der Arduino IDE waren Libraries „global“ – eine Änderung zerschoss mir drei andere Projekte. Bei PlatformIO ist jedes Projekt eine autarke Insel.

Beispiel für mein aktuelles Projekt: In der platformio.ini lege ich einfach fest, was ich brauche, und PlatformIO erledigt den Rest:

[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = arduino
monitor_speed = 115200
lib_deps = 
    ESP8266 and ESP32 OLED driver for SSD1306 displays @ ^4.1.0
    NTPClient

Dank lib_deps lädt PlatformIO die Bibliotheken beim ersten Kompilieren automatisch herunter. Kein händisches Suchen auf GitHub mehr! Und wenn ich im Code display. tippe, ploppen sofort alle verfügbaren Methoden auf. Ich fühle mich wie ein Profi-Hacker, auch wenn ich eigentlich nur die Uhrzeit auf ein OLED-Display zaubere.

Aber Achtung – Fallstricke für Umsteiger: Man muss jetzt ein bisschen „sauberer“ programmieren, was meinem inneren Monk eigentlich ganz gut tut:

  1. Die heilige Header-Datei: Man muss jetzt #include <Arduino.h> an den Anfang seiner Datei schreiben.
  2. Prototypen: Funktionen müssen deklariert werden, bevor man sie aufruft. Wer das vergisst, wird vom Compiler gnadenlos abgestraft.
  3. Die Wellen des Grauens: Der Oberflächen-Compiler unterringelt manchmal Dinge rot, die gar keine Fehler sind (z. B. Kommentare – fragt nicht!). Ich habe gelernt, diese „falschen Fehler“ mit stoischer Ruhe zu ignorieren, solange der „echte“ Build-Button unten in der blauen Leiste grünes Licht gibt.

Fazit: Kein Zurück ins Dreirad-Zeitalter

Der Wechsel war wie der Umzug aus einer Einzimmerwohnung in ein Penthouse. Ja, die Einarbeitungszeit war da, und mein inneres Gewohnheitstier hat anfangs gequengelt. Aber wer einmal den Komfort von echtem Git-Support (falls man mal wieder alles kaputt macht) und einer vernünftigen Library-Verwaltung genossen hat, will nicht mehr zurück.

Ich gehe jetzt wieder zurück an meinen Mint-Rechner und programmiere einen ESP32, der mir sagt, wann mein Kaffee kalt ist. Selbstironie End