IoT - ttulka/technologies GitHub Wiki

LoRa and LoRaWAN

LoRa = Wireless modulation technology on the physical layer for low-power, wide area networks (LPWANs) developed by Semtech

LoRaWAN = Communication protocol on the LoRa phy. (analog to the IP layer) - data packets, encryption, etc.

  • Open source protocol developed by the LoRa Alliance
  • Aims to securely connect LoRa devices to the internet
  • Asynchronous, ALOHA-based protocol, which means an end-device can sleep for as little or as long as the application desires
  • For applications that need a very long battery lifetime and optimized cost, but do not need to communicate as often

LoRA PHY

LoRa: bandwidth vs range

LoRa is a proprietary spread spectrum modulation scheme that is based on Chirp Spread Spectrum (CSS) modulation.

Spread spectrum techniques spread the signal deliberately in the frequency domain.

A chirp (sweep signal) is a tone in which the frequency increases (up-chirp) or decreases (down-chirp) with time.

Chirp Spread Spectrum is a spread spectrum technique that uses wideband linear frequency modulated chirp pulses to encode information.

LoRa Chirps

Limits

  • Bandwidth 250 bits per sec (low bandwidth => low energy)
  • Only 1 % of the bandwidth is allowed to be used by a single device => max bandwidth per device is 2.5 bps
  • Link budget in EU is ca 150 dB at 800 km (free space)

LoRa demodulation

  • LoRa offers a trade-off between sensitivity and data rate, while operating in a fixed-bandwidth channel of either 125 KHz or 500 KHz (for uplink channels), and 500 KHz (for downlink channels)
  • Adaptive optimizations of an individual end node’s power levels and data rates
    • For example, an end device located close to a gateway should transmit data at a low spreading factor, since very little link budget is needed.
  • Higher spreading factor provides increased processing gain, and higher reception sensitivity, although the data rate will, necessarily, be lower

Time on air (ToA) / Dwell Time - When a signal is sent from a sender it takes a certain amount of time before a receiver receives this signal.

Duty cycle is the proportion of time during which a component, device, or system is operated. The duty cycle can be expressed as a ratio or as a percentage. Example: Duty cycle = 1%, ToA = 530ms => after sending a message, we have to wait 99x530ms = 52.47s before sending a new message.

Bandwidth (BW) is the amount of radio spectrum used for the transmission of a signal. The more bandwidth used, the more of the spectrum is used to transmit the data. This makes it easier for the receiver to distinguish the signal from the noise. Therefore, a wider bandwidth has a longer range than a narrower bandwidth.

Bandwidth is defined as the difference between the highest and the lowest frequencies of a signal generated.

A LoRa gateway and a corresponding end device must use the same channel bandwidth. 125 kHz is most commonly used; however, there are also channels at 250 kHz and at 500 kHz as well.

Coding Rate is the parameter that defines how much extra data we send to describe the same information. If we send a message of 12 bytes, and use a coding rate of 4/5, for every 4 bits of information, we send 5 bits of data.

The extra data, called Forward Error Correction (FEC), makes it possible to automatically correct bit errors or symbol errors that occur during the reception of the packet.

LoRaWAN has four possible coding rates: 4/5, 4/6, 4/7, and 4/8. When we use the 4/8 coding rate, we send two bits for every one bit of real data; in essence, we send the message twice.

Spreading factor (SF) is the speed at which we spread the data across the bandwidth of a radio channel.

  • The slower the data is sent, the easier it becomes to receive the signal.
  • The larger the spreading factor used, the farther the signal will be able to travel and still be received without errors by the RF receiver.
    • Larger SF means longer time on air => lower DR
  • SF is based on the Sweep Rate, which determines the speed at which the controller increases or decreases the frequency.
    • Larger SF means slower data which means higher energy consumption

Lowering the spreading factor makes it more difficult for the gateway to receive a transmission, as it will be more sensitive to noise.

Data rate (DR) - the amount of bits that are processed per unit of time. It's a combination of both BW and SF.

  • High DR means a small SF and high probability of packet loss
  • Low DR means longer time on air, more power consumption, longer range, and reduced gateway capacity (it keeps channels utilized)

LoRa packets using different data rates are orthogonal, meaning that they are invisible to each other: they simply appear as noise to one another.

If you increase the data rate (make the bandwidth wider or the spreading factor lower) you can transmit the same number of bytes in a shorter time.

