[release] LoRa Gateway Bridge v3.0

LoRa Gateway Bridge v3.0.0

Features

Basic Station packet-forwarder support

The LoRa Gateway Bridge has been refactored to support multiple packet-forwarder backends. Next to the Semtech UDP packet-forwarder, support has been added to support the Basic Station packet-forwarder. This backend implements the Basic Station LNS protocol.

Updated payload formats

The uplink payload contains a context field, used to store gateway specific context data (like the internal counter).

The downlink frame contains a timing field which can be either IMMEDIATELY, DELAY or GPS_EPOCH. Based on the timing value, an additional object must be given with the additional timing information. Refer to Commands for more details.

Azure IoT Hub integration

LoRa Gateway Bridge now has support to connect the Azure IoT Hub MQTT interface. Like with the Google Cloud Platform IoT Core integration this
makes it easier to scale up and manage gateway credentials using the IoT Hub console (or API).

Fake RX time

In case the gateway does not have a GPS module, the RX time would would be left blank. This feature makes it possible to use the system time as a fallback. (#109)

Custom gateway meta-data

This feature makes it possible to expose additional meta-data in the gateway stats. Meta-data can either be static or dynamic (executing external commands). The latter option allows to for example read and expose the gateway temperature, humidity, …

Upgrading

LoRa Gateway Bridge v3.0.0 include a couple of changes that are not backwards compatible. You need to re-generate the configuration file and update it where needed. LoRa Gateway Bridge v3 is compatible with LoRa Server v2.7+. Below a summary:

MQTT topics

The MQTT topic configuration has been updated from:

uplink_topic_template="gateway/{{ .MAC }}/rx"
downlink_topic_template="gateway/{{ .MAC }}/tx"
stats_topic_template="gateway/{{ .MAC }}/stats"
ack_topic_template="gateway/{{ .MAC }}/ack"
config_topic_template="gateway/{{ .MAC }}/config"

To:

event_topic_template="gateway/{{ .GatewayID }}/event/{{ .EventType }}"
command_topic_template="gateway/{{ .GatewayID }}/command/#"

Event types are: up, stats and ack. Commands are: down and config.

Please note that LoRa Gateway Bridge v3 is compatible with LoRa Server v2.7+, but you will need to update the MQTT topics in your loraserver.toml file. Example snippet:

uplink_topic_template="gateway/+/event/up"
stats_topic_template="gateway/+/event/stats"
ack_topic_template="gateway/+/event/ack"
downlink_topic_template="gateway/{{ .MAC }}/command/down"
config_topic_template="gateway/{{ .MAC }}/command/config"

Backends

With LoRa Gateway Bridge v2 you would configure the MQTT backend under the [backend...] section. This has changed and the [backend...] section is now used for selecting and configuring the packet-forwarder backends.

Integrations

The MQTT integration configuration has moved to the new [integration...] section. This allows for adding new integrations in the future besides MQTT.

Prometheus metrics

The Prometheus metrics have been updated / cleaned up.

3 Likes

LoRa Gateway Bridge v3.0.1

Bugfixes

  • Fix acquiring double read-lock (which could result in a deadlock). #119
2 Likes