Extent421 / Q1

MIT License
17 stars 5 forks source link

NodeMCU random reboot #3

Open mmoustache opened 7 years ago

mmoustache commented 7 years ago

Hi, thanks for your project. I have an issue: flashed nodemcu with esp8266, works pretty well, but randomly reboots or stucks. All parametets saves, but random reboot still doing. I dont have no idea what is that. Using your firmware without changes , same issue on multiple nodeMCU. Maybe you have idea what is that. Thanks

Extent421 commented 7 years ago

The only thing that I ran into that would cause random lockups was running the sampler loop faster than about 3ms, you could try slowing that down to see if it has any effect on your problem, but I don't really think it's related because I've only seen that lock up the board not reset it. I also never really tested it much with the vtx disconnected, so maybe there is something in the vtx coms that is getting hung up and triggering the watchdog if you're just running it on a nodemcu that's not connected to anything.

Beyond that I would suspect that something has changed in one of the libraries perhaps. Arduino and the ESP support are the two probably most likely to cause problems, you could try backdating those to the versions called out in the readme, they're the last versions that I was building against so those should definitely work if anything has changed.

mmoustache commented 7 years ago

Thanks man. 184 IDE done it job)) dongrade to 181 and it all good.

mmoustache commented 7 years ago

Reboot or freeze occurs at a time when I repeatedly click on the LOW button. The receiver is connected properly, the RSDI is visible and the channels change correctly. If I do not enter the WEB interface, then everything is fine, no reloads and freezes

mmoustache commented 7 years ago

Made video for you with my problems. No mater there is wire or note, the picture is the same https://youtu.be/guz5NeiroeA

mmoustache commented 7 years ago

Maybe this one from port monitor helps

Starting softAP handleFileRead: /generate_204 [0] Connected from 192.168.4.100 url: / handleFileRead: /mistats/v2 handleFileRead: /connect handleFileRead: / handleFileRead: / handleFileRead: / handleFileRead: /generate_204 handleFileRead: http://test.com/ handleFileRead: / [0] Disconnected! handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js [0] Connected from 192.168.4.100 url: / handleFileRead: /generate_204 handleFileRead: /mistats/v2 handleFileRead: /mistats/v2 handleFileRead: /mistats/v2 308 high. 94 low. 198 thresh.

After setting treshold, Wifi disconnecting and device freezing

mmoustache commented 7 years ago

After restarting, all setting saved, node starts, then crashes and start again and working fine. Let me to fly more then 20 laps

Starting softAP handleFileRead: /generate_204 handleFileRead: /generate_204 handleFileRead: /generate_204 handleFileRead: /connect handleFileRead: / handleFileRead: / handleFileRead: / handleFileRead: /generate_204 handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: /mistats/v2 [0] Connected from 192.168.4.100 url: / handleFileRead: /generate_204

Exception (28): epc1=0x40212ce6 epc2=0x00000000 epc3=0x00000000 excvaddr=0x0000564c depc=0x00000000

ctx: cont sp: 3fff1410 end: 3fff1650 offset: 01a0

stack>>> 3fff15b0: 00000027 000000b4 3ffef6b8 4020a1a6
3fff15c0: 000000c0 00000001 00000000 3fff0628
3fff15d0: 00000001 3ffef5a4 3ffef588 4020fe1c
3fff15e0: 3ffe92c0 6404a8c0 3ffef588 401004d8
3fff15f0: 3fffdad0 00000027 3ffef588 4020ff65
3fff1600: 00000000 00000000 3ffeff94 3fff0628
3fff1610: 3fffdad0 00000000 3fff0621 402079da
3fff1620: 00000000 00000000 00000001 40211aa9
3fff1630: 3fffdad0 00000000 3fff0621 40211ad4
3fff1640: feefeffe feefeffe 3fff0630 40100718
<<<stack<<<

ets Jan 8 2013,rst cause:2, boot mode:(3,7)

load 0x4010f000, len 1384, room 16 tail 8 chksum 0x2d csum 0x2d v3de0c112 ~ld �Starting DNS Starting softAP handleFileRead: /generate_204 handleFileRead: /generate_204 handleFileRead: /connect handleFileRead: /generate_204 handleFileRead: / handleFileRead: / handleFileRead: / handleFileRead: /generate_204 handleFileRead: /generate_204 [0] Connected from 192.168.4.100 url: / [1] Connected from 192.168.4.100 url: / handleFileRead: /mistats/v2 [0] Disconnected! handleFileRead: http://test.com/ handleFileRead: / [1] Disconnected! handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js [0] Connected from 192.168.4.100 url: / handleFileRead: /mistats/v2

Extent421 commented 7 years ago

interesting. So is it only crashing when you're calibrating? Or just having the web interface up at all? Calibration I could see it being possibly a race condition, it should lock up while doing a relatively long calibration cycle ( 1/4 second IIRC? ) You'll want to manually wait for it to complete for sure, it's more of a debug thing and there's no protection in there.

mmoustache commented 7 years ago

Yep, just tested again, worked stable, im forced connect-dosconnect, start-stop session, worked OK, flying, counting- great, started calibration again and over)) stucked

Starting softAP handleFileRead: /generate_204 handleFileRead: /connect handleFileRead: / handleFileRead: / handleFileRead: / handleFileRead: /generate_204 handleFileRead: /generate_204 handleFileRead: /generate_204 [0] Connected from 192.168.4.100 url: / handleFileRead: /mistats/v2 handleFileRead: /mistats/v2 handleFileRead: http://test.com/ handleFileRead: / [0] Disconnected! handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js [0] Connected from 192.168.4.100 url: / handleFileRead: http://test.com/ handleFileRead: / [0] Disconnected! handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: /mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js handleFileRead: http://test.com/ handleFileRead: / handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / [0] Disconnected! [0] Connected from 192.168.4.100 url: / handleFileRead: http://test.com/ handleFileRead: / [0] Disconnected! handleFileRead: http://test.com/mobile.css handleFileRead: http://test.com/q1Funcs.js handleFileRead: /mobile.css handleFileRead: /q1Funcs.js [0] Connected from 192.168.4.100 url: / handleFileRead: /pass/v2/safe/user/coreInfo 282 high. 282 thresh.

Extent421 commented 7 years ago

great, that at least narrows it down. I would recommend hardcoding the calibration values and bypassing the calibration function, or even better would be to expose the calibration values in the config page so that you can just type them in manually as needed, they shouldn't really need to change ever once you have them set up. That's what my next plan was for them.

you shouldn't need to calibrate every time it boots though, it should store the calibration data along with the internal settings as soon as each calibration step is run, so if you can just slowly get each calibration to run once (low > high > threshold) then you shouldn't need to run them again.

mmoustache commented 7 years ago

Yep, thanks, maybe you right, but hardcoded values is not the exit, because diffirent VTX has a Diffirent RSSI, tested. but Manual input will be the best way. Where can i write my ideas for improvement))?

Extent421 commented 7 years ago

You could also try reducing the number of averaged samples in the calibrate function to make it complete quicker, dropping from 1000 to 100 samples would still work ok.

I've also got a logic bug in calibrateLow() it's comparing the new average against the min threshold instead of the max threshold like it should be. You'll need to fix that locally until I can make any adjustments.

Extent421 commented 7 years ago

Auto calibrate needs to function for that reason, I just mean as a stopgap to work around the problems for now.

I guess you can put in a feature request issue so there's record of it, but I'm not actively working on it right now so the best way to get changes is just to work in your own fork.

mmoustache commented 7 years ago

Dropped to 100 samples, seems working more stable %)