Data Rate Spreding Factor BW/TXPower bit rate range battery life
DR0 SF12 125 kHz 250 bit/s 12 km 138 days
DR1 SF11 125 kHz 440 bit/s 10 km
DR2 SF10 125 kHz 980 bit/s 8 km
DR3 SF9 125 kHz 1760 bit/s 6 km 275 days
DR4 SF8 125 kHz 3125 bit/s 4 km
DR5 SF7 125 kHz 5470 bit/s 2 km 317 days
DR6 SF7 250 kHz 11000 bit/s 2 km 284 days

LoRa Bandwidth and Spreading Factor

LoRa Chirps, SF and DR

LoRaWAN

Components: End-devices, Gateways, Network Server, Application Server, Join Server

LoRaWAN components

Packets

Uplink packets are sent by end-devices to a Network Server relayed by one or many gateways.

Downlink packets are sent by a Network Server to only one end-device and are transmitted by a Network Server through one or more gateways.

End-device receive-slot timing

All LoRaWAN uplink and downlink packets carry a PHY payload (PHYPayload) starting with a single-octet MAC header (MHDR), followed by a MAC payload (MACPayload), and ending with a 4-octet message integrity code (MIC).

LoRaWAN frame format elements

Join-Request and Join-Accept frames are used by the over-the-air activation procedure.

Data frames transfer application data or MAC commands, which can be combined into a single frame.

Retransmission

The delay between retransmissions is at the discretion of the end-device and may be different for each end-device. When an end-device has requested an ACK from the Network but has not yet received it, it shall wait RETRANSMIT_TIMEOUT seconds after RECEIVE_DELAY2 seconds have elapsed after the end of the previous uplink transmission before sending a new uplink (repetition or new frame).

MAC Commands

For network administration, a set of MAC commands may be exchanged exclusively between a Network Server and the MAC layer of an end-device. MAC layer commands are never visible to the Application Server, nor to the application running on the end-device.

A single data frame may contain any sequence of MAC commands, either piggybacked in the FOpts field or, when sent as a separate data frame, in the FRMPayload field with the FPort field set to 0.

A MAC command consists of a command identifier (CID) of 1 octet followed by a possibly empty command-specific sequence of octets.

CID Command Transmitted by Description
0x02 LinkCheckReq end-device validates its connectivity to a network
0x02 LinkCheckAns network server contains info about link margin
0x03 LinkADRReq network server ADR request
0x03 LinkADRAns end-device acknowledges LinkADRReq
0x04 DutyCycleReq network server sets the maximum transmit duty cycle
0x04 DutyCycleAns end-device acknowledges DutyCycleReq
0x05 RXParamSetupReq network server sets the reception slot parameters
0x05 RXParamSetupAns end-device acknowledges RXParamSetupReq
0x06 DevStatusReq network server requests the status of the end-device
0x06 DevStatusAns end-device with battery level and radio status
0x07 NewChannelReq network server manages definition of a radio channel
0x07 NewChannelAns end-device acknowledges NewChannelReq
0x08 RXTimingSetupReq network server sets the timing of the reception slots
0x08 RXTimingSetupAns end-device acknowledges RXTimingSetupReq
0x03 TXParamSetupReq network server sets allowed dwell time and MaxEIRP
0x03 TXParamSetupAns end-device acknowledges TXParamSetupReq
0x03 DlChannelReq network server sets up downlink RX1
0x03 DlChannelAns end-device acknowledges DlChannelReq
0x03 DeviceTimeReq end-device requests the current GPS time
0x03 DeviceTimeAns network server answers DeviceTimeReq

Adaptive Data Rate (ADR)

Adaptive Data Rate (ADR) is the capability of the network to automatically optimize the speed in which the devices send their data.

  • changes the data rate based on simple rules:
    • if the strength of the radio signal (called the link margin) is high, the data rate can be increased;
    • if the link margin is low, the data rate can be lowered.
  • The Network Server, which received the data, selects the ideal data rate based on the received signals strength (link margin)
  • The data rate the node should use is sent via a downlink to the device.
  • Mobile devices cannot use ADR!
    • For moving devices we can use Blind ADR (or Application Driven ADR) where the application defines several data rates, used over time (eg. 1 uplink using SF7 every 30 minutes, 1 uplink at SF10 every 6 hours and 1 uplink at SF12 every day)

