Configure custom channels for eu868

After two long days of research, partially succeeding but ultimately failing to achieve my goal, I have to resort to making a post.

First, some information: I am using CS Gateway OS on a Raspberry Pi 3b with a Waveshare SX1302 868 HAT.

I am trying to create different channels than the ones in the LoRaWAN specification for an experiment for my master’s thesis. I am keeping the three standard channels (8681000000, 868300000, and 868500000) but discarding the others. Additionally, I want to add channels at 867187500, 867512500, 867837500, and 869850000. These channels should all support DR 0-7.

Now, why I am posting this in the concentratord topic:
I succeeded in creating these channels on my network server:

However, when sending messages from my end device, only those messages sent on the three standard channels are recognized. All others don’t get recognized.
Therefore, I suspect that in concentratord, I have to change the configuration so that the hardware listens on these channels. I tried to modify the concentratord.toml file, but when I SSH into my Pi and do this:

chirpstack-concentratord-sx1302 --config /etc/chirpstack-concentratord/sx1302/configs/conce
ntratord.toml

I get the following output:

thread ‘main’ panicked at ‘Error parsing config file: Error { inner: Error { inner: TomlError { message: “invalid length 7, expected an array of length 8”, original: Some(“\r\n\r\n# Concentratord configuration.\r\n[concentratord]\r\n # Log level.\r\n #\r\n # Valid options are:\r\n # * TRACE\r\n # * DEBUG\r\n # * INFO\r\n # * WARN\r\n # * ERROR\r\n # * OFF\r\n log_level="INFO"\r\n\r\n # Log to syslog.\r\n #\r\n # When set to true, log messages are being written to syslog instead of stdout.\r\n log_to_syslog=false\r\n\r\n # Statistics interval.\r\n stats_interval="1s"\r\n\r\n # Disable CRC status filter.\r\n #\r\n # By default, the Concentratord will ignore received frames which do not have\r\n # a valid CRC. This option makes it possible to disable this filter such that\r\n # received frames without (valid) CRC can be analyzed.\r\n disable_crc_filter=false\r\n\r\n # Configuration for the (ZeroMQ based) API.\r\n [concentratord.api]\r\n # Event PUB socket bind.\r\n event_bind="ipc:///tmp/concentratord_event"\r\n\r\n # Command REP socket bind.\r\n command_bind="ipc:///tmp/concentratord_command"\r\n\r\n\r\n# LoRa gateway configuration.\r\n[gateway]\r\n\r\n # Antenna gain (dB).\r\n antenna_gain=0\r\n\r\n # Public LoRaWAN network.\r\n lorawan_public=true\r\n\r\n # Region.\r\n #\r\n # The region of the gateway. Options:\r\n # EU868, US915, CN779, EU433, AU915, CN470, AS923, AS923_2, AS923_3, AS923_4,\r\n # KR923, IN865, RU864\r\n #\r\n # Not not all the gateway models implement all regions.\r\n region="EU868"\r\n\r\n # Gateway vendor / model.\r\n #\r\n # This configures various vendor and model specific settings.\r\n model="waveshare_sx1302_lorawan_gateway_hat"\r\n\r\n # Gateway vendor / model flags.\r\n #\r\n # Flag can be used to configure additional vendor / model features. The\r\n # following flags can be used:\r\n #\r\n # Global flags:\r\n # GNSS - Enable GNSS / GPS support\r\n # USB - Use USB for concentrator communication (default is SPI)\r\n model_flags=[]\r\n\r\n # Time fallback.\r\n #\r\n # In case the gateway does not have a GNSS module or is unable to aquire a\r\n # GNSS fix, use the system-time for setting the ‘time’ field on RX.\r\n time_fallback_enabled=true\r\n\r\n\r\n # LoRa concentrator configuration.\r\n [gateway.concentrator]\r\n\r\n # Multi spreading-factor channels (LoRa).\r\n multi_sf_channels=[\r\n 868100000,\r\n 868300000,\r\n 868500000,\r\n # 867100000,\r\n # 867300000,\r\n # 867500000,\r\n # 867700000,\r\n # 867900000,\r\n 867187500,\r\n 867512500,\r\n 867837500,\r\n 869850000,\r\n ]\r\n\r\n # LoRa std channel (single spreading-factor).\r\n [gateway.concentrator.lora_std]\r\n frequency=868300000\r\n bandwidth=250000\r\n spreading_factor=7\r\n\r\n # FSK channel.\r\n [gateway.concentrator.fsk]\r\n frequency=868862500\r\n bandwidth=125000\r\n datarate=50000\r\n\r\n\r\n\r\n # Static gateway location.\r\n [gateway.location]\r\n\r\n # When set to non-zero values, the static gateway location will be reported\r\n # when the gateway does not have a GNSS module or when no GNSS location fix\r\n # is available.\r\n latitude=0.0\r\n longitude=0.0\r\n altitude=0\r\n\r\n\r\n”), keys: [“gateway”, “concentrator”, “multi_sf_channels”], span: Some(2107…2310) } } }’, chirpstack-concentratord-sx1302/src/config/mod.rs:203:62
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

I think I am on the wrong track but after these two days of trial and error (and learning a lot!) I need help. Maybe I have written/edited the wrong .toml-file but I don’t know where to look next.

Thanks for your help in advance!

Here is my config file for concentratord:
(pictures because the text has a strange format in this post)



Your network server shows 8 channels. The concentrator config has only 7 defined.

You can set the frequency to 0 to disable.

In the region configuration, you must configure the frequencies twice:

  • The frequencies that must be used by your device
  • The frequencies that must be sent to your gateways (note that ChirpStack will automatically configure Concentratord with the “correct” frequencies).

Please make sure you have this configured correctly as well, as ChirpStack will send these channels to the Concentratord:

1 Like

One of those channels is just Standard Channel 2 (or 1 if you begin at 0) (868,3 MHz) but with 250 kHz bandwidth. Thats the way I saw it has been configured in the examples I think.

It seems that this solved my problem! Thank you so much!
I thought that the upper channels are those that get sent to the device by CF-List and the lower ones are those that get sent by NewChannelReq.

There are still some things that do not work but the gateway now pushes the channels to the end-device via NewChannelReq.
I saw that these messages get sent alot. Do these messages get send until the end-device uses the frequencies for the first time?

Hey there,

after a lot of tinkering this weekend, I came to the conclusion that the gateway still doesn’t receive messages on all channels except the three standard ones. When I first answered I saw more messages coming through (more Datarates got through) but I didn’t check the channels properly. There is also the possibility that it worked briefly and then stopped working again or that it sends the NewChannelReq but actually doesn’t listen on these channels.

I just did multiple tests where the end-device sends DR 0 messages on every configured channel. One after the other, with some time in between. End-Device and Gateway are 2 m apart. Only messages on the standard channels came through and even some of those didn’t. I am fairly certain that there are no other LoRaWAN messages interfering because every message that is not my own should be drowned out on this short distance. (All messages that my gateway received yet and that are not from me have very low RSSI and SNR compared to my own that get through)

As I still see the channels in the panel of the network-server i supect that the configuration is persistent through a powercycle?

I am sorry to bother everyone again but I just don’t know what to do anymore.

EDIT:
I just looked into the log under status/System Log. It seems like the concentratord is being set up with the wrong channels. And it seems to get restarted every minute or so. @brocaar

Mon Nov 6 11:32:32 2023 user.info chirpstack-mqtt-forwarder[2654]: Received gateway stats
Mon Nov 6 11:32:32 2023 user.info chirpstack-mqtt-forwarder[2654]: Sending gateway stats event, topic: eu868/gateway/0016c001f103cad8/event/stats
Mon Nov 6 11:32:32 2023 user.info chirpstack-mqtt-forwarder[2654]: Received message, topic: eu868/gateway/0016c001f103cad8/command/config, qos: 0
Mon Nov 6 11:32:32 2023 user.info chirpstack-mqtt-forwarder[2654]: Received configuration command, version: 3c6b480794616414, topic: eu868/gateway/0016c001f103cad8/command/config
Mon Nov 6 11:32:32 2023 user.info chirpstack-mqtt-forwarder[2654]: Sending configuration command, version: 3c6b480794616414
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Stopping the concentrator
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Updating concentrator configuration
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Starting Concentratord SX1302 (version: 4.3.0, docs: Introduction - ChirpStack open-source LoRaWAN® Network Server documentation)
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Enabling concentrator power
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Triggering sx1302 reset
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Setting i2c device path, path: /dev/i2c-1
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Setting i2c temperature sensor address, address: 57
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Setting board configuration, lorawan_public: true, clock_source: 0
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Setting up fine timestamp, enable: false
Mon Nov 6 11:32:32 2023 user.info chirpstack-concentratord-sx1302[5502]: Setting up concentrator channels
Mon Nov 6 11:32:37 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring reset pin, dev: /dev/gpiochip0, pin: 23
Mon Nov 6 11:32:37 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring sx1302 power enable pin, dev: /dev/gpiochip0, pin: 18
Mon Nov 6 11:32:37 2023 user.info chirpstack-concentratord-sx1302[5541]: Starting Concentratord SX1302 (version: 4.3.0, docs: Introduction - ChirpStack open-source LoRaWAN® Network Server documentation)
Mon Nov 6 11:32:37 2023 user.info chirpstack-concentratord-sx1302[5541]: Enabling concentrator power
Mon Nov 6 11:32:37 2023 user.info chirpstack-concentratord-sx1302[5541]: Triggering sx1302 reset
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Setting i2c device path, path: /dev/i2c-1
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Setting i2c temperature sensor address, address: 57
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Setting board configuration, lorawan_public: true, clock_source: 0
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Setting up fine timestamp, enable: false
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Setting up concentrator channels
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring radio, radio: 0, enabled: true, center_freq: 867500000, type: SX1250
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring radio, radio: 1, enabled: true, center_freq: 868500000, type: SX1250
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Setting up concentrator channels
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring multi-SF LoRa channel, channel: 0, enabled: true, freq: 868100000, rf_chain: 1, if_freq: -400000
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring multi-SF LoRa channel, channel: 1, enabled: true, freq: 868300000, rf_chain: 1, if_freq: -200000
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring multi-SF LoRa channel, channel: 2, enabled: true, freq: 868500000, rf_chain: 1, if_freq: 0
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring multi-SF LoRa channel, channel: 3, enabled: true, freq: 867100000, rf_chain: 0, if_freq: -400000
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring multi-SF LoRa channel, channel: 4, enabled: true, freq: 867300000, rf_chain: 0, if_freq: -200000
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring multi-SF LoRa channel, channel: 5, enabled: true, freq: 867500000, rf_chain: 0, if_freq: 0
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring multi-SF LoRa channel, channel: 6, enabled: true, freq: 867700000, rf_chain: 0, if_freq: 200000
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring multi-SF LoRa channel, channel: 7, enabled: true, freq: 867900000, rf_chain: 0, if_freq: 400000
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring Std LoRa channel, enabled: true, freq: 868300000, rf_chain: 1, if_freq: -200000
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Configuring FSK channel, enabled: true, freq: 868800000, rf_chain: 1, if_freq: 300000
Mon Nov 6 11:32:38 2023 user.info chirpstack-concentratord-sx1302[5541]: Starting the concentrator
Mon Nov 6 11:32:40 2023 user.info chirpstack-concentratord-sx1302[5541]: Gateway ID retrieved, gateway_id: “0016c001f103cad8”
Mon Nov 6 11:32:40 2023 user.info chirpstack-concentratord-sx1302[5541]: Initializing JIT queue, capacity: 32
Mon Nov 6 11:32:40 2023 user.info chirpstack-concentratord-sx1302[5541]: Creating socket for publishing events, bind: ipc:///tmp/concentratord_event
Mon Nov 6 11:32:40 2023 user.info chirpstack-concentratord-sx1302[5541]: Creating socket for receiving commands, bind: ipc:///tmp/concentratord_command

869.85 MHz is too far from 868.1 and 867.1 to be configured on the same SX1250.

Each SX1250 front end can be configured with 3-5 channels. The high/low channels for each front end cannot more than 1.6 MHz apart.

This maybe causing the LNS to send default channels?
The LNS log may have error messages.

That sounds plausible. Does the LNS have a dedicated log thats separate from the syslog?
Is there a way to set the frontend frequencies manually? Because with a bandwidth of 1,6 MHz it should be possible to cover the channelplan I intend to use. I specifically took out another channel at one point in the planning phase.


In that image you can see the default channels as well as ttn-default and my custom channelplan. Below that are the band restrictions from ETSI (yellow) and the german authority (orange) (they are almost the same).
Below that I just plotted the default configuration (green) for the SX1250 as of the log i previously posted and the information you just provided. And below that (in blue) I rearanged both frequencies so that everything is covered. The seam of both bandwidths are between standard channel 1 and 2 (counting from 0).

I will now first try to take out the channels to the most left and hope that the frontend frequencies get shifted to the right. The channel on the most right is an integral part of my experiment as there are no limitations on how often you can send if you use less than 5 mW ERP. As the distances of the end-node and the gateway in my use-case are not more than 100 m apart, this could be sufficent. But I would like to keep the channels on the left side if possible because it would balance the load over more frequencies, which would be crucial if deployed on a larger scale.

Took a while, had to start from scratch because my GW-ID couldn’t be read and I wasn’t able to fix it.

I took out the channels on the left side and reconfigured region_eu868.toml:

(just the channel part)

image

Then in console did:

chirpstack --config /etc/chirpstack/

/etc/init.d/chirpstack restart

and now it actually configures the SX1250 radios with kind of suitable frequencies (not optimal in my opinion, because the FSK channel is just being left out…)
The problem is, directly after configuring the radios with the new frequencies it configures them again with the standard frequencies… and it does this again every minute.

System Log:

Mon Nov 6 17:26:53 2023 user.info chirpstack-mqtt-forwarder[2641]: Received message, topic: eu868/gateway/0016c001f103cad8/command/config, qos: 0
Mon Nov 6 17:26:53 2023 user.info chirpstack-mqtt-forwarder[2641]: Received configuration command, version: 70a0dadf005bcd4d, topic: eu868/gateway/0016c001f103cad8/command/config
Mon Nov 6 17:26:53 2023 user.info chirpstack-mqtt-forwarder[2641]: Sending configuration command, version: 70a0dadf005bcd4d
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Stopping the concentrator
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Updating concentrator configuration
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Starting Concentratord SX1302 (version: 4.3.0, docs: Introduction - ChirpStack open-source LoRaWAN® Network Server documentation)
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Enabling concentrator power
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Triggering sx1302 reset
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Setting i2c device path, path: /dev/i2c-1
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Setting i2c temperature sensor address, address: 57
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Setting board configuration, lorawan_public: true, clock_source: 0
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Setting up fine timestamp, enable: false
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Setting up concentrator channels
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring radio, radio: 0, enabled: true, center_freq: 868500000, type: SX1250
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring radio, radio: 1, enabled: true, center_freq: 870225000, type: SX1250
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Setting up concentrator channels
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring multi-SF LoRa channel, channel: 0, enabled: true, freq: 868100000, rf_chain: 0, if_freq: -400000
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring multi-SF LoRa channel, channel: 1, enabled: true, freq: 868300000, rf_chain: 0, if_freq: -200000
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring multi-SF LoRa channel, channel: 2, enabled: true, freq: 868500000, rf_chain: 0, if_freq: 0
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring multi-SF LoRa channel, channel: 3, enabled: true, freq: 869850000, rf_chain: 1, if_freq: -375000
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring multi-SF LoRa channel, channel: 4, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring multi-SF LoRa channel, channel: 5, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring multi-SF LoRa channel, channel: 6, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring multi-SF LoRa channel, channel: 7, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring Std LoRa channel, enabled: true, freq: 869850000, rf_chain: 1, if_freq: -375000
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Configuring FSK channel, enabled: true, freq: 869850000, rf_chain: 1, if_freq: -375000
Mon Nov 6 17:26:53 2023 user.info chirpstack-concentratord-sx1302[2296]: Starting the concentrator
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring reset pin, dev: /dev/gpiochip0, pin: 23
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring sx1302 power enable pin, dev: /dev/gpiochip0, pin: 18
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Starting Concentratord SX1302 (version: 4.3.0, docs: Introduction - ChirpStack open-source LoRaWAN® Network Server documentation)
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Enabling concentrator power
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Triggering sx1302 reset
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Setting i2c device path, path: /dev/i2c-1
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Setting i2c temperature sensor address, address: 57
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Setting board configuration, lorawan_public: true, clock_source: 0
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Setting up fine timestamp, enable: false
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Setting up concentrator channels
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring radio, radio: 0, enabled: true, center_freq: 867500000, type: SX1250
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring radio, radio: 1, enabled: true, center_freq: 868500000, type: SX1250
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Setting up concentrator channels
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring multi-SF LoRa channel, channel: 0, enabled: true, freq: 868100000, rf_chain: 1, if_freq: -400000
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring multi-SF LoRa channel, channel: 1, enabled: true, freq: 868300000, rf_chain: 1, if_freq: -200000
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring multi-SF LoRa channel, channel: 2, enabled: true, freq: 868500000, rf_chain: 1, if_freq: 0
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring multi-SF LoRa channel, channel: 3, enabled: true, freq: 867100000, rf_chain: 0, if_freq: -400000
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring multi-SF LoRa channel, channel: 4, enabled: true, freq: 867300000, rf_chain: 0, if_freq: -200000
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring multi-SF LoRa channel, channel: 5, enabled: true, freq: 867500000, rf_chain: 0, if_freq: 0
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring multi-SF LoRa channel, channel: 6, enabled: true, freq: 867700000, rf_chain: 0, if_freq: 200000
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring multi-SF LoRa channel, channel: 7, enabled: true, freq: 867900000, rf_chain: 0, if_freq: 400000
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring Std LoRa channel, enabled: true, freq: 868300000, rf_chain: 1, if_freq: -200000
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Configuring FSK channel, enabled: true, freq: 868800000, rf_chain: 1, if_freq: 300000
Mon Nov 6 17:26:59 2023 user.info chirpstack-concentratord-sx1302[3601]: Starting the concentrator
Mon Nov 6 17:27:02 2023 user.info chirpstack-concentratord-sx1302[3601]: Gateway ID retrieved, gateway_id: “0016c001f103cad8”
Mon Nov 6 17:27:02 2023 user.info chirpstack-concentratord-sx1302[3601]: Initializing JIT queue, capacity: 32
Mon Nov 6 17:27:02 2023 user.info chirpstack-concentratord-sx1302[3601]: Creating socket for publishing events, bind: ipc:///tmp/concentratord_event
Mon Nov 6 17:27:02 2023 user.info chirpstack-concentratord-sx1302[3601]: Creating socket for receiving commands, bind: ipc:///tmp/concentratord_command

Update:
I still couldn’t get it to work. I tried changing the channels_eu868.toml to the same channels as I have set up in the chirpstack region_eu868.toml (only part of my custom channelplan because as you @Jason_Reiss pointed out, the channels where too far apart for both standard center frequencies of the SX1250s to cover the entire plan. Though according to the specs it should be possible to cover the entire plan by placing their two center frequencies at 867612500 and 869200000 respectively) because I suspect it uses both to configure the concentratord, thus changing it back and forth. But when I change anything in the channels_eu868.toml file and reboot, my gateway just refuses to function. It says “could not read gateway-id” and in the syslog I get tons of these messages:

Tue Nov 7 09:26:01 2023 kern.warn kernel: [ 357.660139] F2FS-fs (loop0): inconsistent node block, nid:8965, node_footer[nid:0,ino:0,ofs:0,cpver:0,blkaddr:0]
Tue Nov 7 09:26:01 2023 kern.warn kernel: [ 357.663128] F2FS-fs (loop0): inconsistent node block, nid:8966, node_footer[nid:0,ino:0,ofs:0,cpver:0,blkaddr:0]

Only when using the default channels_eu868.toml, the concentratord gets configured. But it uses those standard values. Chirpstack reconfigures the concentratord (as you said @brocaar) but every time it does that, it instantly gets reconfigured with the standard values, possibly from the channels_eu868.toml file.

So I have to change the concentratord config because it overwrites my other config, but I can’t because the concentratord just refuses to function then… If there is a way to set the center frequencies of the SX1250s manually that would be optimal because I could use the entire channelplan then but even getting part of the channelplan to work would be a success.

I really don’t want to waste your time, I spend days trying to figure it out by this point. The reason for my regular posts is that I try to document it in case someone has the same issue in the future. I suspect the same thing could happen if you were to configure non standard channels that are further to the left of the spectrum.

I hope someone is able to help. I really need this to work for my thesis.

Update 2:
I had a look into the following document to determine why the second SX1250 is set up with a frequency over 870 MHz.
chirpstack-concentratord/chirpstack-concentratord-sx1302/src/config/helpers.rs · GitHub
Together with searching in various documents and posts I think I figured it out.
The algorithm seems to sort all channels by their frequency and then configure the first radio center frequency 400kHz above the center frequency of the first channel. Then it fits as many channels as possible into this radio (with a bandwidth of 800 kHz regarding the center frequencies). After that it takes the next channel and programs the second radios center frequency 400 kHz above the center frequency of that channel and fits as many channels into it like with the first example.
I now revised my channelplan to account for that. You can see it below:


The new channelplan is the selected one. The purple areas below are the assumed bandwidths and center frequencies of the radios. The line above where thought experiments with an assumed radio bandwidth of 1,6 MHz as suggested before. I am wondering why they are smaller here than the data from Semtech indicates to be possible (1,6 MHz bandwidth). I am also wondering why this algorithm works like that because I had to move the FSK channel as far to the right as the band allowed me to, so that the center frequency of the second radio is placed in a way that I can use the channel to the most right.
With that new channelplan I was able to receive a message on another channel than the three standard ones (the most right one having 869,825 MHz as its center frequency). I still have to test if all channels work. Looking at syslog it seems like the channel that is supposed to be the FSK only channel is a multiple SF channel and another multiple SF channel has been choosen to be the FSK only channel aswell… For some reason I was never able to receive a DR7 (FSK) message, thats another point I have to investigate more.