ESP8266Day 3

ESP8266 への転送速度を3倍にして快適な開発生活をおくる

More than 3 years have passed since last update.

ESP8266 環境での開発はコンパイル後のバイナリサイズが大きいため、転送に時間がかかってしまい開発時の待ち時間が多分に発生してしまいます。そこで、シリアルUSBの転送速度を標準の 115200 から変更することで、転送にかかる時間を下げ、開発のサイクルを高速化します。

どこまで転送速度が上げられるかですが、ハードウェア的な制約のシリアルUSB変換チップの baudrate、今回使った FDTI の FT231X は最大 3M ですが、ESP8266 側は 921600 までのようです。

とコードの定義でも最大 921600 となっています。試しにそれ以上に上げてみましたがエラーでうまく転送できませんでした。


速度を測る

早速速度を測定してみましょう。約280KBのファームウェアを、標準の 115200 で転送してみます。

$ time esptool -vv -cd ck -cb 115200 -cp /dev/cu.usbserial-DA01219J -ca 0x00000 -cf firmware.bin

esptool -vv -cd ck -cb 0.02s user 0.10s system 0% cpu 36.238 total

36秒かかりますね。

では続いて 921600 にして転送してみましょう。

$ time esptool -vv -cd ck -cb 921600 -cp /dev/cu.usbserial-DA01219J -ca 0x00000 -cf firmware.bin

esptool -vv -cd ck -cb 0.02s user 0.10s system 0% cpu 13.089 total

13秒!約3倍の転送速度で完了しました。というわけでシリアルUSB変換チップが対応しているなら、921600 に変更するだけで気軽に開発速度を上げる事が出来るので、試してみると良いと思います。


PlatformIO の場合

platform.ini に

upload_speed = 921600

を定義するだけで OK です。


もっと速く転送する方法

あったら知りたいので教えて下さい!