Upload/monitor port automatisch erkennen

Hallo,

platformio kann theoretisch den upload und den monitor port automatisch erkennen.
das funktioniert am besten, wenn die USB PID/VID bekannt ist.
Deshalb habe ich mal in einem branch die board json files um diese Information erweitert.

Vorteile:

  • Auf den verschiedenen Platformen (z.B. Linux oder Windows) sollte der platformio funktionieren, ohne dass in der platformio.ini der MAC-spezifische Pfad angepasst werden muss.
  • Wenn man mehrere verschiedene serielle Adapter angeschlossen hat, funktioniert es auch, wenn das Zielgerät nicht den ersten Port belegt.
  • sind mehrere gleiche serielle Adapter angeschlossen fragt platformio nach, welchen er nehmen soll.

Nachteile:

  • zusätzliche Komplexität
  • funktioniert nur mit integrietem Adapter, bei externem Programmer muss wieder manuell der upload_port/monitor_port festgelegt werden.
  • sind mehrere gleiche serielle Adapter angeschlossen fragt platformio nach, welchen er nehmen soll.

PS: leider war es nicht möglich, die USB PID/VID per platformio.ini zu überschreiben, da das nur für den upload und nicht für den monitor port greift.
(siehe Kommentar: Monitor port autodetection based on VID:PID · Issue #3349 · platformio/platformio-core · GitHub)

TODO: Dokumentation

Ah ok, interessant.
Früher ging das irgendwie auch so. Nur irgendwann hatte ich auf dem Mac Probleme und dann habe ich die Ports halt so eingepasst, wie es mir taugt :slight_smile:

Greift Platformio dann automatisch auf diesen Ordner zu mit den Boards als json-File?

Ja, genau. Der Ordner lässt sich aber auch konfigurieren, wenn man den lieber an anderer Stelle haben möchte:
https://docs.platformio.org/en/latest/projectconf/section_platformio.html#boards-dir

1 „Gefällt mir“

Wenn ich es heute Abend schaffe werde ich es mal testen. Wäre auf jeden Fall gut, wenn man das händisch nicht mehr anpassen müsste.

Danke für den Input.

Ich hab es nur auf Linux getestet.
Wenn der Port manuell gesetzt ist, wird der genommen…
Bei der autodetection nimmt er, wenn die json-Datei die PID/VID nicht enthält, ttyUSB0, obwohl da mein FTDI-Adapter dranhängt - mit der Anpassung nimmt er automatisch ttyUSB0 oder ttyUSB1, je nachdem wo ein CH340C dranhängt (im Fall des Lolin D32 Pro).

Ich schau mal, ob ich bis heute Abend noch die Dokumentation dazu überprüfe und einen Kommentar in die platformio.ini schreibe.

Ich klammere die Zeilen immer aus , weil mein Port ein anderer ist müßte ich es immer ändern . Er wird automatisch erkannt - Ich hatte da nie Probleme mit ( habe auch iMac )