DRAFT — Preliminary version, do not share. · Version préliminaire, ne pas partager.

LoRaWAN devices

Fundamentum includes a LoRaWAN Join Server, so your LoRaWAN devices can join the network with keys managed in the platform. This page shows you how to register LoRaWAN devices, manage their AppKey and point your network server at the Join Server.

How it works

LoRaWAN devices don't connect to Fundamentum directly. They join through your LoRaWAN network server, which forwards each join request to the Fundamentum Join Server:

  1. The device sends a Join Request over the air.
  2. Your network server sends a JoinReq message to the Join Server over HTTP (POST /join), using the LoRaWAN Backend Interfaces format.
  3. The Join Server finds the device by its DevEUI, checks the request with the device's AppKey and derives the session keys (NwkSKey and AppSKey).
  4. It answers with a JoinAns message, which your network server uses to complete the join.

The Join Server supports LoRaWAN 1.0.x joins (for example, MACVersion 1.0.2). It never creates devices: a device must already exist in a registry before it can join.

Before you begin

1. Register each device with its DevEUI

Create the device in the registry with its DevEUI as the serial number, written as lowercase hexadecimal (for example, 0080000000012345). Use a device type whose communication method is Lora: this tells the platform the device is a LoRaWAN device.

2. Set the AppKey

In the Hub, open the device page, select the Authentication tab, and use Set next to the LoRa AppKey.

The platform stores the AppKey with the device and sends a set-lora-app-key command to the device through its gateway. While the change is pending, the Join Server accepts joins with either the current or the new key, so the device can keep joining during the update.

3. Point your network server at the Join Server

Configure your network server to send join requests for your devices to the Fundamentum Join Server.

A join request looks like this:

{
  "ProtocolVersion": "1.0",
  "MessageType": "JoinReq",
  "SenderID": "<network-server-id>",
  "ReceiverID": "<join-eui>",
  "TransactionID": 1,
  "MACVersion": "1.0.2",
  "PHYPayload": "<join-request-hex>",
  "DevEUI": "<dev-eui>",
  "DevAddr": "<dev-addr>",
  "DLSettings": "<dl-settings>",
  "RxDelay": 1,
  "CFList": ""
}

4. Join and check the device

Power on the device. Once your network server receives a successful JoinAns, the device is on the network.

What's next