やっと動いたESP-WROOM-32 DIP化キット

 これまでESP32は開発ボードばかり使っていたので、プログラムの書き込みや起動で苦労することはなかったが、このところESP8266のDIP化を幾つか買って、苦労はしたが何とか動いたのでESP32についても一度挑戦して見ようと買ってみた。

 ESP8266と同じようにやれば何とかなるだろうと甘く見たのがいけなかった。
最初からつまづいてしまい幾つかのハードルがあったが何とか動かすことができたので、その経緯を書いておく。


◯購入直後、書き込みとリセットスイッチだけを付けてテストしたが、シリアルモニターに連続でメッセージが出ており書き込めない。
どうもEN端子に線を繋ぐとこのメッセージが出るようで、雑音を拾っているようである。
そこでEN端子に0.1μFのコンデンサーでアースにおとし、同時に10KΩの抵抗でプルアップ、これで書き込みが出きるようになった。

◯これでLチカ何かの簡単なプログラムは動作するようになったが、肝心のWiFiを含むスケッチを書き込むと、リセットを繰り返しまったく使い物にならない。
リセット時に出ているメッセージはつぎのようなもの。
 
  ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8

Brownout detector was triggered
 最初はこのメッセージの意味がわからず、WiFiは電気を食うので元々電源に厳しいESP32なので電源まわりだろうと見当を付け、
 シリアル変換基盤から取っていた3.3VをUSBの5Vに三端子レギュレータを付けて安定化したり、大きめのコンデンサーを入れた利りしてみたが、状況は変わらない。
 さらに強化すべく三端子レギュレータの入力をUSBではなく別のACアダプターから取ってみたがこれも変わらない。

 こうなるとお手上げである。もしかして不良品かもと思ってみたり、諦めがけていたところネットでフラッシュメモリを削除すれば動いたとの書き込みを発見
 これだったかと自分を納得させ早速試してみる。しかし、やりかけて気がつく、esptool.pyとかesptool.exeなるものが私のパソコンには存在しない。
 これをインストールするのに四苦八苦、何とかflashをクリアした。
 pi@raspberrypi:~/Arduino/AQM1602LCD/hardware/espressif/esp32/tools/esptool $ ./esptool.py --port /dev/ttyUSB0 --baud 115200 erase_flash
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting........_____....._____....._____....._____....._____....._
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 0)
Features: WiFi, BT, Dual Core, Coding Scheme None
Crystal is 40MHz
MAC: 30:ae:a4:02:39:b0
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 3.1s
Hard resetting via RTS pin...
フラッシュはクリア出来たようなので、これで動くだろうと電源を入れてWiFi関係のスケッチを書き込む。
ところが状況はおなじである。リセットの繰り返しは変わらない。

色々試している内に出たシリアルモニター上のメッセージは
Falling back to built-in command interpreter
TinyBASICの導入メッセージ

Brownout detector was triggered
電源が不足している時に出るメッセージ

Backtrace..............Rebooting...
よく分からないがflash momoryのクリアで改善したとの記述がある。私もクリアしてみたが別の
要因が絡んでいたのか改善しなかった。
というような事で途方に暮れていたが、やはり電源回りと思い、電圧を計っている時に3.3Vの電圧が開放とESP32に繋いだ時で0.2V程変わることに気が付き、USBケーブルを太いものに変えてみたりもしたがブレッドボードの結線で何か問題があるのかもと思い、別のブレッドボードで回路を作り直してみた。

するとどうしたものか何事も無かったように動作するではないか。今まで一週間以上かかった苦労は何だったのだろうか。
しかし、動いたのは事実で、チップが不良ではなかったことも証明された。
ついでに自動書き込みの回路も実装して今は、快適に動作している。

左が5V→3.3Vの電源で3.3V1A TA48033Sを使った三端子レギュレータである。
5VのACアダプターにUSBケーブルで繋いである。
また、自動書き込み回路は下図のもので手持ちの2SC1815を使い、抵抗は10KΩを使用した。動作は快調である。


USBシリアル変換はアマゾンで買った2個で800円の安物であるが良く動いている。
しかし、内蔵の3.3Vではesp32のWiFiは動かなかった。
DTRとRTSはピンには出ていないが、ボードに空いている穴に割りつけられているので、ここにピンをはんだ付けして使用した。