Auto-detect upload port via ID? serial query (issue #11) #13

Merged
eddy merged 1 commit from fix/issue-11-portable-upload-port into main 2026-08-02 21:19:04 +02:00
Owner

Summary

Removes hardcoded upload_port from platformio.ini and replaces it with automatic detection via a new ID? serial command.

Changes

Firmware:

  • main.cpp: ID? → responds SylDa_Server
  • client.cpp: ID? → responds SylDa_Client

Script: tools/pio_upload_port.py (POST-script)

  • Scans /dev/serial/by-id/usb-Espressif_* for ESP32 ports
  • 1 ESP32 → use directly (fast path)
  • 2+ ESP32s → query ID? on each, match with expected identity
  • No match (first flash) → prompt user to pick a port
  • Uses env.AddPreAction("upload", callback) — only runs on upload target
  • Requires pyserial (graceful fallback if missing)

platformio.ini:

  • Removed upload_port from both environments
  • Added post:tools/pio_upload_port.py to extra_scripts

Closes #11

## Summary Removes hardcoded `upload_port` from `platformio.ini` and replaces it with automatic detection via a new `ID?` serial command. ### Changes **Firmware:** - `main.cpp`: `ID?` → responds `SylDa_Server` - `client.cpp`: `ID?` → responds `SylDa_Client` **Script:** `tools/pio_upload_port.py` (POST-script) - Scans `/dev/serial/by-id/usb-Espressif_*` for ESP32 ports - 1 ESP32 → use directly (fast path) - 2+ ESP32s → query `ID?` on each, match with expected identity - No match (first flash) → prompt user to pick a port - Uses `env.AddPreAction("upload", callback)` — only runs on upload target - Requires `pyserial` (graceful fallback if missing) **platformio.ini:** - Removed `upload_port` from both environments - Added `post:tools/pio_upload_port.py` to `extra_scripts` Closes #11
Auto-detect upload port via ID? serial query (issue #11)
All checks were successful
CI / firmware (pull_request) Successful in 1m22s
CI / android (pull_request) Successful in 7s
bf6619aa54
- Add ID? command to firmware: server responds 'SylDa_Server', client 'SylDa_Client'
- Add tools/pio_upload_port.py POST-script that queries connected ESP32s
- Remove hardcoded upload_port from platformio.ini
- Script logic: 1 ESP32 → use directly, 2+ → ID? query, no match → prompt user
- Requires pyserial for serial queries (graceful fallback if missing)
eddy merged commit 87eefe4a3c into main 2026-08-02 21:19:04 +02:00
Sign in to join this conversation.
No description provided.