Convert BikeAudio from Arduino .ino to PlatformIO #1
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "blue/platformio-conversion"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
PlatformIO conversion
Converts the Arduino IDE sketch (
BikeAudio.ino) to a PlatformIO project so it can be built and flashed from the CLI. All build specs from the original.inoheader are preserved.Structure
BikeAudio.ino(repo root)src/main.cppplatformio.inisrc/main.cppgains#include <Arduino.h>and aprint_status()forward declaration — PlatformIO compiles.cppdirectly and, unlike the Arduino IDE, does not auto-generate function prototypes.platformio.iniplatform = espressif32 @ ~6.6.0→ ESP32 Arduino core 2.0.17 (no 3.x — BT stack regression)board = esp32dev(ESP32 DevKitC v4)board_build.partitions = huge_app.csv(Huge APP, 3 MB no-OTA — required for the BT stack)monitor_speed = 115200lib_deps: pschatzmann ESP32-A2DP + arduino-audio-tools, pinned to exact commits (ESP32-A2DP 1.8.11, audio-tools 1.2.4) for reproducible buildsSource adaptation (behavior preserved)
The sketch targeted an older pschatzmann API. Three minimal edits bring it to the pinned versions:
RingBuffer<uint8_t>::read()→bool read(T&)esp_bd_addr_targ →(esp_a2d_connection_state_t, void*)BluetoothA2DPSource::start(name, bool)→start(name)(auto-reconnect already set viaset_auto_reconnect(true))Verification
pio run -e esp32dev→ SUCCESS. RAM 14.5% (47.6 KB), Flash 42.0% (1.32 MB / 3 MB) — confirms huge_app is needed (firmware exceeds the default app partition).Hardware flash to the ESP32 (on mbpi5,
/dev/ttyUSB0) is the next step after this lands.🤖 Generated with Claude Code
Restructure BikeAudio for PlatformIO while preserving the original build specs from the .ino header: - platform espressif32 @ ~6.6.0 -> ESP32 Arduino core 2.0.17 - board esp32dev (ESP32 DevKitC v4) - board_build.partitions = huge_app.csv (Huge APP, required for BT stack) - monitor_speed = 115200 Changes: - BikeAudio.ino -> src/main.cpp (+ #include <Arduino.h>, print_status() forward declaration; PlatformIO compiles .cpp directly and does not auto-generate prototypes like the Arduino IDE). - Add platformio.ini with pschatzmann ESP32-A2DP + arduino-audio-tools pinned to exact commits (ESP32-A2DP 1.8.11, audio-tools 1.2.4) for reproducible builds. - Adapt three spots to the current library API (behavior preserved): * RingBuffer<uint8_t>::read() -> bool read(T&) * connection-state callbacks: drop esp_bd_addr_t arg -> (esp_a2d_connection_state_t, void*) * BluetoothA2DPSource::start(name, bool) -> start(name) (auto-reconnect already configured via set_auto_reconnect(true)) Verified: pio run -e esp32dev succeeds. RAM 14.5% (47.6 KB), Flash 42.0% (1.32 MB / 3 MB). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Checkout
From your project repository, check out a new branch and test the changes.