Go Down

Topic: RF24Mesh nRF24L01 very long range (Read 519 times) previous topic - next topic

Robin2

#15
Feb 16, 2017, 11:06 am Last Edit: Feb 16, 2017, 11:06 am by Robin2
and a shorter TimeOut 15000 rather 60000, but I am not sure to understand what it does. I thing that more this timeout is short more often the mesh is rebuit ? (not sure at all !)
I don't know the Mesh system but if your supposition is correct shortening the timeOut could worsen the situation by increasing the amount of wireless traffic and collisions. Remember that all the devices in the Mesh use the same channel and only one may talk at any one time.

I suspect the Network system is more predictable and it might be wise to get things working at that level first and only then add on the Mesh layer. (I don't mean to imply that the Mesh layer has bugs - simply that it adds complexity).

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

mic78000

New test :

I succed with 1.3km with Mesh Library between the master and one node.
In fact, I think that most of problems was due to one of my NRFL01 wich had problems.

Now all is ok.

Next try : A Mesh Network (= not only with two NRFL01) with long range but it's hard to manage :-)

Robin2

Good news.

I will be interested to hear the results of your multi-unit testing.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

SamIAm93

One thing to note with the RF24Mesh library: if the master is reset and comes back online before a node realises that it is gone(mesh.write() fails) the node will still be able to talk to the master(mesh.write() will be successful) but the master's list of connected nodes will be reset. So it will receive the message but not know the address of where it came from.

On my nodes I call mesh.renewAddress() if a write fails. On my master I make sure that every message I receive is from an address in the list by iterating through mess.addrList. If not, I reply to the node with a message telling it to renew itself on the network, which will keep the node list on the master updated.

mic78000

Thanks SamIAm93.
I have probems withs Mesh network.
your explanation help me to understand. I will try as soon as possible .... but this is the end of my holidays...

mic78000

#20
Feb 18, 2017, 07:10 am Last Edit: Feb 18, 2017, 07:37 am by mic78000
For you, first, I have to replace my old code :

Quote
if (!mesh.write(&datasReponse, 'M', sizeof(datasReponse))) {

      if ( ! mesh.checkConnection() ) {

        Serial.print("Renewing Address");
        mesh.renewAddress();
      } else {
        Serial.println("Send fail, Test OK");
      }
    } else {
      Serial.print(" Send OK: "); Serial.println(displayTimer);
     
 }
With this new code ? : 

Quote
if (!mesh.write(&datasReponse, 'M', sizeof(datasReponse))) {
     

      Serial.print("Renewing Address");
      mesh.renewAddress();

      if ( ! mesh.checkConnection() ) {


      } else {
        Serial.println("Send fail, Test OK");
      }
    } else {
      Serial.print(" Send OK: "); Serial.println(displayTimer);
     
 }

SamIAm93

The old code should work fine. What problems are you having?

mic78000

I turn on the master, I put another one for example at 70% of the maximum range (first node). I put another one farther out of range of the master but in the range of the first node. It does not connect the mesh. Sometimes it does, sometime it dosn't.


Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy