RAK7289 AWS IOT Connection Issue With Heltec Automation's WiFi LoRa 32 V3 Module

Hello,

My name is Heather and I am a senior undergraduate engineering student at the University of Pittsburgh. I am working fulltime this summer for a research lab on a remote sensing project and we intend to use the RAK7289 gateway to connect our LoRa-based physical communications layer to the AWS IOT Core. I am the lead for the communications portion of this project.

The end node I am primarily working with is the HELTEC WiFi LoRa 32 V3 module, programmed through the Arduino IDE. I also have the SX1262/SX1268 LoRa HAT for Raspberry Pi and have programmed the Raspberry Pi Pico using a modified version of the library supplied by the Arm Developer Ecosystem. This has not led to better results and so I will focus on the WiFi LoRa 32 V3 module.

I have logs from:

  1. a serial monitor for the end node module showing all communication parameters of the node prior to attempting to connect and additional debug communication information about Tx and Rx frequency, timing, and data rate as shown below:
    08:10:50.053 → LoRaWAN US915 Class A start!
    08:10:50.053 →
    08:10:50.053 → +OTAA=1
    08:10:50.053 → +Class=A
    08:10:50.053 → +ADR=1
    08:10:50.053 → +IsTxConfirmed=1
    08:10:50.053 → +AppPort=443
    08:10:50.053 → +DutyCycle=10000
    08:10:50.053 → +ConfirmedNbTrials=8
    08:10:50.053 → +ChMask=00000000000000000000FF00
    08:10:50.053 → +DevEui=5643CA480000883C(For OTAA Mode)
    08:10:50.053 → +AppEui=AC1F09FFFE104A0D(For OTAA Mode)
    08:10:50.089 → +AppKey=–REDACTED–(For OTAA Mode)
    08:10:50.089 → +NwkSKey=–REDACTED–(For ABP Mode)
    08:10:50.089 → +AppSKey=–REDACTED–(For ABP Mode)
    08:10:50.089 → +DevAddr=007E6AE1(For ABP Mode)
    08:10:50.089 →
    08:10:50.089 →
    08:10:50.089 → joining…
    08:10:50.089 → TX on freq 904900000 Hz DR 3 power 20
    08:10:50.089 → LoRa MAC status is good.
    08:10:50.175 → Event : Tx Done
    08:10:55.121 → RX on freq 926300000 Hz at DR 13
    08:10:55.386 → Event : Rx Timeout
    08:10:56.165 → RX on freq 923300000 Hz at DR 8
    08:10:56.261 → Event : Rx Timeout
    08:10:57.085 → TX on freq 904300000 Hz DR 3 power 20
    08:10:57.178 → Event : Tx Done
    08:11:02.127 → RX on freq 924500000 Hz at DR 13
    08:11:02.395 → Event : Rx Timeout
    08:11:03.173 → RX on freq 923300000 Hz at DR 8
    08:11:03.245 → Event : Rx Timeout
    08:11:04.121 → TX on freq 904500000 Hz DR 3 power 20
    08:11:04.199 → Event : Tx Done

  2. RAK7289 gateway logs, in Debug mode, centered around the attempted communication as shown below:
    Wed Jun 26 12:08:02 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:02] “GET /dashboard/lora/statistics HTTP/1.0” 200 -
    Wed Jun 26 12:08:06 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:06] “GET /net/lan HTTP/1.0” 200 -
    Wed Jun 26 12:08:06 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:06] “GET /net/wan HTTP/1.0” 200 -
    Wed Jun 26 12:08:07 2024 user.debug basicstation[23794]: [LOG:DEBU] logger read datas: dutycycle
    Wed Jun 26 12:08:07 2024 user.debug basicstation[23794]: [LOG:VERB] dutycycle size: 65910
    Wed Jun 26 12:08:07 2024 user.debug basicstation[23794]: [LOG:DEBU] logger write datas size: 65910
    Wed Jun 26 12:08:07 2024 user.debug basicstation[23794]: [LOG:DEBU] close logger connection [8].
    Wed Jun 26 12:08:08 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:08] “GET /dashboard/overview HTTP/1.0” 200 -
    Wed Jun 26 12:08:15 2024 user.info basicstation[23794]: [SYN:INFO] PPS/SX130X drift stats: min: -0.5ppm q50: -0.7ppm q80: -0.8ppm max: -1.0ppm - threshold q80: -0.8ppm
    Wed Jun 26 12:08:17 2024 user.info basicstation[23794]: [SYN:INFO] Time sync qualities: min=683 q90=1475 max=48110 (previous q90=920)
    Wed Jun 26 12:08:17 2024 user.info basicstation[23794]: [SYN:INFO] MCU/SX130X drift stats: min: +0.8ppm q50: +7.7ppm q80: -32.2ppm max: +40.6ppm - threshold q90: -40.6ppm
    Wed Jun 26 12:08:17 2024 user.info basicstation[23794]: [SYN:INFO] Mean MCU drift vs SX130X#0: 2.3ppm
    Wed Jun 26 12:08:36 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:36] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:08:38 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:38] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:08:40 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:40] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:08:43 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:43] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:08:45 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:45] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:08:47 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:47] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:08:49 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:49] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:08:52 2024 user.info basicstation[23794]: [RAL:INFO] RX mod=LORA f=904500000 bw=9 sz=52 dr=9 E00BC649A4E65886C5B761C10203A8A107672250E77A08DC63E531E3515B55D21F1C81378319E38A69D7C5DDC4330008A9734A3D
    Wed Jun 26 12:08:52 2024 user.debug basicstation[23794]: [LOG:DEBU] rrd_statistic_up-357 uplinkTqByAirtime: dr=1, timeonair=328, tm=1719403732
    Wed Jun 26 12:08:52 2024 user.debug basicstation[23794]: [LOG:DEBU] rrd_statistic_up-359 uplinkTqByPkt: dr=1, tm=1719403732
    Wed Jun 26 12:08:52 2024 user.debug basicstation[23794]: [LOG:DEBU] rrd_statistic_up-361 ChanBusyByAirtime: chan=3, timeonair=328, tm=1719403732
    Wed Jun 26 12:08:52 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:52] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:08:56 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:56] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:08:58 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:08:58] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:01 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:01] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:04 2024 user.info basicstation[23794]: [SYN:INFO] MCU/SX130X drift stats: min: -1.7ppm q50: +17.2ppm q80: -40.0ppm max: +63.3ppm - threshold q90: +51.7ppm
    Wed Jun 26 12:09:04 2024 user.info basicstation[23794]: [SYN:INFO] Mean MCU drift vs SX130X#0: 3.8ppm
    Wed Jun 26 12:09:04 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:04] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:07 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:07] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:08 2024 user.info basicstation[23794]: [SYN:INFO] PPS/SX130X drift stats: min: -0.5ppm q50: -0.7ppm q80: -0.7ppm max: -1.0ppm - threshold q80: -0.7ppm
    Wed Jun 26 12:09:10 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:10] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:12 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:12] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:14 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:14] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:16 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=1648 threshold=1475
    Wed Jun 26 12:09:16 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:16] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:19 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:19] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:21 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:21] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:23 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:23] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:25 2024 user.info basicstation[23794]: [SYN:INFO] Time sync qualities: min=683 q90=997 max=1648 (previous q90=1475)
    Wed Jun 26 12:09:26 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:26] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:29 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:29] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:32 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:32] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:35 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:35] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:38 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=1547 threshold=997
    Wed Jun 26 12:09:38 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:38] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:41 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:41] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:43 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:43] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:46 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:46] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:49 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=1038 threshold=997
    Wed Jun 26 12:09:49 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:49] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:51 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=1341 threshold=997
    Wed Jun 26 12:09:51 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:51] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:54 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:54] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:55 2024 user.info basicstation[23794]: [SYN:INFO] MCU/SX130X drift stats: min: +1.5ppm q50: +23.5ppm q80: -44.9ppm max: +195.4ppm - threshold q90: -80.5ppm
    Wed Jun 26 12:09:55 2024 user.info basicstation[23794]: [SYN:INFO] Mean MCU drift vs SX130X#0: 7.5ppm
    Wed Jun 26 12:09:57 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:57] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:09:59 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:09:59] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:01 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:01] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:03 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:03] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:05 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=1235 threshold=997
    Wed Jun 26 12:10:05 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:05] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:07 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:07] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:07 2024 user.info basicstation[23794]: [SYN:INFO] PPS/SX130X drift stats: min: -0.5ppm q50: -0.7ppm q80: -1.0ppm max: -1.0ppm - threshold q80: -1.0ppm
    Wed Jun 26 12:10:10 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:10] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:13 2024 user.notice data-broker: data-broker timeout, restart it
    Wed Jun 26 12:10:13 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:13] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:16 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:16] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:19 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:19] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:21 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:21] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:22 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=1080 threshold=997
    Wed Jun 26 12:10:23 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:23] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:26 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:26] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:28 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:28] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:30 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:30] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:33 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:33] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:34 2024 user.info basicstation[23794]: [SYN:INFO] Time sync qualities: min=682 q90=1235 max=1547 (previous q90=997)
    Wed Jun 26 12:10:35 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:35] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:37 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:37] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:40 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:40] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:43 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:43] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:46 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:46] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:47 2024 user.info basicstation[23794]: [SYN:INFO] MCU/SX130X drift stats: min: +0.0ppm q50: +20.6ppm q80: +51.7ppm max: +131.1ppm - threshold q90: -86.1ppm
    Wed Jun 26 12:10:47 2024 user.info basicstation[23794]: [SYN:INFO] Mean MCU drift vs SX130X#0: 6.9ppm
    Wed Jun 26 12:10:49 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:49] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:50 2024 daemon.warn wpa_supplicant[4030]: apcli0: Undefined secondary channel: drop OBSS scan results
    Wed Jun 26 12:10:52 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:52] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:55 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:55] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:10:58 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=2086 threshold=1235
    Wed Jun 26 12:10:58 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:10:58] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:01 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:01] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:02 2024 user.info basicstation[23794]: [SYN:INFO] PPS/SX130X drift stats: min: -0.5ppm q50: -0.7ppm q80: -0.8ppm max: -1.0ppm - threshold q80: -0.8ppm
    Wed Jun 26 12:11:04 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:04] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:07 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:07] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:10 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:10] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:13 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:13] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:16 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:16] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:17 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=1262 threshold=1235
    Wed Jun 26 12:11:19 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:19] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:21 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:21] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:24 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:24] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:27 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:27] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:30 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:30] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:33 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:33] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:36 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=1473 threshold=1235
    Wed Jun 26 12:11:36 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:36] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:39 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:39] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:40 2024 user.info basicstation[23794]: [SYN:INFO] MCU/SX130X drift stats: min: -1.1ppm q50: -24.4ppm q80: +40.1ppm max: -57.2ppm - threshold q90: +46.6ppm
    Wed Jun 26 12:11:40 2024 user.info basicstation[23794]: [SYN:INFO] Mean MCU drift vs SX130X#0: 4.1ppm
    Wed Jun 26 12:11:42 2024 user.info basicstation[23794]: [SYN:INFO] Time sync qualities: min=705 q90=1262 max=2086 (previous q90=1235)
    Wed Jun 26 12:11:42 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:42] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:43 2024 user.info basicstation[23794]: [SYN:INFO] Time sync: NOW ustime=0x00099017DED0 utc=0x61BC9EAEA13D6 gpsOffset=0x4FC6BA2362400 ppsOffset=339142 syncQual=921
    Wed Jun 26 12:11:43 2024 user.info basicstation[23794]: [SYN:INFO] Time sync: MCU/SX130X#0 ustime=0x00099001C56B xtime=0xC30000244C6A0C pps_ustime=0x98FFBA67A pps_xtime=0xC3000024464B1B
    Wed Jun 26 12:11:43 2024 user.info basicstation[23794]: [SYN:INFO] Time sync: Last PPS ustime=0x00099001C56B xtime=0xC30000244C6A0C pps_ustime=0x98FFBA67A pps_xtime=0xC3000024464B1B
    Wed Jun 26 12:11:43 2024 user.info basicstation[23794]: [SYN:INFO] Time ref: Last PPS sys->UTC=12:11:42.000000 SX130X->GPS=12:12:00.000000 leaps=18s diff=0
    Wed Jun 26 12:11:45 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:45] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:48 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:48] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:49 2024 user.debug basicstation[23794]: [SYN:VERB] Time sync rejected: quality=1339 threshold=1262
    Wed Jun 26 12:11:50 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:50] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:53 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:53] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:56 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:56] “GET /diag/syslog HTTP/1.0” 200 -
    Wed Jun 26 12:11:59 2024 user.info restify: 127.0.0.1 - - [26/Jun/2024 12:11:59] “GET /diag/syslog HTTP/1.0” 200 -

  3. AWS IOT Trace Messaging, showing the Join_Request reception along with the Device Eui and a timestamp

Additonal Information:

I have confirmed that the end node is operating with the correct OTAA status and class, that the DevEui, AppEui, and AppKey match, that the channel mask is appropriately allocating the correct Tx frequencies for the end node, that the data rate and Tx power are within acceptable ranges (allowing for attenuation). I have the gateway set up as a Basics Station with a trust certificate from Starfield Services Root Certificate Authority (I have also tried the AmazonRootCA1 root certificate with nearly identical results). The gateway is showing Connected on the AWS IOT Core and the gateway is configured with the proper, associated, client certificate and key. The gateway has been updated to the most up-to-date firmware (WisGateOS_2.2.6_RAK) available here: https://downloads.rakwireless.com/#LoRa/WisGateOS2/. During start-up, however, the gateway does seem to acknowledge itself as using an SX1302 LoRa Core from Semtech, though the RAK7289 should have the SX1303. Perhaps this is a fossil that does not cause a functional difference, but it did seem unusual to me. I do have a start-up log for the gateway if that is helpful.

The gateway appears to recognize the end node and transmit the join request to AWS IOT Core. The log reports that an uplink is transmitted, though the uplink is not ever seen on the AWS side. AWS reports the join requests from the end node but there is never a join accept and no downlink is ever transmitted through the gateway. AWS does report the device as “Active” after a non-uniform amount of time attempting to connect, but there is no timestamp for, or record of, a received uplink.

I have followed the setup instructions from your documentation here: RAK7289V2/RAK7289CV2 Supported LoRa Network Servers | RAKwireless Documentation Center, but did not see any messages transmitted through the gateway until I changed the Roaming Activation and Passive Roaming parameters to “allowed” on the service profile for the LPWAN device on the AWS side. This indicates to me that there is likely an issue with the end node recognizing the gateway LNS server as its home network server and instead it may be recognizing it as a visiting network server. I am not sure why this would be.

I believe I have highlighted all aspects of the troubleshooting that has been done and my thoughts on where the root of the issue might be. I have been working on this for a few days and would greatly appreciate support in getting the connection working properly.

NOTE: I HAVE ALSO SENT AN IDENTICAL MESSAGE DIRECTLY TO RAK SUPPORT. THIS THREAD IS INTENDED TO BOTH ALLOW COMMUNITY RESPONSES AND POTENTIALLY AID OTHERS IN THE COMMUNITY WITH SIMILAR CONNECTION CHALLENGES