FIBER Lite Concentrator Never Shows a Gateway ID
Symptom: on FIBER Lite (SPI/RAK2287), the concentrator's own service logs never print a Gateway ID, the ChirpStack gateway page never shows a "Last seen at" timestamp, and no join-request ever reaches ChirpStack — even though the LoRaWAN end-device is powered on and in range.
Work through these in order. The first two are by far the most common, and both look like broken hardware while being pure configuration.
1. The daemon hangs on "Opening SPI communication interface"
Check where the service actually stops:
sudo journalctl -u chirpstack-concentratord -n 30 --no-pager
If the last line is Opening SPI communication interface and nothing follows — no error, no
timeout, just silence — the concentrator is not faulty. The vendor profile (model=) supplies
only the pin mapping, RSSI offsets and gain table; it does not supply a channel plan. With the
[gateway.concentrator] section missing from the configuration, every radio is configured as
enabled: false at frequency 0 and the underlying HAL blocks indefinitely.
Confirm by looking further up the same log:
sudo journalctl -u chirpstack-concentratord | grep 'Configuring radio'
Radios reported as enabled: false, center_freq: 0 mean the channel plan is missing. Add the
[gateway.concentrator] block from
Install ChirpStack Concentratord and restart the service —
the radios must come up enabled: true with real frequencies.
2. Concentratord runs, but nothing reaches MQTT
If Concentratord logs a Gateway ID and Frame received lines, but ChirpStack still shows nothing,
the break is between Concentratord and the MQTT Forwarder. Both services report active, so
systemctl status is not enough to spot it.
Check the permissions on the IPC sockets:
ls -la /tmp/concentratord_*
They must be group-accessible to the chirpstack user, i.e. root:chirpstack and mode srwxrwx---:
srwxrwx--- 1 root chirpstack 0 /tmp/concentratord_command
srwxrwx--- 1 root chirpstack 0 /tmp/concentratord_event
If they are root:root mode srwxr-xr-x, the forwarder cannot connect — connecting to a unix
socket requires write permission. Add Group=chirpstack and UMask=0007 to the
[Service] section of /etc/systemd/system/chirpstack-concentratord.service, then:
sudo systemctl daemon-reload
sudo systemctl restart chirpstack-concentratord
sudo systemctl restart chirpstack-mqtt-forwarder
3. SPI is not enabled, or the HAT is not seated
Only if the service never gets as far as opening SPI at all:
grep spi /boot/firmware/config.txt # expect: dtparam=spi=on (uncommented)
ls /dev/spidev* # expect: /dev/spidev0.0 and /dev/spidev0.1
dtparam=spi=on ships commented out in Raspberry Pi OS. If it is commented, uncomment it and
reboot. If /dev/spidev* is still missing afterwards, the RAK2287 HAT is not making contact with
the Pi 5's GPIO header — reseat it and check for bent pins.
4. Proving the concentrator chip itself responds
If you need to separate "dead hardware" from "bad configuration" definitively, read the SX1302's
registers directly over SPI while toggling the reset line. Install python3-spidev and
python3-libgpiod, hold the reset pin (gpiochip0 line 17) low, and read a register with the
5-byte frame [0x00, addr >> 8, addr & 0xFF, 0x00, 0x00], taking the result from byte 4.
Register values that change between reset held high and reset released mean the chip is alive
and the fault is in software. Values that stay at 0x00 in both states point at the HAT seating
or the SPI bus.
If none of this resolves it, please report what you tried and the full service log back to HARDWARIO so this page can be extended.