ESP-WROOM-32のコアであるESP32のリビジョンは、2016.09にChip revision 0がリリース。2017.02にrevision 1 がリリースされた。すぐに新しいものが出回るわけではないと思うが、新しいバージョンのものが市場に出回り始めているようだ。僕が持っているボードは、最近購入したものはほぼrevision 0 であったが、D-Duino 32 V2 がrevision 1 だった。

リビジョンが上がると何が良いかというとバグ的なものが潰されるということだ。新機能が付くようなものではない。
現状のバグ情報はこちら。
ECO and Workarounds for Bugs in ESP32
個人的にはESP32はもう少しバグ潰してから市場に出すべきだと思っていたので早々にリビジョンが上がるとは思っていたが、本当に安定して使えるのは次のリビジョンくらいではないかな? Tensilicaコアが良くないというのもありそう。メーカーの開発者がこんなもの怖くて使えないと言っていたのを目にしたことがある。現状でも不具合を踏まえて回路やソフトウェア的にバグを回避しながら使うということはできると思うけど(上記PDFにははそのような情報もあるようなのでよく読むべし>含自分)、僕のような素人には敷居が高い。

そしてやっと本題。ESP32のリビジョンを調べる方法。
https://github.com/espressif/esptool
のespefuse.pyというツールを使う。これはESP32のefuseの内容を見たり書き換えたりするツール。efuseは無闇に書き換えると動かなくなったり直せなくなったりするので注意しよう。設定値やリビジョンを確認するだけなら問題ない。
確認するには、コマンドラインで、

espefuse.py -p PORT summary

とする。PORTはボードのポート名を入れる。Macだとこんな感じ。

python espefuse.py --port /dev/cu.SLAB_USBtoUART summary

WindowsならCOM5とか。実行するとズラッとefuseの内容?が表示される。リビジョンは、最後の方に表示されるCHIP_VERSIONを確認する。
https://github.com/espressif/esptool/issues/206
の情報によると、
—–

ESP32-D0WDQ6 silicon revision 0:

CHIP_VERSION           Chip version                                      = 0 R/W (0x0)
CHIP_PACKAGE           Chip package identifier                           = 0 R/W (0x0)

ESP32-D0WDQ6 silicon revision 1:

CHIP_VERSION           Chip version                                      = 8 R/W (0x8)
CHIP_PACKAGE           Chip package identifier                           = 0 R/W (0x0)

ESP32-D2WD silicon revision 0:

CHIP_VERSION           Chip version                                      = 0 R/W (0x0)
CHIP_PACKAGE           Chip package identifier                           = 2 R/W (0x2)

—–
とのこと。
CHIP_VERSIONが 8 ならリビジョン2ということになる。D-Duino 32 V2も8だった。実は2だと思ってたら8と表示されて調べたのでした。

epstoolを使っても表示できる。
先程のgithubからダウンロードできるが、pipでもインストール可能。

sudo pip install esptool

でインストール。構文はespefuse.pyと同じ感じ。

python esptool.py --port /dev/cu.SLAB_USBtoUART chip_id

とか

python esptool.py --port /dev/cu.SLAB_USBtoUART read_mac

のとすれば良い。そうすれば、

$ python esptool.py --port /dev/cu.SLAB_USBtoUART chip_id
esptool.py v2.0.1-dev
Connecting........_
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Uploading stub...
Running stub...
Stub running...
Chip ID: 0x75240acxxxx
Hard resetting...

てな感じで表示される。

モジュール単体でrevision2を入手しやすくなったら、既存のボードのモジュールを載せ替えるべきか悩ましいところ。

Share