ESP32 ( ESP-WROOM-32 ) 自分的 トラブルシューティング まとめ

記事公開日:2018年2月1日
最終修正日:2018年2月13日

スポンサーリンク

ここでは、ESP32 ( ESP-WROOM-32 ) を開発する上で、私が個人的に遭遇したトラブルや、コメント投稿欄から頂戴したトラブルの対策方法をまとめてみました。
あくまで個人的なまとめで、Espressif Systems 社の公式見解ではありません。

主に Arduino core for the ESP32 を対象にしていて、ESP-IDF については、ほんのちょっと扱っています。

私はアマチュア電子工作家で、無知による誤りや、勘違い等があるかも知れません。
もし、何かありましたらコメント投稿等でご連絡いただけるとありがたいです。

なお、ここに書かれている対策を施しても、動作を保証するものではありません。
GitHub の Arduino core for the ESP32 や、ESP-IDF は頻繁に更新されていて、最新版にアップデートすると、うまく動作しないことが多々あります。
対策が分かり次第、できるだけこの記事も修正していきたいと思っています。

因みに、私は Windows パソコンしか持ち合わせておりません。
以下、Windows 10 の場合で説明します。
MAC 使いの方、ゴメンナサイ・・・。

    【目次】

  1. ESP32 ( ESP-WROOM-32 ) がまったく反応しない
  2. Arduino core for the ESP32 がインストールできない
  3. Arduino – ESP32 のコンパイル中で、ウィルス検出ソフトが gen.esp32part.exe ファイルを弾いてしまう
  4. SPIFFS アップローダープラグインでファイルをアップロードできない(その1)
  5. SPIFFS アップローダープラグインでファイルをアップロードできない(その2)
  6. SPIFFS アップローダープラグインでファイルをアップロードできない(その3)
  7. SPIFFS アップローダープラグインで正常にファイルをアップロードできたのに、ファイルの読み込み不具合
  8. SPIFFS フラッシュメモリ内のデータが、正常に読み取らなくなってしまった
  9. 今まで問題無かったのに、急にWi-Fi に繋がらなくなった
  10. エラーや警告が全く出ないのに、プログラムが動かない
  11. Arduino – ESP32 でコンパイルした時に、コンパイラメッセージ欄に「libraries\BLE に、無効なライブラリ」と表示される場合の対処法
  12. A fatal error occurred: Timed out waiting for packet content というメッセージが出て、コンパイルできない
  13. A fatal error occurred: Invalid head of packet (‘F’) とメッセージが出て、コンパイルできない
  14. 「○○.h」に対して複数のライブラリが見つかりました。というメッセージが出て、コンパイルできない
  15. 最新版 Arduino – ESP32 をインストールしたら、うまく動作しない(旧バージョンのインストール方法)
  16. WEB上のスケッチ(プログラム)コピーして、Arduino IDE に貼り付けたのに、うまく動作しない
  17. WiFi ライブラリを使って Web から記事やデータを取得できていたのに、急に取得できなくなった
  18. バージョンアップしたライブラリがインストールできない
  19. ESP32 の MAC アドレスを知りたい
  20. ESP-WROOM-32 開発ボードの USB-シリアルによるスケッチコンパイル書き込みが、1回目は必ず失敗する
  21. Arduino – ESP32 のマルチタスク動作で、シリアルモニターに The following tasks did not reset the watchdog in time というメッセージが表示される
  22. ESP-IDF のmsys ウィンドウで、CDコマンドが効かない。path設定がおかしい。動作が重いなど
  23. WebSocket 通信ができない
  24. SDカードスロットのSPI接続で、GPIOピンが変更できない
  25. Arduino – ESP32 で CPUフル稼働しながら、 Wi-Fi機能だけOFFにして消費電力を抑えたい
    (2018/02/08追加)
  26. マルチタスク動作で、I2C 通信の ACK read Time OUT エラーになる
    (2018/02/08追加)
  27. ESP32 ( ESP-WROOM-32 )の電源が急に落ち、再起動する
    (2018/02/08追加)

●ESP8266 ( ESP-WROOM-02 ) のトラブルシューティングについてはこちらを参照

1.ESP32 ( ESP-WROOM-32 ) がまったく反応しない

ESP32 ( ESP-WROOM-32 ) で、開発ボードを使わずに、電源周りを自作して 3.3V を供給していたり、開発ボードを使用していても、非力なUSB電源を使用したり、電圧管理が不十分なバッテリーを使用した場合には、ESP32 の CPU が破損する場合があります。

原因

ESP32 ( ESP-WROOM-32 ) は、電源投入時やリセット時、および Wi-Fi 通信時に大きな電力を消費します。
通常 Wi-Fi 待機時は常時 160mA 、Wi-Fiアクセス時 300mA、リセット時に瞬時 600mA くらいです。

電源投入時の突入電流は、場合によっては 2A を超える時があります。

ESP32 がその大電流を吸い込んだ時に、回路が瞬時に電圧降下して、CPU の動作保証電圧を下回ってしまう場合があります。
ESP32 の CPU 動作時に 2.3 V を下回ることを繰り返すと、CPU に重大な故障を引き起こすことがあります。
2.3 V以上でも故障する場合があるという情報もあります。

また、粗悪で細い USB ケーブルを使っていたり、電源供給が貧弱な USB ハブを使っていると、ESP32 の瞬時の大電流吸い込み時に電圧降下が起きて、5V電圧が予想外に低下していることがあります。
その結果、ESP32 に供給する 3.3V ライン電圧も低下してしまうことがあります。

ESP32 起動時に最も大きな電流を必要とするので、起動時に最低動作電圧付近の 2.3V よりも降下して、起動に失敗するとウンともスンとも言わなくなります。
ファームウェアを再インストールし直して動作したとして、うまく起動できたとしても、そういうことを3回以上繰り返すと2度と起動しなくなることがるようです。

対策

まず、最低限の対策として、ESP32-DevKitC や ESPr Developer 32 等の開発ボードとパソコンを接続している USB ケーブルをできるだけ短く太い良質のケーブルに交換してください。
1mより長いとトラブルの元になるので要注意です。
そして、USBハブは使用しないでください

次に、バッテリー使用時は特に注意する必要があります。
瞬時電圧降下を起こさない回路設計が必要です。
できるだけ、一瞬でも 3.0 V を下回らない設計が理想ですが、せめて 2.8V くらいに抑えたいですね。

単純にコンデンサ容量を大きくすることは、意味がありませんし、逆に故障の原因になります。
瞬時の電圧降下に高速で応答して、電圧を補填できる回路が必要です。
高速応答 LDO ( ロードロップアウト電圧レギュレーター ) と、セラミックコンデンサをうまく使用しなければなりません。

瞬間の電圧降下を観察するには、100MHz 以上のできるだけ高性能のオシロスコープで見ないと発見できないので要注意です。
これについては以下の記事を参照してください。

●ESP-WROOM-32 ( ESP32 )の消費電流を電流プローブ無しで測定してみました
●ESP-WROOM-32 (ESP32) の 電流 測定 その2
●ESP-WROOM-32 ( ESP32 ) のUSB電源突入電流(インラッシュカレント)を考える
●ESP-WROOM-32 ( ESP32 ) の保護機能付き電源強化対策の実験

また、開発ボードでも、LDO が貧弱なものがありますので、同じく ESP32 破損の可能性があります。
開発ボードだからと言って安心しないでください。
意外と電圧降下が発生しています。

突入電流対策を施していない場合、パソコンのUSBポートや、その他電源にダメージを与える可能性がありますので要注意です。
特に、安物の開発ボードの場合は、LDO周りの回路をよく調べて使用した方が良いです。

いろいろある開発ボードの中では、突入電流対策用に電圧上昇ソフトスタート機能があるチップを採用した、スイッチサイエンスさんの ESPr Developer 32 を個人的にお勧めします。

これについては、以下の記事を参照してください。

ESPr Developer 32 ( スイッチサイエンス製 ) を使ってみました

2.Arduino core for the ESP32 がインストールできない

Windows の場合で説明します。

以下の記事、
Arduino core for the ESP32 のインストール方法

にあるような方法で、Arduino IDE に Arduino core for the ESP32 をインストールしようとすると、get.exe が実行できない場合があります。

原因

get.exe を実行すると、インターネットに接続して、コンパイラなどの toolchain をダウンロードしてきます。
その時に、ウィルスチェックソフト等のセキュリティーソフトが検出して、get.exe や esptool.exe を強制削除してしまうことがあります。

また、get.exe を実行する際、管理者権限で実行していないとインストールできない場合があります。

対策

まず、Windows10 の場合、get.exe を実行する場合は、そのファイルを右クリックして、「管理者として実行」をクリックしてください。

それでもダメな場合は、ウィルスチェックソフトや、セキュリティーソフトのファイアウォール設定で、get.exe や esptool.exe などの必要なファイルの動作を「許可」します。
ただ、このファイルが本当に安全なのかは私には分かりません。
それは、Espressif systems 社に問合せてください。
あとは、自己責任で動作させるのみです。

もし、解除できないのならば、このファイルのチェックを解除するようにウィルスチェックソフトメーカーに問合せてみてください。
メーカーによっては、そのファイルを解析してくれることがあります。

3.Arduino – ESP32 のコンパイル中で、ウィルス検出ソフトが gen.esp32part.exe ファイルを弾いてしまう

Norton などのウィルス検出ソフトで、Arduino core for ESP32 のコンパイル実行関連ファイルである、gen.esp32part.exe を検出してしまうことがあります。

原因

Arduino core for the ESP32 は、Arduino IDE でコンパイルする時にインターネットにアクセスしているようです。

Arduino core for the ESP32 は、まだまだ発展途上で完成されておらず、様々な実行ファイルが日々更新されています。
シマンテックなどのセキュリティーソフト会社がファイルの安全性検証などを把握し切れていませんので、検出されてしまうことがあります。

対策

ウィルス検出セキュリティーソフトのファイアウォール設定で、gen.esp32part.exe ファイルを「許可」設定にするしかありません。
ただし、このファイルが本当に安全かどうかは私には分かりません。
しかし、それが実行できないと、Arduino で ESP32 開発はできませんので、個人の責任において実施してみてください。

スポンサーリンク


mgo-tec電子工作 関連コンテンツ ( 広告含む )

投稿者:

mgo-tec

Arduino , ESP32 ( ESP-WROOM-32 ) , ESP8266 ( ESP-WROOM-02 )等を使って、主にスマホと連携した電子工作やプログラミング記事を書いてます。ライブラリも作ったりしてます。趣味、独学でやってますので、動作保証はしません。 電子回路やプログラミングの専門家ではありません。 畑違いの仕事をしていて、介護にドップリ浸かりそうな年配者です。 少しだけ電気の知識が必要な仕事なので、電気工事士や工事担任者等の資格は持っています。

コメントを残す

メールアドレスが公開されることはありません。

*画像の文字を入力してください。(スパム防止の為)