遅ればせながらESP32でいろいろ遊んでみようということで、MacBookProにESP-IDFをインストールして使ってみようとしたのですが、いろいろハマったので書いておきたいと思います。
ESP32ボードはUSBケーブルで接続できるこちらを使いました。

HiLetgo® ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード
- 出版社/メーカー: HiLetgo
- メディア: オフィス用品
- この商品を含むブログを見る
接続USBケーブルは、Mac側がUSB Type CでESP32側はマイクロBになっていますが意外に普通のお店では売っていません。変換アダプタもかったるいのでESP32接続専用に買っておきました。

Amazonベーシック USBケーブル Type C to マイクロB 2.0 0.9m ブラック
- 出版社/メーカー: AmazonBasics
- メディア: Personal Computers
- この商品を含むブログを見る
まずは、MacにESP32接続用ドライバーをインストールします。
ドライバーはこちらからMac OS X用ドライバをダウンロードできます。
ただし、最近のMac OSはセキュリティが厳しくなっててApp Store以外のソフトウェアのインストールはブロックする仕様になっています。
インストーラー実行後、コントロールパネルの「セキュリティとプライバシー」で許可してやればインストールされます。
正しくインストールされるとデバイスファイル/dev/cu.SLAB_USBtoUARTが作られているはずです。
次に、ESP32ツールチェーンこちらからインストールします。
https://dl.espressif.com/dl/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
(2019年1月現在。最新のファイルはhttps://docs.espressif.com/projects/esp-idf/en/latest/get-started/macos-setup.htmlを参照ください。)
ちなみに、ツールチェーンとはコンパイラやアーカイバなどコンパイルして実行ファイルやライブラリを作るためのコマンド群をいいます。
ホームディレクトリにespというディレクトリを作成し、そこにダウンロードしたファイルを解凍します。
# mkdir ~/esp # cd ~/esp # tar xzf xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
espディレクトリ下のxtensa-esp32-elf以下にツールチェーンが展開されます。
次に、ESP-IDFをインストールします。
Githubからファイルをゲットします。
# git clone --recursive https://github.com/espressif/esp-idf.git
ESP-IDFは、サブモジュールもいくつか含まれているのでgit cloneで--recursiveオプションを指定することによってサブモジュールも合わせて取得します。
ESP-IDFに必要な環境変数を.bash_profileに追加します。
~/.bash_profile
export PATH=$HOME/esp/xtensa-esp32-elf/bin:$PATH export IDF_PATH=$HOME/esp/esp-idf
環境変数をシェルに反映させておきます。
# source ~/.bash_profile
次に、ESP-IDFに含まれているblinkというサンプルプロジェクトをビルドして実行してみます。このプロジェクトはLEDを点滅させるだけの簡単なプログラムです。
回路としては下の写真のように、LEDと抵抗を直列につないだシンプルなものです。ESP32側はGNDとGPIO23のピンに回路の両端をつないでいます。
blinkプロジェクトファイルをコピーします。
# cp -r esp-idf/examples/getting-start/blink . # cd blink # ls CMakeLists.txt README.md sdkconfig.defaults Makefile main
プロジェクトの設定を行います。
# make menuconfig
USBのデバイスファイルを設定します。
GPIO23から出力されるように設定します。
設定を終了後、プロジェクトをビルドしてESP32にプログラムをロードします。
# make flash
ビルド完了後、"Connecting..."というプロンプトが出たら、ESP32のBOOTボタン(USBコネクタ側に向かって右側のボタン)を押してください。
(WindowsではBOOTボタン押しは必要なかったのですが、なぜMacではボタン押ししないとタイムアウトしてしまいました。ひょっとしたらボードがespressif純正でないのが理由かも。)
下のような感じの出力が出ればうまくロードされています。
いろいろハマりましたが、無事Lチカさせることができました。