なので自前ビルドを実践する事にした。
Step1.環境一式ダウンロード
https://esp-idf.readthedocs.io/en/latest/get-started/windows-setup.html
600MB弱のファイルをダウンロードして任意のフォルダに展開する。
例:D:\msys32
Step2.環境構築
d:\msys32\mingw32.exeを起動
$ cd
$ mkdir -p esp
$ cd esp
$ mv esp-idf esp-idf.old
$ git clone --recursive https://github.com/espressif/esp-idf.git
Step3.micropythonのコードをクローン
$ pacman -S python2
$ pip install pyserial
$ mv /mingw32/bin/envsubst.exe /mingw32/bin/envsubst.exe.del
$ pacman -S gettext
2$ vim ~/.profile
最後の行に
export IDF_PATH=~/esp/esp-idf
export ESPIDF=$IDF_PATH
を追加。
$ source ~/.profile
$ git clone --recursive https://github.com/micropython/micropython.git
$ git clone --recursive https://github.com/micropython/micropython-lib.git
https://github.com/micropython/micropython/blob/master/ports/esp32/mpthreadport.c
の136行目
TaskHandle_t id = xTaskCreateStaticPinnedToCore(freertos_entry, name, *stack_size / sizeof(StackType_t), arg, priority, stack, tcb, 0);
これを
TaskHandle_t id = xTaskCreateStaticPinnedToCore(freertos_entry, name, *stack_size / sizeof(StackType_t), arg, priority, stack, tcb, 1);
にする。
※Windowsだとシンボリック問題が発生するので、置換マクロ組んで全部置き換えました。。
Step4.ビルド開始
$ cd ~/esp/micropython/ports/esp32
$ make
★ここでHASHが異なるからビルドできないってエラーメッセージが表示されたら
ハッシュコードの部分は出力メッセージのに書き換えて
$ cd ~/esp/esp-idf
$ git checkout 3ede9f011b50999b0560683f9419538c066dd09e -b micropython
$ git submodule update
$ cd ~/esp/micropython
$ make -C mpy-cross
$ cd ~/esp/micropython/ports/esp32
$ make
$ make erase
$ make deploy
消去や書込めない場合、
$vim Makefile
ポート名は/dev/ttyS0
など、各自環境に合わせて要調整。
諦めてビルド済みのを使う場合は、
ここからバイナリイメージをダウンロードしてきて書込み実行。
$ easy_install -U pip
$ pip install esptool
$ esptool.py --port /dev/ttyS0 --baud 460800 write_flash --flash_mode dio --flash_size=detect 0x1000 esp32-20171006-v1.9.2-276-ga9517c04.bin
追記:
Ubuntu on Windows 上で環境構築した場合、
Makefileの設定で
ポート名は、/dev/ttyS1 = COM1になります。
通信速度はデバイスマネージャに記載した通信レートを指定します。
以上!