Hi ?
I am currently testing data transfer from seven RAK11720 modules to a RAK5146 gateway. Unfortunately, I have encountered a blockage problem with the RAK5146 gateway.
The settings are as follows:
LoRaWAN region: AS923
Data is being sent to the gateway using the api.lorawan.send() function.
Could you please provide assistance or guidance on how to resolve this issue?
The problem I’m facing is that I can’t get data from 7 devices at the same time.
For example, sometimes 1 or 2 devices lose data.
I will show you the part of the code written on rak11720
while (Serial.available() > 0) {
char receivedChar = (char)Serial.read();
serialDataBuffer += receivedChar;
if (receivedChar == '\n') {
String data = serialDataBuffer;
int data_len = snprintf((char*)collected_data, MAX_PAYLOAD_SIZE, "%s", data.c_str());
if (api.lorawan.send(data_len, collected_data, 2)) {
Serial1.println("Sending is requested");
} else {
Serial1.println("Sending failed");
}
serialDataBuffer = "";
break;
}
}
Each of the 7 devices has the same part code for sending to the gateway.
api.lorawan.send(data_len, collected_data, 2)
Do I have to change the port number of each device?
api.lorawan.send(data_len, collected_data, 3)
api.lorawan.send(data_len, collected_data, 4)…etc
AS923 is using 8 different frequencies, your gateway can listen to 8 different frequencies.
The LoRaWAN stack in the RAK11720 selects one of these 8 frequencies randomly, it could be very well that multiple devices choose the same frequency.
There is one option, but it will add latency to your “synchronized” transmission from 7 devices. If you enable Confirmed Packet Mode AT+CFM=1 or api.lorawan.cfm.set(1); the device will resend the message if it didn’t receive an ACK from the LoRaWAN server.
LoRaWAN protocol does not guarantee that the transmission of a data packet is always successful. Specially in your case where 7 devices are sending a data packet at the same time, transmission collisions can (and WILL) happen.
I made a band set on 7 devices of RAK11720 as follows.
Does that mean that 7 devices are randomly selecting one of the 8 channels to transmit data?
if (!api.lorawan.band.set(8)) {
Serial1.printf(“LoRaWan OTAA - set band is incorrect! \r\n”);
return;
}
but my 7 devices are not syncronized.
In general, how many unsynchronized device data can lorawan gateway receive at most?
api.lorawan.band.set(8) is setting the LoRaWAN region, you cannot change this, it has to be AS923 for your application.
Each band == LoRaWAN region has defined a set of 8 or more frequencies that a device is using to send and receive data.
The device selects randomly one of these frequencies.
You cannot choose which frequency is used when sending a packet. This is done by the LoRaWAN stack.
As far as I understand, I do not need to make additional settings on the nodes and choose one of the 8 channels at random.
I analyzed the data received on the application server, and I heard data only on channels 6 and 7. Is there a blockage due to this? What should I do to fix the blockage? Is additional configuration required on the gateway?
Data information from the node on the application server