System Overview
Hardware:
- Raspberry Pi 5 (Debian Trixie)
- SenseCAP M2 LoRaWAN Gateway (Model: M2-AU915)
- Dragino LA66 LoRaWAN device (DEV EUI: A84041D111896C86)
Software Versions:
- ChirpStack: v4.9.0
- ChirpStack Gateway Bridge: v4.1.1 (upgraded from v4.0.11)
- PostgreSQL: 16
- Redis: 7
- Mosquitto MQTT: Latest
Region: AU915
Problem Statement
Gateway is successfully receiving LoRaWAN packets and Gateway Bridge is publishing them to MQTT, but ChirpStack is not processing the uplink messages. The gateway and device never complete OTAA join.
What's Working ✅
-
Gateway to Gateway Bridge communication: Gateway receives packets perfectly
INFO: [up] Join-Request from A84041D111896C86 INFO: [up] PUSH_ACK received in 1 ms Signal: RSSI -44 dBm, SNR 13.2 dB -
Gateway Bridge publishing to MQTT: Messages are being published
gateway/2cf7f1177440004b/event/up gateway/2cf7f1177440004b/event/stats -
MQTT messages visible: Using
mosquitto_sub, we can see Join Requests:gateway/2cf7f1177440004b/event/up { "phyPayload":"AAEBAAAAQUCohmyJEdFBQKhh5ZnXWwQ=", "rxInfo":{"gatewayId":"2cf7f1177440004b", "rssi":-36, "snr":9} } -
ChirpStack services running: All services healthy
- PostgreSQL ✓
- Redis ✓
- Mosquitto ✓
- ChirpStack ✓
- Gateway Bridge ✓
What's NOT Working ❌
ChirpStack is not receiving or processing gateway uplink messages.
ChirpStack logs show:
- ✅ MQTT integration initialized
- ✅ "Setting up gateway backends for the different regions"
- ✅ Subscribes to:
application/+/device/+/command/+ - ❌ Does NOT subscribe to:
gateway/+/event/+ - ❌ No uplink processing messages
- ❌ Device never joins network
Configuration Files
ChirpStack Configuration (/etc/chirpstack/chirpstack.toml)
[logging]
level = "debug"
[postgresql]
dsn = "postgres://chirpstack:chirpstack@localhost/chirpstack?sslmode=disable"
[redis]
servers = ["redis://localhost/"]
[gateway]
allow_unknown_gateways = false
[network]
net_id = "000000"
enabled_regions = ["au915"]
[api]
bind = "0.0.0.0:8080"
secret = "you-must-replace-this-secret"
[integration]
enabled = ["mqtt"]
[integration.mqtt]
server = "tcp://localhost:1883/"
json = true
[gateway.backend.mqtt]
server = "tcp://localhost:1883/"
username = ""
password = ""
json = true
[gateway.backend.mqtt.auth]
type = "generic"
[gateway.backend.mqtt.auth.generic]
servers = ["tcp://localhost:1883/"]
Gateway Bridge Configuration (/etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml)
[general]
log_level=4
[backend]
type="semtech_udp"
[backend.semtech_udp]
udp_bind="0.0.0.0:1700"
[integration]
marshaler="json"
[integration.mqtt]
event_topic_template="gateway/{{ .GatewayID }}/event/{{ .EventType }}"
state_topic_template="gateway/{{ .GatewayID }}/state/{{ .StateType }}"
command_topic_template="gateway/{{ .GatewayID }}/command/#"
[integration.mqtt.auth]
type="generic"
[integration.mqtt.auth.generic]
servers=["tcp://127.0.0.1:1883"]
qos=0
clean_session=true
ChirpStack Startup Logs
INFO chirpstack::storage: Setting up Redis client
INFO chirpstack::region: Setting up regions
INFO chirpstack::integration::mqtt: Initializing MQTT integration
INFO chirpstack::integration::mqtt: Connecting to MQTT broker
INFO chirpstack::gateway::backend: Setting up gateway backends for the different regions
INFO chirpstack::integration::mqtt: Subscribing to command topic command_topic=application/+/device/+/command/+
INFO chirpstack::api::backend: Backend interfaces API interface is disabled
Note: No subscription to gateway event topics!
Gateway Bridge Startup Logs
INFO starting ChirpStack Gateway Bridge version=4.1.1
INFO backend/semtechudp: starting gateway udp listener addr="0.0.0.0:1700"
INFO integration/mqtt: connected to mqtt broker
INFO integration/mqtt: publishing event event=up topic=gateway/2cf7f1177440004b/event/up
Note: Only MQTT integration, no Redis Streams
Troubleshooting Steps Attempted
- ✅ Verified device credentials in ChirpStack database match LA66
- ✅ Changed Gateway Bridge marshaler from protobuf to JSON
- ✅ Upgraded Gateway Bridge from v4.0.11 to v4.1.1
- ✅ Removed EU868 frequency configuration conflicts
- ✅ Added explicit
[gateway.backend.mqtt]configuration - ✅ Verified MQTT broker connectivity
- ✅ Checked PostgreSQL device/keys configuration
- ❌ Attempted to add Redis integration to Gateway Bridge (not supported in v4.1.1)
Questions
-
Does ChirpStack v4.9.0 require Redis Streams for gateway communication?
- If yes, which Gateway Bridge version supports this?
-
Why is ChirpStack not subscribing to
gateway/+/event/+MQTT topics?- Is there a missing configuration parameter?
-
Is there a compatibility matrix for ChirpStack and Gateway Bridge versions?
-
Should ChirpStack v4.9.0 work with MQTT-only Gateway Bridge?
- Or does it require a different communication method?
Expected Behavior
ChirpStack should:
- Subscribe to
gateway/+/event/+MQTT topic - Receive and process Join Request from gateway
- Send Join Accept back to device via gateway
- Show uplink processing in logs
Additional Information
- Gateway Bridge
configfiletemplate does NOT include[integration.redis]section - ChirpStack logs say "Setting up gateway backends" but never subscribes to gateway topics
- "Backend interfaces API interface is disabled" message appears in ChirpStack logs
- Device is properly registered with correct DEV EUI and APP KEY
- All services restart cleanly with no errors
Request
Could someone please advise on:
- The correct Gateway Bridge version for ChirpStack v4.9.0
- The proper configuration for gateway-to-ChirpStack communication
- Whether Redis Streams or MQTT should be used
- Any missing configuration parameters
Thank you!
System Details:
- OS: Debian GNU/Linux trixie/sid (Raspberry Pi 5)
- Architecture: arm64
- Installation: Native (not Docker)