A leader in IoT and connected device engineering services, Cardinal Peak is keeping up with Amazon Sidewalk and potential use cases for Amazon Sidewalk devices. As both an AWS IoT partner and Silicon Labs design partner, Cardinal Peak often demos dev kits to test out new offerings and explore its potential for our clients’ products. Here, our senior embedded software engineer demos the Amazon Sidewalk Test Kit and Silicon Labs Sidewalk Pro Kit, discussing their experience.
In this blog post you’ll get an introduction to an interesting new IoT connectivity option from Amazon called “Sidewalk.” I’ll go over what the technology is and how it works. I’ll also share my experience with the Amazon Sidewalk Test Kit and the Sidewalk Pro Kit offered by Silicon Labs.
- Amazon Sidewalk Tour
- Radio Interfaces Used By Amazon Sidewalk
- Amazon Sidewalk Test Kit
- Silicon Labs Pro Kit for Amazon Sidewalk
Amazon Sidewalk Tour
Amazon Sidewalk is a neighborhood-scale or city-scale mesh network formed by various Amazon gateway devices (Echo and Ring products). Amazon opened up Sidewalk to third party developers in March 2023. Sidewalk provides a low-speed and small-data message delivery mechanism between the AWS cloud and Sidewalk capable end devices. Latency can be on the order of seconds and the message sizes are limited to no more than a few hundred bytes.
Target Use Cases for Amazon Sidewalk Devices
These days, people are used to having home and mobile internet connectivity at speeds of hundreds of megabits per second, so it’s natural to ask why anyone would be interested in Sidewalk for network connectivity. It’s important to understand that the target market for Sidewalk is IoT, which covers things like tracker devices and sensors of various kinds which don’t need high speed or low latency. IoT devices are typically battery powered and, for some devices, the battery is expected to last for years. Sidewalk is definitely NOT targeted at the same type of use cases that power-hungry 4G and 5G cellular networks or Wi-Fi target. You will never see a Sidewalk enabled smartphone.
Amazon Sidewalk Gateways Form the Sidewalk Mesh Network
The Sidewalk gateway devices, which are privately owned by the people who purchased them from Amazon, provide the bridge between the internet and the Sidewalk mesh network. Internet backhaul to AWS piggybacks on the internet connections of the gateway owners, who can opt out in Alexa settings if they wish. The amount of data handled by each gateway device is capped at 80Kbps and 500MB/month, so by design it doesn’t take up much of someone’s internet capacity. Amazon is hoping that most people don’t opt out because the network is stronger and provides better coverage the more active gateways there are.
AWS IoT Core for Amazon Sidewalk
Note that the gateways enforce that Sidewalk devices can only exchange data with applications using AWS IoT Core. Sidewalk does NOT provide a general open connection to arbitrary internet endpoints. Amazon monetizes Sidewalk by charging for data/compute in AWS. There is no charge for connecting to the Sidewalk network itself. Only devices with Amazon approved credentials can connect. This means that Sidewalk end devices must be certified by Amazon. One other important thing to know is that Sidewalk has only been rolled out for the “us-east-1” (North Virginia) datacenter.
Figure 1 – Sidewalk Components
Amazon Sidewalk Connectivity
Sidewalk connectivity can be viewed as occurring on two planes – the control plane and the data plane. The control plane involves device authentication (certificates), authorization to connect, and routing of messages to the correct gateway. The control plane is managed entirely by Amazon and developers never see control messages or have to deal with them – either on the device side or the AWS side. The data plane handles the “payload” which is what device developers see and care about.
Radio Interfaces Used by Amazon Sidewalk
Sidewalk is built on top of three different radio technologies: BLE, FSK, and CSS. Note most gateway devices do not support all three radios. For this reason, Amazon recommends that developers obtain an Echo (Gen 4) which does support all three.
Figure 2 – BLE/FSK/CSS Radios
(Source: Silicon Labs)
- Bluetooth Low Energy (BLE) is an international standard and operates in the unlicensed 2.4GHz frequency band, provides relatively short range, and is referred to as “In the Home” coverage. Note that BLE is completely independent of (and incompatible with) classic Bluetooth.
- Gaussian Frequency Shift Keying (GFSK or FSK) is a term for a frequency modulation scheme. In the case of Sidewalk, Amazon has defined their FSK implementation to operate in the unlicensed 900 MHz band using a proprietary MAC/PHY. The range of FSK is further than BLE and is referred to as “Beyond the Front Door” coverage.
- Chirped Spread Spectrum (CSS) is a term for a particular modulation scheme. The implementation used by Amazon is specified in the LoRa standard and uses the unlicensed 900 MHz band. Of the three radio technologies used by Sidewalk, this one has the longest range and is referred to as “Beyond the Fence” coverage. In practice, it can reach up to a couple of kilometers.
FSK and CSS, both in the 900 Mhz band, are collectively referred to as the “SubGhz” radios.
If CSS is so long range, then why did Amazon even bother with the other two radios? In short, the answer is that the shorter the radio range, the faster the data rate, and the larger the packet MTU.
Figure 3 – Radio Maximum Transmission Units (MTUs)
|Link Type||MTUs (Bytes)|
|BLE (link type 1)||255|
|FSK (link type 2)||200|
|LoRa (link type 3)||19|
In other words, there are trade-offs between the three radios, and having options gives developers the most flexibility. The Sidewalk software stack provided by Amazon lets the developer switch among radio protocols as needed. The stack doesn’t do this automatically.
Amazon Sidewalk Test Kit
The first Sidewalk device I’ll talk about is the Amazon Test Kit which is not available to the general public but is available free to developers. Amazon states that the purpose of the test kit is for developers to check Sidewalk coverage in their area. However, this is of dubious usefulness because Amazon already provides a map showing coverage.
The test kit is a sealed device about the size of a C-cell battery with no buttons or switches and a single LED. It has three small connector pads on the bottom which mate with the included charging station. Once charged, it begins working immediately and will continue until the battery is dead. It can be recharged and used again. There’s a small pinhole button on the backside of the charging station. This can be used to reset the device, if needed, by placing the Test Kit on the charging station and pressing the button for two seconds until you hear a beep.
Figure 4 – Charging Station and Amazon Sidewalk Coverage Test Device (top/bottom)
The test device contains a GPS receiver and every 10 seconds sends its location to AWS where you can observe the location history in a map. (Side note: this might actually be the long-delayed Ring tracker product.) The LED blinks three times for each GPS sample sent. Amazon provides website login credentials specific to your assigned device. Here’s the map showing my movements one day. The dots represent the GPS samples, and the color represents the Sidewalk signal strength. One thing to note is that the GPS data has a lot of jitter in the reported position. It is not as accurate and stable as location info on a smartphone, which is not a big deal for a test kit.
Figure 5 – Amazon Sidewalk Test Kit Location History
The device is hermetically sealed with no screws. It’s not field programmable, so you can’t do anything with the software on it. No source code or IDE is available from Amazon. But I was curious about what exactly is inside this thing, so I sawed open the casing.
Figure 6 – Deconstructing the Test Kit
The two main chips inside are:
- Nordic Semiconductor nRF52840 SoC
- STM32 Cortex M4
- BLE transceiver
- Semtech LR1110
- FSK/CSS radio transceiver
- GPS receiver
Silicon Labs Pro Kit for Amazon Sidewalk
I’ll move on now to the second Amazon Sidewalk hardware that I evaluated. This one is the Amazon Sidewalk dev kit from Silicon Labs. Silicon Labs is a major player in the wireless and IoT markets and they are one of Amazon’s partners for enabling Sidewalk in end devices. Cardinal Peak is a Silicon Labs design partner as well. The dev kit consists of a main board and two daughter boards.
The main board is an Silicon Labs dev product and is used for a variety of Silicon Labs Wireless Starter Kits, of which Sidewalk is just one flavor (others are e.g. BT, Wi-Fi, etc). Each type of wireless kit uses the same main board, and just has different daughter boards. The main board has an STM32 SoC running Silicon Labs code. The code is not open and is not modifiable by the developer, although the schematic is available. The board has a small LCD dot matrix screen, some buttons and LEDs, an ethernet jack, debug interfaces, and headers for a daughter board. It connects to a PC with USB-C.
Figure 7 – Main Board
(Source: Silicon Labs)
The two daughter boards contain the actual target SoC that the developer can program. There are two choices in the dev kit:
- The EFR32xG24B board contains an EFR32 SoC by Silicon Labs. This SoC has an integrated BLE-only radio. There is no support for the other two Sidewalk radios (FSK/CSS). It has a connector for an external 2.4 GHz antenna, but it’s apparently not needed because the kit doesn’t come with one and it works anyway.
- The KG100S board contains a Quectel module. This module supports all three Sidewalk radios and requires an external screw-on 900 MHz antenna. The Quectel module contains, among things, an Silicon Labs EFR32 SoC.
Figure 8 – Daughter Boards: BLE-only (left) and BLE-FSK-CSS (right)
Out-of-the-Box Demo for Silicon Labs Amazon Sidewalk Pro Kit
The dev kit arrives with a pre-flashed demo on the BLE-only (EFR32xG24B) daughter card. After installing the card onto the main board and powering it up, the LCD screen displays a QR code. Use a phone to scan the code and open a web interface. The web interface allows controlling the LEDs on the board (downlink comms) and reporting button pushes from the board (uplink comms) and a couple of other features.
Figure 9 – Out-of-the-Box Demo
(Source: Silicon Labs)
The demo pretty much worked as expected, although there were a couple of hiccups:
- Issue #1: Using the web interface with a smartphone browser was flakey. I kept seeing the message “Website disconnected” almost immediately on the LCD, and the QR code would appear again.
Figure 10 – “Website disconnected”
However, using a desktop browser to open the web interface was stable. To do that, you need to type in the device SN located on the back of the daughter board:
Figure 11 – Serial Number Location
(Source: Silicon Labs)
- Issue #2: After a few minutes, the uplink/downlink comms stopped and there was apparently no more communication between the web interface and the device. Only a device reboot resolved it. The problem was not intermittent.
I did not open a support ticket at Silicon Labs for either of these issues.
Building & Flashing a Project with the Silicon Labs Amazon Sidewalk Dev Kit
For me, compiling and flashing code on the device was the main attraction. Silicon Labs provides an IDE for their SoC products – Simplicity Studio – which is based on Eclipse with custom extensions. Thankfully, there are detailed instructions on the Silicon Labs website about how to:
- Upgrade the Secure Element firmware
- Select the target MCU
- Enable Sidewalk SDK
- Enable Sidewalk Assistant adapter pack
- Prepare the separate “RTT Viewer” program to see log messages
- Download and configure the AWS CLI interface
- Create a project based on one of three canned examples
- Compile and flash the project to the board
- Provision and configure the AWS stack
- Generate device credentials and provision them into AWS and into the board
With so many steps, and so many of the actual details hidden under the UI, I was worried about the instructions being brittle. If everything works exactly as specified on the website, then great. But if anything goes wrong, it would be hard to figure out what and where the problem is. It was a valid concern. In two instances, I got stuck and had to open support tickets:
- Gotcha #1: I couldn’t add the Sidewalk SDK
Figure 12 – Sidewalk SDK Option Missing
It turned out to be simple to fix, but not simple to figure out. The tip from Silicon Labs support was “the instructions cited in our prerequisites page have evolved” and they provided the corrected instructions (but the website still has not been updated).
- Gotcha #2: I was not able to get successful communications from the device all the way to AWS using the BLE/FSK/CSS board (KG100S) at first. This one took a week to resolve with Silicon Labs support. It turns out that in certain cases, the flash must be mass-erased and re-provisioned with new device credentials because some kind of bogus metadata ends up in flash and corrupts things. There are no errors or messages indicating when this is needed. It’s a silent failure. The solution has supposedly now been added to an FAQ.
One other potential Gotcha, if you don’t read carefully, is that the pushbuttons on the main board only work for the BLE-only demo project. The project using all three radios (KG100S daughter board) requires using the CLI in the RTT Viewer program.
Aside from the two issues above, I had no trouble with any of the three Sidewalk demo projects. All three come with source code. Silicon Labs was very responsive to support requests and there is also an active Community Forum. Here’s the software stack if you’re curious.
Figure 13 – Silicon Labs Sidewalk Architecture
(Source: Silicon Labs)
It’s worth mentioning a couple of things about the stack:
- The “Amazon Sidewalk Stack” and “Silicon Labs Platform Abstraction Layer (PAL)” are provided in compiled form only. My guess is that the source is under NDA. However, the Sidewalk Stack API is public.
- The “Amazon Sidewalk Stack” actually comes from Amazon. It’s threadless, which is good for certain embedded situations. The underlying PAL layer was written by Silicon Labs. Based on the log messages I see in RTT Viewer, it DOES use threads.
I paused my Sidewalk journey after successfully making all three demo projects work. The next step would be to create a custom project with whatever functionality is needed. For example, maybe pagers are poised to make a comeback so I could create a Sidewalk connected pager. If I was going to create a real go-to-market product, I’d have to move beyond the dev kit and start laying out my own PCB. You get the idea.
Hopefully you have enjoyed reading this blog post and have learned some useful things about Amazon Sidewalk, the Amazon Test Kit, and the Silicon Labs Pro Kit. To make sure you see future posts on Amazon Sidewalk, subscribe to our newsletter. Check out our blog post on speaking at Silicon Labs Works With about Amazon Sidewalk.