Messages are lost between the LoRa device and the gateway/LoRa server


#1

Dear All,

I would need to have your feedback about an issue on which I’m facing to.
I’m developing several IoT demo based on LoRa. I noted that some LoRa frames are lost between the device and the gateway/LoRa server. This issue occurs even if the device is located only a few meters from gateway/LoRa server.

Let me explain you:

  • My device is either NUCLEO-L152RE, NUCLEO-L073RZ, B-L072Z-LRWAN1 or PyCom.
  • My Gateway is a MultiConnect® ConduitTM AP Access Point for LoRa® Technology LoRaWAN TM to IP Border Gateway MTCAP-868-001A
  • My server comes from loraserver.io (of course!) in Class A: LoRa Gateway Bridge (packet-forwarder), LoRa Server and LoRa App Server

My application (on LoRa App Server side) sends a downlink message with a counter which will be incremented after.
My device makes an echo: it sends the same counter via an uplink message.
The frequency is every 10 seconds. However if the device doesn’t receive any downlink, it sends a specific value.
At the end, I check if the received value matches with the counter sent.

I have been surprised that after a while (much more shortly that I thought) the device doesn’t receive the donwlink message.

As I used 2 types of device (NUCLEO and Pycom), I have now some doubts about the gateway or the LoRaServer.

Did you experiment the same issue ? Is there a configuration issue ?
Is there a limitation (The end-device transmit duty-cycle should be lower than 1%) after which the gateway or the loraserver blocks the transmission?

Thanks in advance for your feedback.


#2

Did you make sure the device is sending messages on channels that are perceptible by your chosen gateway?


#3

Hello acourt,

I have made some more investigations on the subject.

It seems that sometimes downlink messages are not received in the RxWindows (Class A device).

Here is my test:

I susbcribe on the application/…/rx topic of the Mqtt broker between the Lora App server and the Application, each time a frame is received I trig a downlink by publishing on the associated tx topic:
I subscribe also on the gateway/…/rx and gateway/…/tx topics of the mqtt broker between the Lora server and the Lora GW bridge to check that downlink and uplink are correctly handled.
As far as I understand, each time I publish on application tx topic, a downlink is enqueued and the network server has to forward the downlink message at the right time.

Application topics trace samples:

