Windowsでの複数バージョン対応のESP-IDFセットアップ方法

概要

Windows環境でのESP-IDF3.3、4.0、4.1Betaのセットアップ方法をまとめました。

ESP-IDFとは?

Espressif社が開発した、ESP32の標準開発環境です。Windows上でのセットアップが比較的面倒なため、あまり普及していない気もします。

ESP-IDFのバージョン

大きくわけて3系と4系があります。Arduino Coreでは現在3系が使われています。4系になってから環境が大きく変わっているので注意してください。

機能的には4系の方がおすすめですが、環境によってはまだ3系を使う必要があります。

バージョン概要
3.3系Arduinoなどで利用されている、一番使われているバージョン
使われているPythonが2系と古い
4.0系近代的な環境で構築されているバージョン
NimBLEなどのサポートが追加されている
使われているPythonは3系になっている
4.1系ESP32-S2などに対応した開発中のバージョン

セットアップ方法

従来はWindows上にUnix環境を作るMSYS2などを入れる必要がありました。ESP-IDF4.0からセットアップ方法が変わって、環境を含めて自動セットアップをしてくれるツールの配布が始まっています。

上記のツールを使うと、ESP-IDF3系のセットアップも可能です。現在2.3ですが、なるべく新しいバージョンを使ったほうがよいと思います。

バージョン別注意点

ESP-IDF3.3系の場合

注意点としてはPython2.7系を利用する必要があります。

ESP-IDF Tools Installerだと、3.7系しかサポートしていないようですので事前に2.7系の最新バージョンを入れておいたほうがいいと思います。

Microsoft StoreでもPythonを入れることができますが、Pathがアクセスできない場所にはいるので、自分で入れたほうがおすすめです。

ESP-IDF4系の場合

Python3.7以降を使う必要があります。Python3.8を使っていたところモジュールのバージョンがコンフリクトしてセットアップにエラーが出てしまったので、ESP-IDF専用にPythonをセットアップしたほうが安全そうです。

Pythonがインストールしていない場合にはPython3.7も同時に入れることができます。

セットアップ手順

どのバージョンでもPythonのバージョン以外は気にする点はありませんでした。

ESP-IDF Tools Installerを起動した直後の画面です。AcceotしてNextボタンを押して次のページに行きます。

利用するPythonのバージョンを指定します。ESP-IDF3系を利用する場合にはPython2.7系である必要があります。ESP-IDF4系を利用する場合にはPython3.7の新規インストールがおすすめです。

利用するGitのバージョン選択です。特にバージョン依存はありませんので、入っていない場合には新規インストールで、すでに入っている場合には自動選択されたバージョンを使えばいいと思います。

新規ダウンロードするか、すでにあるディレクトリを使うかを選びます。新規インストールですのでダウンロードを選択します。

ダウンロードする場所とバージョンを指定します。上記の場合には4.0と3.3.2とmaster(4.1Beta)を選択できます。

ダウンロード場所は非常に重要で、デフォルトではデスクトップになっていますが、かならず変更してください。このダウンロードしたディレクトリは移動することができません。

複数バージョンを同時にセットアップしたい場合にはバージョン番号をつけたほうがあとでわかりやすいと思います。

ESP-IDFの推奨C:\Users\ユーザー名\esp\esp-idf
上記の例C:\Work\esp-idf\download\4.0

どこに入れても構いませんので、わかりやすい場所に入れてください。C:\Work\esp\esp-idf4.0などの方が良かったかもしれません。。。

次に、ESP-IDF Toolsをインストールするディレクトリを指定します。なぜかダウンロードとToolsで別のディレクトリを指定する必要があります。

両方ともあとで移動することができませんので注意してください。

オプションですが、すべて標準で問題ありません。

インストールする内容の確認をします。

最初にESP-IDFのダウンロードを行います。

その後にツールがセットアップされていきます。

Python3.7を新規インストールした場合には、途中でセットアップがはじまります。

最後の最後でエラーがでます。デスクトップ上にアイコンが追加されている場合には、正常にセットアップが完了しています。

