== Festnageln der Platform ==
Platformio ist klasse, aber extrem viel Frust bereiten Projekte, wo die Version der Platform nicht auf eine bestimmte Version festgenagelt wurde. Oft findet man in der Platformio.ini folgendes '''(schlecht!)''':
<pre>platform = platformio/espressif32</pre>
Was ist das Problem damit?
Das Projekt läuft erstmal, aber wenn man zu einem späteren Zeitpunkt das Projekt nochmal kompilieren will, gibt es sehr unschöne Fehlermeldungen - der große Nachteil an Open Source ist halt, dass die ständigen Weiterentwicklungen leider auch zu ständigen Inkompatibilitäten führen, die auch hartgesottene Programmierer überfordern. Kleine Details sind dann geändert und die API verhält sich anders, der Code kompiliert nicht oder verhält sich plötzlich anders.
Abhilfe schafft es, dass man die verwendete Version "festnagelt" - das wird mittlerweile auch [https://docs.platformio.org/en/latest/projectconf/sections/env/options/platform/platform.html empfohlen]:
<pre>
[env:recommended_specification]
; allow backwards-compatible new functionality and bug-fixes
platform = platformio/espressif32@^6.1.0
[env:allow_only_bug_fixes]
platform = platformio/espressif32@~6.1.0
[env:exact_version]
platform = platformio/espressif32@6.1.0
</pre>
== Private Credentials (z.B. Wifi-Passwort) ablegen ==
=== .platformio Verzeichnis ===
<pre>.platformio/lib/MyCreds/MyCreds.ini</pre>
Hier kommt nun das Upload-Passwort hinein, in dem man einfach eine Variable im "[common]" Abschnitt definiert:
<pre>
[common]
private_upload_auth = "upload_password"
</pre>
Im öffentlichen Projekt kann man nun diese Datei includieren und so die Variable nutzen, ohne das der Inhalt später z.B. im öffentlichen GIT landet. Auf den User-Ordner greift man über <pre>${platformio.core_dir}</pre> zu. In der platformio.ini könnte dazu folgendes stehen wenn das Passwort für den OTA-Upload genutzt werden soll:
<pre>
[platformio]
; include private credentials
extra_configs = ${platformio.core_dir}/lib/MyCreds/MyCreds.ini
[[Datei:PlatformioCloneGit.png|400px]]
== esptool manuell nutzen ==
* <pre>cd ~/.platformio/packages/tool-esptoolpy</pre>
* <pre>~/.platformio/penv/bin/python esptool.py</pre>
== pioarduino Wiki ==
pioarduino Wiki The Wiki is AI generated and insane detailed and accurate.
https://deepwiki.com/pioarduino/platform-espressif32