visualapproach / WiFi-remote-for-Bestway-Lay-Z-SPA

Hack - ESP8266 as WiFi remote control for Bestway Lay-Z spa Helsinki
GNU General Public License v3.0
273 stars 72 forks source link

4-Wire 54138 Watchdog timer reboot causing E13 #742

Open DeanozUK opened 1 week ago

DeanozUK commented 1 week ago

Describe the bug After install board seems to be stable with no issues until I select 4wire 54138 on CIO and DSP and reboot. While the board is idle (not even connected to pump) it will periodically reboot and when checking reason it says watchdog

To Reproduce Steps to reproduce the behavior:

  1. After install goto hardware config and select 54138 for CIO and DSP and also select v2b
  2. Reboot ESP and setup constant ping to device
  3. Goto web page home page (maybe change temp)
  4. page might drop out. I left it idle for sometime while on monitor via usb and I will post the log

Expected behavior Expect the unit to be stable when idle and when connected to unit

Screenshots ESP WDT Error.txt

Hardware (please complete the following information):

Software (please complete the following information):

Additional context When its connected to the pump after startup I will just leave it without touching any buttons. only load the web page and after short amount of time it will E13. Also tried 2 other ESPs and the beta version to no effect.

Below is the result from USB Monitor.

Writing cmdq.json (I was changing temp on web page) Done! Writing cmdq.json Done! Writing cmdq.json Done! Writing cmdq.json Done! Writing cmdq.json Done! Writing cmdq.json Done!

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Soft WDT reset

Exception (4): epc1=0x40234f9c epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

Level1Interrupt: Level-1 interrupt as indicated by set level-1 bits in the INTERRUPT register
epc1=0x40234f9c in AsyncTCPbuffer::write(unsigned char const*, unsigned int) at ??:?

stack>>>

ctx: cont sp: 3fff1d40 end: 3fff2040 offset: 0160 3fff1ea0: 00000000 00000066 89374bc6 07f64dd6 3fff1eb0: 4010a85b 0006e2db 00000000 40109bdc 3fff1ec0: 4010a85b 00000066 0000012f 4021f402 3fff1ed0: 0006da50 0000012f 40284928 00000004 3fff1ee0: 40284930 00000004 40284938 40109bac 3fff1ef0: 4010a72c 40109bdc 00000195 4021f6d1 3fff1f00: 00000001 4028467c 00000005 40284684 3fff1f10: 95017e81 00000000 00000000 00000000
3fff1f20: 00000000 40284660 00000004 402846a4 3fff1f30: 00000000 00000004 00000001 00000001 3fff1f40: 00000001 00000001 00000000 402846cc 3fff1f50: 00000006 402846d4 00000004 4010a72c 3fff1f60: 40109bdc 00000195 40109bac 4021e761 3fff1f70: 00000000 402846c4 00000004 40283a0c 3fff1f80: 00000001 4010a000 00000000 3ffefca4 3fff1f90: e1f3b4e6 41a998c4 3fff1fb0 3ffefca4 3fff1fa0: 00000001 3ffef85c 3ffef6bc 4020d163 3fff1fb0: 4010a72c 0195019f 80000000 00000000 3fff1fc0: 00000001 3ffef938 3ffef85c 4021c72d 3fff1fd0: 401081d4 3ffefb14 401081d4 4021b181 3fff1fe0: 00000000 000f000f 00000000 00000000 3fff1ff0: 00000000 611e0a0a feefeffe feefeffe 3fff2000: 401081d4 feefeffe feefeffe 3ffefca4 3fff2010: 3fffdad0 00000000 3ffefc78 3ffefca4 3fff2020: 3fffdad0 00000000 3ffefc78 402310d0 3fff2030: feefeffe feefeffe 3fffdab0 401014a1 <<<stack<<<

0x4021f402 in WebSockets::write(WSclient_t, unsigned char, unsigned int) at ??:? 0x40284928 in etharp_output at ??:? 0x40284930 in etharp_output at ??:? 0x40284938 in etharp_output at ??:? 0x4021f6d1 in WebSockets::sendFrame(WSclient_t, WSopcode_t, unsigned char, unsigned int, bool, bool) at ??:? 0x4028467c in etharp_output at ??:? 0x40284684 in etharp_output at ??:? 0x40284660 in etharp_output at ??:? 0x402846a4 in etharp_output at ??:? 0x402846cc in etharp_output at ??:? 0x402846d4 in etharp_output at ??:? 0x4021e761 in WebSocketsServerCore::broadcastTXT(unsigned char*, unsigned int, bool) at ??:?
0x402846c4 in etharp_output at ??:? 0x40283a0c in etharp_output at ??:? 0x4020d163 in sendWS() at ??:? 0x4021c72d in loop at ??:? 0x4021b181 in setup at ??:? 0x402310d0 in loop_wrapper() at core_esp8266_main.cpp:? 0x401014a1 in cont_wrapper at ??:?

--------------- CUT HERE FOR EXCEPTION DECODER --------------- 4#-a|(␕␗�P␚v␛X �~h~u␗Xh 4�r(␑,+,#A␑␑@�␕4nzAl )z�~,j �r(␗%␑␙@#A.,��␎|l )z�~,PZ8�~,PZ�P,U.4/'�rf cal sector: 1020 freq trace enable 0 rf[112] : 0� Start Millis: 91 @ line: 41 startWiFi() @ millis: 328 Setting static IP WiFi > using static IP t(�?␏ on gateway 10.10.30.1 WiFi > Using WiFiManager Config Portal WM: WM: AutoConnect WM: Connecting as wifi client... WM: Status: WM: 0 WM: Using last saved values, should be faster got IP: 10.10.30.97 start NTP WS IRamheap 9296 IRamheap 8048 startmqtt Failed to read mqtt.json. Using defaults. WM: Connection result: WM: 3 WM: IP Address: WM: 10.10.30.97 *WM: freeing allocated params! End of setup() Millis: 3460 @ line: 73 33072

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Soft WDT reset

