I am developing environmental sensor devices for smart city projects in Vietnam, with a scale of approximately 200 end nodes within a 3 square kilometer area. I am using the RAK3172 chip for these devices.
To send a “request data update” downlink message to all devices, I am implementing multicast groups via ChirpStack. However, I am encountering an issue with the device responses. It appears there is a collision and contention among the devices during their uplink transmissions on the same uplink channels. Consequently, the ChirpStack server is unable to receive data responses from most of the end nodes. Only about 10% of the end nodes manage to respond and return data, and these responses are only occurring on two frequency channels.
I am using the RAK7248 gateway.
Could you please advise on this situation?
Is there a mechanism to maximize the number of uplink channels enabled simultaneously?
What would be the best organizational approach for this scenario to ensure reliable data reception from all end nodes?
It is not possible to have simultaneous uplink on the same channel and at the same spreading factor. Also, you should be able to use your up to 8 channels for your AS923-2 band (unless Vietnamese regulations only limits you to two).
I am not sure how you come up on the idea that it is cause by uplink collisions but in any case it sounded like you only have 2 default channels active on your Chirpstack.
Here’s a toml file that you can have a look where other 6 channels are enabled. The gateway must have these channels enabled as well. Take note that this is for AS923-3 which you can adjust for AS923-2.
Okay, I have now enabled all 8 channels on ChirpStack.
Just to provide more context to help you understand my situation better: due to the large size of the uplink packets from the end nodes, I am limited to using only 3 DRs. Is it correct to understand that DR (Data Rate) is analogous to Spreading Factor in this context?
Regarding your statement: ‘It is not possible to have simultaneous uplink on the same channel and at the same spreading factor,’ I understand this principle.
My understanding of the tunnel traffic is that each Data Rate (DR) operates independently across the available channels. Is this correct?
Therefore, if I have 8 channels enabled and am utilizing 3 DRs, does this mean I effectively have a total of 8 channels * 3 DRs = 24 ‘tunnel uplinks’ available?
In theory, would these 24 ‘tunnel uplinks’ allow the gateway to receive up to 24 simultaneous packets from 24 different end nodes at the same time, transmitting data back to ChirpStack?
Is my understanding of this correct? Your support in clarifying this would be greatly appreciated. Thank you.
Why do you want to request a “date update” and not allow each node to send data updates autonomously every 10 min or so?
Do you want a synchronous network?
Only 8 channels for uplinks. But bear in mind this is shared infrastructure, anyone can send on any of these channels.
The LNS will also look at the ‘best channels’ and assign the node to use that channel.
+/ Let me explain my context in more detail so you can understand better: Within a Smart City area, there are various types of sensors. I am using Multicast Groups to categorize these sensor types into different groups for easier control and monitoring. The process works as follows: my back-end system automatically pushes a ‘request data update’ packet to a specific group at random times throughout the day. Upon receiving this, the end nodes within that group will automatically update their data via the uplink.
Is this concept similar to the definition of a synchronous network that you mentioned?
+/ Regarding your statement: ‘Only 8 channels for uplinks. But bear in mind this is shared infrastructure, anyone can send on any of these channels,’ my understanding of this is: does the gateway only have 8 ‘uplink tunnels’? In other words, if I have 100 devices, at the exact same moment (e.g., 00:00:00), my system can only receive uplink packets from 8 devices. The remaining 92 devices will not be able to uplink because the 8 tunnels are busy. They would have to wait until a tunnel finishes transmitting an uplink packet (e.g., at 00:00:01) before the next 8 devices can transmit.
100 devices at the same time with 8 channels and 3 DR will only allow you in theory to have 24 simultaneous connections. The DR used will also have different timing before they finish.
It will be best if you can randomly configured them with certain grouping.
In case your application will really need 100 simultaneous connections, I do not think LoRaWAN protocol can handle it.
Although LoRaWAN is designed for scale, it is not designed for frequent data uplinks. This is usually limited by duty cycle (in Europe) and dwell time (in US). This makes the transmission only legally allowable in minute interval. This way, more devices can use the airware. However, in some countries, there is no duty cycle or dwell time limits. Just like in my country, Philippines, only TX power has limit - no duty cycle and dwell time.
If you allow each node to send it’s date at intervals, LoRaWAN will be able to handle 100 nodes in a area, even much more (you need to observe the duty cycle as well)
If you want a ‘synchronous’ network via RF with a 100 nodes, I am not aware of any technology that can support that.
You mentioned: ‘100 devices at the same time with 8 channels and 3 DR will only allow you in theory to have 24 simultaneous connections. The DR used will also have different timing before they finish.’
So, based on this, in my scenario, it’s not possible to transmit 3 UPLINK packets from 3 different devices at the exact same time simply by utilizing different DRs.
Instead, the successful reception of UPLINK data from 3 devices would likely happen because they are located at different distances (potentially leading to the use of different DRs for better signal) and, crucially, these transmissions would occur at slightly different instances in time, rather than being perfectly simultaneous.
Hey @CarloWan, if there are 8 end-device uplinks happening at the exact same time (00:00:00), do you think all 8 packets can successfully uplink, or do they need to be spaced out in the time frame like:
I haven’t tried that kind of test. In my opinion, it will work as long as 8 channels are enabled. If you are using small Spreading Factor, the airwave will be used in milliseconds. If you max out the spreading factor and also max out the payload, then maybe there can be collision (in case two or more devices use the same frequency) since it will take more than a second for the payload to be transmitted.