How do multiple wireless devices avoid communication collision

Thread Starter

sairfan1

Joined May 24, 2012
103
I try learning through youtube and other resources for example WiFi works on 2.4Ghz actually there are other 8 bands too (some other frequencies next/before 2.4Ghz) so different devices use those different bands/frequencies to communicate at same time, for sure on receiving end we have 8 listeners, listening on those 8 channels. But still looks like there is a lot hidden, for example around my home at least 24 wifi gateways are installed that i can see while looking for available networks, that makes sense that those are locked and have keys to communicate with on related devices but they have only those 8 channels to communicate then how come they all can communicate at same time, at my home only 5/6 devices are continuously working, how do they share those channels.

Other than wifi how do other RF modules (2.4Ghz, 433Mhz etc) can work simultaneously and avoid collision, I assume just like wifi they must have 8/12 channels to work, but when I see we have lots of devices working like security systems, door sensors and other monitoring sensors, how do they manage communication collisions.

Even if we look at LoRa, its gateway also have 8 channels to communicate with nodes, by reducing on air time we can manage time for other devices but how can we avoid collision if timer based devices accidently transmit at same time?

My question is not specific to wifi, I generally want to know if timer based receiver end has no control when to send data how can we avoid communication collisions or if there are some methods used, what are those?

Edit: updated spelling mistake
 
Last edited:

Papabravo

Joined Feb 24, 2006
21,159
I don't think you mean collusion, which means "getting together and cooperating". I think you meant collision(s), which is where one RF signal interferes with another. Collisions do not occur if there are two transmitters on different frequencies. They also may not occur when two transmitters are on the same frequency, but the modulation technique allows frequency sharing, like with spread spectrum or PSK (Phase Shift Keying).
 

Papabravo

Joined Feb 24, 2006
21,159
Air Traffic Control still uses AM modulation because even if two transmitters interfere, the closer one may still be intelligible. You can't do that with FM.
 

Thread Starter

sairfan1

Joined May 24, 2012
103
Thanks for correcting me, I updated my question.

Collisions do not occur if there are two transmitters on different frequencies.
I understand this part from recent learnings

They also may not occur when two transmitters are on the same frequency
I want to learn how come, like if I'm assuming FSK modulation while using simple transceiver like NRF24L1, 433Mhz, CC1100 etc, how can we avoid collisions while using FSK at same frequency

but the modulation technique allows frequency sharing, like with spread spectrum or PSK (Phase Shift Keying).
I have a little idea about PSK but I will learn how PSK works, I believe not too many devices can communicate at same time using PSK that is because 4 phases can be used at same frequency. like I'm talking about 50 or more nodes, BTW what modules you think I can use for PSK test cases.
 
Last edited:

mar10

Joined Mar 23, 2019
69
Mobile networks, where each device is a specific subscriber, use a table they transmit to tell each device when they are allowed to send. This is very evolved over the last 30 years, so the details are worth thousands of pages of specifications. See 3gpp.org e.g.
But even these systems have a small bootstrap section for a subscriber to log on and report its identity. These log-on techniques are the same as wifi etc. as explained above with collision detection.
PS. Theoretically one does not call a mobile technology wireless. The difference is usually the much greater range and mobility which would break a wireless protocol.
 

Thread Starter

sairfan1

Joined May 24, 2012
103
I'm particularly working on simple RF based modules like NRF24L and some other related ones. Please refer to attached image what I want to do is that I have several sensor nodes, they are battery operated and based on timer they wakeup and send data and then again stay in sleep mode for next 90 seconds. Because its based on timer they wakeup anytime and send data that means I have no idea how many devices will be sending data simultaneously, I take worst case example if there are 12 nodes i assume all of them are sending data at same time, (if i have 50 sensor i assume all of them sending data at same time)

Now even if I put a unique key on each sending node, I still have limited frequency channels available to transmit and receive data, I have no idea what kind of modules I can use to deal with such scenario.

Even if I look at LoRa it shares 8 channels, if I have 50 or say 100 nodes based on timer they wakeup transmit data and get back to sleep, it does not look possible.

Can someone please help on this, what technology or method I need.
 

Attachments

mar10