Exception (4): epc1=0x402316c9 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

Level1Interrupt: Level-1 interrupt as indicated by set level-1 bits in the INTERRUPT register
epc1=0x402316c9 in __delay at ??:?

stack>>>

ctx: cont sp: 3fff1d60 end: 3fff2040 offset: 0160 3fff1ec0: 4010a846 0000004a 0000013a 4021f41e 3fff1ed0: 00066203 0000013a 40284928 00000004
3fff1ee0: 40284930 00000004 40284938 40109bac 3fff1ef0: 4010a70c 40109bdc 00000184 4021f6d1 3fff1f00: 00000001 4028467c 00000005 40284684 3fff1f10: 84017e81 00000000 00000000 00000000 3fff1f20: 00000000 40284660 00000004 402846a4
3fff1f30: 00000000 00000004 00000001 00000001 3fff1f40: 00000001 00000001 00000000 402846cc 3fff1f50: 00000006 402846d4 00000004 4010a70c 3fff1f60: 40109bdc 00000184 40109bac 4021e761 3fff1f70: 00000000 402846c4 00000004 40283a0c 3fff1f80: 00000001 4010a000 00000000 3ffefca4 3fff1f90: 7b6eb30a 41a998c2 3fff1fb0 3ffefca4 3fff1fa0: 00000000 3ffef85c 3ffef6bc 4020d163 3fff1fb0: 4010a70c 0184018f 80000000 00000000 3fff1fc0: 00000000 3ffef938 3ffef85c 4021c72d 3fff1fd0: 401081d4 3ffefb14 401081d4 4021b181 3fff1fe0: 00000000 000f000f 00000000 00000000 3fff1ff0: 00000000 611e0a0a feefeffe feefeffe 3fff2000: 401081d4 feefeffe feefeffe 3ffefca4 3fff2010: 3fffdad0 00000000 3ffefc78 3ffefca4 3fff2020: 3fffdad0 00000000 3ffefc78 402310d0 3fff2030: feefeffe feefeffe 3fffdab0 401014a1 <<<stack<<<

0x4021f41e in WebSockets::write(WSclient_t, unsigned char, unsigned int) at ??:? 0x40284928 in etharp_output at ??:? 0x40284930 in etharp_output at ??:? 0x40284938 in etharp_output at ??:? 0x4021f6d1 in WebSockets::sendFrame(WSclient_t, WSopcode_t, unsigned char, unsigned int, bool, bool) at ??:? 0x4028467c in etharp_output at ??:? 0x40284684 in etharp_output at ??:? 0x40284660 in etharp_output at ??:? 0x402846a4 in etharp_output at ??:? 0x402846cc in etharp_output at ??:? 0x402846d4 in etharp_output at ??:? 0x4021e761 in WebSocketsServerCore::broadcastTXT(unsigned char*, unsigned int, bool) at ??:?
0x402846c4 in etharp_output at ??:? 0x40283a0c in etharp_output at ??:? 0x4020d163 in sendWS() at ??:? 0x4021c72d in loop at ??:? 0x4021b181 in setup at ??:? 0x402310d0 in loop_wrapper() at core_esp8266_main.cpp:? 0x401014a1 in cont_wrapper at ??:?

--------------- CUT HERE FOR EXCEPTION DECODER --------------- 4#-a|(␕�r�dNX �~h~u␗Xh 4�"(␑,+,#A�␑@�␕4nzAl )z�~,j �r(␗%␑␙@#A.,�␎|l )z�~,PZ8�~,PZ�P,U.4/N�rf cal sector: 1020 freq trace enable 0 rf[112] : 0� Start Millis: 91 @ line: 41 startWiFi() @ millis: 334 Setting static IP WiFi > using static IP t(�?␏ on gateway 10.10.30.1 WiFi > Using WiFiManager Config Portal WM: WM: AutoConnect WM: Connecting as wifi client... WM: Status: WM: 0 WM: Using last saved values, should be faster got IP: 10.10.30.97 start NTP WS IRamheap 9296 IRamheap 8048 startmqtt Failed to read mqtt.json. Using defaults. WM: Connection result: WM: 3 WM: IP Address: WM: 10.10.30.97 *WM: freeing allocated params! End of setup() Millis: 3469 @ line: 73 33296

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Soft WDT reset

Exception (4): epc1=0x4023100c epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

Level1Interrupt: Level-1 interrupt as indicated by set level-1 bits in the INTERRUPT register
epc1=0x4023100c in esp_try_delay(unsigned int, unsigned int, unsigned int) at ??:?

stack>>>

