Changing Library -> Lot of troubles
Posted: Wed Nov 12, 2025 10:15 pm
Years ago I started to use the ESP32 Dev Module to manage a complex machine for screwing railroad rails. The ESP32 uses serial interfaces to communicate with an intelligend Display (4D Systems) and an Atmel CPU, SPI interface for SD-Card, FRAM and IO module, digital ports and analog ports. The code is about 530 KB and thousend of lines.
All worked well since I changed the ESP32 library. I forgot the originally Version of the library and thought, there are mistakes in my code. However, the crashes occurred in AnalogRead or SPI communication. Sometimes the ESP Exception Decoder found the exception occured in simple if statements with boolean values.
Some days ago I found in a forum the information, that problems happen in analog readings in version 1.0.5 and 1.0.6 and not in previous versions. So I went back to version 1.0.4 and - oh wonder - no more crashes.
I know, there are a lot of newer versions, but when I tried them, I got a lot of compilation errors. Some definitions are no more available, variables are renamed and functions in my code are suddenly no more available, but correct defined.
So, my question is:
Why are versions released, which are not really tested?
Why is code changed that worked perfect?
And for newer versions, why changing names for functions and properties?
Please understand me correctly. It's a great job to develop and provide such tools for the ESP32, but to provide a new version which makes a lot of troubles with inexplicable crashes made me doubt the ESP32 and I considered using a different controller.
Two more question:
Why are pins available which cannot be used? For example ESP32 DevKit ports 6 - 11.
Has the used CPU no more ports? I had to use an external SPI IO-expander.
I am glad, that my application no is stable with the ESP32 module, but it was a hard work to find out the problem and it cost me a lot of time and nerves. Fortunately, the customer was well-disposed towards me and gave me the time to successfully complete the matter.
Best regards, Manfred
All worked well since I changed the ESP32 library. I forgot the originally Version of the library and thought, there are mistakes in my code. However, the crashes occurred in AnalogRead or SPI communication. Sometimes the ESP Exception Decoder found the exception occured in simple if statements with boolean values.
Some days ago I found in a forum the information, that problems happen in analog readings in version 1.0.5 and 1.0.6 and not in previous versions. So I went back to version 1.0.4 and - oh wonder - no more crashes.
I know, there are a lot of newer versions, but when I tried them, I got a lot of compilation errors. Some definitions are no more available, variables are renamed and functions in my code are suddenly no more available, but correct defined.
So, my question is:
Why are versions released, which are not really tested?
Why is code changed that worked perfect?
And for newer versions, why changing names for functions and properties?
Please understand me correctly. It's a great job to develop and provide such tools for the ESP32, but to provide a new version which makes a lot of troubles with inexplicable crashes made me doubt the ESP32 and I considered using a different controller.
Two more question:
Why are pins available which cannot be used? For example ESP32 DevKit ports 6 - 11.
Has the used CPU no more ports? I had to use an external SPI IO-expander.
I am glad, that my application no is stable with the ESP32 module, but it was a hard work to find out the problem and it cost me a lot of time and nerves. Fortunately, the customer was well-disposed towards me and gave me the time to successfully complete the matter.
Best regards, Manfred