Downlink Issue in Gateway Mesh Setup with ChirpStack - Uplink Working but No Downlink

Hi ChirpStack community,

I’m currently working on a gateway mesh setup using two Raspberry Pi 4 devices as a border gateway and a relay gateway. The setup is for the AS923 region, and I have recompiled the ChirpStack Gateway OS with the correct AS923 configuration.

The mesh uplink works perfectly, and my end device can send data through the relay to the border gateway, which then forwards it to the network server. However, I am encountering an issue with the downlink.

The system log shows that the downlink is being enqueued at the border gateway, but my end device does not receive the downlink. Below is a snippet from the system log:

Mon Sep 23 09:15:41 2024 user.info chirpstack-concentratord-sx1302[2351]: Frame received, uplink_id: 432133254, count_us: 3879112577, freq: 923400000, bw: 125000, mod: LoRa, dr: SF10, ftime_received: false, ftime_ns: 0
Mon Sep 23 09:15:41 2024 user.info chirpstack-gateway-mesh[4920]: Mesh frame received - [uplink_id: 432133254, freq: 923400000, rssi: -10, snr: 10.25, mod: [LORA - sf: 10, bw: 125000]]
Mon Sep 23 09:15:41 2024 user.info chirpstack-gateway-mesh[4920]: Unwrapping relayed uplink, uplink_id: 432133254, mesh_packet: [Uplink hop_count: 1, uplink_id: 81, relay_id: ff1e751a, mic: 0d1350ad]
Mon Sep 23 09:15:41 2024 user.info chirpstack-gateway-mesh[4920]: Sending uplink event - [uplink_id: 432133254, freq: 924400000, rssi: -41, snr: 13, mod: [LORA - sf: 7, bw: 125000]]
Mon Sep 23 09:15:41 2024 user.info chirpstack-mqtt-forwarder[5154]: Received uplink frame, uplink_id: 432133254
Mon Sep 23 09:15:41 2024 user.info chirpstack-mqtt-forwarder[5154]: Sending uplink event, uplink_id: 432133254, topic: as923/gateway/0016c001ff1e751d/event/up
Mon Sep 23 09:15:41 2024 daemon.warn dnsmasq-dhcp[1]: no address range available for DHCP request via br-lan
Mon Sep 23 09:15:41 2024 user.info chirpstack-mqtt-forwarder[5154]: Received message, topic: as923/gateway/0016c001ff1e751d/command/down, qos: AtMostOnce
Mon Sep 23 09:15:41 2024 user.info chirpstack-mqtt-forwarder[5154]: Received downlink command, downlink_id: 738518276, topic: as923/gateway/0016c001ff1e751d/command/down
Mon Sep 23 09:15:41 2024 user.info chirpstack-mqtt-forwarder[5154]: Sending downlink frame, downlink_id: 738518276
Mon Sep 23 09:15:41 2024 user.info chirpstack-gateway-mesh[4920]: Downlink command received - [downlink_id: 738518276 - [freq: 924400000, power: 16, mod: [LORA - sf: 7, bw: 125000], timing: [DELAY: 1], [freq: 923200000, power: 16, mod: [LORA - sf: 10, bw: 125000], timing: [DELAY: 2]]
Mon Sep 23 09:15:41 2024 user.info chirpstack-gateway-mesh[4920]: Sending downlink frame as relayed downlink, downlink_id: 738518276, mesh_packet: [Downlink hop_count: 1, uplink_id: 81, relay_id: ff1e751a, mic: c44d2d68]
Mon Sep 23 09:15:41 2024 user.info chirpstack-gateway-mesh[4920]: Sending mesh frame - [downlink_id: 738518276 - [freq: 924800000, power: 20, mod: [LORA - sf: 10, bw: 125000], timing: [IMMEDIATELY]]]
Mon Sep 23 09:15:41 2024 user.info chirpstack-concentratord-sx1302[2351]: Enqueueing immediate packet, downlink_id: 738518276, current_counter_us: 3879457646
Mon Sep 23 09:15:41 2024 user.info chirpstack-gateway-mesh[4920]: Enqueue acknowledged, downlink_id: 738518276
Mon Sep 23 09:15:41 2024 user.info chirpstack-mqtt-forwarder[5154]: Received ack, items: ["OK", "IGNORED"], downlink_id: 738518276
Mon Sep 23 09:15:41 2024 user.info chirpstack-mqtt-forwarder[5154]: Sending ack event, downlink_id: 738518276, topic: as923/gateway/0016c001ff1e751d/event/ack

1 Like

When using the Gateway Mesh, you might need to increase your RX1 delay configuration. If not, there might not be enough roundtrip time for the uplink / downlink.

1 Like

Hi brocaar,

Thanks for your reply! I updated the RX1 delay for both the Relay and Border gateways, and the downlink is now working as expected. However, I’ve noticed that the optimal RX1 delay value varies depending on the environment where the gateway is deployed. For instance, during testing in a rural plantation area, I had to adjust the RX1 delay multiple times to achieve stable performance.

Is there a systematic way to calculate or estimate the ideal RX1 delay value based on the gateway’s surroundings, such as distance, network latency, or other factors?

The main factors of the latency added by the Gateway Mesh are:

  • The number of hops (because each hop means first receive and then re-transmit)
  • The data-rate configured between Border <> Relay gateways (higher data-date means less airtime)

The distance between Border and Relay gateways should not really matter.

Hi there,

I’m in the same situation but I did not found where to adjust the RX1 Delay on both gateway configuration.
I have seen this in device profile but it does not have any effects.

According to my logs, I thought that the relay gateway received the downlink frame, but the mesh process did not log an Unwrapping relayed downlink message.

Log from the border gateway:

Thu Feb 13 21:22:26 2025 user.info chirpstack-gateway-mesh[2272]: Mesh frame received - [uplink_id: 1969960945, freq: 868100000, rssi: -70, snr: 8.75, mod: [LORA - sf: 7, bw: 125000]]
Thu Feb 13 21:22:26 2025 user.info chirpstack-gateway-mesh[2272]: Unwrapping relayed uplink, uplink_id: 1969960945, mesh_packet: [Uplink hop_count: 1, uplink_id: 43, relay_id: f103c828, mic: d131b883]
Thu Feb 13 21:22:26 2025 user.info chirpstack-gateway-mesh[2272]: Sending uplink event - [uplink_id: 1969960945, freq: 868500000, rssi: -33, snr: 10, mod: [LORA - sf: 7, bw: 125000]]
Thu Feb 13 21:22:27 2025 user.info chirpstack-gateway-mesh[2272]: Downlink command received - [downlink_id: 3179816200 - [freq: 868500000, power: 16, mod: [LORA - sf: 7, bw: 125000], timing: [DELAY: 5], [freq: 869525000, power: 29, mod: [LORA - sf: 12, bw: 125000], timing: [DELAY: 6]]
Thu Feb 13 21:22:27 2025 user.info chirpstack-gateway-mesh[2272]: Sending downlink frame as relayed downlink, downlink_id: 3179816200, mesh_packet: [Downlink hop_count: 1, uplink_id: 43, relay_id: f103c828, mic: fb70e6ef]
Thu Feb 13 21:22:27 2025 user.info chirpstack-gateway-mesh[2272]: Sending mesh frame - [downlink_id: 3179816200 - [freq: 868100000, power: 16, mod: [LORA - sf: 7, bw: 125000], timing: [IMMEDIATELY]]]
Thu Feb 13 21:22:27 2025 user.info chirpstack-gateway-mesh[2272]: Enqueue acknowledged, downlink_id: 3179816200

Logs from the relay gateway

Thu Feb 13 21:22:25 2025 user.info chirpstack-gateway-mesh[3035]: Frame received - [uplink_id: 64488909, freq: 868500000, rssi: -33, snr: 10, mod: [LORA - sf: 7, bw: 125000]]
Thu Feb 13 21:22:25 2025 user.info chirpstack-gateway-mesh[3035]: Relaying uplink LoRa frame, uplink_id: 64488909, downlink_id: 443389355, mesh_packet: [Uplink hop_count: 1, uplink_id: 43, relay_id: f103c828, mic: d131b883]
Thu Feb 13 21:22:25 2025 user.info chirpstack-gateway-mesh[3035]: Sending mesh frame - [downlink_id: 443389355 - [freq: 868100000, power: 16, mod: [LORA - sf: 7, bw: 125000], timing: [IMMEDIATELY]]]
Thu Feb 13 21:22:25 2025 user.info chirpstack-gateway-mesh[3035]: Enqueue acknowledged, downlink_id: 443389355
Thu Feb 13 21:22:26 2025 user.info chirpstack-gateway-mesh[3035]: Mesh frame received - [uplink_id: 4246547175, freq: 868100000, rssi: -21, snr: 9.75, mod: [LORA - sf: 7, bw: 125000]]

It seems that the Mesh frame received from the downlink frame on the relay gateway is received 1 second before the Sending downlink frame as relayed downlink on the border gateway … that’s strange.

The two gateways are time synchronized

Thanks for your help