LoRaWAN allows end-devices to use any of the possible data rates (DR) and transmission power (TX) individually. This feature is used by Network Servers to adapt and optimize the number of retransmissions, the data rate, and the TX power of end-devices. This is referred to as the adaptive data rate (ADR) and, when it is enabled, end-devices will be optimized to use the fastest data rate and minimum TX power possible.

When the downlink ADR bit is set, it informs the end-device that the Network Server is able to send ADR commands. The end-device may set/unset the uplink ADR bit independently.

End Devices

Consist of a MicroController Unit (MCU), power supply, peripherals such as sensors, the LoRa radio (modem) and antenna.

LoRaWAN stack can run 1. embedded in the application layer on MCU, 2. on the LoRa modem on a tiny separated MCU, 3. in the LoRa module with the application code on MCU.

Classes

Classes of LoRaWAN devices: A, B, C (downlink - message from the network, uplink - message from the device)

  • Class A: low power consumption, sleeping most of the time, can receive a downlink only as a response to an uplink just sent - only the end-device can initiate communication. Fire alarms, flood detectors.
    • Class A end-devices allow bi-directional communications, whereby each end-device's uplink transmission is followed by two short downlink receive windows.
  • Class B: average battery life, listen to the network periodically to receive a downlink and also after sending an uplink. Metering temperature etc.
  • Class C: high power consumption, continuously listening to the network downlinks (no latency) except when sending uplinks. Traffic monitoring and near-real-time apps.

End-Device Activation

Activation of an end-device can be achieved in two ways, either via Over-The-Air Activation (OTAA) when an end-device is deployed or reset, or via Activation By Personalization (ABP) in which the two steps of end-device personalization and activation are performed in one step.

After activation, a device address (DevAddr), a network session key (NwkSKey), and an application session key (AppSKey) are stored in the end-device.

End-device address (DevAddr)

DevAddr consists of 32 bits and identifies the end-device within the current network; is allocated by the Network Server of the end-device.

Network session key (NwkSKey)

NwkSKey is a network session key specific to the end-device. It is used by both the Network Server and the end-device to calculate and verify the MIC (message integrity code) of all data frames to ensure data integrity.

It is further used to encrypt and decrypt the payload field of MAC-only data frames, where FPort=0.

Application session key (AppSKey)

AppSKey is an application session key specific to the end-device. It is used by both the Application Server and the end-device to encrypt and decrypt the payload field of application-specific data frames.

Application payloads shall be encrypted end-to-end between the end-device and the Application Server, but they are integrity-protected only over-the-air and not end-to-end. This means that a Network Server may be able to alter the encrypted content of the data frames in transit (yet without being able to read the plain content).

Over-the-Air Activation

An end-device shall initiate a new Join Procedure every time it loses the session context information.

An end-device shall be personalized with the following information before it starts the Join procedure: a globally unique end-device identifier (DevEUI), the Join Server identifier (JoinEUI), and an AES-128 key (AppKey).

End-device identifier (DevEUI)

DevEUI is a global end-device ID in the IEEE EUI64 address space that uniquely identifies the end-device across roaming networks.

All end-devices shall have an assigned DevEUI, regardless of which activation procedure is used (i.e., ABP or OTAA).

Join-Server identifier (JoinEUI/AppEUI)

JoinEUI is a global application ID in the IEEE EUI64 address space that uniquely identifies the Join-Server that is able to assist in the processing of the Join procedure and the derivation of session keys.

For OTAA end-devices, JoinEUI shall be stored in the end-device before the Join procedure is executed. JoinEUI is not required for ABP-only end-devices.

A Network Server shall resolve the value of JoinEUI to the IP address and port number of the Join Server when it receives this value either in a Join-request or a Rejoin-request message.

A JoinEUI identifies a JS, whereas an NS is identified by its NetID. Multiple JoinEUIs may identify the same JS. Both the JoinEUI and the NetID can be resolved into the IP address and port number of the respective servers by using DNS.

Formerly known as AppEUI.

Application key (AppKey)

The AppKey is an AES-128 root key specific to the end-device. Whenever an end-device joins a network via over-the-air activation, the AppKey is used to derive the session keys NwkSKey and AppSKey specific to that end-device to encrypt and verify network communication and application data.

An AppKey shall be stored on an end-device intending to use the OTAA procedure and it is not required for ABP-only end-devices.

Join procedure

From an end-device's point of view, the Join procedure consists of two MAC frames exchanged with the server, namely a Join-Request and a Join-Accept.

