Multiple LoRa nodes

Hi Guys!
I am afraid if it is the right forum to place question.

End Node: Arduino UNO + LoRa shield v1.4
Gateway: Arduino UNO + LoRa shield v1.4 + Etrhernet shield

I am using Radiohead library to get the remote temperature sensor data. I am using LoRa module and frequency is 868 MHz.

My question is , if i have multiple remote sensors (Nodes). How my gateway can handle this? If more than one nodes try to send the data at the same time???

Thank you.

Not really.

Maybe try the Arduino forums, your more likley to get support for the point to point Arduino Radiohead library you are using in there.

But in essence, a single channel device can only receive from one node at a time.

Its not true.

I have a single channel Gateway. I am using already 7 nodes and they are working fine.
My problem is only how to avoid the collosion of data , if multiple nodes wants to send data to the gateway at the same time

1 Like

It is.

A single channel LoRa device can only receive a (valid) packet from one source at a time.

If you have 7 nodes, and you get packets from all of them, then they are transmitting at different times.

1 Like

yes, you are right. They are transmitting at different time.
But if have more than 50 nodes. its impossible to avoid the collosion.

Is there any solution i could handle my all nodes data?? I appreciate your support

There is no solution that is completly satisfactory, and it really down to how easy it is to play with that library at a low level.

But its not a TTN compatible library …

1 Like

Not really. If you are seeing frequent problems, that’s probably because your nodes are transmitting a lot more often than they should. You should also be using an actual multi-channel gateway in such a circumstance.

You question is off topic here, but parallels things that are on topic - the whole intent of this sort of network is that there are a lot of nodes in range of a real multichannel gateway (and also many other users of the same frequencies!) but on average it all works out because everyone should only be being active a tiny fraction of the time.

These aren’t you own private channels to use to the exclusion of everyone else.


Send less data; for example 5 bytes rather than 10 bytes
Send less often; for example every 30 minutes rather than every 5 minutes

Yes, but keep in mind if the asker starts using LoRaWAN or even implements their own addresses and sorta-secure checksum, that typically adds an overhead of 14 bytes, sometimes more.

5 vs 10 bytes of payload seems like a big difference, but the 19 vs 24 bytes of total air packet to move that via LoRaWAN is less of one.


Note that because of overhead it’s also better to send slightly longer packet less frequently than a shorter one more frequently. But only while the difference is marginal: something like doubling the duration duration of a packet does dramatically increase the possibility of interference.

Another thing to consider is to be sure to use an appropriate spreading factor. And if staying with a node class radio in the receiver, using a wider bandwidth might an option, too - the multi-channel gateway chips can only receive 1 500 KHz channel (vs 8 distinct 125 KHz ones), but if you don’t have a multi-channel chip anyway, checking the applicable regulations for what is allowed at 500 KHz vs 125 KHz bandwidth could be worthwhile.

Really thankful for your time.
It seems i have two possibilities to avoid the collosion of transmitted data.

  1. Bi-directional communication : It means my Gateway should send message to all nodes. then node should understand that which node should start transmitting data. But Problem with this method, i will occupy the channel for all time which is not allowed.

  2. I should generate the random delay of 6,00,000 to 12,00,000 ms. It means each node would be transmitting data in b/w 10 to 20 Minute . But drawback to this method is, for 24 Hours each node data Transmission would be different. It means if node 1 has sent 50 packets in 24 Hours, node 2 may be 33 packets.

So please suggest me way to avoid collosion. If i have even send less often, even then collosion can occure.

thank you.

TTN does not implement collision detection, and as far as I can see TTN works just fine when there are hundreads of nodes using a gateway.

I will mention it again, the library you are using is nothing to do with TTN and this is a support forum for TTN software and applications.

I will mention it again, the library you are using is nothing to do with TTN and this is a support forum for TTN software and applications.

Which Forum is the Right one? Please

Thank you

can you help me out… i want to use more than one node ( 8 to be exact to send the data ( in json ) but receiver is only picking up data from one node… can you please share your code

even with 2 nodes transmitting at 2 different times to a receiver ,receiver is receiving from one…or does not receive at all… sending data at different times is of no concern to me since i am collecting the data packets from all nodes at the rx and then combining it before sending it off to my server

Are you talking about LoRaWAN? If not this is not the right forum for your question.

Hi asifsaeed999, can you teach me how you do it?

Welcome to the TTN forum.

Questions relating to the use of non-TTN compliant gateways, are not for discussion on this forum.

You are asking someone without tagging them from a question that is over 2 years ago and is clearly showing as being off topic for this forum. So this thread will be closed. If you have a LoRaWAN question, please ask, if it’s about LoRa point to point, then this is not the forum you are looking for.

1 Like