ESP8266, ESP-WROOM-02, ESPr Developer トラブルシューティングまとめ

記事公開日:2016年12月19日
最終修正日:2017年12月5日

スポンサーリンク

今回は、ESP8266, ESP-WROOM-02, ESPr Developer のトラブルシューティングについて、コメント等でお問い合わせがあったものと、私の過去の体験等を含めて、まとめてみました。
以下、Windows 8.1 以上で、Arduino IDE を使った場合で説明します。

Aruino IDE 、ESP8266 ボード、SPIFFSアップローダーのバージョンは以下の場合で説明します。

Arduino IDE — ver 1.8.1 以上
Arduino Core for ESP8266 WiFi chip — stable ver 2.3.0
SPIFFS ファイルシステムアップローダー — ver 0.3.0

Arduino IDE のインストール方法、ESP8266ボードの設定については以下のページを参照してください。
Arduino IDE に Staging(Stable)版ESP8266 ボードをインストールする方法

Arduino IDE にSPIFFSファイルシステムアップローダープラグインのインストール方法は以下のページを参照してください。
Arduino IDE に ESP8266 SPIFFS ファイルシステムアップローダーをインストールする方法

ESPr Developer とは、スイッチサイエンス製で、ESPRESSIF社製 の技適認証済みWiFiボード ESP-WROOM-02 を、700mA 電源レギュレーター、USBシリアル変換、ロジック変換、リセットスイッチ等でパッケージ化した、とても使いやすく安定した超おすすめボードです。
Amazon.co.jp
この組み立て方法や使い方については、以下のページを参照してください。
ESPr Developer ( ESP-WROOM-02 開発ボード )の使い方をザッと紹介

では、トラブルシューティングについては以下の目次をクリックするとそこへジャンプします。

    【目次】

    ※ESP-WROOM-02 のFlashサイズが実は 2MB だったという情報が出ています。
    以下のページを参照して、メモリサイズを確認してください。
    (2017/10/1)
    ●ESP-WROOM-02 ( ESP8266 ) チップ・メモリ・MACアドレス情報確認方法

  1. Arduino IDE には警告やエラーが無いのに、シリアルモニターに Exception や wdt、loadエラーが出て、永遠とリセットを繰り返す
  2. espcomm_sync failed や espcomm_open failed エラーが出る
  3. シリアルモニターで全ての文字が文字化けする
  4. シリアルモニターで 115200 bps にしているのに、最初の行だけが文字化けする
  5. SPIFFS アップロードで、SPIFFS Upload failed! エラーが出る
  6. SPIFFS ファイルシステムアップローダー、4M ( 3M SPIFFS )で SPIFFS Upload failed! エラーが出る
  7. 起動が安定しない、動作が不安定
  8. SDカード使用で、「SD.h」に対して複数のライブラリが見つかりました、というエラーが出る
  9. Soft WDT reset というメッセージが出て、リセットされてしまう
  10. ESPr Developer ( ESP-WROOM-02, ESP8266 )に接続したデバイスがうまく動作しない
  11. 正常に動作するプログラムでも、コンパイル後の実行で、シリアルモニターに文字化けデータしか表示されない
  12. Web と連動してテキストを抽出する場合に、途中でフリーズ(固まる)する
  13. ESPr Developer ( ESP-WROOM-02, ESP8266 )にLEDを接続したら壊れた
  14. Arduino IDE スケッチのコンパイル書き込みで、「シリアルポート「COM9」が開けません。」というメッセージが出る
  15. ライブラリマネージャーでインストール、アップデート、アンインストールができない
  16. ZIP形式ライブラリがインストールできない
  17. ライブラリをアップデートしたが、うまく動作しない
  18. EasyWebSocketライブラリでブラウザ表示が文字化けする
  19. Arduino IDE のシリアルポート(COMポート)がグレー表示になっていて、選択できない
  20. マイコンボードに書き込もうとしましたが、エラーが発生しました。というメッセージが出る
  21. ESP8266ボード や Arduinoボードで、配列やポインタを使用すると、シリアルモニター表示が変だ
  22. グローバル変数とローカル変数のメモリに余裕があるのに正常に動作しない
  23. Arduino IDE のシリアルモニター出力で、日本語漢字が文字化けする
  24. ブラウザからスケッチ(ソースコード)をコピーして、Arduino IDE スケッチ画面に貼り付け、そのままコンパイル書き込みしたら、うまく動作しない
  25. 突然 Wi-Fi ルーター(アクセスポイント)につながらなくなった
    (2017/12/05追加)

1.Arduino IDE には警告やエラーが無いのに、Exceptin や wdt、load エラーがシリアルモニターに出て、永遠とリセットを繰り返す

Arduino IDE で ESPr Developer ( ESP-WROOM-02, ESP8266 )ボードをコンパイルすると、コンパイラの警告やエラーメッセージが一切なく、RAM使用領域も余裕があって、正常なスケッチのはずなのに、シリアルモニターで以下のようなエラーメッセージが出て、永遠とリセットを繰り返す場合があります。

ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld
Exception (9):

epc1=0x40104278 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00050a26 depc=0x00000000

ctx: sys
sp: 3ffffbb0 end: 3fffffb0 offset: 01a0

>>>stack>>>
3ffffd50:  5c5c5c5c 5c5c5c5c 5c5c5c5c 5c5c5c5c
・・・etc
ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld

【原因】
こういう場合は、プログラム(スケッチ)中で RAMメモリを多く消費し過ぎている場合があります。
例えば、配列宣言の文字数が多すぎるなど・・・。

【対策】
配列宣言の文字数や大きさを少なくしてみて下さい。
詳細は以下の記事を参照してください。
Arduino / ESP8266 の使用できるRAM 領域を再考

2.espcomm_sync failed や espcomm_open failed エラーが出る

ESPr Developer ( ESP-WROOM-02 開発ボード) を使っていて、Arduino IDE に以下のようなメッセージが出た場合です。

warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

【原因】
Arduino IDE の ESP8266ボード設定の Reset Method が ck になっていることが原因です。

【対策】
Arduino IDE の ESP8266ボード設定の Reset Method を “nodemcu” にする必要があります。
“ck” の場合は、ご自分でGPIO #0 を押しながらリセットキーを押すと書き込み可能になります。
“nodemcu” にするとリセットキーを押さずとも、自動で書き込みモードに切り替えて書き込みできます。
これは、スイッチサイエンスさんのESPr Developer のトランジスタで構成された、リセット回路の素晴らしいところです。
ESP8266 ボードの設定については、以下のページを参照してください。

Arduino IDE に Staging(Stable)版ESP8266 ボードをインストールする方法

3.シリアルモニターで全ての文字が文字化けする

【原因】
Arduino IDE のシリアルモニターの右下のところの通信速度が 115200 bps 以外になっている。

【対策】
ESP8266, ESP-WROOM-02 のシリアル通信速度のデフォルトは 115200 bps です。
それ以外にすると、すべての通信が文字化けしてしまいますので、115200 bps に変更してください。
TroubleShooting02

4.シリアルモニターで 115200 bps にしているのに、最初の行だけが文字化けする

【原因】
ESP-WROOM-02 ( ESP8266 ) の起動直後は76800 bps で起動メッセージをシリアル出力します。
その後起動完了後に 115200 bps でシリアル通信するので、最初の1行が文字化けするわけです。

【対策】
そのメッセージを読み取りたいのであれば、シリアルモニターの速度を74880 bps にすれば読み取れます ( Arduino IDE 1.6.13 の場合 )
こんな感じのメッセージです。

ets Jan 8 2013,rst cause:2, boot mode:(3,2)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v60000318

ただし、その後のメッセージは全て文字化けしてしまいますが・・・。
ですから、シリアルモニターの速度を115200 bps にしてあれば、最初の1行の文字化けは無視して良いです。

5.SPIFFS アップロードで、SPIFFS Upload failed! エラーが出る

【原因】
SPIFFS アップローダーをクリック後、即以下のようなメッセージが出た場合、

error: Failed to open COM6
error: espcomm_open failed
error: espcomm_upload_mem failed
SPIFFS Upload failed!

シリアルモニターが起動していることが原因です。

【対策】
SPIFFS ファイルシステムアップローダーはシリアルモニターが起動していると動作しません。
シリアルモニターを閉じてください。

スポンサーリンク


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

投稿者:

mgo-tec

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

「ESP8266, ESP-WROOM-02, ESPr Developer トラブルシューティングまとめ」への4件のフィードバック

  1. 非常に参考にさせていただいております。
    以下のエラーで色々やっているのですが、うまくコンパイルしたのが転送できておりません。
    アドバイスいただけると嬉しいです。

    Arduino:1.8.1 (Mac OS X), ボード:”Generic ESP8266 Module, 160 MHz, 80MHz, QIO, 921600, 4M (3M SPIFFS), nodemcu, Disabled, None”

    ビルドオプションが変更されました。全体をリビルドしています。
    最大1044464バイトのフラッシュメモリのうち、スケッチが230557バイト(22%)を使っています。
    最大81920バイトのRAMのうち、グローバル変数が32108バイト(39%)を使っていて、ローカル変数で49812バイト使うことができます。
    warning: serialport_set_baudrate: baud rate 921600 may not work
    Uploading 234704 bytes from /var/folders/z0/ggnt7s1d3cx7v_ynhpp295jr0000gn/T/arduino_build_551472/sketch_feb19a.ino.bin to flash at 0x00000000
    …………………………………………………………………….. [ 34% ]
    …………………………………………………………………….. [ 69% ]
    ….スケッチの書き込み中にエラーが発生しました
    .warning: espcomm_send_command: didn’t receive command response
    warning: espcomm_send_command(FLASH_DOWNLOAD_DATA) failed
    warning: espcomm_send_command: didn’t receive command response
    error: espcomm_upload_mem failed

    「ファイル」メニューの「環境設定」から
    「より詳細な情報を表示する:コンパイル」を有効にすると
    より詳しい情報が表示されます。

    1. 藤田さん

      当ブログをご覧いただき、ありがとうございます。

      さて、私はMac を持っておりませんので、どうしてそういうエラーになるのか、正直分かりません。

      warning: serialport_set_baudrate: baud rate 921600 may not work

      と出ているので、おそらくシリアルポートの速度が速すぎるのかもしれません。
      試しに、115200 bps でアップロードしてみるとかですかね。

      1. ご回答いただいていたのにもかかわらず、お返事が遅くなり申し訳ございません。一度試してみます。よろしくお願いします。

コメントを残す

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

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