Building a private LoRaWAN network - Implementing Low-Power Wide-Area Network (LPWAN) Solutions with AWS IoT

Building a private LoRaWAN network

When deploying and operating a private LoRaWAN network, there are three major components to consider: LoRaWAN devices, LoRaWAN gateways, and LoRaWAN software components. Examples of components are LoRaWAN network server, join server, and application server as described in the LoRaWAN network architecture section of this document.

The following figure provides an overview of various deployment patterns for private LoRaWAN networks:

First diagram showing patterns for deployment of private LoRaWAN networks First diagram showing patterns for deployment of private LoRaWAN networks

Patterns for deployment of private LoRaWAN networks

The following sections will describe each of the individual options.

Managed LoRaWAN server with AWS IoT Core for LoRaWAN

Diagram showing AWS IoT Core for LoRaWAN architecture

AWS IoT Core for LoRaWAN architecture

The first pattern is to use AWS IoT Core for LoRaWAN. AWS IoT Core for LoRaWAN is a fully managed feature that enables customers to connect wireless devices that use low-power, long-range wide-area network (LoRaWAN) protocol with AWS Cloud. Using AWS IoT Core, customers can now set up a private LoRaWAN network by connecting their own LoRaWAN devices and gateways to AWS Cloud, without developing or operating a LoRaWAN network server, join server, or application server.

AWS IoT Core for LoRaWAN supports open-source gateway–network server protocol software called LoRa Basics Station. The IoT Core for LoRaWAN partner gateway qualification program enables customers to source pre-qualified LoRaWAN gateways. You can get an overview of pre-qualified LoRaWAN gateways by using AWS Partner Device Catalog.

Customers can also buy any off-the-shelf sensor or actuator compliant with LoRaWAN specification 1.0.x or 1.1 and connect it to AWS IoT Core. This creates a plug and play experience that reduces the device on-boarding friction. As an introduction to AWS IoT Core for LoRaWAN, AWS recommends the following resources:

Device authentication

IoT Core for LoRaWAN supports both approved methods of device activation as specified by LoRa Alliance: OTA and activation by personalization.

Telemetry ingestion

LoRaWAN devices transmit binary encoded data, increasing transmission efficiency and improving battery lifetime. However, as the data arrive in the cloud, many use cases require a structured format. Transforming the binary data into JSON, for example, enables filtering and enrichment using AWS IoT SQL and acting on the data using AWS IoT rule actions.

Refer to the code sample AWS IoT Core for LoRaWAN - deployable reference architecture for binary decoding with examples to receive guidelines on implementing and deploying binary decoders for your LoRaWAN devices.

Device commands

Because LoRaWAN protocol supports a bidirectional communication, you can send messages to your LoRaWAN devices. AWS IoT Core for LoRaWAN provides an API SendDataToWirelessDevice and related SDK functions (for example, AWS SDK for Python, AWS SDK for Java, and AWS SDK for Javascript).

Refer to the code sample Send a downlink payload to a LoRaWAN device to receive implementation guidelines for sending downlink payloads.

Device provisioning

AWS IoT Core for LoRaWAN simplifies device provisioning by offering APIs to provision and manage LoRaWAN gateways and devices. Refer to the developer guide and API documentation for details. You can also access guidelines for automation of provisioning tasks.

Gateway firmware updates

For LoRaWAN gateway firmware update guidance, please refer to the qualified gateway documentation. You can find an example of such guidelines for one specific gateway vendor using Update gateway firmware using CUPS service with AWS IoT Core for LoRaWAN.

OTA firmware updates

With AWS IoT Core for LoRaWAN’s OTA firmware updates, you can deploy new firmware images or delta images to a single device or a group of devices, verify the authenticity and integrity of new firmware after it's deployed to devices, and monitor the progress of a deployment and debug issues in case of a failed deployment. You can find more information on FUOTA with AWS IoT Core for LoRaWAN in the Firmware Updates Over-The-Air (FUOTA) for AWS IoT Core for LoRaWAN devices section of the developer documentation.

Multicast

With AWS IoT Core for LoRaWAN, you can send a downlink payload to multiple devices by sending data to a single multicast address, which is then distributed to an entire group of recipient devices. You can find more information on multicast with AWS IoT Core for LoRaWAN in the Create multicast groups to send a downlink payload to multiple devices section of the developer documentation.

Customer-operated LoRaWAN network server in AWS Cloud

Diagram showing LoRaWAN server provided by AWS Partner, operated by customer

LoRaWAN server provided by AWS Partner, operated by customer

In this pattern, customers deploy and operate LoRaWAN server components in their own AWS account. Examples of LoRaWAN server components are LoRaWAN network server, join server, and application server. When using AWS Partner solutions, the deployment of necessary software components is simplified by using AWS CloudFormation templates provided by AWS Partners.

You can find further information for implementing a customer-operated LoRaWAN server using these resources:

LoRaWAN server as an AWS Partner software as a service (SaaS) solution

Diagram showing LoRaWAN server provided and operated by an AWS Partner

LoRaWAN server provided and operated by an AWS Partner

The next pattern uses a LoRaWAN network server of an AWS Partner as an SaaS solution. In this pattern, the AWS Partner is responsible for operating LoRaWAN components such as LoRaWAN network server, join server, and application server.

To enable a customer’s application to act upon the telemetry from LoRaWAN devices and send commands to LoRaWAN devices, the SaaS solution providers offer integration capabilities. An example of integration is a feature enabling customers to forward the uplink messages from their LoRaWAN devices to AWS IoT Core service in their AWS account.

After the payload arrives on IoT Core MQTT topic or AWS IoT rule, it can be integrated with more than 20 AWS services supported by AWS IoT rules.

Visit AWS Marketplace to find examples of AWS Partner LoRaWAN SaaS solutions.

Customer-operated LoRaWAN server on the edge device

Diagram showing LoRaWAN server operated by customer on the edge device

LoRaWAN server operated by customer on the edge device

In this pattern, customers source, deploy, and operate LoRaWAN gateways and LoRaWAN server components. The LoRaWAN server integrates with AWS IoT Core, enabling cloud applications to process data from and to send commands to LoRaWAN devices. Using this pattern results in higher development and operational efforts compared to the patterns previously described.

One of the challenges when implementing this pattern is a need to remotely provision, update, and configure software components of LoRaWAN server. AWS IoT Greengrass can be used to support faster implementation and simplified operation of these tasks. In particular, the following capabilities of AWS IoT Greengrass will be considered: deploying and updating LoRaWAN server components, managing sensitive configuration, and integrating with AWS IoT Core.

Deploying and updating LoRaWAN server components

Customers can use AWS IoT Greengrass components mechanism to deploy LoRaWAN server components. For example, by using AWS IoT Greengrass Docker application manager component it is possible to download Docker images from public image registries or private repository in Amazon Elastic Container Registry.

Managing sensitive information

A LoRaWAN server configuration contains sensitive information. Customers can use AWS IoT Greengrass secret manager component to securely use credentials such as passwords on AWS IoT Greengrass core devices.

Integrating with AWS IoT Core

Integration between LoRaWAN server and AWS IoT allows users to forward LoRaWAN device payloads to cloud applications, and send commands from cloud application to LoRaWAN devices. To implement this integration, customers can use AWS IoT Greengrass AWS IoT Core Messaging IPC service.

For more information for implementing a customer-operated LoRaWAN server on the edge device, refer to AWS IoT Greengrass V2 Community Component - The Things Stack LoRaWAN.