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:
The following sections will describe each of the individual options.
Managed LoRaWAN server with AWS IoT Core for LoRaWAN
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:
-
AWS IoT Core for LoRaWAN
overview -
Sample solutions for AWS IoT Core for LoRaWAN
with examples for an implementation of binary decoding, device and gateway monitoring, downlink transmission, telemetry dashboarding, and device provisioning automation
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
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
Refer to the code sample Send a downlink payload to a LoRaWAN device
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
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
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
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
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