Comments (6)
I'm sorry to hear that. IotWebConf built with simplicity in mind. With hoping that simplicity will also mean stability.
Does this happen with each transition, or with just one.
Please provide the serial log!
from iotwebconf.
So as soon as I posted this issue, I seemed to have solved the problem with the ESP32!
It appears to be a flash/cache error
If you use the IRAM_ATTR macro in the interrupt handlers, it fixes the issue.
I still have yet to find the solution for the ESP8266.
This error occurs with every state change, but I will get you the error log ASAP.
from iotwebconf.
Also note that an extra "yield" is added to "doLoop" lately to improve the stability.
from iotwebconf.
@prampec - I'm running into this with interrupts caused by a signal every 40ms, whilst the state is changing it will crash with exception(0). Once the state is connected it will run fine for hours. I tried disabling the serial output in iotwebconf.h by commenting out the line #define IOTWEBCONF_DEBUG_TO_SERIAL but this made little difference ( i thought it might have something to do with the interrupt firing whilst writing to serial - but seems not to be)
Serial log: (Starting... is the second line of my setup(), with the first being Serial.begin(115200);
Starting...
Config size: 165
Loaded config 'iwcThingName'= 'HotTubRemote'
Loaded config 'iwcApPassword'= <hidden>
Loaded config 'iwcWifiSsid'= 'VM7430922'
Loaded config 'iwcDecoding button command,Temperature down button was pressed
WifiPassword'= <hidden>
Loaded config 'iwcApTimeout'= '30'
HTTP server started.
SkipApStartup mode was applied
State changing from: 0 to 3
Connecting to [VM7430922] (password is hidden)
Exception (0):
epc1=0x402029f4 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
>>>stack>>>
ctx: cont
sp: 3ffff9f0 end: 3fffffc0 offset: 01a0
3ffffb90: 4010048e feefeffe feefeffe 40100514
3ffffba0: c0037020 feefeffe feefeffe feefeffe
3ffffbb0: feefeffe feefeffe feefeffe 00000022
3ffffbc0: 3fffc200 40100454 3fffc258 4000050c
3ffffbd0: 400043d3 00000030 00000016 ffffffff
3ffffbe0: 400044ab 3fffc718 3ffffcd0 08000000
3ffffbf0: 60000200 08000000 00000003 00000000
3ffffc00: 0000ffff 00042035 00002035 003fd000
3ffffc10: 4025a2d0 0000049c 003fd000 00000030
3ffffc20: feefeffe feefeffe feefeffe feefeffe
3ffffc30: feefeffe feefeffe feefeffe 3fff017c
3ffffc40: 3ffe8aa2 00000020 00000000 40218a0d
3ffffc50: feefeffe 40214ed8 feefeffe feefeffe
3ffffc60: feefeffe feefeffe feefeffe feefeffe
3ffffc70: feefeffe feefeffe feefeffe 00000000
3ffffc80: 3ffe8aa2 00000020 3ffffd20 40214ed8
3ffffc90: feefeffe feefeffe feefeffe feefeffe
3ffffca0: 3ffe9351 00000000 3ffe9350 4021806e
3ffffcb0: 00000000 4000444e 9f7ced91 00000000
3ffffcc0: 00000002 4010580b 00000001 60000200
3ffffcd0: 00000002 4000410f 00001001 00000205
3ffffce0: 3fffc718 40004a3c 000003fd 4025a2d0
3ffffcf0: 3fffc718 40105a9c 000003fd 4010066c
3ffffd00: 4024bb34 000003fd 3ffefee8 4024bb1d
3ffffd10: 3fff1e2c 4024bc07 3fff198c 0000049c
3ffffd20: 000003fd 3ffffe60 3fff198c 4024bbea
3ffffd30: ffffff00 55aa55aa 0000002c 00000020
3ffffd40: 00000020 00000037 00000037 aa55aa55
3ffffd50: 000003ff 4024c0d4 3fff198c 3fff198c
3ffffd60: 00000001 3fff198c 0000049c 00000000
3ffffd70: 40100271 00000001 3fff199c 4024c2cc
3ffffd80: 3ffef180 3fff198c 00000001 3ffffe60
3ffffd90: 3ffffe80 3fff19c3 0000002c 00000020
3ffffda0: 3fff1a4c 3ffffec1 00000001 4024c39e
3ffffdb0: 3ffffe60 40259f30 00000000 0000000c
3ffffdc0: 3fff1d8c 3ffffe80 3fff198c 4024c36d
3ffffdd0: 3fff198c 4024c3d4 3ffe8524 3ffef6de
3ffffde0: 4020704e 3ffef6de 3ffef6ff 40206fab
3ffffdf0: 34374d56 32393033 3fff0032 40218fdc
3ffffe00: 3fff01ac 3ffefc9c 3fff1844 00000000
3ffffe10: 6b716438 54597a76 7968636a 40218400
3ffffe20: 3fff01ac 00000040 00000050 3ffeff18
3ffffe30: 00000033 0000000a 3ffeff18 40213cac
3ffffe40: 3ffe88f6 00000000 3ffe88f5 402184de
3ffffe50: 43d34800 4039ac3e 000001fc 40218744
3ffffe60: 34374d56 32393033 3fff0032 40218b6c
3ffffe70: 3fff017c 3ffefc6c 3fff1814 00000000
3ffffe80: 6b716438 54597a76 7968636a 40218000
3ffffe90: 3fff017c 00000040 00000050 3ffefee8
3ffffea0: 00000033 0000000a 3ffefee8 40213aa0
3ffffeb0: 3ffe9351 00000000 3ffe9350 4021806e
3ffffec0: 00000000 4bc6a7f0 f74bc681 00000002
3ffffed0: 00000004 00000000 3ffefd92 00000001
3ffffee0: 402565c6 00000029 40100318 00000003
3ffffef0: 3ffef598 3ffefee8 3ffef598 402048a2
3fffff00: 00005a25 00000001 3ffefee8 4021df92
3fffff10: 3ffef598 3ffefee8 3ffefee8 401000c5
3fffff20: 3ffef598 3ffefee8 3ffef598 40205c38
3fffff30: 3ffef598 3ffef698 3ffefee8 4021403c
3fffff40: 40256606 00000064 3ffefee8 40214252
3fffff50: 3ffef598 3ffef698 3ffefee8 40205d31
3fffff60: 00000000 3fff001c 3ffefee8 4021403c
3fffff70: 3fffdad0 00000000 3ffefee8 3fff001c
3fffff80: 3fffdad0 00000000 3ffef598 40205ec5
3fffff90: 3fffdad0 00000000 3ffeffec 40201cdc
3fffffa0: feefeffe feefeffe 3ffeffec 40216244
3fffffb0: feefeffe feefeffe 3ffe8550 40100909
<<<stack<<<
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v8b899c12
~ld
Starting...
Stack Trace:
0x401005f2: interrupt_handler(void*) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_wiring_digital.cpp line 139
0x40100678: interrupt_handler(void*) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_wiring_digital.cpp line 165
0x401005b8: interrupt_handler(void*) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_wiring_digital.cpp line 133
0x40100860: pvPortZalloc(size_t, char const*, int) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\heap.cpp line 176
0x401003dd: __wrap_spi_flash_read(uint32_t, uint32_t*, size_t) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_phy.cpp line 309
0x40207016: ESP8266WiFiSTAClass::begin(char const*, char const*, int, unsigned char const*, bool) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\ESP8266WiFi\src\ESP8266WiFiSTA.cpp line 188
0x40206f73: ESP8266WiFiSTAClass::begin(char const*, char const*, int, unsigned char const*, bool) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\ESP8266WiFi\src\ESP8266WiFiSTA.cpp line 156
0x40218e6c: free(void*) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 1764
0x40218300: uart_write_char(uart_t*, char) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\uart.cpp line 476
0x40213b0c: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/HardwareSerial.h line 158
0x4021836e: uart_write(uart_t*, char const*, size_t) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\uart.cpp line 498
0x40218a44: _umm_free(void*) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 1304
0x40218e6c: free(void*) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 1764
0x40218300: uart_write_char(uart_t*, char) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\uart.cpp line 476
0x40213b0c: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/HardwareSerial.h line 158
0x4021836e: uart_write(uart_t*, char const*, size_t) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\uart.cpp line 498
0x40100484: millis() at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_wiring.cpp line 186
0x40204866: IotWebConf::connectWifi(char const*, char const*) at C:\Users\simon\Documents\Arduino\libraries\IotWebConf\src\IotWebConf.cpp line 1112
0x4021e292: std::_Function_handler ::_M_invoke(std::_Any_data const&, char const*, char const*) at c:\users\simon\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-3-20ed2b9\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x401000c5: std::function ::operator()(char const*, char const*) const at c:\users\simon\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-3-20ed2b9\xtensa-lx106-elf\include\c++\4.8.2/functional line 2465
0x40205c00: IotWebConf::stateChanged(unsigned char, unsigned char) at C:\Users\simon\Documents\Arduino\libraries\IotWebConf\src\IotWebConf.cpp line 906
0x402140a8: Print::println() at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\Print.cpp line 178
0x402142be: Print::println(unsigned char, int) at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\Print.cpp line 202
0x40205cf9: IotWebConf::changeState(unsigned char) at C:\Users\simon\Documents\Arduino\libraries\IotWebConf\src\IotWebConf.cpp line 851
0x402140a8: Print::println() at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\Print.cpp line 178
0x40205e8d: IotWebConf::doLoop() at C:\Users\simon\Documents\Arduino\libraries\IotWebConf\src\IotWebConf.cpp line 775
0x40201e74: loop() at C:\Users\simon\Source\Repos\Hot-tub-remote/Hot-tub-remote.ino line 270
0x40216324: loop_wrapper() at C:\Users\simon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266\core_esp8266_main.cpp line 125
Hope this helps!
from iotwebconf.
Hi All!
I'm using a high-resolution encoder that uses interrupts to track the length of material traveled.
I'm running into a significant issue that crashes the device when the encoder is tracking and iotWebconf switches connection state at the same time.
This happens with both the ESP8266 and the ESP32.
Does anyone have any idea why this would happen?
I can't for the life of me figure it out, and it's super important for my project that this doesn't happen.
Let me know if there is any info I could give to help!Thanks in advance!
Have you managed to solve this? I have the same issue in ESP8266. Thanks in advance.
from iotwebconf.
I faced a similar problem and I workarounded avoiding using interrupts while iotWebConf is not connected.
Since in my project I do nothing local and everithing is about sending information make no sense to use the interruptions while offline so if != IOTWEBCONF_STATE_ONLINE
I deattach interrupt and I attach it again once == IOTWEBCONF_STATE_ONLINE
Hopes this helps.
from iotwebconf.
Related Issues (20)
- Sequencing mDNS after the device is 'online' HOT 7
- show custom page after form saved HOT 1
- Saving a parameter results in ascii characters like '�����' HOT 2
- v3.2.1 works on ESP32E but not on ESP32D
- Question: Load/save config json from spiffs and assign params to local variables HOT 4
- suggested code: add upload progress bar for firmware update
- found bug concerning iotWebConf.delay() during bootup and /firmware
- Problem
- Support for RGB led
- Use as temporary AP without connecting to an existing Wifi
- Won't Connect to Network Sparkfun ESP32 S2 Thing Plus HOT 3
- ver 3.2.1 Error compiling for board LOLIN(WEMOS) D1 mini
- Typo on https://github.com/prampec/IotWebConf/blob/master/doc/UsersManual.md
- Advanced setConfigSavedCallback - provide parameters classes changed
- Improving offline mode
- WiFi password length is limited to 32 characters
- Bug the analogRead will return 0 with IotWebConf.
- MQTT Port setting is missing in MQTT examples
- Unable to commit messages on EEPROM with this library HOT 4
- Error Config size: 811 Wrong config version. Applying defaults.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iotwebconf.