afkfkl
@afkfkl (a m)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

A fatal error occurred: MD5 of file does not match data in flash! でエラーになりesp32に書き込みができない

解決したいこと

Arduino IDEでesp32に書き込みをする際に,

A fatal error occurred: MD5 of file does not match data in flash!

でエラーになります。初心者なので解決法を教えていただきたいです。

作業環境: Mac Catalina
使用マイコン: ESP32-DevkitC-32E
エディタ: Arduino IDE

発生している問題・エラー

Arduino IDEでesp32に書き込みをする際に,

A fatal error occurred: MD5 of file does not match data in flash!

でエラーになります。
スクリーンショット 2021-06-17 17.39.34.png

該当するソースコード

esptool.py v3.0-dev
Serial port /dev/cu.SLAB_USBtoUART
Connecting........_
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:0a:c4:e7:b3:10
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 230400
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 9589.7 kbit/s)...
File  md5: e6327541e2dc394ca2c3b3280ac0f39f
Flash md5: e0d34c2f15b044662de3cd121fb12689
MD5 of 0xFF is 84d04c9d6cc8ef35bf825d51a5277699

A fatal error occurred: MD5 of file does not match data in flash!
A fatal error occurred: MD5 of file does not match data in flash!

自分で試したこと

1. 何度もespに書き込もうとしました.100回以上やっても無理でした。
参考:http://nekomemo2.site/?eid=1643

2. esptoolでフラッシュを初期化した後,ファームウェアを書き込みました。
参考:https://lipoyang.hatenablog.com/entry/20170729/p1

しかし,上の参考サイトの"ユーザーデータの書き込み"で
実行結果が

 esptool.py -c esp32 -p /dev/cu.SLAB_USBtoUART -b 115200 write_flash 0 esp32_firmware.bin
esptool.py v3.1
Serial port /dev/cu.SLAB_USBtoUART
Connecting........_
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:0a:c4:e7:b3:10
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash will be erased from 0x00000000 to 0x003fffff...
Compressed 4194304 bytes to 820471...
Wrote 4194304 bytes (820471 compressed) at 0x00000000 in 79.9 seconds (effective 419.9 kbit/s)...
File  md5: 43980bf7d4a855b44a3be4b8ce4f7b9a
Flash md5: fe6a5ce65bcd05b013b41ee10b687552
MD5 of 0xFF is 2b7a70fa59f8173635bcbe956bad56c6

A fatal error occurred: MD5 of file does not match data in flash!

となり,再び

A fatal error occurred: MD5 of file does not match data in flash!

が表示されてしまいます。

3. esptoolでFrashを初期化しようとしました。
参考:http://massan123.blog.jp/archives/34117199.html

しかし,以下のように結果が反映されませんでした。

esptool.py --port /dev/cu.SLAB_USBtoUART write_flash_status --non-volatile 0
esptool.py v3.1
Serial port /dev/cu.SLAB_USBtoUART
Connecting........__
Detecting chip type... ESP32
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:0a:c4:e7:b3:10
Uploading stub...
Running stub...
Stub running...
Initial flash status: 0x7bfc
Setting flash status: 0x0000
After flash status:   0x7bfc
0

2Answer

過去にArduino IDEのUpload Speedを遅くするとうまく書き込めるケースがありました。
「ツール」--->「Upload Speed」

0Like

Features: WiFi, BT, Dual Core, 240MHz,
Crystal is 40MHz

ESP32の動作クロックは240MHzです。
クリスタルの周波数を40MHzに設定している意図をおしえてください。(関係ないかもしれないけど)

フラッシュの書き込みモードは何に設定してる?

  • DIO
  • DOUT
  • QIO
  • QOUT

0Like

Comments

  1. 「ツール」--->「Upload Speed」
    115200にしてみてください。

    > Changing baud rate to 230400

    115200 * 2 = 230400

    ちなみに、M5StickC Plus(ESP32-PICO)は以下の書き込み通信速度に対応しています。

    - 1200 ~ 115200(bps)
    - 250K = 250000(bps)
    - 500K = 500000(bps)
    - 750K = 750000(bps)
    - 1.5M =1500000(bps)

Your answer might help someone💌