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:
- The device sends a Join Request over the air.
- Your network server sends a
JoinReqmessage to the Join Server over HTTP (POST /join), using the LoRaWAN Backend Interfaces format. - 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).
- It answers with a
JoinAnsmessage, 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
- You run a LoRaWAN network server that can delegate joins to an external Join Server over HTTP.
- You have the DevEUI and the AppKey of each device.
- Your registry is ready to receive devices. See Provisioning.
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
- Gateways and sub-devices to report data from your LoRaWAN gateway.
- Provisioning to compare the other methods.