Setting up a region of concentrator

Viewed 70

Hello! I've installed chirpstack + concentratord + mqtt-forwarder on raspberry pi 4. Region parameter in concentratord.toml set as region="EU868", topic_prefix in mqtt-forwarder: topic_prefix="eu868". As I understand the frequencies should be pulled from the "region_eu868.toml" configs automatically. But I get such logs:

Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Setting up fine timestamp, enable: false
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Setting up concentrator channels
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring radio, radio: 0, enabled: false, center_freq: 0, type: SX1250
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring radio, radio: 1, enabled: false, center_freq: 0, type: SX1250
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Setting up concentrator channels
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring multi-SF LoRa channel, channel: 0, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring multi-SF LoRa channel, channel: 1, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring multi-SF LoRa channel, channel: 2, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring multi-SF LoRa channel, channel: 3, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring multi-SF LoRa channel, channel: 4, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring multi-SF LoRa channel, channel: 5, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring multi-SF LoRa channel, channel: 6, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring multi-SF LoRa channel, channel: 7, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring Std LoRa channel, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Configuring FSK channel, enabled: false, freq: 0, rf_chain: 0, if_freq: 0
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: 2025-11-19T11:52:50.660Z INFO  [chirpstack_concentratord_sx1302::concentrator] Starting the concentrator
Nov 19 14:52:50 raspberrypi chirpstack-concentratord-sx1302[3792]: Opening SPI communication interface

It works if I add this text to concentratord.toml:

# LoRa concentrator configuration.
[gateway.concentrator]
# Multi spreading-factor channels (LoRa).
multi_sf_channels=[
  868100000,
  868300000,
  868500000,
  867100000,
  867300000,
  867500000,
  867700000,
  867900000,
]

# LoRa std channel (single spreading-factor).
[gateway.concentrator.lora_std]
frequency=868300000
bandwidth=250000
spreading_factor=7

# FSK channel.
[gateway.concentrator.fsk]
frequency=868800000
bandwidth=125000
datarate=50000

How I can change region from EU868 to IN865 for example? I need to change topic prefix in mqtt-forwarder config, change region in concentratord config and add IN865 frequencies in the end of condentratord.toml? Could it be done with simpler way?

1 Answers

Configuration does not get pulled in automatically. E.g. you might have three configs:

  • concentratord.toml = Concentratord config
  • region_eu868.toml = Region specific config (e.g. Class-B beaconing)
  • channels_eu868.toml = Channel configuration

To load this set of config, you would repeat the -c flag, thus:

chirpstack-concentratord-sx1302 \
  -c /etc/chirpstack-concentratord/concentratord.toml \
  -c /etc/chirpstack-concentratord/region_eu868.toml \
  -c /etc/chirpstack-concentratord/channels_eu868.toml

Thus structure makes it especially easy when there could be multiple channel configs for a single region (e.g. US915, AU915) as you only have to change the channels_XXXXX.toml path. That is how it is implemented in the ChirpStack Gateway OS at least.

Then should I change region="" parameter in cocnentratord.toml and topic_prefix in chirpstack-mqtt-forwarder.toml if I need to change region?

Yes, that is correct. The region parameter in the concentratord.toml must match the gateway region. You must change as well the topic prefix in the MQTT Forwarder to make sure ChirpStack will handle the uplink within the correct region (config) context.

OK, thank You! And... Chirpstack package needs only chirpstack.toml or any regions_*.toml too? Now I stasrting it with only ... -c chirpstack.toml