Join frames

JoinNonce is a non-repeating value provided by the Join Server and used by the end-device to derive the two session keys NwkSKey and AppSKey, which shall be calculated as follows:

NwkSKey = aes128_encrypt(AppKey, 0x01 | JoinNonce | NetID | DevNonce | pad16)
AppSKey = aes128_encrypt(AppKey, 0x02 | JoinNonce | NetID | DevNonce | pad16)

The Join-Request frame is not encrypted. The Join-Accept frame itself shall be encrypted with the AppKey.

Gateways

Gateways receive LoRa modulated RF messages from end devices and forward them to the Network Server through an IP backbone.

  • Operate on the physical layer as LoRa radio message forwarders
  • Demodulate LoRa packets and forward them to the Network Server via internet or LAN
  • Check the data integrity of each incoming LoRa RF message; if not intact (CRC is incorrect), the message will be dropped
  • For LoRaWAN downlinks, a gateway executes transmission requests coming from the LNS without any interpretation of the payload
  • A single eight-channel gateway can support a few hundred thousand messages over the course of a 24-hour period
  • No fixed association between an end device and a specific gateway; uplink packet sent by the end device will be received by all gateways within reach. Deduplication is handled by the Network server.

Based on the Received Signal Strength Indicator (RSSI) levels of the identical messages, the network server typically selects the gateway that received the message with the best RSSI when transmitting a downlink message because that gateway is the one closest to the end device in question.

If two messages sent over the same frequency, arrive at the gateway simultaneously, one of them will get lost.

As full-duplex radios are not widely available yet, a gateway is not able to receive transmissions from devices while transmitting itself. This means that if a gateway is transmitting 10% of the time, it's not able to receive anything for that 10% of the time.

Gateways also include the following metadata into a message:

  • Received Signal Strength Indicator (RSSI)
  • Signal-to-Noise Ratio (SNR)
  • Time-of-arrival (TOA)
  • Frequency channel
  • Data rate

LoRa packet forwarder

Program running on the host of a LoRa-based gateway that forwards RF packets received by the concentrator (uplinks) to a LoRaWAN Network Server and also transmits RF packets sent by the NS (downlinks) through a secured IP link.

Popular implementations are:

Network Server

The Network Server manages gateways, end-devices, applications, and users in the entire LoRaWAN network.

  • Analog to a "router" of the LoRaWAN protocol
  • Forwarding uplink application payloads to the appropriate application servers
  • Queuing of downlink payloads coming from any Application Server to any device connected to the network
  • Managing the downlink message queue and selecting a gateway to send a downlink through based on link quality (RSSI, SNR)
  • Handles authentication and end-to-end security
  • Validating the authenticity of end devices and integrity of messages
  • Deduplicating uplink message
  • Providing acknowledgments of confirmed uplink data messages
  • Forwarding Join-request and Join-accept messages between the devices and the join server
  • Adapting data rates using the ADR protocol

Application Server

The Application Server processes application-specific data messages received from end devices.

  • Receives and decrypts data (uplinks) from the Network Server
  • Encrypts data and sends them to the end-devices (downlink)
  • Data events can be integrated with destinations like MQTT, HTTP, AWS SNS, PostgreSQL, etc.

Join Server

The Join Server assists in secure device activation, root key storage, and session key generation - generates keys for encrypting and signing messages.

Over the air activation (OTAA):

  1. End-device sends a Join-request message to the Join Server through the Network Server.
  2. The Join-server processes the Join-request message, generates session keys, and
  3. transfers NwkSKey (Network session key) and AppSKey (Application session key) to the Network server and the Application server respectively

Application Server has the role of the Join Server in many implementations (Chirpstack).

Profiles

Device Profile

Device Profile includes End-Device capabilities and boot parameters that are needed by the NS for setting up the LoRaWAN radio access service.

  • DeviceProfileID - ID of the Device Profile
  • SupportsClassB - end-device supports Class B
  • SupportsClassC - end-device supports Class C
  • MACVersion - version of the LoRaWAN supported by the end-device
  • SupportsJoin - end-device supports Join (OTAA) or not (ABP)
  • RFRegion - RF region name

Service Profile

