RAK7289CV2 Missing Downlinks when communicatiing with AWS IoT Core LNS

Hello developers,

In my project, we are currently using “RAK7289CV2 WisGate Edge Pro” gateway for sending data from our end device featuring STM32WL to AWS LoRaWAN Network server once every hour. We have followed the neccesary docs and configured the gateway for EU868 and we are able to successfully see our gateway online on AWS dashboard.

We have also configured our end device in to work in Class A mode and default EU868 regional parameters and are able to Join successfully and send uplink from it and monitor on AWS MQTT client as described in docs.

Now we are currently facing issue in below scenarios :

1. MSG Confirmation fail during Uplink:

When end device send uplink msg with confirmation set, AWS LNS is able to recieve msg, but no confirmation of the msg is received on the end device side which is waiting for confirmation msg before getting timeout. Now end device also some times (1/5) times is able to receive uplink msg confirmation as well. So i would like to know where could be the issue here ?

Here are the system logs when my device is not able to receive msg confirmation :

Mon Jun 24 05:59:49 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 05:59:49] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 05:59:51 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 05:59:51] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 05:59:53 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 05:59:53] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 05:59:55 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 05:59:55] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 05:59:57 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 05:59:57] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 05:59:58 2024 user.info basicstation[5743]: [SYN:INFO] MCU/SX130X drift stats: min: +4.1ppm  q50: -12.2ppm  q80: -25.6ppm  max: -37.2ppm - threshold q90: -31.1ppm

Mon Jun 24 05:59:58 2024 user.info basicstation[5743]: [SYN:INFO] Mean MCU drift vs SX130X#0: -10.7ppm
Mon Jun 24 05:59:59 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 05:59:59] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:01 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:01] "GET /diag/syslog HTTP/1.0" 200 -


Mon Jun 24 06:00:03 2024 user.info basicstation[5743]: [RAL:INFO] RX mod=LORA f=868500000 bw=0 sz=23 dr=9 00000000D07ED5B37034792B0010A30400969DAD20DAF6

Mon Jun 24 06:00:03 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-357 uplinkTqByAirtime: dr=3, timeonair=185, tm=1719208803

Mon Jun 24 06:00:03 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-359 uplinkTqByPkt: dr=3, tm=1719208803

Mon Jun 24 06:00:03 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-361 ChanBusyByAirtime: chan=7, timeonair=185, tm=1719208803

