Downlink inner workings


I’m currently studying how the downlinks are managed internally, specifically the communication between the gateway and chirpstack.

Let’s assume I run the whole Chirpstack stack in a local computer, from the docker, for example.

I can understand how the uplink data works, the gateway pick up the LoRaWAN packet, then is forwarder, to the chirpstack gateway bridge, then the data is pre processed, sent trough MQTT and after that point the chirpstack stack does it thing whit the context of the message received.

But I’m not sure how the downlink works, I think I understand that the downlink is requested and managed from chirpstack, when the time arrives (because these are class A devices), the data is passed by MQTT to the chirpstack gateway bridge, and then I get lost.

At this point, what does the gateway bridge does?

What kinda data is send by the gateway bridge, in what protocol (UDP or TCP), in which format?

Where can I find this information?

I would be happy if I knew what data is the chirpstack bridge is sending, if someone could attach some example, that could be very useful!

The Gateway Bridge only translates between UDP <> MQTT, or Basics Station <> MQTT. Thus ChirpStack sends the downlink as MQTT and the Gateway Bridge will then transform this in either an UDP or Basics Station downlink packet.

In case of Class-A uplink this means that if there is a downlink, then ChirpStack sends this downlink (through the Gateway Bridge) to the gatway, and the gateway will then put it in the queue for transmission. Once the RX1 / RX2 window starts the gateway will transmit the packet.

1 Like