Joined Mar 23, 2019
69
Most standards like LoraWan, Wifi etc solve the issue of an actual collision. What you should do is make the sleep times random, so that the amount of collision is small. So, instead of sleep 90s sharp, make each node sleep 90s +- 5s.
Even if all reset at the same time, quite soon they will all be out of sync.
 

Thread Starter

sairfan1

Joined May 24, 2012
103
Even if all reset at the same time, quite soon they will all be out of sync.
Yes that's what will happen and it bring me to a situation where we can't estimate how many devices are transmitting at same time.

Now its been more than 8 months I'm trying to find some solution to this problem, I built ESP Now based sender/receiver and did some experiments but does not look like its gona work.

I learned LoRa installed gateway and nodes, lora is quite strong in this regard but specially when we think of even 50 nodes it looks hard that it will be able to send data successfully, I'm aiming 100 or more sensor nodes.

other RF modules like NRF24, CC1100 looks even harder.
 

dcbingaman

Joined Jun 30, 2021
1,065
In situations where there is one master that initiates a communication with multiple 'slaves', each slave has an address, only the one with the specified address responds.
 

Thread Starter

sairfan1

Joined May 24, 2012
103
In situations where there is one master that initiates a communication with multiple 'slaves', each slave has an address, only the one with the specified address responds.
Problem is that my sensor nodes are battery operated they can't stay alive and wait for signal to transmit or am I misunderstood above example as you said?

Is there something like server node sends signal that wakes up matching node and rest of all stay in sleep mode?
 

mar10

Joined Mar 23, 2019
69
I think you are looking at it the wrong way. You should not avoid collisions, you should know how to survive them (while avoiding them a bit). But remember that there are other devices not owned by you that will transmit regardless of your ideas whenever they feel like it.

So, having said that, within Lora, share the experience you have so far in actually designing and testing something.
If however you did not design something yet and all you have is "the fear it will not work", then start with a design and we have something to work with.
Same can apply to ESP-NOW.
 

Thread Starter

sairfan1

Joined May 24, 2012
103
So, having said that, within Lora, share the experience you have so far in actually designing and testing something.
If however you did not design something yet and all you have is "the fear it will not work", then start with a design and we have something to work with.
Same can apply to ESP-NOW.
I believe I'm in between, I designed my own PCB for ESP Now nodes and I was able communicate with receiver, I was also able to send data through LoRa Radio Node v1.0 using few nodes, I also setup TTN LoRaWAN gateway. I bought different lora modules to understand node setup.

for both projects now i was going to design PCBs for massive send and receive test while analyzing design challenges looking for solutions I came across this scenario that how will I handle the collisions, its all based on what I learned about how communication happens between sender and receiver and I did not see anything related to avoiding/handling such situations, I stopped at this point with thought that i may need to learn a little bit further so that if there is anything i should consider before designing and before ordering parts and PCBs.

If you think i should first setup massive nodes and then get back to this post that also workable, just i was not confident if its gonna work or if its a right approach to go further without enough knowledge.
 

Attachments

mar10

Joined Mar 23, 2019
69
OK, that looks nice!

I would recommend massive setup testing until you feel right about the approach.
Why do you not make a small setup that is creating collisions on purpose? And then make a recovery/retry mechanism to survive?
Then you still work with a manageable setup but learn the stuff that in the end cannot be avoided 100%.

This experiment would also allow you to share details of scenarios where the collision recovery does not work and we can help find out why not...

And for the record, you are designing something rather big, so it is normal that it will take blood sweat and tears... don't give up!
 

Thread Starter

sairfan1

Joined May 24, 2012
103
I would recommend massive setup testing until you feel right about the approach.
Why do you not make a small setup that is creating collisions on purpose?
That's perfect approach, it will greatly help to understand the problem. Sounds like a plan, this is the way to go.

And then make a recovery/retry mechanism to survive?
Sensor nodes are battery operated I'm looking for something with minimum active time.

And for the record, you are designing something rather big, so it is normal that it will take blood sweat and tears... don't give up!
Thanks for your words, it gave me energy, I'll print this line and put somewhere in front of me in my lab. I'll get back with setup and outcome of initial tests.
 
Top