Mon Jun 24 06:00:03 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:03] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:03 2024 user.debug basicstation[5743]: [S2E:DEBU] ::1 diid=10141 [ant#0] - next TX start ahead by 4s484ms (04:00:33.253463)
Mon Jun 24 06:00:05 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:05] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:07 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:07] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:08 2024 user.debug basicstation[5743]: [S2E:VERB] ::1 diid=10141 [ant#0] - starting TX in 49ms913us: 868.5MHz 16.0dBm ant#0(0) DR3 SF9/BW125 frame=20727B09E123E7950A5BEDEC..90CBF115 (33 bytes)
Mon Jun 24 06:00:08 2024 user.info basicstation[5743]: [RAL:INFO] RAL_LGW: lgw_send done: count_us=2059312891.
Mon Jun 24 06:00:08 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_down-421 downlinkTqByAirtime: dr=3, timeonair=247, tm=1719208808
Mon Jun 24 06:00:08 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_down-423 downlinkTqByPkt: dr=3, tm=1719208808
Mon Jun 24 06:00:08 2024 user.info basicstation[5743]: [S2E:INFO] TX ::1 diid=10141 [ant#0] - dntxed: 868.5MHz 16.0dBm ant#0(0) DR3 SF9/BW125 frame=20727B09E123E7950A5BEDEC..90CBF115 (33 bytes)
Mon Jun 24 06:00:08 2024 user.debug basicstation[5743]: [S2E:DEBU] Tx done diid=10141
Mon Jun 24 06:00:09 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:08] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:09 2024 user.info basicstation[5743]: [RAL:INFO] RX mod=LORA f=868100000 bw=0 sz=37 dr=9 80900A1701000100631AF827B009332BE5AFDEAED5095A7A2B8AE0D4099C0601A564BE5DFC
Mon Jun 24 06:00:09 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-357 uplinkTqByAirtime: dr=3, timeonair=246, tm=1719208809
Mon Jun 24 06:00:09 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-359 uplinkTqByPkt: dr=3, tm=1719208809
Mon Jun 24 06:00:09 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-361 ChanBusyByAirtime: chan=5, timeonair=246, tm=1719208809
Mon Jun 24 06:00:09 2024 user.debug basicstation[5743]: [S2E:VERB] ::1 diid=25203 [ant#0] 868.1MHz - no DC in band: txtime=04:00:35.149 free=04:00:57.931
Mon Jun 24 06:00:09 2024 user.debug basicstation[5743]: [S2E:VERB] ::1 diid=25203 [ant#0] - class A has no more alternate TX time
Mon Jun 24 06:00:09 2024 user.warn basicstation[5743]: [S2E:WARN] ::1 diid=25203 [ant#0] - unable to place frame
Mon Jun 24 06:00:10 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:10] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:12 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:12] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:13 2024 user.info basicstation[5743]: [RAL:INFO] RX mod=LORA f=867500000 bw=0 sz=37 dr=9 80900A1701000100631AF827B009332BE5AFDEAED5095A7A2B8AE0D4099C0601A564BE5DFC
Mon Jun 24 06:00:13 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-357 uplinkTqByAirtime: dr=3, timeonair=246, tm=1719208813
Mon Jun 24 06:00:13 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-359 uplinkTqByPkt: dr=3, tm=1719208813
Mon Jun 24 06:00:13 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-361 ChanBusyByAirtime: chan=2, timeonair=246, tm=1719208813
Mon Jun 24 06:00:14 2024 user.info basicstation[5743]: [SYN:INFO] Time sync qualities: min=611 q90=3861 max=4849 (previous q90=883)
Mon Jun 24 06:00:14 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:14] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:16 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:16] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:18 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:18] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:18 2024 user.info basicstation[5743]: [RAL:INFO] RX mod=LORA f=867100000 bw=0 sz=37 dr=10 80900A1701000100631AF827B009332BE5AFDEAED5095A7A2B8AE0D4099C0601A564BE5DFC
Mon Jun 24 06:00:18 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-357 uplinkTqByAirtime: dr=2, timeonair=452, tm=1719208818
Mon Jun 24 06:00:18 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-359 uplinkTqByPkt: dr=2, tm=1719208818
Mon Jun 24 06:00:18 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-361 ChanBusyByAirtime: chan=0, timeonair=452, tm=1719208818
Mon Jun 24 06:00:20 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:20] "GET /diag/syslog HTTP/1.0" 200 -

Logs when i am able to receive Msg confirmation:

 "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:00:58 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:00:58] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:01:00 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:01:00] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:01:01 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:01:01] "GET /diag/syslog HTTP/1.0" 200 -

Mon Jun 24 06:01:03 2024 user.info basicstation[5743]: [RAL:INFO] RX mod=LORA f=868500000 bw=0 sz=23 dr=9 00000000D07ED5B37034792B0010A3040052DB0CCB9EF3


Mon Jun 24 06:01:03 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-357 uplinkTqByAirtime: dr=3, timeonair=185, tm=1719208863

Mon Jun 24 06:01:03 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-359 uplinkTqByPkt: dr=3, tm=1719208863

Mon Jun 24 06:01:03 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-361 ChanBusyByAirtime: chan=7, timeonair=185, tm=1719208863

