Gateway ESP8266 Wifi resets after connecting to router



  • Hello,

    I just build my ESP8266 Wifi gateway with a NodeMCU Lua board and an NRF24L01+ and loaded the standard sketch as distributed in MySensors 1.5.4 library with ESP8266 v2.1.0 according to the board manager in Arduino 1.6.8, using board 'NodeMCU 1.0 (ESP-12E Module)'.

    The same MySensors library I used to build a Serial Gateway and a few nodes with success.

    However when uploading the sketch to the NodeMCU and starting the Serial Monitor I see rebooting after successful wifi connection:

    ESP8266 MySensors Gateway
    Connecting to Vierkenshof_G
    ..Connected!
    IP: 192.168.1.76
    
     ets Jan  8 2013,rst cause:4, boot mode:(3,4)
    
    wdt reset
    load 0x4010f000, len 1264, room 16 
    tail 0
    chksum 0x42
    csum 0x42
    ~ld
    
    
    ESP8266 MySensors Gateway
    Connecting to Vierkenshof_G
    ..Connected!
    IP: 192.168.1.76
    

    I do not understand the 'cause: 4, boot mode:(3,4)'.
    What could be wrong?


  • Mod

    @Petjepet these threads might have the answer
    https://forum.mysensors.org/topic/2708/soft-wdt-reset-on-esp8266/
    https://forum.mysensors.org/topic/3831/solved-esp8266-wdt-reset

    Start with upgrading to MySensors 2.0, esp support was a bit flaky in 1.5.



  • @mfalkvidd I saw those threads earlier today but judged them as other errors: the first has 'cause:4, boot mode:(3,6), second had already a node connected where after a while resets began.

    Did the Wifi Gateway not work on the MySensors versions before V2.0.0?
    I thought the basic version as explained on the MySensors website with v1.5.4 was a working one.

    Since I'm using Pimatic with the serial gateway on v1.5.4 and read some issues on using MySensors V2.0.0 I do not want to upgrade at the moment. As I read, I then need to upgrade my serial gateway and operational nodes as well to retain compatibility. This would be to risky now since I do not want to end up having nothing working at all.
    I guess I have to wait until v2.0.0 is more common and adopted by the community to switch.


  • Mod

    @Petjepet good point.

    The examples generally work, but there are usually some combinations of hardware, software and usage that don't work.

    You could try downgrading the esp firmware to 2.0. If I remember correctly that has solved issues for some people.

    Also check the power supply. The esp draws a lot of power when active and it can be sensitive to unstable power. I have had problems when powering the nodemcu directly from a computer usb port. A stronger power source and/or a capacitor might help.

    You can use getResetInfo to print more information about the reason for reset. More info at https://github.com/esp8266/Arduino/issues/1013



  • @mfalkvidd I would like to try with eliminating the possible power supply issue. In case this is the issue the firmware downgrade will also not work I guess.
    When not connected to the computer, how can I monitor if it's working? I can't use the Serial Monitor in that case, can I.


  • Mod

    @Petjepet it can be done. The easiest way is if you have a powered usb hub. The hub can delver more power than the computer, but still allows communication with the computer.

    Another solution is a Y-cable, which draws power from two usb ports. They were common when 2.5" usb harddrives first arrived.

    A third solution is to use serial over wifi. But I don't think it will start early enough, since it only starts when the sketch is running. I can't find the link now but I think it was a github project.

    You could also try to connect it to a powerful usb adapter and see if the issue goes away. You won't be able to use the serial monitor, but if the node suddenly works the problem is likely power related.



  • @mfalkvidd Thanks for all the info.
    I followed the link you sent and the 'cause:4' indicates watchdog timer related. How to get by that one :).

    You power suggestions I will have a look at. I don't think I have a powered USB hub.

    I guess I will need to have Controller software and a new node to test this (current nodes are operational with a MySensors serial gateway with Pimatic). Another question: can I run two gateways (the wifi one I'm only testing while my serial one is operational) when nodes are already operational? Will they not get confused about what gateway to work with?


  • Mod

    the watchdog timer kicks in if your code is busy for too long. If you have any delaysor long-running loops, remove them and see if it helps.

    Another question: can I run two gateways (the wifi one I'm only testing while my serial one is operational) when nodes are already operational? Will they not get confused about what gateway to work with?

    Change the nrf radio channel in MyConfig.h when uploading the sketches for your new network. Wih different channels the two networks will not interfere with eachother.



  • @mfalkvidd said:

    the watchdog timer kicks in if your code is busy for too long. If you have any delaysor long-running loops, remove them and see if it helps.

    I have the basic sketch for the gateway from MySensors so I think there are no delay nor long-running loops in there.

    Another question: can I run two gateways (the wifi one I'm only testing while my serial one is operational) when nodes are already operational? Will they not get confused about what gateway to work with?

    Change the nrf radio channel in MyConfig.h when uploading the sketches for your new network. Wih different channels the two networks will not interfere with eachother.

    Ok. Good suggestion. In that case I need to build a standard node on that channel as well.
    What happens when running on the same channel. Will existing nodes at all communicate with the new gateway when also the serial gateway is operational?


  • Mod

    What happens when running on the same channel. Will existing nodes at all communicate with the new gateway when also the serial gateway is operational?

    Both gateways will answer "find parent" requests. Both gateways will try to send hardware ack for messages. This will lead to undefined behavior.



  • @mfalkvidd Thanks.

    I now loaded a sketch using a different frequency and a simple Dallas Temperature node.
    The gateway powered by a direct USB power source (to avoid the power issue). The node is trying to find the parent and gets stuck there.
    The gateway is not available and I guess rebooting (blue leds lights up in I assume reboot sequence).

    So the watchdog timer issue to investigate.
    Maybe try to get firmware v2.0 for the ESP.



  • @mfalkvidd I have found someone with the same issue, using a different board version 0.9 vs 1.0.

    WIFI Gateway NodeMCU 0.9 always reset

    @bigjimjeedom was using firmware 2.0.0 ending up with the same error. Not solved in this thread.



  • This may sound very stupid and might not help you at all, but I have a mixed set of 0.9 and 1.0 Nodemcu boards. I had some issues not related with mysensors, but with a 1.0 board flashed as 1.0 and used for ESPEasy (self compiled version).
    Just as a test I recompiled for 0.9 (to my 1.0 board) and then it worked fine. Since then I compile/flash all my 0.9 and 1.0 Esps as 0.9.
    no matter whether it is for EspEasy, "my" mysensors gateway with pimatic rest-API, or the standard mysensors esp8266 mqtt gateway.

    I did not even check whether there are code differences or not between 0.9 and 1.0. For me 0.9 binaries work OK.



  • @Harry-van-der-Wolf thank you for this suggestion.
    I will try that one.
    It is only selecting the board 'NodeMCU 0.9 (ESP-12 Module)' instead of 'NodeMCU 1.0 (ESP-12E Module)' as board to upload to, isn't it?



  • Yes, only that. It helped in my somewhat different situation with an unstable ESPEasy.



  • @Harry-van-der-Wolf I tried but I'm still getting the same reset message: Cause:4, boot mode:(3,4).
    I'm stuck here. I also tried another NRF with the same result.



  • @Harry-van-der-Wolf and @mfalkvidd . I'm now on Mysensors 2 trying to get my WFI Gateway to run.
    Used new sketch (tried both 0.9 and 1.0 board setting but no luck.
    Serial Monitor now:

    ets Jan  8 2013,rst cause:4, boot mode:(3,6)
    
    wdt reset
    load 0x4010f000, len 1384, room 16 
    tail 8
    chksum 0x2d
    csum 0x2d
    v3de0c112
    ~ld
    

    repeating


  • Hardware Contributor

    A long-shot but i had some resets due to I didnt set the right flash size.
    I ran the sketch https://github.com/esp8266/Arduino/blob/master/libraries/esp8266/examples/CheckFlashConfig/CheckFlashConfig.ino and found it it was wrong.

    Also I had alot of resets due to what @mfalkvidd said - POWER! I have the ESP 07 and tried to power it with a 3.3v regulator that couldnt provide enough mA.



  • @sundberg84 I powered my NodeMCU 1.0 (ESP-12E Module) via USB from my PC. That should not give a powerissue.
    How does your linked sketch work: load it to the NodeMCU and then check the Serial Monitor?


  • Hardware Contributor

    @Petjepet - Sorry, dont even know if it works with nodeMCU... this is ArdinoESP. My misstake...


Log in to reply
 

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.