Title in English: Error and the solution when using ESP32S3 with PlatformIO.
エラー内容
A fatal error occurred: Could not open /dev/cu.usbserial-10, the port doesn't exist
ポートが存在しない(ので書き込めない)というエラー。
自分はESP32S3系に変えたらこのエラーが頻出していた。
Env
- MacOS Sonoma
- ArduinoIDE
- PlatformIO (PIO)
- ESP32-S3-WROOM-1
ESP32S3のモードについて
今まではそうではなかったと記憶しているが、ブートローダーモードと実行モードというのが存在している。公式にもそう書いてある。
モード切り替え
ボードにはBOOTボタンとRESETボタンが存在している。
デフォルトでは実行モードで起動する。
BOOTボタンを押しながらRESETボタンを1回押し、BOOTボタンを離すとブートローダーモードへ移行する。
この時に書き込みが可能になる。
RESETボタンを押すと実行モードになる。
電源投入時にもモード選択できる。
BOOTボタンを押しながら電源投入するとブートローダーモードになる。
書き込み終了後、RESETボタンを押すと実行モードになる。
RESETボタンの働きは電源を一旦落とし、再度投入する働きをする。
PlatformIOでの問題
ArduinoIDEでは以上のことをすれば書き込めるようになるのだが、PlatformIOはそうもいかなかった。
PIOでは書き込み時に手動でシリアル通信をStopする必要があった。(以下の図の"Stop Monitoring")
ArduinoIDEではブートローダーモード時にシリアル通信がStopになるため、この問題は起こらなかったと考える。
終わりに
少々めんどくさいが、VScodeが使えるという利点は大きい。