Mon Jun 24 06:01:03 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:01:03] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:01:03 2024 user.debug basicstation[5743]: [S2E:DEBU] ::1 diid=16738 [ant#0] - next TX start ahead by 4s378ms (04:01:33.243344)
Mon Jun 24 06:01:05 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:01:05] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:01:07 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:01:07] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:01:08 2024 user.debug basicstation[5743]: [S2E:VERB] ::1 diid=16738 [ant#0] - starting TX in 49ms901us: 868.5MHz 16.0dBm ant#0(0) DR3 SF9/BW125 frame=20FA2E71EFF88A2080401D4F..23083261 (33 bytes)
Mon Jun 24 06:01:08 2024 user.info basicstation[5743]: [RAL:INFO] RAL_LGW: lgw_send done: count_us=2119302733.
Mon Jun 24 06:01:08 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_down-421 downlinkTqByAirtime: dr=3, timeonair=247, tm=1719208868
Mon Jun 24 06:01:08 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_down-423 downlinkTqByPkt: dr=3, tm=1719208868
Mon Jun 24 06:01:08 2024 user.info basicstation[5743]: [S2E:INFO] TX ::1 diid=16738 [ant#0] - dntxed: 868.5MHz 16.0dBm ant#0(0) DR3 SF9/BW125 frame=20FA2E71EFF88A2080401D4F..23083261 (33 bytes)
Mon Jun 24 06:01:08 2024 user.debug basicstation[5743]: [S2E:DEBU] Tx done diid=16738
Mon Jun 24 06:01:09 2024 user.info basicstation[5743]: [RAL:INFO] RX mod=LORA f=867500000 bw=0 sz=37 dr=9 8004A8CF010001006353BBCD07FD795A4595D2C1D06BE7248FE8773BA90B4F4FF18EA0110A
Mon Jun 24 06:01:09 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-357 uplinkTqByAirtime: dr=3, timeonair=246, tm=1719208869
Mon Jun 24 06:01:09 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-359 uplinkTqByPkt: dr=3, tm=1719208869
Mon Jun 24 06:01:09 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_up-361 ChanBusyByAirtime: chan=2, timeonair=246, tm=1719208869
Mon Jun 24 06:01:09 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:01:09] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:01:09 2024 user.debug basicstation[5743]: [S2E:DEBU] ::1 diid=38368 [ant#0] - next TX start ahead by 202ms587us (04:01:35.139143)
Mon Jun 24 06:01:10 2024 user.debug basicstation[5743]: [S2E:VERB] ::1 diid=38368 [ant#0] - starting TX in 49ms769us: 867.5MHz 16.0dBm ant#0(0) DR3 SF9/BW125 frame=6004A8CF01A0000039005CCD (12 bytes)
Mon Jun 24 06:01:10 2024 user.info basicstation[5743]: [RAL:INFO] RAL_LGW: lgw_send done: count_us=2121198526.
Mon Jun 24 06:01:10 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_down-421 downlinkTqByAirtime: dr=3, timeonair=144, tm=1719208870
Mon Jun 24 06:01:10 2024 user.debug basicstation[5743]: [LOG:DEBU] rrd_statistic_down-423 downlinkTqByPkt: dr=3, tm=1719208870
Mon Jun 24 06:01:10 2024 user.info basicstation[5743]: [S2E:INFO] TX ::1 diid=38368 [ant#0] - dntxed: 867.5MHz 16.0dBm ant#0(0) DR3 SF9/BW125 frame=6004A8CF01A0000039005CCD (12 bytes)
Mon Jun 24 06:01:10 2024 user.debug basicstation[5743]: [S2E:DEBU] Tx done diid=38368
Mon Jun 24 06:01:10 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:01:10] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:01:12 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:01:12] "GET /diag/syslog HTTP/1.0" 200 -
Mon Jun 24 06:01:14 2024 user.info basicstation[5743]: [SYN:INFO] PPS/SX130X drift stats: min: -0.3ppm  q50: -0.7ppm  q80: -1.0ppm  max: -1.0ppm - threshold q80: -1.0ppm
Mon Jun 24 06:01:14 2024 user.info restify: 127.0.0.1 - - [24/Jun/2024 06:01:14] "GET /diag/syslog HTTP/1.0" 200 -

2. Downlink Issue in Class A mode:

Firstly for downlink communication testing purpose, we configured our end device in Class C mode. And sent downlink msg from AWS LPWAN devices and were able to recieve the payload at end devices without any issue. Now when i change the class of my end device to Class A, after sending uplink on msg confirmation, most often i am unable to recieve the downlink in the Rx window. Rx window configured is by default to Rx1Delay of 1 sec and Rx2Delay: 2sec. Here also i am able to receive downlink msg sometimes (1/4) times on successfull uplink msg confirmation.

So can anyone please help me out…