I am using lopy (I also have used Fipy with the same results) as nanogateway and I am able to upload messages from a microchip node RN2903 through the nanogateway to the loraserver (ABP join). However, I can’t receive downlink messages (either automatic ACKs responses without payload as response to confirmed uplink messages, or downlink messages with payload, or even OTAA joins), even when those downlink messages have been generated in the noetwork servers.
The problem seems to be related to the nanogateway because I have tryed with different network servers (loraserver.io and TTN) and different LANs. I have also tryed using a different gateway (multitech conduit gateway) and in that case the netwok works perfectly: I can use any server, any node, any join method, and send and receive uplink and downlink messages. The problem is when I try to use the nanogateway to handle downlink messages.
I have seen in someother posts in Pycom forums that some people have experienced sync problems with RX windows; however, in my case the downlink message never reaches the LoRa RF channel (I have confirmed this with a spectrum analyzer)…maybe if I can fix my issue I will have to face that other one in the future.
It seems that the problem is in the communication between the gateway and the network server. Logs of loraserver’s lora-gateway-bridge suggest the nanogateway can’t handle some PullACK messages:
Note: The boxed logs correspond to the transmission of a confirmed uplink message on frequency 902.3MHz, with one retransmision because the ACK is not received in the RN2903.
Following are the screen shot from the loraserver web-gui for the same experiment (the last downlink is displayed in more detail), and the corresponding jsons of the messages shown in the screen are pasted at the bottom of this message:
I would appreciate any help.
Thanks in advance.
Messages json:
[
{
“downlinkMetaData”: {
“txInfo”: {
“mac”: “30aea4fffe2a4cd0”,
“immediately”: false,
“timeSinceGPSEpoch”: “”,
“timestamp”: 1793513861,
“frequency”: 923300000,
“power”: 20,
“dataRate”: {
“modulation”: “LORA”,
“bandwidth”: 500,
“spreadFactor”: 10,
“bitrate”: 500
},
“codeRate”: “4/5”,
“iPol”: true,
“board”: 0,
“antenna”: 0
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “UnconfirmedDataDown”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07ab0470”,
“fCtrl”: {
“adr”: true,
“adrAckReq”: false,
“ack”: true,
“fPending”: false
},
“fCnt”: 19,
“fOpts”: null
},
“fPort”: null,
“frmPayload”: null
},
“mic”: “921e47d7”
}
},
{
“uplinkMetaData”: {
“rxInfo”: [
{
“mac”: “30aea4fffe2a4cd0”,
“time”: “2018-03-09T17:43:08.793467Z”,
“timeSinceGPSEpoch”: “”,
“timestamp”: 1561513861,
“rssi”: -40,
“loRaSNR”: 5,
“board”: 0,
“antenna”: 0
}
],
“txInfo”: {
“frequency”: 902300000,
“dataRate”: {
“modulation”: “LORA”,
“bandwidth”: 125,
“spreadFactor”: 10,
“bitrate”: 0
},
“codeRate”: “4/5”
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “ConfirmedDataUp”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07ab0470”,
“fCtrl”: {
“adr”: false,
“adrAckReq”: false,
“ack”: false,
“fPending”: false
},
“fCnt”: 21,
“fOpts”: null
},
“fPort”: 1,
“frmPayload”: [
{
“bytes”: “ag==”
}
]
},
“mic”: “2a0d8365”
}
},
{
“downlinkMetaData”: {
“txInfo”: {
“mac”: “30aea4fffe2a4cd0”,
“immediately”: false,
“timeSinceGPSEpoch”: “”,
“timestamp”: 1789246502,
“frequency”: 923300000,
“power”: 20,
“dataRate”: {
“modulation”: “LORA”,
“bandwidth”: 500,
“spreadFactor”: 10,
“bitrate”: 500
},
“codeRate”: “4/5”,
“iPol”: true,
“board”: 0,
“antenna”: 0
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “UnconfirmedDataDown”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07ab0470”,
“fCtrl”: {
“adr”: true,
“adrAckReq”: false,
“ack”: true,
“fPending”: false
},
“fCnt”: 18,
“fOpts”: null
},
“fPort”: null,
“frmPayload”: null
},
“mic”: “ee8c3a92”
}
},
{
“uplinkMetaData”: {
“rxInfo”: [
{
“mac”: “30aea4fffe2a4cd0”,
“time”: “2018-03-09T17:43:04.441468Z”,
“timeSinceGPSEpoch”: “”,
“timestamp”: 1557246502,
“rssi”: -40,
“loRaSNR”: 6,
“board”: 0,
“antenna”: 0
}
],
“txInfo”: {
“frequency”: 902300000,
“dataRate”: {
“modulation”: “LORA”,
“bandwidth”: 125,
“spreadFactor”: 10,
“bitrate”: 0
},
“codeRate”: “4/5”
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “ConfirmedDataUp”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07ab0470”,
“fCtrl”: {
“adr”: false,
“adrAckReq”: false,
“ack”: false,
“fPending”: false
},
“fCnt”: 21,
“fOpts”: null
},
“fPort”: 1,
“frmPayload”: [
{
“bytes”: “ag==”
}
]
},
“mic”: “2a0d8365”
}
}
]