Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. ESP8266 gateway and sensor node not talking - noobie

ESP8266 gateway and sensor node not talking - noobie

Scheduled Pinned Locked Moved Troubleshooting
megadht11esp8266
37 Posts 6 Posters 16.9k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • hekH Offline
    hekH Offline
    hek
    Admin
    wrote on last edited by
    #24

    Yep,

    https://github.com/mysensors/Arduino/pull/287

    YveauxY 1 Reply Last reply
    0
    • hekH hek

      Yep,

      https://github.com/mysensors/Arduino/pull/287

      YveauxY Offline
      YveauxY Offline
      Yveaux
      Mod
      wrote on last edited by
      #25

      @hek :+1:

      http://yveaux.blogspot.nl

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Mersing
        wrote on last edited by
        #26

        This is working great !

        Tx for this !

        1 Reply Last reply
        0
        • chrilleC Offline
          chrilleC Offline
          chrille
          wrote on last edited by
          #27

          I am seeing something similar with RFM69 (specifically RFM69CW) and ESP8266. I have build an ESP8266 gateway based on the GatewayESP8266 sketch and this is what I changed

          #define MY_RADIO_RFM69
          #define MY_GATEWAY_ESP8266
          #define MY_RFM69_FREQUENCY   RF69_868MHZ
          #define MY_RF69_IRQ_PIN 4
          #define MY_RF69_SPI_CS 15
          #define MY_RF69_IRQ_NUM 4
          

          I build a sensor node with the DallasTemperatureSensor sketch on an Arduino Mini Pro and defined

          #define MY_RADIO_RFM69
          #define MY_RFM69_FREQUENCY   RF69_868MHZ
          

          When I start up the gateway I see

          0;255;3;0;9;Starting gateway (RRNGE-, 2.0.0-beta)
          0;255;3;0;9;Radio init successful.
          ....scandone
          state: 0 -> 2 (b0)
          state: 2 -> 3 (0)
          state: 3 -> 5 (10)
          add 0
          aid 8
          cnt
          
          connected with AP, channel 1
          ip:62.x.x.x,mask:255.255.255.128,gw:62.x.x.x
          .IP: 62.x.x.x
          0;255;3;0;9;Init complete, id=0, parent=0, distance=0
          

          So far so good - I assume all the radio wiring is OK, since the radio init is successful

          On the sensor node I see

          Starting sensor (RRNNA-, 2.0.0-beta)
          Radio init successful.
          find parent 
          send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
          find parent
          send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
          find parent
          send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
          Init complete, id=255, parent=255, distance=255
          

          As soon as the sensor node is started the ESP8266 crashes with a WDT reset

          Soft WDT reset
          
          ctx: cont
          sp: 3ffef370 end: 3ffef630 offset: 01b0
          
          >>>stack>>>
          3ffef520:  00000001 3ffef6d4 3ffef964 00000000
          3ffef530:  00000024 3ffef6d4 3ffef964 40202436
          3ffef540:  3ffe8432 00000000 3ffef6d4 402024bc
          3ffef550:  3ffe8432 00000000 3ffef6d4 402026a7
          3ffef560:  3ffef6f2 00000001 3ffef6d4 40202b87
          3ffef570:  3fffdae0 00000000 3ffee600 3ffef6ac
          3ffef580:  3fffdae0 3ffef6f1 3ffef6d4 40202cf4
          3ffef590:  3fff1210 00000000 3ffee600 402042b4
          3ffef5a0:  00000000 00000002 3ffef82c 40203d20
          3ffef5b0:  00000000 3ffef6d4 3ffef964 4020247c
          3ffef5c0:  401057ff 00000400 00000103 3ffef5f0
          3ffef5d0:  3ffef5e0 00000004 3ffef6cd 4020249c
          3ffef5e0:  3ffe8920 00000000 00000000 3ffee608
          3ffef5f0:  3fffdae0 00000000 3ffee600 3ffee608
          3ffef600:  3fffdae0 00000000 3ffee600 40203e6c
          3ffef610:  feefeffe feefeffe 3ffee600 402045b4
          3ffef620:  feefeffe feefeffe 3ffee610 40100114
          <<<stack<<<
          

          The libraries are 2.0 beta as from a few days ago. I consider the power to the ESP8266 to be OK, since I use the same for en NRF24 based gateway and also for several other ESP modules.

          From the thread I understand that known issues should be fixed in the current beta. Any ideas on how to move on?

          YveauxY 1 Reply Last reply
          0
          • chrilleC chrille

            I am seeing something similar with RFM69 (specifically RFM69CW) and ESP8266. I have build an ESP8266 gateway based on the GatewayESP8266 sketch and this is what I changed

            #define MY_RADIO_RFM69
            #define MY_GATEWAY_ESP8266
            #define MY_RFM69_FREQUENCY   RF69_868MHZ
            #define MY_RF69_IRQ_PIN 4
            #define MY_RF69_SPI_CS 15
            #define MY_RF69_IRQ_NUM 4
            

            I build a sensor node with the DallasTemperatureSensor sketch on an Arduino Mini Pro and defined

            #define MY_RADIO_RFM69
            #define MY_RFM69_FREQUENCY   RF69_868MHZ
            

            When I start up the gateway I see

            0;255;3;0;9;Starting gateway (RRNGE-, 2.0.0-beta)
            0;255;3;0;9;Radio init successful.
            ....scandone
            state: 0 -> 2 (b0)
            state: 2 -> 3 (0)
            state: 3 -> 5 (10)
            add 0
            aid 8
            cnt
            
            connected with AP, channel 1
            ip:62.x.x.x,mask:255.255.255.128,gw:62.x.x.x
            .IP: 62.x.x.x
            0;255;3;0;9;Init complete, id=0, parent=0, distance=0
            

            So far so good - I assume all the radio wiring is OK, since the radio init is successful

            On the sensor node I see

            Starting sensor (RRNNA-, 2.0.0-beta)
            Radio init successful.
            find parent 
            send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
            find parent
            send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
            find parent
            send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
            Init complete, id=255, parent=255, distance=255
            

            As soon as the sensor node is started the ESP8266 crashes with a WDT reset

            Soft WDT reset
            
            ctx: cont
            sp: 3ffef370 end: 3ffef630 offset: 01b0
            
            >>>stack>>>
            3ffef520:  00000001 3ffef6d4 3ffef964 00000000
            3ffef530:  00000024 3ffef6d4 3ffef964 40202436
            3ffef540:  3ffe8432 00000000 3ffef6d4 402024bc
            3ffef550:  3ffe8432 00000000 3ffef6d4 402026a7
            3ffef560:  3ffef6f2 00000001 3ffef6d4 40202b87
            3ffef570:  3fffdae0 00000000 3ffee600 3ffef6ac
            3ffef580:  3fffdae0 3ffef6f1 3ffef6d4 40202cf4
            3ffef590:  3fff1210 00000000 3ffee600 402042b4
            3ffef5a0:  00000000 00000002 3ffef82c 40203d20
            3ffef5b0:  00000000 3ffef6d4 3ffef964 4020247c
            3ffef5c0:  401057ff 00000400 00000103 3ffef5f0
            3ffef5d0:  3ffef5e0 00000004 3ffef6cd 4020249c
            3ffef5e0:  3ffe8920 00000000 00000000 3ffee608
            3ffef5f0:  3fffdae0 00000000 3ffee600 3ffee608
            3ffef600:  3fffdae0 00000000 3ffee600 40203e6c
            3ffef610:  feefeffe feefeffe 3ffee600 402045b4
            3ffef620:  feefeffe feefeffe 3ffee610 40100114
            <<<stack<<<
            

            The libraries are 2.0 beta as from a few days ago. I consider the power to the ESP8266 to be OK, since I use the same for en NRF24 based gateway and also for several other ESP modules.

            From the thread I understand that known issues should be fixed in the current beta. Any ideas on how to move on?

            YveauxY Offline
            YveauxY Offline
            Yveaux
            Mod
            wrote on last edited by
            #28

            @chrille Try adding the following line to your setup() function:

            ESP.wdtDisable();
            

            It should disable the (software) watchdog on ESP. See if it continues, or if it will now just hang.

            http://yveaux.blogspot.nl

            chrilleC 1 Reply Last reply
            0
            • YveauxY Yveaux

              @chrille Try adding the following line to your setup() function:

              ESP.wdtDisable();
              

              It should disable the (software) watchdog on ESP. See if it continues, or if it will now just hang.

              chrilleC Offline
              chrilleC Offline
              chrille
              wrote on last edited by
              #29

              @Yveaux Just tried that. The change removed the watchdog message and the stack trace, but the module still reboots

              chrilleC YveauxY 2 Replies Last reply
              0
              • chrilleC chrille

                @Yveaux Just tried that. The change removed the watchdog message and the stack trace, but the module still reboots

                chrilleC Offline
                chrilleC Offline
                chrille
                wrote on last edited by
                #30

                ...I also tried to change TIME_OUT in rfm69.cpp to 500 as suggested by Fabien. Doesn't make any difference

                1 Reply Last reply
                0
                • chrilleC chrille

                  @Yveaux Just tried that. The change removed the watchdog message and the stack trace, but the module still reboots

                  YveauxY Offline
                  YveauxY Offline
                  Yveaux
                  Mod
                  wrote on last edited by
                  #31

                  @chrille said:

                  the module still reboots

                  Probably the hardware watchdog kicks in then...

                  http://yveaux.blogspot.nl

                  chrilleC 2 Replies Last reply
                  0
                  • YveauxY Yveaux

                    @chrille said:

                    the module still reboots

                    Probably the hardware watchdog kicks in then...

                    chrilleC Offline
                    chrilleC Offline
                    chrille
                    wrote on last edited by
                    #32

                    @Yveaux I did some further tests and it may be related to the inclusion mode feature. At least disabling this makes things more stable - but I still haven't got the radio side working reliable. When this is working I will go back to the gateway and see if I can find out what triggers the crash

                    1 Reply Last reply
                    0
                    • YveauxY Yveaux

                      @chrille said:

                      the module still reboots

                      Probably the hardware watchdog kicks in then...

                      chrilleC Offline
                      chrilleC Offline
                      chrille
                      wrote on last edited by
                      #33

                      @Yveaux I think I have narrowed down the issue now to this code in RFM69.cpp

                      void RFM69::sendACK(const void* buffer, byte bufferSize) {
                      debug(PSTR("RFM69: void sendACK\n"));
                        byte sender = SENDERID;
                        debug(PSTR("RFM69: sendACK - entering while()\n"));
                        while (!canSend()) receiveDone();
                        sendFrame(sender, buffer, bufferSize, false, true);
                      }
                      

                      (The debug lines are added by me)

                      Most of the time the WDT kicks in, after logging "entering while()" - occasionally it will reach sendFrame() and log a "read: " line but then the WDT kicks in when it gets to the while() loop again.
                      sendAck is called from sendFrame, that disables interrupts, by calling select()

                      With a bunch of additional debug turned on, this is what I get on the console

                      0;255;3;0;9;Init complete, id=0, parent=0, distance=0
                      chg_B:-60
                      chg_B:-120
                      0;255;3;0;9;RFM69: interruptHandler
                      0;255;3;0;9;RFM69: IRQ handler - select chip
                      0;255;3;0;9;RFM69: IRQ handler - release chip
                      0;255;3;0;9;RFM69: IRQ handler - read RSSI
                      0;255;3;0;9;RFM69: receiveDone() - payload
                      0;255;3;0;9;RFM69: void sendACK
                      chg_B:-60
                      0;255;3;0;9;RFM69: sendACK - entering while()
                      0;255;3;0;9;RFM69: sendFrame()
                      0;255;3;0;9;RFM69: interruptHandler
                      0;255;3;0;9;RFM69: IRQ handler - read RSSI
                      0;255;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0,sg=0:
                      0;255;3;0;9;RFM69: interruptHandler
                      0;255;3;0;9;RFM69: IRQ handler - select chip
                      0;255;3;0;9;RFM69: IRQ handler - release chip
                      0;255;3;0;9;RFM69: IRQ handler - read RSSI
                      0;255;3;0;9;RFM69: receiveDone() - payload
                      0;255;3;0;9;RFM69: void sendACK
                      0;255;3;0;9;RFM69: sendACK - entering while()
                      
                      Soft WDT reset
                      
                      ctx: cont
                      sp: 3ffefa70 end: 3ffefd30 offset: 01b0
                      
                      >>>stack>>>
                      3ffefc20:  00000001 3ffefdd4 3ffeffdc 000000ff
                      3ffefc30:  00000024 3ffefdd4 3ffeffdc 402022da
                      3ffefc40:  3ffe8496 00000000 3ffefdd4 40202360
                      3ffefc50:  00000000 00000000 3ffefdd4 4020254b
                      3ffefc60:  3ffefdf2 00000000 3ffefdd4 402037f9
                      3ffefc70:  3fffdc20 00000000 3ffefdd4 3ffefdac
                      3ffefc80:  3fffdc20 3ffefdf1 3ffefdd4 4020385c
                      3ffefc90:  00000003 00000000 3ffeecf8 40204035
                      3ffefca0:  00000003 00000000 00000000 00000000
                      3ffefcb0:  3ffefd58 3ffefdd4 3ffeffdc 3ffeed00
                      3ffefcc0:  3ffefe00 00000000 3ffefe98 40203aec
                      3ffefcd0:  00000003 00000000 000000ff 00000000
                      3ffefce0:  000000ff 00000002 00000000 00000000
                      3ffefcf0:  3fffdc20 00000000 3ffeecf8 3ffeed00
                      3ffefd00:  3fffdc20 00000000 3ffeecf8 40203c06
                      3ffefd10:  00000000 00000000 3ffeecf8 4020432c
                      3ffefd20:  00000000 00000000 3ffeed10 40100114
                      <<<stack<<<
                      

                      Any ideas on how to fix this, would be greatly appreciated!

                      YveauxY 1 Reply Last reply
                      0
                      • chrilleC chrille

                        @Yveaux I think I have narrowed down the issue now to this code in RFM69.cpp

                        void RFM69::sendACK(const void* buffer, byte bufferSize) {
                        debug(PSTR("RFM69: void sendACK\n"));
                          byte sender = SENDERID;
                          debug(PSTR("RFM69: sendACK - entering while()\n"));
                          while (!canSend()) receiveDone();
                          sendFrame(sender, buffer, bufferSize, false, true);
                        }
                        

                        (The debug lines are added by me)

                        Most of the time the WDT kicks in, after logging "entering while()" - occasionally it will reach sendFrame() and log a "read: " line but then the WDT kicks in when it gets to the while() loop again.
                        sendAck is called from sendFrame, that disables interrupts, by calling select()

                        With a bunch of additional debug turned on, this is what I get on the console

                        0;255;3;0;9;Init complete, id=0, parent=0, distance=0
                        chg_B:-60
                        chg_B:-120
                        0;255;3;0;9;RFM69: interruptHandler
                        0;255;3;0;9;RFM69: IRQ handler - select chip
                        0;255;3;0;9;RFM69: IRQ handler - release chip
                        0;255;3;0;9;RFM69: IRQ handler - read RSSI
                        0;255;3;0;9;RFM69: receiveDone() - payload
                        0;255;3;0;9;RFM69: void sendACK
                        chg_B:-60
                        0;255;3;0;9;RFM69: sendACK - entering while()
                        0;255;3;0;9;RFM69: sendFrame()
                        0;255;3;0;9;RFM69: interruptHandler
                        0;255;3;0;9;RFM69: IRQ handler - read RSSI
                        0;255;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0,sg=0:
                        0;255;3;0;9;RFM69: interruptHandler
                        0;255;3;0;9;RFM69: IRQ handler - select chip
                        0;255;3;0;9;RFM69: IRQ handler - release chip
                        0;255;3;0;9;RFM69: IRQ handler - read RSSI
                        0;255;3;0;9;RFM69: receiveDone() - payload
                        0;255;3;0;9;RFM69: void sendACK
                        0;255;3;0;9;RFM69: sendACK - entering while()
                        
                        Soft WDT reset
                        
                        ctx: cont
                        sp: 3ffefa70 end: 3ffefd30 offset: 01b0
                        
                        >>>stack>>>
                        3ffefc20:  00000001 3ffefdd4 3ffeffdc 000000ff
                        3ffefc30:  00000024 3ffefdd4 3ffeffdc 402022da
                        3ffefc40:  3ffe8496 00000000 3ffefdd4 40202360
                        3ffefc50:  00000000 00000000 3ffefdd4 4020254b
                        3ffefc60:  3ffefdf2 00000000 3ffefdd4 402037f9
                        3ffefc70:  3fffdc20 00000000 3ffefdd4 3ffefdac
                        3ffefc80:  3fffdc20 3ffefdf1 3ffefdd4 4020385c
                        3ffefc90:  00000003 00000000 3ffeecf8 40204035
                        3ffefca0:  00000003 00000000 00000000 00000000
                        3ffefcb0:  3ffefd58 3ffefdd4 3ffeffdc 3ffeed00
                        3ffefcc0:  3ffefe00 00000000 3ffefe98 40203aec
                        3ffefcd0:  00000003 00000000 000000ff 00000000
                        3ffefce0:  000000ff 00000002 00000000 00000000
                        3ffefcf0:  3fffdc20 00000000 3ffeecf8 3ffeed00
                        3ffefd00:  3fffdc20 00000000 3ffeecf8 40203c06
                        3ffefd10:  00000000 00000000 3ffeecf8 4020432c
                        3ffefd20:  00000000 00000000 3ffeed10 40100114
                        <<<stack<<<
                        

                        Any ideas on how to fix this, would be greatly appreciated!

                        YveauxY Offline
                        YveauxY Offline
                        Yveaux
                        Mod
                        wrote on last edited by
                        #34

                        @chrille I'm not familiar with rfm implementation, but you could try adding a call to yield() inside the while loop.

                        http://yveaux.blogspot.nl

                        chrilleC 1 Reply Last reply
                        0
                        • YveauxY Yveaux

                          @chrille I'm not familiar with rfm implementation, but you could try adding a call to yield() inside the while loop.

                          chrilleC Offline
                          chrilleC Offline
                          chrille
                          wrote on last edited by
                          #35

                          @Yveaux Thank you very much. This seems to have fixed the issue now!

                          YveauxY 1 Reply Last reply
                          0
                          • chrilleC chrille

                            @Yveaux Thank you very much. This seems to have fixed the issue now!

                            YveauxY Offline
                            YveauxY Offline
                            Yveaux
                            Mod
                            wrote on last edited by
                            #36

                            @chrille Could you create a pull-request (or a bug report) for this fix in MySensors' github repo ?

                            http://yveaux.blogspot.nl

                            chrilleC 1 Reply Last reply
                            0
                            • YveauxY Yveaux

                              @chrille Could you create a pull-request (or a bug report) for this fix in MySensors' github repo ?

                              chrilleC Offline
                              chrilleC Offline
                              chrille
                              wrote on last edited by
                              #37

                              @Yveaux I already did! https://github.com/mysensors/Arduino/pull/396

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              28

                              Online

                              11.7k

                              Users

                              11.2k

                              Topics

                              113.1k

                              Posts


                              Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • MySensors
                              • OpenHardware.io
                              • Categories
                              • Recent
                              • Tags
                              • Popular