2018-11-20 13:11:48,183 [14999] [spy:DEBUG] app-rx-10 :{“applicationID”:“1”,“applicationName”:“Monalisa_LAB”,“deviceName”:“lora_investigation”,“devEUI”:“1111111111111111”,“txInfo”:{“frequency”:868100000,“dr”:5},“adr”:false,“fCnt”:11,“fPort”:10,“data”:“AAg=”}
2018-11-20 13:11:48,187 [14999] [spy:DEBUG] app-tx-10 :{“confirmed”: false, “devEUI”: “1111111111111111”, “data”: “AAk=”, “fport”: 10}
2018-11-20 13:11:58,169 [14999] [spy:DEBUG] app-rx-11 :{“applicationID”:“1”,“applicationName”:“Monalisa_LAB”,“deviceName”:“lora_investigation”,“devEUI”:“1111111111111111”,“txInfo”:{“frequency”:868100000,“dr”:5},“adr”:false,“fCnt”:12,“fPort”:10,“data”:“AAk=”}
2018-11-20 13:11:58,174 [14999] [spy:DEBUG] app-tx-11 :{“confirmed”: false, “devEUI”: “1111111111111111”, “data”: “AAo=”, “fport”: 10}
2018-11-20 13:12:08,173 [14999] [spy:DEBUG] app-rx-12 :{“applicationID”:“1”,“applicationName”:“Monalisa_LAB”,“deviceName”:“lora_investigation”,“devEUI”:“1111111111111111”,“txInfo”:{“frequency”:868500000,“dr”:5},“adr”:false,“fCnt”:13,“fPort”:10,“data”:“AAo=”}
2018-11-20 13:12:08,178 [14999] [spy:DEBUG] app-tx-12 :{“confirmed”: false, “devEUI”: “1111111111111111”, “data”: “AAs=”, “fport”: 10}
2018-11-20 13:12:18,168 [14999] [spy:DEBUG] app-rx-13 :{“applicationID”:“1”,“applicationName”:“Monalisa_LAB”,“deviceName”:“lora_investigation”,“devEUI”:“1111111111111111”,“txInfo”:{“frequency”:868300000,“dr”:5},“adr”:false,“fCnt”:14,“fPort”:10,“data”:“AAs=”}
2018-11-20 13:12:18,173 [14999] [spy:DEBUG] app-tx-13 :{“confirmed”: false, “devEUI”: “1111111111111111”, “data”: “AAw=”, “fport”: 10}
2018-11-20 13:12:28,174 [14999] [spy:DEBUG] app-rx-14 :{“applicationID”:“1”,“applicationName”:“Monalisa_LAB”,“deviceName”:“lora_investigation”,“devEUI”:“1111111111111111”,“txInfo”:{“frequency”:868500000,“dr”:5},“adr”:false,“fCnt”:15,“fPort”:10,“data”:“AAw=”}
2018-11-20 13:12:28,178 [14999] [spy:DEBUG] app-tx-14 :{“confirmed”: false, “devEUI”: “1111111111111111”, “data”: “AA0=”, “fport”: 10}
2018-11-20 13:12:38,172 [14999] [spy:DEBUG] app-rx-15 :{“applicationID”:“1”,“applicationName”:“Monalisa_LAB”,“deviceName”:“lora_investigation”,“devEUI”:“1111111111111111”,“txInfo”:{“frequency”:868300000,“dr”:5},“adr”:false,“fCnt”:16,“fPort”:10,“data”:“AA0=”}
2018-11-20 13:12:38,177 [14999] [spy:DEBUG] app-tx-15 :{“confirmed”: false, “devEUI”: “1111111111111111”, “data”: “AA4=”, “fport”: 10}
2018-11-20 13:12:48,170 [14999] [spy:DEBUG] app-rx-16 :{“applicationID”:“1”,“applicationName”:“Monalisa_LAB”,“deviceName”:“lora_investigation”,“devEUI”:“1111111111111111”,“txInfo”:{“frequency”:868100000,“dr”:5},“adr”:false,“fCnt”:17,“fPort”:10,“data”:“AA4=”}
2018-11-20 13:12:48,174 [14999] [spy:DEBUG] app-tx-16 :{“confirmed”: false, “devEUI”: “1111111111111111”, “data”: “AA8=”, “fport”: 10}
2018-11-20 13:12:58,245 [14999] [spy:DEBUG] app-rx-17 :{“applicationID”:“1”,“applicationName”:“Monalisa_LAB”,“deviceName”:“lora_investigation”,“devEUI”:“1111111111111111”,“txInfo”:{“frequency”:868300000,“dr”:5},“adr”:false,“fCnt”:18,“fPort”:10,“data”:“AA8=”}
2018-11-20 13:12:58,249 [14999] [spy:DEBUG] app-tx-17 :{“confirmed”: false, “devEUI”: “1111111111111111”, “data”: “ABA=”, “fport”: 10}
2018-11-20 13:13:08,178 [14999] [spy:DEBUG] app-rx-18 :{“applicationID”:“1”,“applicationName”:“Monalisa_LAB”,“deviceName”:“lora_investigation”,“devEUI”:“1111111111111111”,“txInfo”:{“frequency”:868500000,“dr”:5},“adr”:false,“fCnt”:19,“fPort”:10,“data”:“ABA=”}
2018-11-20 13:13:08,182 [14999] [spy:DEBUG] app-tx-18 :{“confirmed”: false, “devEUI”: “1111111111111111”, “data”: “ABE=”, “fport”: 10}

gateway topics trace samples:

