Probleme mit Servo-lib Version 0.13

Michael berichtet in der FB- Gruppe von Problemen mit der aktuellen Servo-Bibliothek:

Es hat mir keine Ruhe gelassen. Eben habe ich euren Verlauf auf hiveeyes.org gelesen und da war zu sehen, dass der Servo läuft und keine Probleme zu erwarten sind. Alle Lötstellen und Co. überprüft. Alles richtig. Dann habe ich mal geschaut, ob es andere Bibliotheken gibt, nein.

Aber es kam gestern eine neue Version heraus, die 0.13. Ja genau, die kam gestern. Weil ihr mit einer anderen getestet habt, habe ich die 0.12.1 installiert und siehe da. ES GEHT! Der Servo läuft. Damit ich sicher bin, habe ich nochmal mit der 0.13 und wieder mit der 0.12.1 kompiliert. Also die 0.13 ist nicht kompatibel. Solltet ihr also in der Doku anpassen. Oder ihr findet den Grund dafür.

Freue mich total, dass ich dem Projekt so ein ganz bisschen weiter helfen konnte.

Downgrade auf Version 0.12.1 über den Arduino-Bibliotheksmanager: Menü Werkzeuge > Bibliotheken verwalten dort nach ESP32Servo suchen, Version 0.12.1 auswählen und auf Installieren klicken.

1 Like

Doku zur Lib unter ESP32Servo - Arduino Reference Repo unter GitHub - madhephaestus/ESP32Servo: Arduino-compatible servo library for the ESP32

Changes 0.12.1 zu 0.13.0: Comparing 0.12.1...0.13.0 · madhephaestus/ESP32Servo · GitHub

Vielen Dank für den Bericht. Hier in der platformio.ini Datei [1] sind die Versionsnummern der Abhängigkeiten festgenagelt, damit ein Upgrade einer Bibliothek nicht versehentlich etwas kaputtmacht. Da die eine oder andere heutzutage bestimmt öfters mit Visual Studio Code arbeitet, könntet Ihr PlatformIO intensiver nutzen und Euch selbst und anderen viele Schmerzen ersparen, mit PlatformIO IDE for VSCode — PlatformIO latest documentation, siehe auch [2][3].

Das Bearbeiten von Quelltexten klappt natürlich auch mit jedem anderen Editor gut (Emacs, Vim) [4], Hauptsache Ihr holt Euch nicht mehr die in vielen Bereichen sehr fehlerträchtige Arduino IDE auf die Maschine. Gerade wenn es um das Reproduzieren von Entwicklungsumgebungen geht, fällt die Arduino IDE leider deutlich hinter dem Standard zurück, und solche Fehler sind vorprogrammiert. Nix für ungut! ;]


  1. hani-mandl/platformio.ini at master · ClemensGruber/hani-mandl · GitHub ↩︎

  2. A professional collaborative platform for embedded development · PlatformIO ↩︎

  3. Visual Studio Code » PlatformIO IDE ↩︎

  4. Aber der Komfort, den die PlatformIO IDE beim Sketch Upload und beim UI-unterstützten Debugging bietet, ist natürlich allererste Sahne.

    ↩︎

1 Like

Im Arduino Ökosystem gibt es ja zum Glück schon länger die library.properties Datei, mit der Paketmetadaten von Bibliotheken genauer beschrieben werden können [1], inklusive ihrer Abhängigkeiten.

Eine aktuelle Recherche ergibt, das es etwas ähnliches (jetzt auch?) für “Sketches” gibt, in Form einer sketch.yaml [2].

Sketch project file


  1. Arduino Library Specification ↩︎

  2. Arduino Sketch Specification ↩︎

Bin mir nicht sicher, ob das auch in der Arduino IDE funktioniert. Mglw. funktioniert es bisher erst mit der Arduino CLI. Das wäre aber immerhin ein Fortschritt ;].

Fazit

Um zukünftig bessere Werkzeuge zu nutzen, gerade wenn man wechselnd verschiedene Geräte und Umgebungen auf dem Tisch hat, tut Euch bitte den Gefallen und baut Euch reproduzierbare Entwicklungsumgebungen. Wie viele zig Stunden weltweit hier bestimmt schon draufgegangen sind, nur weil die eine odere andere Abhängigkeit schief hing…

Daher: PlatformIO mit PlatformIO IDE sind hier zukunftsweisend, und stellen sowohl IDE- als auch Kommandozeilenbenutzer zufrieden. Letzteres ist auch für das automatische Bauen auf Build- und CI-Servern wichtig.

Laut der Doku im zugehörigen pull request add support for ESP32-S3 and ESP32-C3 and match chip instead of board by codingcatgirl · Pull Request #32 · madhephaestus/ESP32Servo · GitHub hat sich mit v0.13 die Identifikation des chips fundamental geändert, früher (< v0.13) über das board, jetzt über ein IDF flags, der Kommentar unten lässt ggf. ahnen, dass das nicht so super stabil / ausgereift ist?

so it actually matches for the chip in question (yes, using IDF flags, it works under arduino and i couldn’t find a nicer way), and not just the dev boards, since arduino has way more boards defined with these chips than just the dev boards.

Hier habe ich kommentiert, dass die eigentlich für ESP32-S3 angedachten Änderungen in der v0.13 bei uns zu Problemen führen:

todo: checken, ob wir etwas machen können bzw. es tatsächlich an der ESP32Servo liegt oder die (Heltec) board definition ein Problem ist, ggf. testen ob dev-board-esp-s3 vs Heltec-v3 einen Unterschied macht.

Hi Clemens,

Bevor wir nicht entsprechend (koordiniert?) modernisiert haben (z.B. CI: Add support for "Arduino core for the ESP32" version 2.0.6 by amotl · Pull Request #35 · ClemensGruber/hani-mandl · GitHub) und eine für andere reproduzierbare Umgebung liefern können (inkl. ESP IDF und Arduino Core), sollten wir woanders noch keine Eingaben machen.

Der develop Branch nutzt derzeit noch Version 0.9.0 der ESP32Servo Bibliothek.

Viele Grüße,
Andreas.

Mindestens könntest Du die entsprechenden von Dir verwendeten Versionen dazuschreiben.

Es gab in der FB-Gruppe schon diverse Meldungen, d.h. der Großteil der Leute wird die Arduino-IDE verwenden und dann einfach die letzte Version der lib installieren.

Genau bei diesem Detail geht es um den Zeitpunkt der Installation, und dann eben darum was zu welchem Zeitpunkt “die letzte Version” ist. Zum Beispiel jetzt. Vielleicht könntest Du diese Informationen noch nachliefern?

Ich meine gar nicht die Version der ESP32Servo Bibliothek, sondern die Versionen des Espressif IDF SDKs und des Arduino Core HAL.

Andersrum und konkreter gefragt: Sind die aktuellsten Versionen der genannten Komponenten installiert, und wie heißen sie?

Ich suche die Versionen die bei mir beim letzten Test funktioniert haben einmal raus. So weit ich mich erinnere waren es bei allen verwendeten libs “the latest” bis auf die Servo lib, die gerade Probleme macht. Mit den Infos können wir dann auch die platformio config updaten.

1 Like