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.
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! ;]
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].
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 ;].
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.
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.
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.
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.