ESP32 に MacOS + Arduino IDE から書き込むとエラーになるとき


ESP-WROOM-32 を搭載したボードを買い足したら、前から使っていた同形状のボードと同じ設定の Arduino IDE では書き込めなかった。具体的には(Arduino IDE のエラーメッセージを詳細モードにしたとき、赤文字で)以下のようなエラーが出る。

Connecting....
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: xx:xx:xx:xx:xx:xx
Uploading stub...

A fatal error occurred: Failed to write to target RAM (result was 01070000)
A fatal error occurred: Failed to write to target RAM (result was 01070000)

いろいろ調べると、ボード搭載されている usb-to-serial のチップ WCH CH9102 が macOS Big Sur そのままでは対応していないためのようだ。

前に買ったボードは違うチップが載っていた。以下の方法で書き込めるようになったので、上のエラーが出た場合、ボード上のチップと OS を調べて該当するときは以下の方法を試してほしい。

  1. 以下のいずれかのドライバーをダウンロードしてインストールする。MacOS はドライバのセキュリティチェックがあるので、機能拡張 - セキュリティから操作しないとドライバは動作しないので要注意。
  2. 再起動してボードを USB につなぐ。/dev/cu.wchusbserialxxxx のようなデバイスが現れればOK。usbmodemxxxx も現れるが、こちらは使えない。
  3. Arduino IDE で上記 /dev/cu.wchusbserialxxxx のほうのシリアルポートを選んで書き込む。