ctx: cont sp: 3fff1d60 end: 3fff2040 offset: 0160 3fff1ec0: 4010a77f 00000115 00000073 4021f41e 3fff1ed0: 00031647 00000073 40284928 00000004
3fff1ee0: 40284930 00000004 40284938 40109bac 3fff1ef0: 4010a70c 40109bdc 00000188 4021f6d1 3fff1f00: 00000001 4028467c 00000005 40284684 3fff1f10: 88017e81 00000000 00000000 00000000 3fff1f20: 00000000 40284660 00000004 402846a4
3fff1f30: 00000000 00000004 00000001 00000001 3fff1f40: 00000001 00000001 00000000 402846cc 3fff1f50: 00000006 402846d4 00000004 4010a70c 3fff1f60: 40109bdc 00000188 40109bac 4021e761 3fff1f70: 00000000 402846c4 00000004 40283a0c 3fff1f80: 00000001 4010a000 00000000 3ffefca4 3fff1f90: 9b6a9771 41a998b1 3fff1fb0 3ffefca4 3fff1fa0: 00000000 3ffef85c 3ffef6bc 4020d163 3fff1fb0: 4010a70c 0188018f 80000000 00000000 3fff1fc0: 00000000 3ffef938 3ffef85c 4021c72d 3fff1fd0: 401081d4 3ffefb14 401081d4 4021b181 3fff1fe0: 00000000 000f000f 00000000 00000000 3fff1ff0: 00000000 611e0a0a feefeffe feefeffe 3fff2000: 401081d4 feefeffe feefeffe 3ffefca4 3fff2010: 3fffdad0 00000000 3ffefc78 3ffefca4 3fff2020: 3fffdad0 00000000 3ffefc78 402310d0 3fff2030: feefeffe feefeffe 3fffdab0 401014a1 <<<stack<<<

0x4021f41e in WebSockets::write(WSclient_t, unsigned char, unsigned int) at ??:? 0x40284928 in etharp_output at ??:? 0x40284930 in etharp_output at ??:? 0x40284938 in etharp_output at ??:? 0x4021f6d1 in WebSockets::sendFrame(WSclient_t, WSopcode_t, unsigned char, unsigned int, bool, bool) at ??:? 0x4028467c in etharp_output at ??:? 0x40284684 in etharp_output at ??:? 0x40284660 in etharp_output at ??:? 0x402846a4 in etharp_output at ??:? 0x402846cc in etharp_output at ??:? 0x402846d4 in etharp_output at ??:? 0x4021e761 in WebSocketsServerCore::broadcastTXT(unsigned char*, unsigned int, bool) at ??:?
0x402846c4 in etharp_output at ??:? 0x40283a0c in etharp_output at ??:? 0x4020d163 in sendWS() at ??:? 0x4021c72d in loop at ??:? 0x4021b181 in setup at ??:? 0x402310d0 in loop_wrapper() at core_esp8266_main.cpp:? 0x401014a1 in cont_wrapper at ??:?

--------------- CUT HERE FOR EXCEPTION DECODER --------------- 4#-a|(␕␗�P␚v␛X �~h~u␗Xh 4�r(␑,+,#A␑␑@�␕␔nzAl )z�~,j �r(␗%␑␙@#A.,4nzAl )z�~,PZ8�~,PZ�P,U.4/'�rf cal sector: 1020 freq trace enable 0 rf[112] : 0� Start Millis: 91 @ line: 41 startWiFi() @ millis: 340 Setting static IP WiFi > using static IP t(�?␏ on gateway 10.10.30.1 WiFi > Using WiFiManager Config Portal WM: WM: AutoConnect WM: Connecting as wifi client... WM: Status: WM: 0 WM: Using last saved values, should be faster got IP: 10.10.30.97 start NTP WS IRamheap 9296 IRamheap 8048 startmqtt Failed to read mqtt.json. Using defaults. WM: Connection result: WM: 3 WM: IP Address: WM: 10.10.30.97 *WM: freeing allocated params! End of setup() Millis: 3494 @ line: 73 33176

visualapproach commented 1 week ago

Ok, haven't had time to look at this yet. Call you back

visualapproach commented 1 week ago

I can't reprocude, but see if the new beta version helps.

DeanozUK commented 1 week ago

Ok, Ill give it ago now. Do the errors mean anything to you?

visualapproach commented 1 week ago

Oh, now I get web socket disconnections. With newest code too, so I will have too investigate more

DeanozUK commented 1 week ago

happens quicker if you are on the home page and turn the temp up from default 20, then refresh and its rebooted and the temps back at default 20 again. (ESP is on bench and not connected to pump atm).

DeanozUK commented 1 week ago

I sent you a coffee to help while to look into it ;)

visualapproach commented 1 week ago

That very nice of you! Thanks!! I uploaded a new version to development branch. It's kind of a band aid but it seems to work here. Plz report how it goes

DeanozUK commented 1 week ago

Well, I've tried on 2x ESPs (I also completely erased them and started from scratch to rule out any oddities) and all seems fine when setting up via AP etc. get web page nice.

Once on my Wifi I then configure in hardware to 54138 on DSP and CIO and then select v2b and reboot. It then it don't come back online. I'm constantly pinging the unit and all I see after the reboot is 1 high ping of say 380ms then times out forever.

Below is a serial monitor from when the web page loads as (default) 6wire and I got into menu and setup 4 wire 54138 etc then reboot, seems to look ok on monitor but nothing comes in after the line 'pm open,type:2 0'

Need anymore info?

[WS][0][sendFrame] ------- send message frame ------- [WS][0][sendFrame] fin: 1 opCode: 1 mask: 0 length: 296 headerToPayload: 0 [WS][0][sendFrame] text: {"CONTENT":"STATES","TIME":1720111476,"LCK":0,"PWR":0,"UNT":0,"AIR":0,"GRN":0,"RED":0,"FLT":0,"CH1":97,"CH2":98,"CH3":99,"HJT":0,"BRT":7,"ERR":0,"GOD":0,"TGT":0,"TMP":25,"VTMC":-2.997020721,"VTMF":26.60536194,"AMBC":20,"AMBF":68,"AMB":68,"VTM":26.60536194,"TGTF":0,"TMPF":25,"TGTC":-18,"TMPC":-4} [WS][0][sendFrame] pack to one TCP package... [write] n: 300 t: 48724 [WS][0][sendFrame] sending Frame Done (4732us). [WS][0][sendFrame] ------- send message frame ------- [WS][0][sendFrame] fin: 1 opCode: 1 mask: 0 length: 343 headerToPayload: 0 [WS][0][sendFrame] text: {"CONTENT":"TIMES","TIME":1720111476,"CLTIME":0,"FREP":0,"FRIN":0,"FCLE":0,"UPTIME":48,"PUMPTIME":0,"HEATINGTIME":0,"AIRTIME":0,"JETTIME":0,"COST":0.00002573,"FREPI":60,"FRINI":7,"FCLEI":20,"CLINT":14,"KWH":0.000026667,"KWHD":0.000026951,"WATT":2,"T2R":-2,"RS":"Ready","DBG":" 0 0 0 0 0 0 0 0 0 0 0 cio msgs:0 || 255 255 0 0 0 0 0dsp msgs:0"} [WS][0][sendFrame] pack to one TCP package... [write] n: 347 t: 48811 [WS][0][sendFrame] sending Frame Done (3408us). [WS][0][sendFrame] ------- send message frame ------- [WS][0][sendFrame] fin: 1 opCode: 1 mask: 0 length: 165 headerToPayload: 0 [WS][0][sendFrame] text: {"CONTENT":"OTHER","MQTT":-1,"HASJETS":false,"HASGOD":false,"MODEL":"PRE2021","RSSI":-39,"IP":"10.10.30.18","SSID":"Matrix_IoT","FW":"2024-07-04-1647","loopfq":2073} [WS][0][sendFrame] pack to one TCP package... [write] n: 169 t: 48871 [WS][0][sendFrame] sending Frame Done (3654us). [WS][0][handleWebsocketWaitFor][readCb] size: 2 ok: 1 [WS][0][handleWebsocket] ------- read massage frame ------- [WS][0][handleWebsocket] fin: 1 rsv1: 0 rsv2: 0 rsv3 0 opCode: 8 [WS][0][handleWebsocket] mask: 1 payloadLen: 2 [WS][0][handleWebsocketWaitFor] size: 6 cWsRXsize: 2 [WS][0][handleWebsocketWaitFor][readCb] size: 6 ok: 1 [WS][0][handleWebsocket] ------- read massage frame ------- [WS][0][handleWebsocket] fin: 1 rsv1: 0 rsv2: 0 rsv3 0 opCode: 8 [WS][0][handleWebsocket] mask: 1 payloadLen: 2 [WS][0][handleWebsocket] get ask for close. Code: 1001

[WS][0][handleWebsocket] clientDisconnect code: 1000 [WS][0][sendFrame] ------- send message frame ------- [WS][0][sendFrame] fin: 1 opCode: 8 mask: 0 length: 2 headerToPayload: 0 [WS][0][sendFrame] pack to one TCP package... [write] n: 4 t: 50697 [WS][0][sendFrame] sending Frame Done (3464us). [WS-Server][0] client disconnected. [WS-Server][0] Disconnect client File size: 3796 HTTP > file sent: /hwconfig.html.gz (3796 bytes) File size: 3088 HTTP > file sent: /main.css.gz (3088 bytes) File size: 562 HTTP > file sent: /darkmode.js.gz (562 bytes) File size: 2953 HTTP > file sent: /visualapproach.png (2953 bytes) Free mem before stop: 20296 stopping cio del cio stopping dsp del dsp detaching stopping mqtt stopping server stopping ws stopping FS end stopall Free mem after stop: 28288 ESP restart ... state: 5 -> 0 (0) rm 0 pm close 7 del if0 usl disconnected 4#-a|(␕␗�P␚v␛X �~h~u�Ph 4�r(␑,+,#A␑␑@�␕4nzAl )z�~,j �r(␗%␑␙@#A.,4nzAl )z�~,PZ8�~,PZ�Pl␄4/'�rf cal sector: 1020 freq trace enable 0 rf[112] : 0� SDK:2.2.2-dev(38a443e)/Core:3.1.2=30102000/lwIP:STABLE-2_1_3_RELEASE/glue:1.2-65-g06164fb/BearSSL:b024386

Start Millis: 76 @ line: 42 startWiFi() @ millis: 183 WiFi > Using WiFiManager Config Portal WM: WM: AutoConnect fpm close 1 mode : sta(a8:48:fa:c1:74:62) add if0 WM: Connecting as wifi client... WM: Status: WM: 0 WM: Using last saved values, should be faster scandone state: 0 -> 2 (b0) state: 2 -> 3 (0) state: 3 -> 5 (10) add 0 aid 2 cnt

connected with Matrix_IoT, channel 6 dhcp client start... ip:10.10.30.18,mask:255.255.255.0,gw:10.10.30.1 got IP: 10.10.30.18 start NTP WS IRamheap 24960 [WS-Server] Websocket Version: 2.4.2 [WS-Server] Server Started. IRamheap 23632 startmqtt Failed to read mqtt.json. Using defaults. WM: Connection result: WM: 3 WM: IP Address: WM: 10.10.30.18 *WM: freeing allocated params! End of setup() Millis: 3291 @ line: 74 22104 pm open,type:2 0

visualapproach commented 1 week ago

It looks normal. I don't know how well it reacts to pinging but you will (should) get more serial output when reloading a page. It may also be a problem if using several devices with the same hostname. If so edit config.h

DeanozUK commented 1 week ago

