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...



  • @Petjepet - Sorry, I don't have a clue. It is simply working for me. I did quite some tries with different versions but either it worked or it didn't. I didn't see this error before. Are you sure you have connected the NRF24L01 correctly?



  • When using MySensors 1.5, I had this output in the Serial Monitor:

    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
    

    Where now using MySensors 2.0, I end up with:

    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
    

    So I don't see the connect to my network anymore (?) and having different boot mode for the reset cause.
    Tried a different radio, no change.
    Powered with my iPhone power plug I also do not see the MCU connect to my router.
    I guess my Amica NodeMCU isn't compatible/has hardware failure.

    I now ordered the one as presented in the shop.

    See if that will work.



  • I have had the same problem - the ESP8266 MQTT gateway device just "WDT resets" when a sensor device tries to send a message.
    *EDIT 081016
    In my case, I was using a yellow 0.9 dev board which has a known "screen print" error for pins GPIO4 and GPIO5 - I just swapped these pins over and all was OK - no crashes anymore.
    https://twitter.com/bdcatalin/status/663434209265078272



  • This post is deleted!


  • @Petjepet
    Please see this specific post on pimatic: https://forum.pimatic.org/topic/2234/external-selfmade-pimatic-max-thermostat-control-with-esp8266/17 for an EspEasy esp8266

    This guy has the exact same crash and he set the spiffs-flash-size to 1M, and then it functioned.



  • @Harry-van-der-Wolf thank you for the info!

    I'm not so familiar with these hardware items: what is the 'spiffs-flash-size' and how to adjust it?



  • In your Arduino software under "Tools" ("Hulpmiddelen" assuming you are using the Dutch version) you select the platform you flash for. In this case probably Nodemcu 0.9 or Nodemcu 1.0.
    In that same menu you have "Flash size". In that submenu you can select 4M(3M SPIFFS) and 4M(1M SPIFFS). Default is the first one but in your case try the second one.

    SPIFFS is SPI Flash File System. See here: https://nodemcu.readthedocs.io/en/master/en/spiffs/



  • @Harry-van-der-Wolf I tried your suggestion without luck.
    I'll wait for my other MCU to arrive and try again.



  • I accidentally ran into this topic for a completely different reason. One of the posters mentioned that he had the same issues as you have due to an unstable power connector.
    Another try?


  • Contest Winner

    This post is deleted!


  • @Harry-van-der-Wolf thank you for this interesting link.
    When using a more stable (other than PC-usb, iPad charger, decicated USB 2A power outlet??) other then USB, how would I be able to feed the module and also Monitor its behaviour with the Arduino IDE?



  • Today arrived the new MCU (as presented in the shop) and I uploaded the sketch.
    Still no success, but with again a new error code:

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

    mode:(3,6) changed to mode:(3,7)

    I powered by USB on PC (for serial Monitor), USB on 2.0A output and seperate 5V directly to pin on MCU (how to monitor when not using USB on MCU?).
    It won't work. I think the concept is not stable enough (resets are common issues I see on the net).

    I'll have to give up on this I guess.



  • I gave it a try again by using some suggestions on the net like changing the radio CS connection from GPIO15 to GPIO5.
    No effect.

    In the comments of the sketch I read:

     * Not all ESP8266 modules have all pins available on their external interface.
     * This code has been tested on an ESP-12 module.
     * The ESP8266 requires a certain pin configuration to download code, and another one to run code:
     * - Connect REST (reset) via 10K pullup resistor to VCC, and via switch to GND ('reset switch')
     * - Connect GPIO15 via 10K pulldown resistor to GND
     * - Connect CH_PD via 10K resistor to VCC
     * - Connect GPIO2 via 10K resistor to VCC
     * - Connect GPIO0 via 10K resistor to VCC, and via switch to GND ('bootload switch')
    

    I guess these are not needed when using the NodeMCU as presented in the MySensors store?



  • It is not necessary for any esp8266 having a usb port as you program these directly via that usb port.
    So. indeed: the nodemcu doesn't need it and neither does the Wemos.

    The esp-07, also available, does need that setup to flash/program it.


Log in to reply
 

Suggested Topics

  • 3
  • 2
  • 2
  • 10
  • 24
  • 2

1
Online

11.2k
Users

11.1k
Topics

112.5k
Posts