✏️

macOSでTinyGoのフラッシュがうまくできなかった件

に公開

はじめに

先日GoConference2025に参加してきました.
その際ワークショップでsatokenさんのTinyGo + Gopherくん基板で遊ぼうに参加させていただきました.
しかし,macを使用したところうまく書き込みが行えなかった現象が発生しました.
無事解決できましたが日本語の情報がなさそうだったのでメモしておきます.

環境

  • macOSsequoia
  • TinyGo3.9.0
  • マイコン:RP2040

発生したエラー

実行したコマンド

tinygo flash --target waveshare-rp2040-zero --size short ./00_blink/main.go

結果

faild to flash
/var/folders/7b/prmc8_fn3tg9jbdl6yphnp400000gp/T/tinygo820418925/main.uf2:unable to locate any volume:[RPI-RP2]

見た感じRPI-RP2ボリュームが見つからないと怒られています.
実際Finderで確認してみるとボリューム名がRPI-RP2ではなくNO NAMEになっていました

同様なエラーで検索したところ次のissueが見つかりました
https://github.com/tinygo-org/tinygo/issues/4519
ほぼ同じ現象で,こちらもボリューム名が原因でエラーが発生しているようです.
修正済みになっているようですが未だ発生しました(自分の環境だけかも)

対策

RPI-RP2だけでなくNO NAMEにも書き込めるようにしてあげればOKです
今回brewでtinyGoをインストールしたので
/opt/homebrew/Cellar/tinygo/<お使いのTinyGoバージョン>/targets/
に設定があります
その中にあるrp2024.jsonが今回使用したマイコンの設定なので開きます.

"msd-volume-name":["RPI-RP2"],

と書かれた行があるので次のようにNO NAMEを追加します

"msd-volume-name":["RPI-RP2","NO NAME"],

これでNO NAMEにも書き込めるようになるはずです.

まとめ

ワークショップで初めてTinyGoを触りいきなりエラーが出て焦りましたが先人の知恵のおかげでワークショップ内で解決できました.
RP2040以外のマイコンでも同様の症状な場合は改善可能だと思います(発生するのか分かりませんが)

参考

https://github.com/tinygo-org/tinygo/issues/4519

Discussion