Hi all,
my OVMW V3.1 has been disconnected for a while an now doesn't boot any longer. The USB console just shows:
rst:0x10 (RTCWDT_RTC_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57
I tried the "flash firmware" section of https://docs.openvehicles.com/en/latest/userguide/factory.html#flash-fac... but nothing changed.
The end of the page says:
"If you accidentally did an erase_flash or erased the wrong region, you will need to do a full reflash of your module (including the boot loader and paritioning scheme). Post a log of the boot process on the OVMS user forum and ask for help, or install the developer environment and do a make flash."
I suspect that I need to do the "full reflash" - but don't know ho to do it.
You will need to download the firmware parts:
http://www.openvehicles.com/firmware/ota/v3.2/main/bootloader.bin
http://www.openvehicles.com/firmware/ota/v3.2/main/partitions.bin
http://www.openvehicles.com/firmware/ota/v3.2/main/ovms3.bin
You will also need the esptool.py utility from Espressif.
Then, with the module connected via USB:
Erase flash:
$ esptool.py --port <path-to-usb> erase_flash
Re-write all flash:
$ esptool.py --port <path-to-usb> flash --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 bootloader/bootloader.bin 0x10000 ovms3.bin 0x8000 partitions.bin
That said, I haven't seen this 'flash read err' you are getting - that sounds more like a hardware fault (completely unable to read flash) than the flash being corrupted in some way.
Thank you.
$ esptool --port /dev/ttyUSB0 erase_flash
esptool.py v2.5.1
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core
MAC: 30:ae:a4:5f:e2:28
Enabling default SPI flash mode...
Erasing flash (this may take a while)...
A fatal error occurred: ESP32 ROM does not support function erase_flash.
I assumed "write_flash" instead of "flash" as the command for the second call as esptool doesn't have a "flash" command.
$ esptool --port /dev/ttyUSB0 write_flash --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 bootloader.bin 0x10000 ovms3.bin 0x8000 partitions.bin
esptool.py v2.5.1
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core
MAC: 30:ae:a4:5f:e2:28
Enabling default SPI flash mode...
Configuring flash size...
Auto-detected Flash size: 16MB
Erasing flash...
Took 0.29s to erase flash block
Wrote 21504 bytes at 0x00001000 in 2.1 seconds (82.3 kbit/s)...
Hash of data verified.
Erasing flash...
Took 13.74s to erase flash block
Wrote 2824192 bytes at 0x00010000 in 277.3 seconds (81.5 kbit/s)...
Hash of data verified.
Erasing flash...
Took 0.28s to erase flash block
Wrote 21504 bytes at 0x00008000 in 2.1 seconds (82.6 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
The write included an erase, but unfortunately, nothing changed while booting. The device still shows the "flash read err, 1000" :(
I'll contact the support.
Most likely a hardware failure in the flash chip itself.