The Internet of Things on AWS – Official Blog

Introducing support for Public Networks with AWS IoT Core for LoRaWAN

Introduction

We recently announced a preview of public network support for AWS IoT Core for LoRaWAN, a fully-managed LoRaWAN Network Server (LNS). For this announcement, AWS has partnered with Everynet, a public LoRaWAN network provider, to simplify LoRaWAN network deployment and provide customers with an alternative to managing their own gateways. . Everynet’s national LoRaWAN network offers coverage for more than 40% of the U.S. population across 650+ cities. Everynet offers a coverage map so you can view the most up-to-date coverage and facilitate deployment of LoRaWAN devices. The preview of public network support is available in the United States and in the US East (N. Virginia) and US West (Oregon) regions.

Building solutions with public network support for AWS IoT Core for LoRaWAN will allow you to focus more on your core business which involves the collection of business data from your LoRaWAN devices. Though one LoRaWAN enabled gateway can serve hundreds of LoRaWAN devices in-range, deploying such gateways require capital expense and a team of engineers to maintain and operate them. With public network support, you can leverage public LoRaWAN networks for the same use cases for private LoRaWAN networks without the need to deploy gateways in areas that already have public LoRaWAN coverage.

Everynet logoEverynet is an AWS Partner that operates public LoRaWAN networks. AWS IoT Core for LoRaWAN utilizes the NetID, a 24-bit network identifier, assigned by the LoRa Alliance for identifying LoRaWAN networks. NetID is used by networks for assigning network specific addresses (i.e. DevAddr defined in section 2.6.1) to LoRaWAN devices so that uplink can be forwarded to the right (i.e. their home) network. The same NetID concept is used to route traffic from Everynet to AWS IoT Core for LoRaWAN.

In this blog, we will demonstrate how you can use public network support for AWS IoT Core for LoRaWAN.

Step 1: Enable the use of Public Networks

Prerequisites

To follow through this blog post, you will need an AWS account, access to either the US East or US West regions for AWS IoT Core for LoRaWAN, and AWS Identity and Access Management (IAM) permissions to create LPWA devices, service profiles, device profiles, and IoT wireless destinations in AWS IoT Core. Along with the permissions to create resources on your AWS account you will also need a LoRaWAN device and Everynet coverage.

To enable the use of public networks (console):

  1. Navigate to the AWS IoT Core for LoRaWAN console
  2. Go to Profiles page to create a Service profile
  3. Choose Add Service profile to enable Public Networks support as shown in Figure 1
  4. Enter a name to Service profile e.g. public-networks-profile

This is the only different step between creating private networks and using partner’s coverage for public network.

AWS IoT Console page showing the options for configuring a service profile for LoRaWAN connections using public networks

Figure 1 – Add Service Profile to enable Public Networks

Adding Device Profile and Destination (console)

  1. Add a Device profile based on device type and LoRaWAN region (during the preview, choose US915 under Frequency band)
  2. Add a Destination by navigating to the AWS IoT Console and under Manage select LPWAN devices, select Destination, and choose Add destination
  3. Enter a Destination name e.g. public-networks-destination
  4. Enter a topic eg. public_networks/topic
  5. Choose Create a new service role
  6. Select Add destination

AWS IoT Console page showing the options for configuring a destination for LoRaWAN connections using public networks. There are options to set the Destination name, a choice to configure an IoT rule for the destination or publish to a AWS IoT Core message broker topic, and choices for creating a new role or using an existing role for this destination

Figure 2 – Add Destination for LPWAN device data

Step 2: Creating a device

Adding LoRaWAN Devices (console)

  1. Navigate to AWS IoT console and under Manage select the dropdown for LPWAN devices then choose Devices 
  2. For LoRaWAN specification, select OTAA v1.0x
  3. Enter DevEUI – The 16-digit hexadecimal DevEUI value found on your wireless device
  4. Enter AppKey – The 32-digit hexadecimal AppKey value that your wireless device vendor provided
  5. Enter AppEUI – The 16-digit hexadecimal AppEUI that your wireless device vendor provided
  6. For Wireless device name enter public LoRaWAN device