Normally it pings fine, no issues up until I select 4wire and reboot. On the last version it would ping all day until I changed a setting on web page and it would timeout while it watchdog rebooted.I'm trying to connect via hostname but mainly IP as more reliable but both just timeout on webpage, it's odd. If I default unit it works fine, it seems to be as soon as select 4wire and reboot.If I reboot the esp it just briefly pings once but high latency.I do IT as a job so I'm competent in that regard, Im gonna keep trying somethings and let you know.

DeanozUK commented 1 week ago

image

DeanozUK commented 1 week ago

Just got this when i managed to get a web page briefly

Reconnecting to COM3 Please build project in debug configuration to get more details about an exception. See https://docs.platformio.org/page/projectconf/build_configurations.html

     Connected!

rf cal sector: 1020 freq trace enable 0 rf[112] : 00 SDK:2.2.2-dev(38a443e)/Core:3.1.2=30102000/lwIP:STABLE-2_1_3_RELEASE/glue:1.2-65-g06164fb/BearSSL:b024386

Start Millis: 92 @ line: 42 startWiFi() @ millis: 279 WiFi > Using WiFiManager Config Portal WM: WM: AutoConnect fpm close 1 mode : sta(ec:fa:bc:b9:b2:ba) add if0 WM: Connecting as wifi client... WM: Status: WM: 0 WM: Using last saved values, should be faster scandone state: 0 -> 2 (b0) state: 2 -> 3 (0) state: 3 -> 5 (10) add 0 aid 2 cnt

connected with Matrix_IoT, channel 6 dhcp client start... ip:10.10.30.97,mask:255.255.255.0,gw:10.10.30.1 got IP: 10.10.30.97 start NTP WS IRamheap 24944 [WS-Server] Websocket Version: 2.4.2 [WS-Server] Server Started. IRamheap 23616 startmqtt Failed to read mqtt.json. Using defaults. WM: Connection result: WM: 3 WM: IP Address: WM: 10.10.30.97 *WM: freeing allocated params! End of setup() Millis: 3425 @ line: 74 22088 pm open,type:2 0 File size: 6736 HTTP > file sent: /index.html.gz (6736 bytes) File size: 3088 HTTP > file sent: /main.css.gz (3088 bytes) File size: 562 HTTP > file sent: /darkmode.js.gz (562 bytes) File size: 6736 HTTP > file sent: /index.html.gz (6736 bytes) File size: 3088 HTTP > file sent: /main.css.gz (3088 bytes) File size: 562 HTTP > file sent: /darkmode.js.gz (562 bytes) File size: 2953 HTTP > file sent: /visualapproach.png (2953 bytes) [WS-Server][0] new client from 10.10.30.134 [WS-Server][0][handleHeader] RX: GET / HTTP/1.1 [WS-Server][0][handleHeader] RX: Host: 10.10.30.97:81 [WS-Server][0][handleHeader] RX: Connection: Upgrade [WS-Server][0][handleHeader] RX: Pragma: no-cache [WS-Server][0][handleHeader] RX: Cache-Control: no-cache [WS-Server][0][handleHeader] RX: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 [WS-Server][0][handleHeader] RX: Upgrade: websocket [WS-Server][0][handleHeader] RX: Origin: http://10.10.30.97 [WS-Server][0][handleHeader] RX: Sec-WebSocket-Version: 13 [WS-Server][0][handleHeader] RX: Accept-Encoding: gzip, deflate [WS-Server][0][handleHeader] RX: Accept-Language: en-GB,en-US;q=0.9,en;q=0.8 [WS-Server][0][handleHeader] RX: Sec-WebSocket-Key: yVB/NVaLxAP5s00Eyl1aaA== [WS-Server][0][handleHeader] RX: Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits [WS-Server][0][handleHeader] RX: Sec-WebSocket-Protocol: arduino [WS-Server][0][handleHeader] Header read fin. [WS-Server][0][handleHeader] - cURL: / [WS-Server][0][handleHeader] - cIsUpgrade: 1 [WS-Server][0][handleHeader] - cIsWebsocket: 1 [WS-Server][0][handleHeader] - cKey: yVB/NVaLxAP5s00Eyl1aaA== [WS-Server][0][handleHeader] - cProtocol: arduino [WS-Server][0][handleHeader] - cExtensions: permessage-deflate; client_max_window_bits [WS-Server][0][handleHeader] - cVersion: 13 [WS-Server][0][handleHeader] - base64Authorization: [WS-Server][0][handleHeader] - cHttpHeadersValid: 1 [WS-Server][0][handleHeader] - cMandatoryHeadersCount: 0 [WS-Server][0][handleHeader] Websocket connection incoming. [WS-Server][0][handleHeader] - sKey: SZmX5K096M//8uktyhTZXSSk+co= [String] 'HTTP/1.1 1 ... t-Accept: ': Reallocating large String(158 -> 188 bytes) [String] 'HTTP/1.1 1 ... XSSk+co= ': Reallocating large String(188 -> 212 bytes) [WS-Server][0][handleHeader] handshake HTTP/1.1 101 Switching Protocols Server: arduino-WebSocketsServer Upgrade: websocket Connection: Upgrade Sec-WebSocket-Version: 13 Sec-WebSocket-Accept: SZmX5K096M//8uktyhTZXSSk+co= Sec-WebSocket-Protocol: arduino