Service Profile includes service parameters that are needed by the NS for setting up the LoRa radio access service and interfacing with the AS.

  • ServiceProfileID - ID of the Service Profile
  • ULRate - uplink token bucket filling rate, including ACKs (packet/h)
  • DLRate - downlink token bucket filling rate, including ACKs (packet/h)
  • AddGWMetadata - GW metadata (RSSI, SNR, GW geoloc., etc.) are added to the packet sent to AS
  • DevStatusReqFreq - frequency to initiate an End-Device status request (request/day)
  • ReportDevStatusBattery - report end-device battery level to AS

Regional Parameters

Plan EU868 US915 AU915 CN779
Default Freq band MHz 863 to 870 902 to 928 915 to 928 779 to 787 MHz
Man. Channel Freq MHz 868.10, 868.30, 868.5 up: 64, down: 8 up: 64, down: 8 779.5, 779.7, 779.9
JoinReq DataRate [0:5] [0:4] [2:6] [0:5]
CFList Type Support 0 1 1 0
Man. Data Rate [0:5] [0:4], [8:13] [0:6], [8:13] [0:5]
Opt. Data Rate [6:7] or [6:11] [5:6] [7] [6:7]
Number of channels 16 up: 64+8, down: 8 up: 64+8, down: 8 16
Default channels [0:2] [0:71] [0:71] [0:2]
Default RX1DRoffset 0 0 0 0
Allowed RX1DRoffset [0:5] [0:3] [0:5] [0:5]
Duty Cycle < 1% No limit No limit < 1%
Dwell time limit No [0:63] 400ms, [64:71] No [0:63] 400ms, [64:71] No No
TxParamSetupReq No No Yes No
Max EIRP - TXPower 0 +16 dBm +30 dBm +30 dBm +12 dBm
Default RX2DataRate DR0 DR8 DR8 DR0
Default RX2 Freq 869.525 MHz 923.3 MHz 923.3 MHz 786.0 MHz

Default settings (recommended)

Attribute Value
RECEIVE_DELAY1 1s
RECEIVE_DELAY2 2s (RECEIVE_DELAY1 + 1s)
RX1DROffset 0 (table index)
JOIN_ACCEPT_DELAY1 5s
JOIN_ACCEPT_DELAY2 6s
MAX_FCNT_GAP 16384
ADR_ACK_LIMIT 64
ADR_ACK_DELAY 32
RETRANSMIT_TIMEOUT 2s +/- 1s

EU868 (EU863-870 MHz Band)

  • Bandwidth: 125 kHz
  • Channel Frequency: 868.10, 868.30, 868.50 MHz (mandatory) + 13 optional = 16 possible channels
  • DR / Bitrate: DR0 to DR5 / 0.3-5 kbps
  • Nb Channels: 3
  • Duty cycle: < 1%
Data Rate DRNext Configuration Bit-rate Max MACPayload size
0 NA SF12 / 125 kHz 250 bit/s 59
1 0 SF11 / 125 kHz 440 bit/s 59
2 1 SF10 / 125 kHz 980 bit/s 59
3 2 SF9 / 125 kHz 1760 bit/s 123
4 3 SF8 / 125 kHz 3125 bit/s 230
5 4 SF7 / 125 kHz 5470 bit/s 230
6 5 SF7 / 250 kHz 11000 bit/s 230
7 6 FSK: 50 kbps 50000 bit/s 230
8 0 LR-FHSS CR1/3 137 kHz 162 bit/s 58
9 8 LR-FHSS CR2/3 137 kHz 325 bit/s 123
10 0 LR-FHSS CR1/3 336 kHz 162 bit/s 58
11 10 LR-FHSS CR2/3 336 kHz 325 bit/s 123
12..14 RFU

US915 (US902-928 MHz ISM Band)

  • Bandwidth: 125 kHz and 500 kHz
  • Channel Frequency:
    • Upstream: 64 channels (0-63) 902.3 MHz to 914.9 MHz (by 200 kHz) for 125 kHz bandwidth
    • Upstream: 8 channels (64-71) 903.0 MHz to 914.2 MHz (by 1.6 MHz) for 500 kHz bandwidth
    • Downstream: 8 channels (0-7) 923.3 MHz to 927.5 MHz (by 600 kHz) for 500 kHz bandwidth
  • DR / Bitrate:
    • Upstream: DR0 to DR5 / 0.3-3.1 kbp for 125 kHz bandwidth
    • Upstream: DR4 or LR-541 FHSS DR5-DR6 for 500 kHz bandwidth
  • Duty cycle: no limit
