-
-
Notifications
You must be signed in to change notification settings - Fork 324
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
getTemparature()
causes system crash and prevents saving of configuration
#48
Comments
Install the Ds18b20 and it will work. It's not intended to be used half set up |
@universam1 I understand. But as for me, I don't really bother about exact temperature in the FV. Wouldn't that make sense to make the measurement of temperature value optional? Anyway, do you have an idea what is the main cause why this is happening and could you please elaborate on the purpose of those delays? |
It makes no sense to use it without temperature information as the new firmware is also going to compensate water anomalies by temperature which becomes a hard dependency. |
If I monitor my temperature outside and it's steady I can easily remove it from the equation, or? Anyway, I connected the DS18B20, and now I have another problem. I get random error (codes 0 and 28) and also the watch-dogs kicks while mounting filesystem or storing configuration. I guess it is a different problem and I will have to investigate further and create another issue. I guess the reasoning behind putting all logic to |
While saving configuration the program would crash with following stacktrace:
This translates to:
The error causes the board to reset and configuration is not saved. I observed it only in combination with WiFi functionality.
I use Amica ESP8266 NodeMCU 1.0 board connected via USB without a temperature probe or any other devices connected. The stacktrace varies, but it always happens in
ets_timer_disarm
routine. I looked at what is running in timer, and it was theflash
function callinggetTemperature()
amongst the others. And there there is adelay(200)
. I am not sure about the reason for this delay. Perhaps a minimal waiting time before DS boots up. But if I remove it completely or reduce to 100ms, the error is not being reproduced and configuration is changed.I understand that I don't use D1 mini, but they are the same chip. Also, I don't have temperature probe connected which probably causes the problem. But apparently there is an unfortunate combination of events that causes that and prevents from tinkering around with the code.
Proposed pull request: #49
Upd.: I'm reading the internet on those delays now, and it seems to me that those may actually be required for assuring a certain state of peripherals. Perhaps some sort of a small state machine could be an option instead of explicit delay.
The text was updated successfully, but these errors were encountered: