PlatformIO
Your Gateway to Embedded Software Development Excellence · PlatformIO
VSCode 拡張で ~/.platformio/penv/bin に CLI が置かれる
brew とかでも入るけどまあこれ使うか...
direnv で PATH_add "$HOME/.platformio/penv/bin" などする
CLI
code:commands.sh
# ビルド(コンパイルのみ。ボード不要)
pio run -d projects/<name>
# 書き込み(= ビルド + upload。ボードを USB 接続してから)
pio run -d projects/<name> -t upload
# シリアルモニタ(platformio.ini の monitor_speed を使う)
pio device monitor -d projects/<name>
# ボーレートを明示する場合
pio device monitor -b 9600
# 書き込んでそのままモニタに入る(よく使う)
pio run -d projects/<name> -t upload && pio device monitor -d projects/<name>
# クリーン(.pio/ のビルド成果物を消す)
pio run -d projects/<name> -t clean
# 接続中のシリアルポート一覧を確認
pio device list
platformio.ini で設定すること
code:example.ini
env:uno_r4_wifi
platform = renesas-ra
board = uno_r4_wifi
framework = arduino
build_flags = -DDEBUG=1 -Wall ; コンパイル時のマクロ定義・警告オプション
build_unflags = -Os ; 既定フラグを外す
upload_protocol = sam-ba ; 書き込み方式(ボードにより)
upload_port = /dev/cu.usbmodemXXXX ; 書き込み先ポートを固定(自動検出が外れる時)
# シリアルモニタ
monitor_speed = 115200 ; ボーレート(ESP32 は 115200 が定番), Serial.begin() に合わせる
monitor_filters = esp32_exception_decoder, time ; 出力を加工
monitor_port = /dev/cu.usbmodemXXXX; 自動検出がうまく行かないなら
# ライブラリ
lib_deps =
adafruit/Adafruit BME280 Library@^2.2.0 ; PlatformIO レジストリから自動DL
https://github.com/someone/somelib.git ; Git からも可
lib_extra_dirs = ../../libs ; ローカル共通lib
ライブラリの追加
pio pkg search <LIB> で検索
lib_deps に追記する、ここに書けるやつ
fastled/FastLED ← これは PlatformIO レジストリ
fastled/FastLED@3.10.0 固定バージョン
https://github.com/FastLED/FastLED.git
git@github.com:you/private-lib.git
https://example.com/somelib-1.0.0.zip tar.gz などもあっける
Links
Boards — PlatformIO latest documentation
Arduino Uno R4 WiFi — PlatformIO latest documentation
code:.ini
env:uno_r4_wifi
platform = renesas-ra
board = uno_r4_wifi
Seeed Studio XIAO ESP32C6 — PlatformIO latest documentation
XIAO ESP32C6 with PlatformIO | Seeed Studio Wiki
code:.ini
env:seeed_xiao_esp32c6
platform = espressif32
board = seeed_xiao_esp32c6