アイコンがない場合にはセットアップの途中で止まっています。私の環境だと既存のPython3.8を選択した場合に、すでに入っているモジュールとバージョンがコンフリクトしてエラーになりました。

エラーログを表示するかを聞かれます。開いても、開かなくてもどちらでもかまいません。

デスクトップにアイコンが追加されていたら成功です。できていない場合にはESP-IDFように別の場所にPythonをセットアップしてから試してみてください。

複数バージョンをいれる場合には、このアイコンの名前を変更して入れたバージョン番号がわかるようにしておかないと、次のバージョンを入れたときに上書きされてしまいます。

設定の書き換え

ESP-IDFPythonESP-IDF DownloadESP-IDF Tools
3.3.22.7C:\Work\esp-idf\download\3.3C:\Work\esp-idf\.espressif\3.3
4.03.7C:\Work\esp-idf\download\4.0C:\Work\esp-idf\.espressif\4.0
4.1Beta3.7C:\Work\esp-idf\download\4.1C:\Work\esp-idf\.espressif\4.0

私の環境では、上記のディレクトリにセットアップしました。

一つのバージョンしかセットアップしない場合には必要ありませんが、複数バージョンを使い分ける場合にはバッチファイルの編集が必要です。

  • C:\Work\esp-idf\.espressif\4.0\idf_cmd_init.bat

4.0の場合のファイル名ですが、どのバージョンでもidf_cmd_init.batという環境変数設定用のバッチファイルがあります。このファイルにESP-IDFのDownloadフォルダを設定する必要があります。

@echo off

set IDF_TOOLS_PATH=C:\Work\esp-idf\.espressif\4.0
set PYTHONUTF8=1

:: This script is called from a shortcut (cmd.exe /k export_fallback.bat), with
:: the working directory set to an ESP-IDF directory.
:: Its purpose is to support using the "IDF Tools Directory" method of
:: installation for ESP-IDF versions older than IDF v4.0.
:: It does the same thing as "export.bat" in IDF v4.0.

3行目の「set IDF_TOOLS_PATH=C:\Work\esp-idf.espressif\4.0」が追加した行になります。ここでIDF_TOOLS_PATHという環境変数に、DownloadフォルダのPathを指定します。

4.0の例ですので、3.2の場合には数字を3.2に変更してください。

この環境変数は最後にセットアップしたバージョンのPathが環境に自動設定されているはずです。

また、4行目のPYTHONUTF8はPythonでUTFを使う設定になります。日本語環境の場合にはPythonの実行が失敗することがありますので、指定する必要があります。

起動確認

セットアップしてデスクトップに追加されたアイコンから起動してみてください。

3.3系の場合

4.0系の場合

masterの場合

よくみたらmasterはESP-IDF4.2系が入っているかもしれません。。。開発中バージョンの最新版などで入れる時に依存しますのでご注意ください。

ビルドできるか試してみる

上記のページを開いたあとに、使っているバージョンのページを開き直してください。

バージョンの切り替えは左メニューの一番下をクリックすると開くメニューから変更可能です。微妙にバージョンによってコマンドが違う場合があるので注意してください。

また、ESP-IDF3系の場合makeの変わりにidf.pyコマンドを利用してください。中身はmakeと同じ動きをするスクリプトになります。

cd %userprofile%\esp
xcopy /e /i %IDF_PATH%\examples\get-started\hello_world hello_world
cd hello_world
idf.py menuconfig
idf.py build
idf.py -p COM3 -b 115200 flash

ざっくりですが、上記のようなコマンドでビルドと転送ができると思います。

転送するポートと速度が毎回同じであるならば、idf_cmd_init.batの環境設定にてESPPORTとESPBAUDに初期値を設定することもできます。

まとめ

現在はまだ3.3と4.0を並行することがあると思いますので、複数バージョンの環境構築を記事にしてみました。

ほとんどの内容は上記の記事から持ってきています。バージョン差異の注意点のみ追記しています。

コメント