AWS IoT Core page for adding a LoRaWAN device. The page includes the choice of specification for the device along with placeholders for EUI and credentials. There is also a form box to enter a device name.

Figure 3 – Provisioning a LoRaWAN device

  1. For Wireless Device profile, select the one created in previous procedure
  2. For Service profile, select public-networks-profile created in previous procedure
  3. For Destination name, select public-networks-destination as created in previous procedures

An extension of the previous image allowing a choice of the device profile and service profile as well as the destination. The options here are all of things created in previous steps.

Figure 4 – Associating profiles and choosing the destination

  1. Choose Next
  2. Select Add device

You can repeat these steps to add multiple devices

Step 3: Verifying Connectivity

Checking for the latest uplink

  1. Open the AWS IoT console
  2. In the navigation pane, under Manage and then under LPWAN devices, choose Devices
  3. Notice under LoRaWAN devices the Last Uplink Received At column reflects the date and time of the latest uplink

The AWS IoT Core page showing a list of LoRaWAN devices. There is a column for last uplink received that is highlighted to show that there was a recent uplink

Figure 5 – LoRaWAN devices from public networks

Testing the device uplink

  1. In the AWS IoT console, in the left menu, under Test, choose MQTT test client
  2. In the Subscribe to a topic tab, enter the topic as # and choose Subscribe
  3. Notice the raw payloads from AWS IoT Core for LoRaWAN is the same as private networks payloads except for the exclusion of gateway EUI information from public networks.

AWS IoT Core MQTT test client showing that the test client is subscribed to the wild card topic # and has received data from the AWS IoT Core for LoRaWAN service. The data is showing in the subscriptions page as a json message on the topic public_networks/topic.

Figure 6 – LoRaWAN device payload

Customer reference

Quext is a smart apartment technology provider that is leveraging the preview for public network support in AWS IoT Core for LoRaWAN.

Quext logo“At Quext, we’re focused on delivering cost-effective and streamlined smart apartment technology that boosts property values, simplifies building management and improves resident satisfaction. Access to the Everynet LoRaWAN network globally through AWS IoT Core is providing us with the most efficient and immediate way to meet this goal.”

— Tray Johnson, CTO at Quext

Cleaning up

To remove devices (console)

  1. Navigate to AWS IoT console and under Manage select the dropdown for LPWAN devices and choose Devices
  2. Select the device(s) you created and choose delete

To remove destinations (console)

  1. Navigate to AWS IoT console and under Manage select the dropdown for LPWAN devices and choose Destinations
  2. Select the destination you created and choose delete

To remove service and device profiles (console)

  1. Navigate to AWS IoT console and under Manage select the dropdown for LPWAN devices and choose Profiles
  2. Select the device profile you created and choose delete
  3. Select the service profile you created and choose delete

Conclusion

In this blog, we introduced and demonstrated how to use the new public network support feature for AWS IoT Core for LoRaWAN, a new feature to enable customers to use public LoRaWAN networks directly from AWS IoT for LoRaWAN. We do not advise you to run commercial workloads during the preview phase. We recommend using the public preview version of the public network feature to quickly test your current devices as well as test new deployment strategies. If you would like to learn more, please review our documentation on AWS IoT Core for LoRaWAN.

Gaurav Gupta

Gaurav is a Principal Partner Solutions Architect at AWS, focusing on empowering IoT connectivity partners in LoRaWAN, Telco, and Satellite. With over 18 years of experience in wireless technologies, protocols, and building solutions, he is revolutionizing the wireless/IoT/cloud field with 15+ granted patents.

Jordan Alexander

Jordan is a Partner Solutions Architect at Amazon Web Services (AWS) based out of Atlanta. He supports partners across hybrid and edge as well as AWS connectivity partners across various wireless technologies. He has more than 5 years of experience in wireless Internet of Things and now supports partners that build solutions to connect devices to the cloud.