Data Rate DRNext Configuration Bit-rate Max MACPayload size
0 NA SF10 / 125 kHz 250 bit/s 19
1 0 SF9 / 125 kHz 440 bit/s 61
2 1 SF8 / 125 kHz 980 bit/s 133
3 2 SF7 / 125 kHz 1760 bit/s 230
4 3 SF8 / 125 kHz 3125 bit/s 230
5 0 LR-FHSS 162 bit/s 58
6 5 LR-FHSS 325 bit/s 133
7 RFU
8 SF12 / 500 kHz 980 bit/s 53
9 SF11 / 500 kHz 1760 bit/s 129
10 SF10 / 500 kHz 3900 bit/s 222
11 SF9 / 500 kHz 7000 bit/s 222
12 SF8 / 500 kHz 12500 bit/s 222
13 SF7 / 500 kHz 21900 bit/s 222

AU915 (AU915-928 MHz Band)

  • Bandwidth: 125 kHz and 500 kHz
  • Channel Frequency:
    • Upstream: 64 channels (0-63) 915.2 MHz to 927.8 MHz (by 200 kHz) for 125 kHz bandwidth
    • Upstream: 8 channels (64-71) 915.9 MHz to 927.1 MHz (by 1.6 MHz) for 500 kHz bandwidth
    • Downstream: 8 channels (0-7) 923.3 MHz to 927.5 MHz (by 600 kHz) for 500 kHz bandwidth
  • DR / Bitrate:
    • Upstream: DR0 to DR5 / 0.3-3.1 kbp for 125 kHz bandwidth
    • Upstream: DR6 or LR-541 FHSS DR7 for 500 kHz bandwidth
    • Downstream: DR8 to DR13 for 500 kHz bandwidth
  • Duty cycle: no limit
Data Rate DRNext Configuration Bit-rate Max MACPayload size
0 NA SF12 / 125 kHz 250 bit/s 59
1 0 SF11 / 125 kHz 440 bit/s 59
2 1 SF10 / 125 kHz 980 bit/s 59
3 2 SF9 / 125 kHz 1760 bit/s 123
4 3 SF8 / 125 kHz 3125 bit/s 230
5 3 SF7 / 125 kHz 5470 bit/s 230
6 5 SF8 / 500 kHz 12500 bit/s 230
7 LR-FHSS 162 bit/s 58
8 SF12 / 500 kHz 980 bit/s 61
9 SF11 / 500 kHz 1760 bit/s 137
10 SF10 / 500 kHz 3900 bit/s 230
11 SF9 / 500 kHz 7000 bit/s 230
12 SF8 / 500 kHz 12500 bit/s 230
13 SF7 / 500 kHz 21900 bit/s 230

CN779 (CN779-787 MHz Band)

  • Bandwidth: 125 kHz
  • Channel Frequency: 779.5, 779.7, 779.9 MHz
  • DR / Bitrate: DR0 to DR5 / 0.3-5 kbps
  • Nb Channels: 3
  • Duty cycle: < 1%
Data Rate DRNext Configuration Bit-rate Max MACPayload size
0 NA SF12 / 125 kHz 250 bit/s 59
1 0 SF11 / 125 kHz 440 bit/s 59
2 1 SF10 / 125 kHz 980 bit/s 59
3 2 SF9 / 125 kHz 1760 bit/s 123
4 3 SF8 / 125 kHz 3125 bit/s 230
5 4 SF7 / 125 kHz 5470 bit/s 230
6 5 SF7 / 250 kHz 11000 bit/s 230
7 6 FSK: 50 kbps 50000 bit/s 230
8..14 RFU

ChirpStack LoRaWAN

ChirpStack provides open-source components for LoRaWAN networks.

  • Gateway Bridge: handles the communication between the LoRaWAN gateways and the Network Server
  • Chirpstack: LoRaWAN Network Server, Application Server and Join Server implementation
  • Gateway OS: Linux-based OS to run the (full) ChirpStack stack on a Raspberry Pi-based LoRa gateway

ChirpStack Architecture

ChirpStack Gateway Bridge

Converts LoRa® Packet Forwarder protocol into a ChirpStack common data format.

The following Packet Forwarder backends are provided:

Integration with the Chirpstack (NS) is provided via MQTT.

LoRa packet PHYPayload ==lora==> Packet Forwarder protocol ==udp==> Chirpstack format ==mqtt==> Chirpstack (NS)

References