20240806170437 PIOでrp2040にuploadしようとするとエラー
普通(TinyUSBを使用したソフトが書きこまれて「いない」場合)
windowsのpioでrp2040のプロジェクトを作成、uploadを実行すると、
Uploading .pio\build\waveshare_rp2040_zero\firmware.elf
No accessible RP2040/RP2350 devices in BOOTSEL mode were found.
but:
Device at bus 1, address 18 appears to be a RP2040 device in BOOTSEL mode, but picotool was unable
to connect. You may need to install a driver via Zadig. See "Getting started with Raspberry Pi
Pico" for more information
などと表示されて、アップロードできない。 書いてある通りなのだが、
Zadig のドライバーに入れかえる。入れかえるのは Interface 1 だけで良い。 Interface 0 はCOMとUSBマスストレージのCompositeなので、ドライバが間違っていたら変更する。
以前のバージョンでは下記のような場合もあった。
AVAILABLE: blackmagic, cmsis-dap, jlink, pico-debug, picoprobe, picotool, raspberrypi-swd
CURRENT: upload_protocol = picotool
Looking for upload port...
Auto-detected: COM10
Forcing reset using 1200bps open/close on port COM10
Uploading .pio\build\generic\firmware.elf
rp2040load 1.0.1 - compiled with go1.15.8
.....................
*** [upload] Error 1
などと表示されて、うまくいかない。
upload_protocol = mbed
とするとうまくいった。 mbedは
AVAILABLE: blackmagic, cmsis-dap, jlink, pico-debug, picoprobe, picotool, raspberrypi-swd
に表示されていないので、今(20240806)はうまくいっているが、公式にはサポートされていないかもしれない。
こちらの手順の通りにしたら動いた。 PlatformIO+Raspberry Pi Picoで一時Uploadができなくなった話 - 名称未設定。
TinyUSBを使用している場合
picotoolがboot modeでストレージに見えるようになるところまで動くが、その後アップロードできない。 これの解決方法。
- boot modeで接続
- zadig起動 Zadig - USB driver installation made easy
- RP2 Boot(Interface 0)、 RP2 Boot(Interface 1) どちらのドライバも WinUSBにする
これで書きこめるようになった。