Gateway Mesh US915 Frequencies

Hey Everyone,

I’ve been trying to set up the gateway mesh for testing but have not been able to achieve communication between my gateways yet. I believe the issue is with my frequency config.

I have 3 Pi4s spread out with CS OS installed and a Dragino LoRaWAN Hat. On all of them Concentratord is configured to us915_1.

When I use the default frequencies for the GW mesh (which is the us915_0 uplink channels) I get the following error:

Fri Sep  6 14:06:26 2024 user.info chirpstack-gateway-mesh[11573]: Sending heartbeat packet, downlink_id: 2339593903, mesh_packet: [Heartbeat hop_count: 1, timestamp: SystemTime { tv_sec: 1725656786, tv_nsec: 455429535 }, relay_id: f17ad95c]
Fri Sep  6 14:06:26 2024 user.info chirpstack-gateway-mesh[11573]: Sending mesh frame - [downlink_id: 2339593903 - [freq: 902500000, power: 21, mod: [LORA - sf: 10, bw: 125000], timing: [IMMEDIATELY]]]
Fri Sep  6 14:06:26 2024 user.err chirpstack-concentratord-sx1302[1488]: Frequency is not within min/max gateway frequency, downlink_id: 2339593903, min_freq: 923000000, max_freq: 928000000
Fri Sep  6 14:06:36 2024 user.err chirpstack-gateway-mesh[11573]: Handle event error: Tx Ack error: TX_FREQ

I get the same error if I change the frequencies to us915_1 band.

I noticed that the min_freq and max_freq in the error is actually the downlink channels for US915, and when I change the frequencies to the downlink channels the error disappears but still my border gateway does not receive any of the packets.

Any suggestions? Should I be using the downlink frequencies or is it built for the uplink channels?

I couldn’t find much about this in the current documentation.

1 Like

Going to test but not started yet.
May be it is helpful to look at the source code?
Why there are downlinks in your case? From OTAA join?

No idea if all the gateways (mesh and border gateways) will share the same frequencies.

I’m having this happen, too :frowning:

I’m really excited about this feature. I hope it works!

My device is using confirmed uplinks so it would make sense that there would be downlinks but I only see the “sending mesh frame” message with a downlink ID never an uplink (the logs above were from my relay gateway). I am also not receiving any messages (including uplinks) from the relay gateway on the border gateway.

1 Like

I’ve spent some more time researching.

From looking at the code and long talks with GPT it seems that all mesh messages are considered downlinks by concentratord and are sent on the downlink frequencies (presumably to avoid interfering with uplinks).

These logs (from relay GW) confirm that. Concentratord receives an uplink from a device, passes that to the GW mesh which then assigns it a downlink_id, and passes it back to concentratord to queue for dowlink (but in this case the downlink is just to pass to another GW):

Mon Jul 15 22:31:56 2024 user.info chirpstack-concentratord-sx1302[3075]: Frame received, uplink_id: 396514180, count_us: 670680489, freq: 904300000, bw: 125000, mod: LoRa, dr: SF7, ftime_received: false, ftime_ns: 0
Mon Jul 15 22:31:56 2024 user.info chirpstack-gateway-mesh[3459]: Frame received - [uplink_id: 396514180, freq: 904300000, rssi: -51, snr: 9, mod: [LORA - sf: 7, bw: 125000]]
Mon Jul 15 22:31:56 2024 user.info chirpstack-gateway-mesh[3459]: Relaying uplink LoRa frame, uplink_id: 396514180, downlink_id: 3300415583, mesh_packet: [Uplink hop_count: 1, uplink_id: 1, relay_id: f17adc38, mic: 3446d3c7]
Mon Jul 15 22:31:56 2024 user.info chirpstack-gateway-mesh[3459]: Sending mesh frame - [downlink_id: 3300415583 - [freq: 925500000, power: 27, mod: [LORA - sf: 10, bw: 125000], timing: [IMMEDIATELY]]]
Mon Jul 15 22:31:56 2024 user.info chirpstack-concentratord-sx1302[3075]: Enqueueing immediate packet, downlink_id: 3300415583, current_counter_us: 670682728
Mon Jul 15 22:31:56 2024 user.info chirpstack-gateway-mesh[3459]: Enqueue acknowledged, downlink_id: 3300415583
Mon Jul 15 22:31:57 2024 user.info chirpstack-concentratord-sx1302[3075]: Scheduled packet for TX, downlink_id: 3300415583, count_us: 671682728, freq: 925500000, bw: 125000, mod: LoRa, dr: SF10

So I have reconfigured my mesh to use downlink frequencies, getting rid of the error, but my Border GW still does not receive any of the messages. It is as if concentratord is not listening on the downlink channels, which would make sense to me as I don’t think gateways normally listen to downlink channels, but then how does the mesh function?

Any help / clarification / ideas would be greatly appreciated.

@brocaar is this possibly a bug caused by the difference in downlink channels / behaviour in eu868 vs us915? i.e concentratord is listening to downlink channels on eu868 but is not in us915?

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.

I think this issue wasn’t catched because we have been mainly testing within EU868 regions. However, the default configuration is valid but I should make an additional change to the Concentratord. I have created an issue for this to keep track of this: Support transmitting using uplink frequencies (US915) · Issue #182 · chirpstack/chirpstack-concentratord · GitHub.

2 Likes

Would the algorithm work with other frequency plans such as AS923_x?

Thanks a lot.

Yes, the only thing missing to make it work are config files :slight_smile: (and testing)

1 Like

Is there any document to illustrate how the relay works between the mesh gateway and the border gateway?

For example, if device A sends an uplink in frequency X and datarate Y, will the mesh gateway send relay message to the border gateway using the same frequency and datarate?

Same question for downlink.
Since relaying will take more time to reach the device, how the message fits in RX1Delay and RX2Delay.

Once the algorithms are clear then it will be easier to test with some expected outcome.

Thanks a lot for your effort.