[write] n: 223 t: 42348 [WS][0][headerDone] Header Handling Done. [WS][0][handleWebsocketWaitFor] size: 2 cWsRXsize: 0 [WS][0][sendFrame] ------- send message frame ------- [WS][0][sendFrame] fin: 1 opCode: 9 mask: 0 length: 0 headerToPayload: 0 [write] n: 2 t: 42382 [WS][0][sendFrame] sending Frame Done (3084us). [WS][0][sendFrame] ------- send message frame ------- [WS][0][sendFrame] fin: 1 opCode: 1 mask: 0 length: 296 headerToPayload: 0 [WS][0][sendFrame] text: {"CONTENT":"STATES","TIME":1720115853,"LCK":0,"PWR":1,"UNT":1,"AIR":0,"GRN":0,"RED":0,"FLT":0,"CH1":32,"CH2":32,"CH3":32,"HJT":0,"BRT":7,"ERR":0,"GOD":0,"TGT":20,"TMP":25,"VTMC":24.99958038,"VTMF":76.99924469,"AMBC":20,"AMBF":68,"AMB":20,"VTM":24.99958038,"TGTC":20,"TMPC":25,"TGTF":68,"TMPF":77} [WS][0][sendFrame] pack to one TCP package... [write] n: 300 t: 42460 [WS][0][sendFrame] sending Frame Done (3371us). [WS][0][sendFrame] ------- send message frame ------- [WS][0][sendFrame] fin: 1 opCode: 1 mask: 0 length: 342 headerToPayload: 0 [WS][0][sendFrame] text: {"CONTENT":"TIMES","TIME":1720115853,"CLTIME":0,"FREP":0,"FRIN":0,"FCLE":0,"UPTIME":41,"PUMPTIME":0,"HEATINGTIME":0,"AIRTIME":0,"JETTIME":0,"COST":0.015861569,"FREPI":60,"FRINI":7,"FCLEI":20,"CLINT":14,"KWH":0.010819444,"KWHD":0.011027653,"WATT":950,"T2R":-2,"RS":"Ready","DBG":" 0 0 0 0 0 0 0 0 0 0 0 cio msgs:0 || 0 0 0 0 0 0 0dsp msgs:0"} [WS][0][sendFrame] pack to one TCP package... [write] n: 346 t: 42544 [WS][0][sendFrame] sending Frame Done (3404us). [WS][0][sendFrame] ------- send message frame ------- [WS][0][sendFrame] fin: 1 opCode: 1 mask: 0 length: 164 headerToPayload: 0 [WS][0][sendFrame] text: {"CONTENT":"OTHER","MQTT":-1,"HASJETS":true,"HASGOD":true,"MODEL":"NO54138","RSSI":-51,"IP":"10.10.30.97","SSID":"Matrix_IoT","FW":"2024-07-04-1647","loopfq":60107} [WS][0][sendFrame] pack to one TCP package... [write] n: 168 t: 42604 [WS][0][sendFrame] sending Frame Done (3360us). [WS][0][handleWebsocketWaitFor][readCb] size: 2 ok: 1 [WS][0][handleWebsocket] ------- read massage frame ------- [WS][0][handleWebsocket] fin: 1 rsv1: 0 rsv2: 0 rsv3 0 opCode: 8 [WS][0][handleWebsocket] mask: 1 payloadLen: 2 [WS][0][handleWebsocketWaitFor] size: 6 cWsRXsize: 2 [WS][0][handleWebsocketWaitFor][readCb] size: 6 ok: 1 [WS][0][handleWebsocket] ------- read massage frame ------- [WS][0][handleWebsocket] fin: 1 rsv1: 0 rsv2: 0 rsv3 0 opCode: 8 [WS][0][handleWebsocket] mask: 1 payloadLen: 2 [WS][0][handleWebsocket] get ask for close. Code: 1001

[WS][0][handleWebsocket] clientDisconnect code: 1000 [WS][0][sendFrame] ------- send message frame ------- [WS][0][sendFrame] fin: 1 opCode: 8 mask: 0 length: 2 headerToPayload: 0 [WS][0][sendFrame] pack to one TCP package... [write] n: 4 t: 42883 [WS][0][sendFrame] sending Frame Done (3147us). [WS-Server][0] client disconnected. [WS-Server][0] Disconnect client File size: 4625 HTTP > file sent: /config.html.gz (4625 bytes) File size: 3088 HTTP > file sent: /main.css.gz (3088 bytes) File size: 562 HTTP > file sent: /darkmode.js.gz (562 bytes)

visualapproach commented 1 week ago

The 4-wire models uses more more memory, leaving less for webserver, fileserver etc. It seems that reveals a bug in one or more of them. The strange thing is that it usually works when enabling debugging to serial. The 8266 webserver is allegedly bad at handling several simultaneous connections which may be why it works better with debug output, since it takes a little bit time to do the prints. But it also takes more memory which would make it worse. I struggled with this and implemented a second heap to gain a few kB but in the latest versions I reverted back to get more speed which I thought I needed for a new model. It worked fine on 6-wire models after reducing the number of page loads. Obviously not true for your model. It's possible that a single page load (without css, favicon, manifests and such) would work but I don't know for sure.

DeanozUK commented 1 week ago

After a bit more testing, from default all is good. I select 4wire cio and reboot and all is good. I then select v2b and reboot, still all good. Lastly I selected the first 4wire option on the page and bam, lots of timeouts, high latency and web page is very intermittent. I haven't tried the other options yet except mine but I'm thinking it will have same result.

It used to work on the old firmware couple yrs back but did used to reboot once every day or 2. I'm guessing there's a lot more to this new all in 1 firmware that's affecting the 4wire.

All these tests I've been doing are on the bench, not connected to pump.

I noticed when 6wire default is selected the monitor picks up loads of traffic constantly spamming, unlike the 4wire. This is normal I presume.

DeanozUK commented 1 week ago

It's possible that a single page load (without css, favicon, manifests and such) would work but I don't know for sure.

Can you knockup a barebone test firmware so I can try for you? I take it a D1 mini will have the same issue as based off same chipset?

visualapproach commented 1 week ago

