Skip to content

Hellomesh example fails with IwIP v2 Variants - works with IwIP v1.4 #6206

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
1 task
RudyFiero opened this issue Jun 17, 2019 · 6 comments
Closed
1 task

Comments

@RudyFiero
Copy link

RudyFiero commented Jun 17, 2019

Basic Infos

  • [*] This issue complies with the issue POLICY doc.
  • [*] I have read the documentation at readthedocs and the issue is not addressed there.
  • I have tested that the issue is present in current master branch (aka latest git).
  • [*] I have searched the issue tracker for a similar issue.
  • [*] If there is a stack dump, I have decoded it.
  • [*] I have filled out all fields below.

Platform

  • Hardware: [ESP-12|
  • Core Version: [latest git hash or date]

SDK:3.0.0-dev(c0f7b44)
Core:2.5.2=20502000
lwIP:STABLE-2_1_2_RELEASE
glue:1.1-7-g82abda3
BearSSL:a143020

Also with
SDK:2.2.1(cfd48f3)
Core:2.5.2=20502000
lwIP:STABLE-2_1_2_RELEASE
glue:1.1-7-g82abda3
BearSSL:a143020

Also with
SDK:2.2.2-dev(c0eb301)
Core:2.5.2=20502000
lwIP:STABLE-2_1_2_RELEASE
glue:1.1-7-g82abda3
BearSSL:a143020

  • Development Env: [Arduino IDE]
  • Operating System: [Windows]

Settings in IDE

  • Module: [Generic ESP8266 Module]
  • Flash Mode: [qio]
  • Flash Size: [4MB]
  • lwip Variant: [v2 Lower Memory]
  • Reset Method: [none]
  • Flash Frequency: [40Mhz]
  • CPU Frequency: [80Mhz]
  • Upload Using: [SERIAL]
  • Upload Speed: [256000|other] (serial upload only)

Problem Description

I load the Hellomesh.INO example. Do a manual reset. It gets through setup. Gets into loop. It enters the scan routine. It never makes it to timeOfLastScan = millis(); It never get through loop() even once.

I added Serial.print statements in the code to see how far it gets.

EDIT:

  • lwip Variant: [v2 Lower Memory] seems to be the problem. v1.4 Higher Bandwidth seems to work. I have been able to run three units without a crash. Message are being transferred.

MCVE Sketch

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMesh.h>
#include <TypeConversionFunctions.h>
#include <assert.h>

/**
   NOTE: Although we could define the strings below as normal String variables,
   here we are using PROGMEM combined with the FPSTR() macro (and also just the F() macro further down in the file).
   The reason is that this approach will place the strings in flash memory which will help save RAM during program execution.
   Reading strings from flash will be slower than reading them from RAM,
   but this will be a negligible difference when printing them to Serial.

   More on F(), FPSTR() and PROGMEM:
   https://github.com/esp8266/Arduino/issues/1143
   https://arduino-esp8266.readthedocs.io/en/latest/PROGMEM.html
*/
const char exampleMeshName[] PROGMEM = "MeshNode_";
const char exampleWiFiPassword[] PROGMEM = "ChangeThisWiFiPassword_TODO";

//#define IPport 22
//#define IPport 20
//#define IPport 4
#define IPport 17
const int LED15 = 15;
const int LED13 = 13;
const int LED14 = 14;
const int LED12 = 12;

unsigned int requestNumber = 0;
unsigned int responseNumber = 0;

String manageRequest(const String &request, ESP8266WiFiMesh &meshInstance);
transmission_status_t manageResponse(const String &response, ESP8266WiFiMesh &meshInstance);
void networkFilter(int numberOfNetworks, ESP8266WiFiMesh &meshInstance);

/* Create the mesh node object */
ESP8266WiFiMesh meshNode = ESP8266WiFiMesh(manageRequest, manageResponse, networkFilter, FPSTR(exampleWiFiPassword), FPSTR(exampleMeshName), "", true);

/**
   Callback for when other nodes send you a request

   @param request The request string received from another node in the mesh
   @param meshInstance The ESP8266WiFiMesh instance that called the function.
   @returns The string to send back to the other node
*/
String manageRequest(const String &request, ESP8266WiFiMesh &meshInstance) {
  // We do not store strings in flash (via F()) in this function.
  // The reason is that the other node will be waiting for our response,
  // so keeping the strings in RAM will give a (small) improvement in response time.
  // Of course, it is advised to adjust this approach based on RAM requirements.

  /* Print out received message */
  Serial.print("Request received: ");
  Serial.println(request);

  /* return a string to send back */
  return ("Hello world response #" + String(responseNumber++) + " from " + meshInstance.getMeshName() + meshInstance.getNodeID() + ".");
}

/**
   Callback for when you get a response from other nodes

   @param response The response string received from another node in the mesh
   @param meshInstance The ESP8266WiFiMesh instance that called the function.
   @returns The status code resulting from the response, as an int
*/
transmission_status_t manageResponse(const String &response, ESP8266WiFiMesh &meshInstance) {
  transmission_status_t statusCode = TS_TRANSMISSION_COMPLETE;

  /* Print out received message */
  Serial.print(F("Request sent: "));
  Serial.println(meshInstance.getMessage());
  Serial.print(F("Response received: "));
  Serial.println(response);

  // Our last request got a response, so time to create a new request.
  meshInstance.setMessage(String(F("Hello world request #")) + String(++requestNumber) + String(F(" from "))
                          + meshInstance.getMeshName() + meshInstance.getNodeID() + String(F(".")));

  // (void)meshInstance; // This is useful to remove a "unused parameter" compiler warning. Does nothing else.
  return statusCode;
}

/**
   Callback used to decide which networks to connect to once a WiFi scan has been completed.

   @param numberOfNetworks The number of networks found in the WiFi scan.
   @param meshInstance The ESP8266WiFiMesh instance that called the function.
*/
void networkFilter(int numberOfNetworks, ESP8266WiFiMesh &meshInstance) {
  for (int networkIndex = 0; networkIndex < numberOfNetworks; ++networkIndex) {
    String currentSSID = WiFi.SSID(networkIndex);
    int meshNameIndex = currentSSID.indexOf(meshInstance.getMeshName());

    /* Connect to any _suitable_ APs which contain meshInstance.getMeshName() */
    if (meshNameIndex >= 0) {
      uint64_t targetNodeID = stringToUint64(currentSSID.substring(meshNameIndex + meshInstance.getMeshName().length()));

      if (targetNodeID < stringToUint64(meshInstance.getNodeID())) {
        ESP8266WiFiMesh::connectionQueue.push_back(NetworkInfo(networkIndex));
      }
    }
  }
}

void setup() {
  pinMode(LED15, OUTPUT);
  pinMode(LED13, OUTPUT);
  pinMode(LED14, OUTPUT);
  pinMode(LED12, OUTPUT);
    digitalWrite(LED12, 1);
    digitalWrite(LED13, 1);
    digitalWrite(LED14, 1);  

  // Prevents the flash memory from being worn out, see: https://github.com/esp8266/Arduino/issues/1054 .
  // This will however delay node WiFi start-up by about 700 ms. The delay is 900 ms if we otherwise would have stored the WiFi network we want to connect to.
  WiFi.persistent(false);

  Serial.begin(115200);
  delay(50); // Wait for Serial.

  //yield(); // Use this if you don't want to wait for Serial.

  // The WiFi.disconnect() ensures that the WiFi is working correctly. If this is not done before receiving WiFi connections,
  // those WiFi connections will take a long time to make or sometimes will not work at all.
  WiFi.disconnect();

  Serial.println();
  Serial.println();

  Serial.println(F("Note that this library can use static IP:s for the nodes to speed up connection times.\n"
                   "Use the setStaticIP method as shown in this example to enable this.\n"
                   "Ensure that nodes connecting to the same AP have distinct static IP:s.\n"
                   "Also, remember to change the default mesh network password!\n\n"));

  Serial.println(F("Setting up mesh node..."));

  /* Initialise the mesh node */
  meshNode.begin();
  meshNode.activateAP(); // Each AP requires a separate server port.
  meshNode.setStaticIP(IPAddress(192, 168, 4, IPport)); // Activate static IP mode to speed up connection times.

  Serial.print("++++ end of setup ");   Serial.println(millis());
}

int32_t LED15millis = 0;
int32_t timeOfLastScan = -10000;
void loop() {

  if ((millis() - LED15millis) > 250) {
    LED15millis = millis();
    digitalWrite(LED15, !digitalRead(LED15));
Serial.print("++++ led 15 ");   Serial.println(millis());
  }


  if (millis() - timeOfLastScan > 3000 // Give other nodes some time to connect between data transfers.
      || (WiFi.status() != WL_CONNECTED && millis() - timeOfLastScan > 2000)) { // Scan for networks with two second intervals when not already connected.
Serial.print("++++ in scan ");   Serial.println(millis());
    String request = String(F("Hello world request #")) + String(requestNumber) + String(F(" from ")) + meshNode.getMeshName() + meshNode.getNodeID() + String(F("."));
Serial.print("++++ in scan after String request ");   Serial.println(millis());
    meshNode.attemptTransmission(request, false);
Serial.print("++++ in scan defore timeOfLastScan= ");   Serial.println(millis());
    timeOfLastScan = millis();
Serial.print("++++ in scan after timeOfLastScan= ");   Serial.println(millis());
  
    digitalWrite(LED13, !digitalRead(LED13));
    digitalWrite(LED14, 0);

        // One way to check how attemptTransmission worked out
        if (ESP8266WiFiMesh::latestTransmissionSuccessful()) {
          Serial.println(F("Transmission successful."));
        }

        // Another way to check how attemptTransmission worked out
        if (ESP8266WiFiMesh::latestTransmissionOutcomes.empty()) {
          Serial.println(F("No mesh AP found."));
        } else {

Serial.print("++++ in latestTransmissionOutcomes check ");   Serial.println(millis());
          for (TransmissionResult &transmissionResult : ESP8266WiFiMesh::latestTransmissionOutcomes) {
            if (transmissionResult.transmissionStatus == TS_TRANSMISSION_FAILED) {
              Serial.println(String(F("Transmission failed to mesh AP ")) + transmissionResult.SSID);
            } else if (transmissionResult.transmissionStatus == TS_CONNECTION_FAILED) {
              Serial.println(String(F("Connection failed to mesh AP ")) + transmissionResult.SSID);
            } else if (transmissionResult.transmissionStatus == TS_TRANSMISSION_COMPLETE) {
              // No need to do anything, transmission was successful.
            } else {
              Serial.println(String(F("Invalid transmission status for ")) + transmissionResult.SSID + String(F("!")));
              assert(F("Invalid transmission status returned from responseHandler!") && false);
            }
          }
        }
Serial.println("end of scan ");   Serial.println(millis());
      } else {
         // Accept any incoming connections
        meshNode.acceptRequest();

    digitalWrite(LED14, 1);
Serial.print("++++ acceptRequest() ");   Serial.println(millis());
  }
delay(10);
Serial.print("++++ end of loop ");   Serial.println(millis());
}

Debug Messages

SDK:3.0.0-dev(c0f7b44)/Core:2.5.2=20502000/lwIP:STABLE-2_1_2_RELEASE/glue:1.1-7-g82abda3/BearSSL:a143020

Note that this library can use static IP:s for the nodes to speed up connection times.
Use the setStaticIP method as shown in this example to enable this.
Ensure that nodes connecting to the same AP have distinct static IP:s.
Also, remember to change the default mesh network password!

Setting up mesh node...
bcn 0
del if1
usl
mode : sta(18:fe:34:f1:fe:f6)
add if0
lwIP version is at least 2.0.3. Static ip optimizations enabled.

mode : sta(18:fe:34:f1:fe:f6) + softAP(1a:fe:34:f1:fe:f6)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
bcn 0
del if1
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
ip:192.168.4.17,mask:255.255.255.0,gw:192.168.4.1
++++ end of setup 1028
++++ led 15 1028
++++ in scan 1028
++++ in scan after String request 1030
bcn 0
del if1
mode : sta(18:fe:34:f1:fe:f6)
:ref 1
:ctmo
:abort
:ur 1
:del
Server unavailable
mode : sta(18:fe:34:f1:fe:f6) + softAP(1a:fe:34:f1:fe:f6)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
Fatal exception 28(LoadProhibitedCause):
epc1=0x40208140, epc2=0x00000000, epc3=0x00000000, excvaddr=0x001cc842, depc=0x00000000

Exception (28):
epc1=0x40208140 epc2=0x00000000 epc3=0x00000000 excvaddr=0x001cc842 depc=0x00000000

stack>>>

ctx: cont
sp: 3ffffcd0 end: 3fffffc0 offset: 01a0
3ffffe70: 3ffee5dc ffffffff 3ffffe90 402044bc
3ffffe80: 3ffee5dc 3ffee61c 3ffee4dc 40203f6c
3ffffe90: 00000000 3ffe0000 001cc842 00000000
3ffffea0: 00ff01bc 001cc842 3ffffe90 001cc842
3ffffeb0: 3ffe874a 00000000 3ffe8749 402068e6
3ffffec0: 00000000 4bc6a7f0 9916872b 3fffff60
3ffffed0: 3ffe84dc 00000004 3ffee6a0 402049ac
3ffffee0: 00000009 3ffee4dc 401001c0 40204cc5
3ffffef0: 00000000 00000000 3fff0184 00000000
3fffff00: 3ffe84dc 3ffee4dc 3ffee6a0 40204d50
3fffff10: 3ffe84dc 3ffee4dc 3ffee6a0 3fffff60
3fffff20: 3ffe84dc 3ffee4dc 3ffee6a0 402015cd
3fffff30: 00000000 00000000 fffee6a0 00000000
3fffff40: 00000000 fffee4dc 00000000 00000000
3fffff50: fffe005f 00000000 00000000 fffee7bc
3fffff60: 00000000 00000000 fffee6a0 00000000
3fffff70: 00000000 ff04a8c0 00000000 00000000
3fffff80: ffffdad0 3fff022c 002c002f ff2012c6
3fffff90: 402084a0 1104a8c0 feefeffe 3ffee7bc
3fffffa0: 3fffdad0 00000000 3ffee78c 40205b2c
3fffffb0: feefeffe feefeffe 3ffe850c 401005b9
<<<stack<<<

ets Jan 8 2013,rst cause:1, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v8b899c12
~ld

SDK:3.0.0-dev(c0f7b44)/Core:2.5.2=20502000/lwIP:STABLE-2_1_2_RELEASE/glue:1.1-7-g82abda3/BearSSL:a143020

Note that this library can use static IP:s for the nodes to speed up connection times.
Use the setStaticIP method as shown in this example to enable this.
Ensure that nodes connecting to the same AP have distinct static IP:s.
Also, remember to change the default mesh network password!

Setting up mesh node...
bcn 0
del if1
usl
mode : sta(18:fe:34:f1:fe:f6)
add if0
lwIP version is at least 2.0.3. Static ip optimizations enabled.

mode : sta(18:fe:34:f1:fe:f6) + softAP(1a:fe:34:f1:fe:f6)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
bcn 0
del if1
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
ip:192.168.4.17,mask:255.255.255.0,gw:192.168.4.1
++++ end of setup 1029
++++ led 15
1030
++++ in scan 1030
++++ in scan after String request 1031
bcn 0
del if1
mode : sta(18:fe:34:f1:fe:f6)
:ref 1

This is where it waits for a few seconds, before it continues and then dies.


Debug Messages

****************************** STACK DUMP ******************************
Decoding 11 results
0x402044bc: TransmissionResult::TransmissionResult(NetworkInfo const&, transmission_status_t) at C:\Users\Rudy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\ESP8266WiFiMesh\src/TransmissionResult.cpp line 42
0x40203f6c: ESP8266WiFiMesh::attemptTransmission(String const&, bool, bool, bool, bool) at c:\users\rudy\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-3-20ed2b9\xtensa-lx106-elf\include\c++\4.8.2\bits/stl_vector.h line 922
: (inlined by) ESP8266WiFiMesh::attemptTransmission(String const&, bool, bool, bool, bool) at C:\Users\Rudy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\ESP8266WiFiMesh\src/ESP8266WiFiMesh.cpp line 529
0x402068e6: uart_write at C:\Users\Rudy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/uart.cpp line 498
0x402049ac: HardwareSerial::write(unsigned char const*, unsigned int) at C:\Users\Rudy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/HardwareSerial.h line 158
0x401001c0: millis at C:\Users\Rudy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/core_esp8266_wiring.cpp line 186
0x40204cc5: Print::write(char const*) at C:\Users\Rudy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/Print.h line 60
0x40204d50: Print::println() at C:\Users\Rudy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/Print.cpp line 178
0x402015cd: loop at C:\Users\Rudy\AppData\Local\Temp\arduino_modified_sketch_801160/HelloMesh.ino line 163
0x402084a0: WiFiServer::write(unsigned char const*, unsigned int) at ?? line ?
0x40205b2c: loop_wrapper() at C:\Users\Rudy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/core_esp8266_main.cpp line 125
0x401005b9: cont_wrapper at C:\Users\Rudy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/cont.S line 81

@RudyFiero RudyFiero changed the title Hellomesh example gets stuck, then causes WDT Hellomesh example gets stuck, then causes WDT - edit: works with IwIP Variant Higher Bandwidth Jun 17, 2019
@RudyFiero RudyFiero changed the title Hellomesh example gets stuck, then causes WDT - edit: works with IwIP Variant Higher Bandwidth Hellomesh example gets stuck, then causes WDT - edit: works with IwIP v1.4 Variant Higher Bandwidth Jun 17, 2019
@RudyFiero
Copy link
Author

RudyFiero commented Jun 17, 2019

I have tried all IwIP v2 variants and they all crash. Only V1.4 does not crash, and connects and works with other units.

@RudyFiero RudyFiero changed the title Hellomesh example gets stuck, then causes WDT - edit: works with IwIP v1.4 Variant Higher Bandwidth Hellomesh example fails with IwIP v2 Variants - works with IwIP v1.4 Jun 17, 2019
@devyte
Copy link
Collaborator

devyte commented Jun 17, 2019

@aerlon @d-a-v this probably needs you

@aerlon
Copy link
Contributor

aerlon commented Jun 18, 2019

@RudyFiero
I found a problem with lwIP2 that got fixed recently and committed to the master branch yesterday (#6194). With that fix applied I'm unable to reproduce your issue, instead the result below is produced. Could you try the most recent master branch and see if that fixes your issue?

Note that this library can use static IP:s for the nodes to speed up connection times.
Use the setStaticIP method as shown in this example to enable this.
Ensure that nodes connecting to the same AP have distinct static IP:s.
Also, remember to change the default mesh network password!


Setting up mesh node...
lwIP version is at least 2.0.3. Static ip optimizations enabled.

++++ end of setup 5976
++++ led 15 5977
++++ in scan 5977
++++ in scan after String request 5977
Scanning... AP acquired: MeshNode_456, Ch:1 (-42dBm) ... Connecting... 964
Transmitting
Request sent: Hello world request #0 from MeshNode_123.
Response received: Hello world response #42 from MeshNode_456.
++++ in scan defore timeOfLastScan= 7043
++++ in scan after timeOfLastScan= 7043
Transmission successful.
++++ in latestTransmissionOutcomes check 7050
end of scan 
7051
++++ end of loop 7062
++++ led 15 7062
++++ acceptRequest() 7062
++++ end of loop 7072
++++ acceptRequest() 7072
++++ end of loop 7082
++++ acceptRequest() 7083
++++ end of loop 7093
++++ acceptRequest() 7093
++++ end of loop 7103
++++ acceptRequest() 7103
++++ end of loop 7113
++++ acceptRequest() 7113
++++ end of loop 7123
++++ acceptRequest() 7123
++++ end of loop 7133
++++ acceptRequest() 7133
++++ end of loop 7143
++++ acceptRequest() 7143
++++ end of loop 7153
++++ acceptRequest() 7153
++++ end of loop 7164
++++ acceptRequest() 7164
++++ end of loop 7174
++++ acceptRequest() 7174
++++ end of loop 7184
++++ acceptRequest() 7184
++++ end of loop 7194
++++ acceptRequest() 7194
++++ end of loop 7204
++++ acceptRequest() 7204
++++ end of loop 7214
++++ acceptRequest() 7214
++++ end of loop 7224
++++ acceptRequest() 7224
++++ end of loop 7234
++++ acceptRequest() 7234
++++ end of loop 7244
++++ acceptRequest() 7245
++++ end of loop 7255
++++ acceptRequest() 7255
++++ end of loop 7265
++++ acceptRequest() 7265
++++ end of loop 7275
++++ acceptRequest() 7275
++++ end of loop 7285
++++ acceptRequest() 7285
++++ end of loop 7295
++++ acceptRequest() 7295
++++ end of loop 7305
++++ acceptRequest() 7305
++++ end of loop 7315
++++ led 15 7315
++++ acceptRequest() 7316
++++ end of loop 7326
++++ acceptRequest() 7326
++++ end of loop 7336
++++ acceptRequest() 7336
++++ end of loop 7346
++++ acceptRequest() 7346
++++ end of loop 7356
++++ acceptRequest() 7357
++++ end of loop 7367
++++ acceptRequest() 7367
++++ end of loop 7377
++++ acceptRequest() 7377
++++ end of loop 7387
++++ acceptRequest() 7387
++++ end of loop 7397
++++ acceptRequest() 7397
++++ end of loop 7407
++++ acceptRequest() 7407
++++ end of loop 7417
++++ acceptRequest() 7417
++++ end of loop 7427
++++ acceptRequest() 7427
++++ end of loop 7437
++++ acceptRequest() 7438
++++ end of loop 7448
++++ acceptRequest() 7448
++++ end of loop 7458
++++ acceptRequest() 7458
++++ end of loop 7468
++++ acceptRequest() 7468
++++ end of loop 7478
++++ acceptRequest() 7478
++++ end of loop 7488
++++ acceptRequest() 7488
++++ end of loop 7498
++++ acceptRequest() 7498
++++ end of loop 7508
++++ acceptRequest() 7508
++++ end of loop 7518
++++ acceptRequest() 7519
++++ end of loop 7529
++++ acceptRequest() 7529
++++ end of loop 7539
++++ acceptRequest() 7539
++++ end of loop 7549
++++ acceptRequest() 7549
++++ end of loop 7559
++++ acceptRequest() 7559
++++ end of loop 7569
++++ led 15 7569
++++ acceptRequest() 7569
++++ end of loop 7579
++++ acceptRequest() 7579
++++ end of loop 7589
++++ acceptRequest() 7589
++++ end of loop 7600
++++ acceptRequest() 7600
++++ end of loop 7610
++++ acceptRequest() 7610
++++ end of loop 7620
++++ acceptRequest() 7620
++++ end of loop 7630
++++ acceptRequest() 7630
++++ end of loop 7640
++++ acceptRequest() 7640
++++ end of loop 7650
++++ acceptRequest() 7650
++++ end of loop 7660
++++ acceptRequest() 7660
++++ end of loop 7670
++++ acceptRequest() 7671
++++ end of loop 7681
++++ acceptRequest() 7681
++++ end of loop 7691
++++ acceptRequest() 7691
++++ end of loop 7701
++++ acceptRequest() 7701
++++ end of loop 7711
++++ acceptRequest() 7711
++++ end of loop 7721
++++ acceptRequest() 7721
++++ end of loop 7731
++++ acceptRequest() 7731
++++ end of loop 7741
++++ acceptRequest() 7741
++++ end of loop 7751
++++ acceptRequest() 7752
++++ end of loop 7762
++++ acceptRequest() 7762
++++ end of loop 7772
++++ acceptRequest() 7772
++++ end of loop 7782
++++ acceptRequest() 7782
++++ end of loop 7792
++++ acceptRequest() 7792
++++ end of loop 7802
++++ acceptRequest() 7802
++++ end of loop 7812
++++ acceptRequest() 7812
++++ end of loop 7822
++++ led 15 7822
++++ acceptRequest() 7822
++++ end of loop 7833
++++ acceptRequest() 7833
++++ end of loop 7843
++++ acceptRequest() 7843
++++ end of loop 7853
++++ acceptRequest() 7853
++++ end of loop 7863
++++ acceptRequest() 7863
++++ end of loop 7873
++++ acceptRequest() 7873
++++ end of loop 7883
++++ acceptRequest() 7883
++++ end of loop 7893
++++ acceptRequest() 7893
++++ end of loop 7903
++++ acceptRequest() 7904
++++ end of loop 7914
++++ acceptRequest() 7914
++++ end of loop 7924
++++ acceptRequest() 7924
++++ end of loop 7934
++++ acceptRequest() 7934
++++ end of loop 7944
++++ acceptRequest() 7944
++++ end of loop 7954
++++ acceptRequest() 7954
++++ end of loop 7964
++++ acceptRequest() 7964
++++ end of loop 7974
++++ acceptRequest() 7974
++++ end of loop 7984
++++ acceptRequest() 7985
++++ end of loop 7995
++++ acceptRequest() 7995
++++ end of loop 8005
++++ acceptRequest() 8005
++++ end of loop 8015
++++ acceptRequest() 8015
++++ end of loop 8025
++++ acceptRequest() 8025
++++ end of loop 8035
++++ acceptRequest() 8035
++++ end of loop 8045
++++ acceptRequest() 8045
++++ end of loop 8055
++++ acceptRequest() 8055
++++ end of loop 8066
++++ acceptRequest() 8066
++++ end of loop 8076
++++ led 15 8076
++++ acceptRequest() 8076
++++ end of loop 8086
++++ acceptRequest() 8086
++++ end of loop 8096
++++ acceptRequest() 8096
++++ end of loop 8106
++++ acceptRequest() 8106
++++ end of loop 8116
++++ acceptRequest() 8116
++++ end of loop 8126
++++ acceptRequest() 8126
++++ end of loop 8137
++++ acceptRequest() 8137
++++ end of loop 8147
++++ acceptRequest() 8147
++++ end of loop 8157
++++ acceptRequest() 8157
++++ end of loop 8167
++++ acceptRequest() 8167
++++ end of loop 8177
++++ acceptRequest() 8177
++++ end of loop 8187
++++ acceptRequest() 8187
++++ end of loop 8197
++++ acceptRequest() 8197
++++ end of loop 8208
++++ acceptRequest() 8208
++++ end of loop 8218
++++ acceptRequest() 8218
++++ end of loop 8228
++++ acceptRequest() 8228
++++ end of loop 8238
++++ acceptRequest() 8238
++++ end of loop 8248
++++ acceptRequest() 8248
++++ end of loop 8258
++++ acceptRequest() 8258
++++ end of loop 8268
++++ acceptRequest() 8268
++++ end of loop 8278
++++ acceptRequest() 8278
++++ end of loop 8289
++++ acceptRequest() 8289
++++ end of loop 8299
++++ acceptRequest() 8299
++++ end of loop 8309
++++ acceptRequest() 8309
++++ end of loop 8319
++++ acceptRequest() 8319
++++ end of loop 8329
++++ led 15 8329
++++ acceptRequest() 8329
++++ end of loop 8339
++++ acceptRequest() 8339
++++ end of loop 8349
++++ acceptRequest() 8349
++++ end of loop 8359
++++ acceptRequest() 8360
++++ end of loop 8370
++++ acceptRequest() 8370
++++ end of loop 8380
++++ acceptRequest() 8380
++++ end of loop 8390
++++ acceptRequest() 8390
++++ end of loop 8400
++++ acceptRequest() 8400
++++ end of loop 8410
++++ acceptRequest() 8410
++++ end of loop 8420
++++ acceptRequest() 8420
++++ end of loop 8430
++++ acceptRequest() 8430
++++ end of loop 8441
++++ acceptRequest() 8441
++++ end of loop 8451
++++ acceptRequest() 8451
++++ end of loop 8461
++++ acceptRequest() 8461
++++ end of loop 8471
++++ acceptRequest() 8471
++++ end of loop 8481
++++ acceptRequest() 8481
++++ end of loop 8491
++++ acceptRequest() 8491
++++ end of loop 8501
++++ acceptRequest() 8501
++++ end of loop 8511
++++ acceptRequest() 8511
++++ end of loop 8522
++++ acceptRequest() 8522
++++ end of loop 8532
++++ acceptRequest() 8532
++++ end of loop 8542
++++ acceptRequest() 8542
++++ end of loop 8552
++++ acceptRequest() 8552
++++ end of loop 8562
++++ acceptRequest() 8562
++++ end of loop 8572
++++ acceptRequest() 8572
++++ end of loop 8582
++++ led 15 8582
++++ acceptRequest() 8582
++++ end of loop 8593
++++ acceptRequest() 8593
++++ end of loop 8603
++++ acceptRequest() 8603
++++ end of loop 8613
++++ acceptRequest() 8613
++++ end of loop 8623
++++ acceptRequest() 8623
++++ end of loop 8633
++++ acceptRequest() 8633
++++ end of loop 8643
++++ acceptRequest() 8643
++++ end of loop 8653
++++ acceptRequest() 8653
++++ end of loop 8663
++++ acceptRequest() 8663
++++ end of loop 8674
++++ acceptRequest() 8674
++++ end of loop 8684
++++ acceptRequest() 8684
++++ end of loop 8694
++++ acceptRequest() 8694
++++ end of loop 8704
++++ acceptRequest() 8704
++++ end of loop 8714
++++ acceptRequest() 8714
++++ end of loop 8724
++++ acceptRequest() 8724
++++ end of loop 8734
++++ acceptRequest() 8734
++++ end of loop 8744
++++ acceptRequest() 8745
++++ end of loop 8755
++++ acceptRequest() 8755
++++ end of loop 8765
++++ acceptRequest() 8765
++++ end of loop 8775
++++ acceptRequest() 8775
++++ end of loop 8785
++++ acceptRequest() 8785
++++ end of loop 8795
++++ acceptRequest() 8795
++++ end of loop 8805
++++ acceptRequest() 8805
++++ end of loop 8815
++++ acceptRequest() 8815
++++ end of loop 8825
++++ acceptRequest() 8826
++++ end of loop 8836
++++ led 15 8836
++++ acceptRequest() 8836
++++ end of loop 8846
++++ acceptRequest() 8846
++++ end of loop 8856
++++ acceptRequest() 8856
++++ end of loop 8866
++++ acceptRequest() 8867
++++ end of loop 8877
++++ acceptRequest() 8877
++++ end of loop 8887
++++ acceptRequest() 8887
++++ end of loop 8897
++++ acceptRequest() 8897
++++ end of loop 8907
++++ acceptRequest() 8907
++++ end of loop 8917
++++ acceptRequest() 8917
++++ end of loop 8927
++++ acceptRequest() 8927
++++ end of loop 8937
++++ acceptRequest() 8937
++++ end of loop 8948
++++ acceptRequest() 8948
++++ end of loop 8958
++++ acceptRequest() 8958
++++ end of loop 8968
++++ acceptRequest() 8968
++++ end of loop 8978
++++ acceptRequest() 8978
++++ end of loop 8988
++++ acceptRequest() 8988
++++ end of loop 8998
++++ acceptRequest() 8998
++++ end of loop 9008
++++ acceptRequest() 9008
++++ end of loop 9018
++++ acceptRequest() 9018
++++ end of loop 9029
++++ acceptRequest() 9029
++++ end of loop 9039
++++ acceptRequest() 9039
++++ end of loop 9049
++++ acceptRequest() 9049
++++ end of loop 9059
++++ acceptRequest() 9059
++++ end of loop 9069
++++ acceptRequest() 9069
++++ end of loop 9079
++++ acceptRequest() 9079
++++ end of loop 9089
++++ led 15 9089
++++ acceptRequest() 9089
++++ end of loop 9099
++++ acceptRequest() 9100
++++ end of loop 9110
++++ acceptRequest() 9110
++++ end of loop 9120
++++ acceptRequest() 9120
++++ end of loop 9130
++++ acceptRequest() 9130
++++ end of loop 9140
++++ acceptRequest() 9140
++++ end of loop 9150
++++ acceptRequest() 9150
++++ end of loop 9160
++++ acceptRequest() 9160
++++ end of loop 9170
++++ acceptRequest() 9170
++++ end of loop 9180
++++ acceptRequest() 9181
++++ end of loop 9191
++++ acceptRequest() 9191
++++ end of loop 9201
++++ acceptRequest() 9201
++++ end of loop 9211
++++ acceptRequest() 9211
++++ end of loop 9221
++++ acceptRequest() 9221
++++ end of loop 9231
++++ acceptRequest() 9231
++++ end of loop 9241
++++ acceptRequest() 9241
++++ end of loop 9251
++++ acceptRequest() 9251
++++ end of loop 9262
++++ acceptRequest() 9262
++++ end of loop 9272
++++ acceptRequest() 9272
++++ end of loop 9282
++++ acceptRequest() 9282
++++ end of loop 9292
++++ acceptRequest() 9292
++++ end of loop 9302
++++ acceptRequest() 9302
++++ end of loop 9312
++++ acceptRequest() 9312
++++ end of loop 9322
++++ acceptRequest() 9322
++++ end of loop 9332
++++ acceptRequest() 9332
++++ end of loop 9343
++++ led 15 9343
++++ acceptRequest() 9343
++++ end of loop 9353
++++ acceptRequest() 9353
++++ end of loop 9363
++++ acceptRequest() 9363
++++ end of loop 9373
++++ acceptRequest() 9373
++++ end of loop 9383
++++ acceptRequest() 9383
++++ end of loop 9393
++++ acceptRequest() 9393
++++ end of loop 9403
++++ acceptRequest() 9403
++++ end of loop 9414
++++ acceptRequest() 9414
++++ end of loop 9424
++++ acceptRequest() 9424
++++ end of loop 9434
++++ acceptRequest() 9434
++++ end of loop 9444
++++ acceptRequest() 9444
++++ end of loop 9454
++++ acceptRequest() 9454
++++ end of loop 9464
++++ acceptRequest() 9464
++++ end of loop 9474
++++ acceptRequest() 9474
++++ end of loop 9484
++++ acceptRequest() 9484
++++ end of loop 9495
++++ acceptRequest() 9495
++++ end of loop 9505
++++ acceptRequest() 9505
++++ end of loop 9515
++++ acceptRequest() 9515
++++ end of loop 9525
++++ acceptRequest() 9525
++++ end of loop 9535
++++ acceptRequest() 9535
++++ end of loop 9545
++++ acceptRequest() 9545
++++ end of loop 9555
++++ acceptRequest() 9555
++++ end of loop 9565
++++ acceptRequest() 9566
++++ end of loop 9576
++++ acceptRequest() 9576
++++ end of loop 9586
++++ acceptRequest() 9586
++++ end of loop 9596
++++ led 15 9596
++++ acceptRequest() 9596
++++ end of loop 9606
++++ acceptRequest() 9606
++++ end of loop 9616
++++ acceptRequest() 9616
++++ end of loop 9626
++++ acceptRequest() 9626
++++ end of loop 9636
++++ acceptRequest() 9636
++++ end of loop 9647
++++ acceptRequest() 9647
++++ end of loop 9657
++++ acceptRequest() 9657
++++ end of loop 9667
++++ acceptRequest() 9667
++++ end of loop 9677
++++ acceptRequest() 9677
++++ end of loop 9687
++++ acceptRequest() 9687
++++ end of loop 9697
++++ acceptRequest() 9697
++++ end of loop 9707
++++ acceptRequest() 9707
++++ end of loop 9717
++++ acceptRequest() 9717
++++ end of loop 9728
++++ acceptRequest() 9728
++++ end of loop 9738
++++ acceptRequest() 9738
++++ end of loop 9748
++++ acceptRequest() 9748
++++ end of loop 9758
++++ acceptRequest() 9758
++++ end of loop 9768
++++ acceptRequest() 9768
++++ end of loop 9778
++++ acceptRequest() 9778
++++ end of loop 9788
++++ acceptRequest() 9788
++++ end of loop 9798
++++ acceptRequest() 9798
++++ end of loop 9809
++++ acceptRequest() 9809
++++ end of loop 9819
++++ acceptRequest() 9819
++++ end of loop 9829
++++ acceptRequest() 9829
++++ end of loop 9839
++++ acceptRequest() 9839
++++ end of loop 9849
++++ led 15 9849
++++ acceptRequest() 9849
++++ end of loop 9859
++++ acceptRequest() 9859
++++ end of loop 9869
++++ acceptRequest() 9869
++++ end of loop 9880
++++ acceptRequest() 9880
++++ end of loop 9890
++++ acceptRequest() 9890
++++ end of loop 9900
++++ acceptRequest() 9900
++++ end of loop 9910
++++ acceptRequest() 9910
++++ end of loop 9920
++++ acceptRequest() 9920
++++ end of loop 9930
++++ acceptRequest() 9930
++++ end of loop 9940
++++ acceptRequest() 9940
++++ end of loop 9950
++++ acceptRequest() 9951
++++ end of loop 9961
++++ acceptRequest() 9961
++++ end of loop 9971
++++ acceptRequest() 9971
++++ end of loop 9981
++++ acceptRequest() 9981
++++ end of loop 9991
++++ acceptRequest() 9991
++++ end of loop 10002
++++ acceptRequest() 10002
++++ end of loop 10012
++++ acceptRequest() 10012
++++ end of loop 10022
++++ acceptRequest() 10022
++++ end of loop 10032
++++ acceptRequest() 10032
++++ end of loop 10042
++++ acceptRequest() 10042
++++ end of loop 10052
++++ in scan 10052
++++ in scan after String request 10053
Transmitting
Request sent: Hello world request #1 from MeshNode_123.
Response received: Hello world response #43 from MeshNode_456.
++++ in scan defore timeOfLastScan= 10079
++++ in scan after timeOfLastScan= 10080
Transmission successful.
++++ in latestTransmissionOutcomes check 10086
end of scan 
10088
++++ end of loop 10099
++++ acceptRequest() 10099
++++ end of loop 10109
++++ led 15 10109
++++ acceptRequest() 10109
++++ end of loop 10119
++++ acceptRequest() 10119
++++ end of loop 10129
++++ acceptRequest() 10129
++++ end of loop 10139
++++ acceptRequest() 10140
++++ end of loop 10150
++++ acceptRequest() 10150
++++ end of loop 10160
++++ acceptRequest() 10160
++++ end of loop 10170
++++ acceptRequest() 10170
++++ end of loop 10180
++++ acceptRequest() 10180
++++ end of loop 10190

@RudyFiero
Copy link
Author

@aerlon I installed the current git version. I compiled with V2 Lower Memory and it is working as expected. No more resetting. Joins with a board with 1.4 and with V2.

I'm glad that it had been fixed. I tried a couple of weeks ago (with 2.5.2) and it failed then. I didn't have enough time to go through the it properly and then raise an issue. I'm on vacation now so I decided to take another crack at it.

@aerlon
Copy link
Contributor

aerlon commented Jun 18, 2019

Great!

@RudyFiero
Copy link
Author

Thank you guys for all the work you do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants