RAK3172 - Multiple Downlinks Overwrite Buffer

Hello RAK team and community,

I am working with a RAK3172 module connected to an ESP32 host MCU via UART, using AT commands. My LoRaWAN Network Server is ChirpStack. I am experiencing an issue where the module receives multiple downlinks after a single uplink, but I am losing the data from the first downlink:

  1. I send a single uplink on FPort 2. The uplink is sent successfully.

  2. The module receives two distinct application downlinks in the RX1 window. The module correctly reports both downlinks via unsolicited +EVT:RX_1 notifications, one after the other.

  3. The internal buffer is overwritten. When I later query the received data using the AT+RECV=? command, the module only returns the payload from the second downlink. The payload from the first downlink seems to be lost.

Is this the expected behavior? Does the RAK3172 only have a buffer for a single downlink? Is there any modifications I can make to the firmware to ‘fix’ this behaviour?

Thank you for your time.

AT+RECV=? will only provide the data of the last downlink. There is no multi-buffer functionality in RUI3 for the downlinks. You will have to retrieve the data immediately after you got the +EVT:RX message.

I don’t think you get “two distinct application downlinks” in one RX1 window. If a downlink is received, the LNS signals if there are other downlinks pending and the stack on the device sends empty uplink(s) to receive the pending downlinks one by one.