D1 mini is the same chip so it would apply the same. I am wrestling with this issue and can't really make a barebone version because it only appears with everything stuffed in there. Thanks for the offer, I'll be in touch when I need help!

visualapproach commented 6 days ago

Try dev branch now. If you get fails on page loading try restarting your router.

More memory is now available for webserver and it works here most of the time. Had to restart the router and it worked fine again. I think using several devices makes the router confused or something.

DeanozUK commented 6 days ago

Hi VA,

Right, Ive been doing some more testing with the last firmware and the new one you did today. I hope I've captured as much info as possible to help you with this issue, so please ignore anything you already know.

1st the other firmware where I said it was constantly dropping off 95% pings and unable to load a web page. I decided to hook it up to the pump and it behaved fairly different to my surprise, the pings where alot more reliable (maybe it wanted to see data from DSP?) now pings were 10% dropping and web page would keep dropping but the pump was happy. I experienced very little E13s if i left it alone. when i would say spam the temp up button it would drop and there was chance it dropped long enough that it would E13 but no watchdog reboot anymore. I say it was approx 90% reliable.

2nd, the new firmware 1400 today was uploaded and as you said I had some issues getting to fully load the webpage with all the graphics but eventually I got it. after this it does seem to only drop say 5% pings but better than before. The other issue however is that the signal coming out of the ESP is more unreliable now, causing alot more E13s even if I boot system and don't touch anything, it will always error within 3mins. control from app seems better but the signal drops are the issue causing the E13 now and not the watchdog.

Below is some links to 5 videos I did to hope show what I mean. I have an oscilloscope set up on the 5v side of the LLC (Blue trace is DSP signal going into ESP and the Red trace is the Signal coming out of the ESP to the CIO)

Is this normal that the DSP signal is 1v>5v and the ESP is generating 0v>5v. (note, I've tried the resistors and the ESP just doesn't output at all, not sure if too much pull so removed them).

Link to 5x videos https://photos.app.goo.gl/Na4vdFmKrieDBbP37

DeanozUK commented 6 days ago

Ive just been monitoring the waveforms and Ive noticed a pattern. Every now and then the DSP waveform jumps from 1-5v to 2.3v-5v and this causes the ESP to stop outputting.

Not sure if helps but looks like an issue Ive finally catch in the act. this Ive seen accross all versions, would explain why with resistors the ESP wouldnt output. Not sure why the DSP is doing this but is there away to compensate for it?

2x screenshots attached. Blue is DSP sig. Red is output of ESP waveform before waveform after

visualapproach commented 5 days ago

Good morning, I've read your posts @DeanozUK and we have 2 separate issues. 1 - web pages not loading correctly. 2 - Signal problems in your setup.

1 It seems to be caused by too little free memory available. I say "seems" here because I can't see any out of memory errors when debugging. The ESP does not fail gracefully by design as I understand it. So trial and error. In the last update I made, I got enough free memory to make it work in most cases. Now I have just found that I can kick out the wifimanager library and free up several more kB, so I hope this issue will disappear in next release.

2 It's weird that the low states is changing with time! I mean, the pull resistors don't change value. Measurement issue? Does it behave the same when the ESP is not in curcuit? If the voltage doesn't cross the LOW threshold for the ESP it will not react/answer and the DSP will go E13. I'll think about it.

visualapproach commented 5 days ago

@DeanozUK How long delay can the dsp take before panicking would you say?

visualapproach commented 5 days ago

Code.zip

See if this code works without E13. First - enter wifi credentials on the ESP network UI page. Otherwise you need to use my undocumented new AP :-) Then open this extracted folder in platformio and upload the new firmware.

Max time between transmissions is 2000 ms even if we miss a reception or more.

Note - this is an experimental version with a different hostname. Only a thing if you use layzspa.local instead of IP.

DeanozUK commented 5 days ago

Hi VA,

I agree that there is 2 issues here.

After more testing I did indeed put the pump back to default wiring and did some capturing and the wave forms are indeed 0v-5v and stable. This leads me to believe its the input impedance. So I tried a 10k pull down and same result, tried 1k and that just reduced the upper to 4v so I removed them.

Then looked into the ESP pin outs on datasheets and rewired and configured the pins as custom as reading up it says 1,2,5 and 6 are best for data and not used for anythg else. DSP TX D4 changed to D1 DSP RX D3 changed to D6 CIO TX D5 CIO RX D2 This to my surprise this helped as now the DSP input is reading a better 0.6v-5v and seems much more stable. I left it running all night and changed some settings on the pump and all seems good. However I did get few issues when changing via webpage but that leads us onto the other issue (point 1 in ur reply) anyways with ESP busy/watchdog etc. But its a good start.

@DeanozUK How long delay can the dsp take before panicking would you say?

Testing shows approx >2-3secs. So max times between TX 2000ms should be good.

I will get on with installing this release and let you know.

visualapproach commented 4 days ago

Hi! There is a new version in development branch now. It is pretty much the same version you had, but with some general improvements.

deanZZZZZ commented 4 days ago

2 hour without E13 :)

visualapproach commented 4 days ago

Crossing my fingers 🤞🏻

visualapproach commented 4 days ago

@deanZZZZZ @DeanozUK same person?

deanZZZZZ commented 4 days ago

@deanZZZZZ @DeanozUK same person?

hehe no

DeanozUK commented 4 days ago

