feat: Migrate firmware to PlatformIO (ESP32-S3, vesper-v1 env)
Replaces Arduino IDE with PlatformIO as the build system. Entry point moved from vesper.ino to src/main.cpp. All library dependencies are now declared in platformio.ini and downloaded automatically via lib_deps. Board: Kincony KC868-A6 (ESP32-S3, 4MB flash) → env:vesper-v1 Future variants Vesper+ and Vesper Pro are pre-configured but commented out. Compatibility fixes applied for this framework version: - Removed ETH.h dependency (Ethernet was disabled in v138) - Watchdog init updated to IDF v4 API (esp_task_wdt_init signature) - ETH.linkUp() check removed from OTAManager Also adds .pio/ to .gitignore and commits the manufacturing plan docs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
121
vesper/platformio.ini
Normal file
121
vesper/platformio.ini
Normal file
@@ -0,0 +1,121 @@
|
||||
; ═══════════════════════════════════════════════════════════════════════════════
|
||||
; Project Vesper — PlatformIO Configuration
|
||||
; ═══════════════════════════════════════════════════════════════════════════════
|
||||
;
|
||||
; Hardware Variants:
|
||||
; vesper-v1 — Kincony KC868-A6 (ESP32-S3, 4MB flash) — current production board
|
||||
;
|
||||
; Future variants (not yet active):
|
||||
; vesper-plus-v1 — Vesper+ with RF remote support
|
||||
; vesper-pro-v1 — Vesper Pro with onboard LCD
|
||||
;
|
||||
; Build: pio run -e vesper-v1
|
||||
; Upload: pio run -e vesper-v1 --target upload
|
||||
; Monitor: pio device monitor
|
||||
; Clean: pio run -e vesper-v1 --target clean
|
||||
; ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
; ───────────────────────────────────────────────────────────────────────────────
|
||||
; SHARED SETTINGS — inherited by all environments
|
||||
; ───────────────────────────────────────────────────────────────────────────────
|
||||
[common]
|
||||
platform = espressif32
|
||||
framework = arduino
|
||||
monitor_speed = 115200
|
||||
|
||||
; All external library dependencies
|
||||
lib_deps =
|
||||
; WiFi provisioning portal
|
||||
tzapu/WiFiManager @ ^2.0.17
|
||||
|
||||
; Async web server + WebSocket support
|
||||
; NOTE: Use the ESP32-compatible fork, not the original
|
||||
https://github.com/me-no-dev/ESPAsyncWebServer.git
|
||||
https://github.com/me-no-dev/AsyncTCP.git
|
||||
|
||||
; JSON parsing
|
||||
bblanchon/ArduinoJson @ ^7.0.0
|
||||
|
||||
; I2C GPIO expanders (relay control) — PCF8575 header is bundled in same library
|
||||
adafruit/Adafruit PCF8574 @ ^1.1.0
|
||||
|
||||
; Real-time clock
|
||||
adafruit/RTClib @ ^2.1.4
|
||||
|
||||
; Async MQTT client
|
||||
; NOTE: Requires AsyncTCP (already listed above)
|
||||
https://github.com/marvinroger/async-mqtt-client.git
|
||||
|
||||
build_flags_common =
|
||||
-DCORE_DEBUG_LEVEL=0
|
||||
-DCONFIG_ASYNC_TCP_RUNNING_CORE=0
|
||||
|
||||
; ───────────────────────────────────────────────────────────────────────────────
|
||||
; VESPER v1 — Kincony KC868-A6 (ESP32-S3, 4MB Flash)
|
||||
; Current production board
|
||||
; ───────────────────────────────────────────────────────────────────────────────
|
||||
[env:vesper-v1]
|
||||
platform = ${common.platform}
|
||||
framework = ${common.framework}
|
||||
board = esp32-s3-devkitc-1
|
||||
|
||||
; Serial monitor
|
||||
monitor_speed = ${common.monitor_speed}
|
||||
|
||||
; Upload settings
|
||||
upload_speed = 921600
|
||||
upload_protocol = esptool
|
||||
|
||||
; Partition table — default 4MB with OTA support
|
||||
; Provides: 1.8MB app slot + 1.8MB OTA slot + 64KB NVS + SPIFFS
|
||||
board_build.partitions = default_8MB.csv
|
||||
|
||||
; Build flags for this variant
|
||||
build_flags =
|
||||
${common.build_flags_common}
|
||||
-DBOARD_TYPE=\"VS\"
|
||||
-DBOARD_VERSION=\"01\"
|
||||
-DBOARD_NAME=\"Vesper\"
|
||||
-DPSRAM_ENABLED=0
|
||||
-DHAS_RF=0
|
||||
-DHAS_LCD=0
|
||||
|
||||
lib_deps = ${common.lib_deps}
|
||||
|
||||
|
||||
; ───────────────────────────────────────────────────────────────────────────────
|
||||
; VESPER+ v1 — Future: adds RF remote support
|
||||
; ───────────────────────────────────────────────────────────────────────────────
|
||||
; [env:vesper-plus-v1]
|
||||
; platform = ${common.platform}
|
||||
; framework = ${common.framework}
|
||||
; board = esp32-s3-devkitc-1
|
||||
; monitor_speed = ${common.monitor_speed}
|
||||
; build_flags =
|
||||
; ${common.build_flags_common}
|
||||
; -DBOARD_TYPE=\"VP\"
|
||||
; -DBOARD_VERSION=\"01\"
|
||||
; -DBOARD_NAME=\"Vesper+\"
|
||||
; -DPSRAM_ENABLED=0
|
||||
; -DHAS_RF=1
|
||||
; -DHAS_LCD=0
|
||||
; lib_deps = ${common.lib_deps}
|
||||
|
||||
|
||||
; ───────────────────────────────────────────────────────────────────────────────
|
||||
; VESPER PRO v1 — Future: adds onboard LCD
|
||||
; ───────────────────────────────────────────────────────────────────────────────
|
||||
; [env:vesper-pro-v1]
|
||||
; platform = ${common.platform}
|
||||
; framework = ${common.framework}
|
||||
; board = esp32-s3-devkitc-1
|
||||
; monitor_speed = ${common.monitor_speed}
|
||||
; build_flags =
|
||||
; ${common.build_flags_common}
|
||||
; -DBOARD_TYPE=\"VX\"
|
||||
; -DBOARD_VERSION=\"01\"
|
||||
; -DBOARD_NAME=\"VesperPro\"
|
||||
; -DPSRAM_ENABLED=0
|
||||
; -DHAS_RF=0
|
||||
; -DHAS_LCD=1
|
||||
; lib_deps = ${common.lib_deps}
|
||||
Reference in New Issue
Block a user