MacOS Monterey以上でesp32に書き込みできない問題
はじめに
macOS Montereyではpythonが標準でインストールされていないためArduinoIDEを利用してのesp32への書き込み時にエラーが発生するようになってしまいました。
元々python2系が入ってたMacOSをアップデートしたなら今まで通り書き込みできるはずですが、新しくMacを購入してArduinoIDEを入れてesp32への書き込みでエラーが起きた人向けの記事です。
ただこの方法でApple SiliconのMacでも問題が解決できるかは検証していないのでその辺は適宜自分の環境に合わせて変換して読んでください。
自分の環境
MacBook Pro(15-inch, 2016)
macOS Monterey バージョン12.3.1
Python 3.9.7
ArduinoIDE 1.8.19
エラー内容
esp32系のチップを積んだマイコンに書き込みを行う、またはesp32系のチップをボードで選択した状態で検証を行うと
exec: "python": executable file not found in $PATH
ボードM5Stack-ATOMに対するコンパイル時にエラーが発生しました。
というエラーが発生する。
直訳すると実行可能なpythonファイルがパスに存在しませんというエラーを伝えてくれてる。
これはmacOS Montereyからpython2系がデフォルトインストールされなくなったからこんなエラーが起きてしまっている。
おそらくpython2が2020年1月でサポート終了したことでこうしてるんだと思うが、それを知らずに標準の設定で書き込もうとするとpython2系をコンパイルに使用しているArduinoIDEとしてはこのままでは困るので設定を変更していきます。
設定
ターミナルからArduinoに入る
大抵の人はアプリケーションに入れてると思うので以下を実行
cd ~/Library/Arduino15/packages
入ったら以下を実行
ls
すると追加したボードの一覧が出てくるのでコンパイル時にエラーの出てたボードに移動。
今回の例ではm5stackを使いますがesp32でもやることは変わりません。
esp32 dev Moduleとかに設定したい人はm5stackの部分をesp32に替えて実行すること
cd m5stack/hardware/esp32/2.0.2
もし2.0.2ってディレクトリがesp32内に存在していない場合追加のボードマネージャーのURLが古い可能性があるので最新のものを追加してください。最新のにしたらボードマネージャーでの更新も忘れずに
2.0.2のディレクトリに入ったら、以下を実行
nano platform.txt
するとエディタが開いて
tools.gen_esp32part.cmd=python "{runtime.platform.path}/tools/gen_esp32part.py"
という行があると思うのでこれを
tools.gen_esp32part.cmd=python3 "{runtime.platform.path}/tools/gen_esp32part.py"
とpython3を参照するようにしてあげる。
編集が終わったらcontrol+xで編集を終了してyで保存。nanoエディターの使い方がわからない人はちょっと調べれば終了方法、保存方法が出てくるので調べてみてください。
ここまでできたら ArduinoIDEを再起動して再度コンパイルしてみるとさっきまでエラーのでてたボードに書き込みができるようになってると思います。
おわりに
もらったMacBookでesp開発して遊ぼうと思ったら、書き込みが出来なくて放置して他ので同じような問題でハマってた人の参考になれば
意味わからんとこあったらコメントください。