Hi VA,Haha, we are different people 😉 I've been doing some testing and it's much better but I have had some e13 issues but it is deffo better. I also had to connect to testssid and Wireshark the IP as it lost the configured, but I got it. I've just got in from work and it's alarming e13 so need to do some checks to try and pinpoint it. I've got some waveforms from first tests last night that showed a 5.5s gap then 3rapid bursts of data (poss trying to catchup) but need to test more.Shall I just update to latest release or carry on with this one as mostly the same?DeanOn 8 Jul 2024 15:01, visualapproach @.***> wrote: @deanZZZZZ @DeanozUK same person?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

visualapproach commented 4 days ago

Hi VA,Haha, we are different people 😉 I've been doing some testing and it's much better but I have had some e13 issues but it is deffo better. I also had to connect to testssid and Wireshark the IP as it lost the configured, but I got it. I've just got in from work and it's alarming e13 so need to do some checks to try and pinpoint it. I've got some waveforms from first tests last night that showed a 5.5s gap then 3rapid bursts of data (poss trying to catchup) but need to test more.Shall I just update to latest release or carry on with this one as mostly the same?DeanOn 8 Jul 2024 15:01, visualapproach @.> wrote: @deanZZZZZ @DeanozUK same person? —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.>

Alrighty then! I recommend that you update to the released version 4.4.1 (same in both branches for the moment) You should also update the data files for best experience.

deanZZZZZ commented 4 days ago
image
visualapproach commented 4 days ago

Note there is a new way to enter the wifi credentials at first install. It's described in the manual.

visualapproach commented 4 days ago
image

Go go go!

deanZZZZZ commented 3 days ago

didn't make it through the evening :(

image image
visualapproach commented 3 days ago

Do you know if something special happened 23:20? Restart of router or scheduled events on the esp?

visualapproach commented 3 days ago

What model are you on?

deanZZZZZ commented 3 days ago

no scheduled events on the esp for the router. I wouldn't know...nothing is set for restart blue LL with caps and resistor (100nf on 3.3v and 100nf 5v)

image
visualapproach commented 3 days ago

I can confirm SW WDT when restarting my router. Will look at it

deanZZZZZ commented 3 days ago

I tested it.. every time I "kick" from wifi the watchdog starts

visualapproach commented 3 days ago

Yes, but I think it's fixable.

DeanozUK commented 3 days ago

I also can confirm that I had 1 WD kick and on checking on my router it did disconnect and cause E13 image image

Other than a few difficulties getting it online its been very stable, even with scheduled tasks on ESP in the night. Ive been testing this morning and still good atm :)

Now with the 4wire getting much loving can I make some observations about my model (BS54138 Hawaii Hydrojet) that are different on the ESP.

PUMP - Can use jets + bubble together. ESP - toggles other off and vice versa PUMP - Can use Filter pump + bubbles together. ESP - toggles other off and vice versa PUMP - Bubbles + Filter pump +1 stage heater ESP - toggle other off not sure on heater

I've always had issues with my 4wire when I started 3yrs ago, and even gave up for abit and now back working on it with you, Its seems much more stable well done VA for all your hard work!

DeanozUK commented 3 days ago

Right, Ive had another WD reset but this one is interesting and not sure related, see what you think.

I had some schedules setup, and the last one of the day was turn pump off @19:00 but it seems it WD rebooted 3seconds after, and confirmed drop off wifi too. see screenshots

image

image

If only the ESP would crash and reboot inside 2secs it wouldn't cause E13, then I could live with it :D

visualapproach commented 3 days ago

I fixed the WDT reset on Wi-Fi reconnection now. At least I get no reboot when I restart my routers... Hope it work for you guys to. You are welcome to test the updated dev branch.

visualapproach commented 3 days ago

I also can confirm that I had 1 WD kick and on checking on my router it did disconnect and cause E13 image image

Other than a few difficulties getting it online its been very stable, even with scheduled tasks on ESP in the night. Ive been testing this morning and still good atm :)

Now with the 4wire getting much loving can I make some observations about my model (BS54138 Hawaii Hydrojet) that are different on the ESP.

PUMP - Can use jets + bubble together. ESP - toggles other off and vice versa PUMP - Can use Filter pump + bubbles together. ESP - toggles other off and vice versa PUMP - Bubbles + Filter pump +1 stage heater ESP - toggle other off not sure on heater

I've always had issues with my 4wire when I started 3yrs ago, and even gave up for abit and now back working on it with you, Its seems much more stable well done VA for all your hard work!

I'll process this post later. Had to prioritize the WDT issue. Thanks

DeanozUK commented 3 days ago

I'll process this post later. Had to prioritize the WDT issue. Thanks

Not a problem, would you rather I create a feature request to keep it separate from this issue?

DeanozUK commented 3 days ago

I fixed the WDT reset on Wi-Fi reconnection now. At least I get no reboot when I restart my routers... Hope it work for you guys to. You are welcome to test the updated dev branch.

I will install it now and come back to you tomoz night to see how it goes. 👍

visualapproach commented 3 days ago

I'll process this post later. Had to prioritize the WDT issue. Thanks

Not a problem, would you rather I create a feature request to keep it separate from this issue?

Nah, not necessary, I just copied to my onenote .-)

DeanozUK commented 1 day ago

Still looking good here 👍 I will keep testing it over weekend, I will also test with default v2b pins to confirm stability.

I Have had a strange odd thing happen 3 times were the heater option kept turning off on me. Cant pin point it but It could be because I had open on 2 browsers?

deanZZZZZ commented 1 day ago

development_v4

{"BOOTINFO":"Software/System restart 2024-07-11 06:57:02"} {"BOOTINFO":"Software Watchdog 2024-07-11 07:01:38"} {"BOOTINFO":"Software Watchdog 2024-07-11 07:04:20"}

visualapproach commented 1 day ago

@deanZZZZZ you on the dev version? Did you get the restarts without restarting your WiFi router?