ESP32-D0WD-V3 revision v3.0 v revision v3.1 problems
Posted: Fri Feb 20, 2026 7:05 am
Hi,
I have a custom board design that uses the ESP32-WROOM-32E module.
I am encountering strange problems between the v3.0 and v3.1 versions of the ESP32.
I am using GPIO12 and GPIO13 as a secondary I2C bus. I have 10K pullup resistors to 3.3V and the I2C bus is connected to 2 x ADS1115 ADC chips running at 5V. At idle GPIO12 is approximately 2.49V
I am using the preferences library to store user parameters.
Problems:
Chip type: ESP32-D0WD-V3 (revision v3.0)
The v3.0 works perfectly, I can run a serial upload and OTA of my code and the parameters are stored correctly in the nv memory.
With v3.1 I have problems.
Chip type: ESP32-D0WD-V3 (revision v3.1)
I cannot do an upload of my code using the serial port unless I tie GPIO12 low before performing a reset. If I try then I get an MD5 checksum error at the end of the upload.
After my code has loaded and is running I cannot create or modify any parameter in the nv memory. I can read values stored there but writes of any type do not work. I get a successful message back from the preferences library but my value is not stored.
If I do an OTA upload this also fails :
07:58:25 [WARNING]: Unexpected response from device: 'Flash Read Failed'
07:58:25 [WARNING]: Upload completed but device sent unexpected response(s). This may still be successful.
07:58:25 [WARNING]: Device might be rebooting to apply firmware - this is normal.
Progress: 90%
Progress: 100%
Error[4]: End Failed
I have a custom board design that uses the ESP32-WROOM-32E module.
I am encountering strange problems between the v3.0 and v3.1 versions of the ESP32.
I am using GPIO12 and GPIO13 as a secondary I2C bus. I have 10K pullup resistors to 3.3V and the I2C bus is connected to 2 x ADS1115 ADC chips running at 5V. At idle GPIO12 is approximately 2.49V
I am using the preferences library to store user parameters.
Problems:
Chip type: ESP32-D0WD-V3 (revision v3.0)
The v3.0 works perfectly, I can run a serial upload and OTA of my code and the parameters are stored correctly in the nv memory.
With v3.1 I have problems.
Chip type: ESP32-D0WD-V3 (revision v3.1)
I cannot do an upload of my code using the serial port unless I tie GPIO12 low before performing a reset. If I try then I get an MD5 checksum error at the end of the upload.
After my code has loaded and is running I cannot create or modify any parameter in the nv memory. I can read values stored there but writes of any type do not work. I get a successful message back from the preferences library but my value is not stored.
If I do an OTA upload this also fails :
07:58:25 [WARNING]: Unexpected response from device: 'Flash Read Failed'
07:58:25 [WARNING]: Upload completed but device sent unexpected response(s). This may still be successful.
07:58:25 [WARNING]: Device might be rebooting to apply firmware - this is normal.
Progress: 90%
Progress: 100%
Error[4]: End Failed