2018-11-20 13:11:47,939 [15004] [spy:DEBUG] gw-rx-11 :{“rxInfo”:{“mac”:“0080000000011b11”,“timestamp”:292418355,“frequency”:868100000,“channel”:0,“rfChain”:1,“crcStatus”:1,“codeRate”:“4/5”,“rssi”:-55,“loRaSNR”:8.8,“size”:15,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“board”:0,“antenna”:0},“phyPayload”:“QBEREREACwAK39iwvH9X”}
2018-11-20 13:11:48,272 [15004] [spy:DEBUG] gw-tx-10 :{“token”:61068,“txInfo”:{“mac”:“0080000000011b11”,“immediately”:false,“timestamp”:293418355,“frequency”:868100000,“power”:14,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“codeRate”:“4/5”,“iPol”:true,“board”:0,“antenna”:0},“phyPayload”:“YBERERGAYyIKiOz2sELq”}
2018-11-20 13:11:57,932 [15004] [spy:DEBUG] gw-rx-12 :{“rxInfo”:{“mac”:“0080000000011b11”,“timestamp”:302417779,“frequency”:868100000,“channel”:0,“rfChain”:1,“crcStatus”:1,“codeRate”:“4/5”,“rssi”:-51,“loRaSNR”:9.5,“size”:15,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“board”:0,“antenna”:0},“phyPayload”:“QBEREREADAAKrDq2XtOc”}
2018-11-20 13:11:58,265 [15004] [spy:DEBUG] gw-tx-11 :{“token”:33079,“txInfo”:{“mac”:“0080000000011b11”,“immediately”:false,“timestamp”:303417779,“frequency”:868100000,“power”:14,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“codeRate”:“4/5”,“iPol”:true,“board”:0,“antenna”:0},“phyPayload”:“YBERERGAZCIKEha4qwjP”}
2018-11-20 13:12:07,927 [15004] [spy:DEBUG] gw-rx-13 :{“rxInfo”:{“mac”:“0080000000011b11”,“timestamp”:312417195,“frequency”:868500000,“channel”:2,“rfChain”:1,“crcStatus”:1,“codeRate”:“4/5”,“rssi”:-50,“loRaSNR”:8,“size”:15,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“board”:0,“antenna”:0},“phyPayload”:“QBEREREADQAKOzXWc/HT”}
2018-11-20 13:12:08,264 [15004] [spy:DEBUG] gw-tx-12 :{“token”:22460,“txInfo”:{“mac”:“0080000000011b11”,“immediately”:false,“timestamp”:313417195,“frequency”:868500000,“power”:14,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“codeRate”:“4/5”,“iPol”:true,“board”:0,“antenna”:0},“phyPayload”:“YBERERGAZSIKd7/4aAES”}
2018-11-20 13:12:17,929 [15004] [spy:DEBUG] gw-rx-14 :{“rxInfo”:{“mac”:“0080000000011b11”,“timestamp”:322416643,“frequency”:868300000,“channel”:1,“rfChain”:1,“crcStatus”:1,“codeRate”:“4/5”,“rssi”:-51,“loRaSNR”:9.2,“size”:15,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“board”:0,“antenna”:0},“phyPayload”:“QBEREREADgAKkCZbYjrr”}
2018-11-20 13:12:18,262 [15004] [spy:DEBUG] gw-tx-13 :{“token”:17255,“txInfo”:{“mac”:“0080000000011b11”,“immediately”:false,“timestamp”:323416643,“frequency”:868300000,“power”:14,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“codeRate”:“4/5”,“iPol”:true,“board”:0,“antenna”:0},“phyPayload”:“YBERERGAZiIKOQxDEmIb”}
2018-11-20 13:12:27,928 [15004] [spy:DEBUG] gw-rx-15 :{“rxInfo”:{“mac”:“0080000000011b11”,“timestamp”:332416051,“frequency”:868500000,“channel”:2,“rfChain”:1,“crcStatus”:1,“codeRate”:“4/5”,“rssi”:-53,“loRaSNR”:7.5,“size”:15,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“board”:0,“antenna”:0},“phyPayload”:“QBEREREADwAKR0mm2E4b”}
2018-11-20 13:12:28,270 [15004] [spy:DEBUG] gw-tx-14 :{“token”:22810,“txInfo”:{“mac”:“0080000000011b11”,“immediately”:false,“timestamp”:333416051,“frequency”:868500000,“power”:14,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“codeRate”:“4/5”,“iPol”:true,“board”:0,“antenna”:0},“phyPayload”:“YBERERGAZyIK2k2cs5/a”}
2018-11-20 13:12:37,930 [15004] [spy:DEBUG] gw-rx-16 :{“rxInfo”:{“mac”:“0080000000011b11”,“timestamp”:342415491,“frequency”:868300000,“channel”:1,“rfChain”:1,“crcStatus”:1,“codeRate”:“4/5”,“rssi”:-53,“loRaSNR”:10,“size”:15,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“board”:0,“antenna”:0},“phyPayload”:“QBEREREAEAAKBS0+9xrG”}
2018-11-20 13:12:38,265 [15004] [spy:DEBUG] gw-tx-15 :{“token”:64571,“txInfo”:{“mac”:“0080000000011b11”,“immediately”:false,“timestamp”:343415491,“frequency”:868300000,“power”:14,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“codeRate”:“4/5”,“iPol”:true,“board”:0,“antenna”:0},“phyPayload”:“YBERERGAaCIKVBPiBhbr”}
2018-11-20 13:12:47,931 [15004] [spy:DEBUG] gw-rx-17 :{“rxInfo”:{“mac”:“0080000000011b11”,“timestamp”:352414915,“frequency”:868100000,“channel”:0,“rfChain”:1,“crcStatus”:1,“codeRate”:“4/5”,“rssi”:-51,“loRaSNR”:9.8,“size”:15,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“board”:0,“antenna”:0},“phyPayload”:“QBEREREAEQAKd12JZUbh”}
2018-11-20 13:12:48,267 [15004] [spy:DEBUG] gw-tx-16 :{“token”:61893,“txInfo”:{“mac”:“0080000000011b11”,“immediately”:false,“timestamp”:353414915,“frequency”:868100000,“power”:14,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“codeRate”:“4/5”,“iPol”:true,“board”:0,“antenna”:0},“phyPayload”:“YBERERGAaSIKSUnU4v3p”}
2018-11-20 13:12:57,927 [15004] [spy:DEBUG] gw-rx-18 :{“rxInfo”:{“mac”:“0080000000011b11”,“timestamp”:362414347,“frequency”:868300000,“channel”:1,“rfChain”:1,“crcStatus”:1,“codeRate”:“4/5”,“rssi”:-53,“loRaSNR”:9.8,“size”:15,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“board”:0,“antenna”:0},“phyPayload”:“QBEREREAEgAKEWaoZsIP”}
2018-11-20 13:13:00,101 [15004] [spy:DEBUG] gw-tx-17 :{“token”:51871,“txInfo”:{“mac”:“0080000000011b11”,“immediately”:true,“frequency”:869525000,“power”:14,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:12,“bandwidth”:125},“codeRate”:“4/5”,“iPol”:true,“board”:0,“antenna”:0},“phyPayload”:“YBERERGAaiIK50dv/X8P”}
2018-11-20 13:13:07,929 [15004] [spy:DEBUG] gw-rx-19 :{“rxInfo”:{“mac”:“0080000000011b11”,“timestamp”:372413755,“frequency”:868500000,“channel”:2,“rfChain”:1,“crcStatus”:1,“codeRate”:“4/5”,“rssi”:-59,“loRaSNR”:7.2,“size”:15,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“board”:0,“antenna”:0},“phyPayload”:“QBEREREAEwAKiBwkXbJJ”}
2018-11-20 13:13:08,267 [15004] [spy:DEBUG] gw-tx-18 :{“token”:60405,“txInfo”:{“mac”:“0080000000011b11”,“immediately”:false,“timestamp”:373413755,“frequency”:868500000,“power”:14,“dataRate”:{“modulation”:“LORA”,“spreadFactor”:7,“bandwidth”:125},“codeRate”:“4/5”,“iPol”:true,“board”:0,“antenna”:0},“phyPayload”:“YBERERGAayIK1jGZheBB”}

Normally, the downlink frame is logged (on gateway topic side) in less than 400ms after the uplink.
Sometimes, we have a strange gap, for example between gw-rx-18, and gw-tx-17 with more than 2 seconds.
It could explain why the Rx windows on my device are missed to catch the downlink.

Is there an explanation for such delay on server side?


#4

Hello @brocaar, any idea on this delay on server side ?


#5

This indeed could be a bug. The problem seems pretty easy to replicate. Try using another gateway to see if the issue can be replicated with a kerlink or something. If this happens with a kerlink as well, I would file a bug report on the github.