Neighbors Helping Neighbors
Building Redundant Systems with Silicon Labs and Amazon Sidewalk
Image Source: Crovik Media/Stock.adobe.com; generated with AI
By Michael Parks, PE for Mouser Electronics
Published February 28, 2024
Amazon Sidewalk is a low-bandwidth, long-range wireless network technology developed by Amazon. It aims to extend the connectivity of smart devices beyond the confines of a single home or property, creating a shared network that can cover larger areas like neighborhoods and communities. Amazon Sidewalk creates a network of devices that can help improve the performance and range of Internet of Things devices, especially for devices beyond the front door like tracking, outdoor lighting, and sprinkler systems, allowing these devices to connect to the Internet even when they are beyond the range of traditional Wi-Fi® and other home networks. This allows product developers to focus their resources on building their products without worrying about building out, securing, and maintaining a reliable network.
To achieve this, Amazon Sidewalk uses a small portion of your home's Wi-Fi bandwidth to provide connectivity to Amazon Sidewalk-enabled devices, including devices outside your home or those belonging to your neighbors (if they are also part of the Amazon Sidewalk network). Voice-controlled smart devices like Amazon Echo or Ring cameras act as bridges by sharing a small portion of your home's internet bandwidth with the Amazon Sidewalk network (Figure 1). These bridges then provide connectivity to Amazon Sidewalk-enabled devices that utilize Bluetooth® Low Energy (specifically the 900MHz spectrum) and other long-range communication frequencies to enable communication over longer distances than standard Wi-Fi. This can extend the range of devices like smart lights, pet trackers, or smart irrigation up to half a mile.

Figure 1: Digital assistants serve as a gateway between Amazon Sidewalk-capable devices. (Source: Mickael/stock.adobe.com: generated with AI)
This can be particularly useful in scenarios where Wi-Fi or cellular connectivity is limited or outdoor devices are far from an access point, or when a home network goes down but important messages must be routed to the homeowner.
This last scenario is what we will explore in this project. We will create a water detection system that can sense the presence of water and relay that information to the homeowner via Amazon Sidewalk. By using Sidewalk instead of the home's Wi-Fi, if the water damage were to trip a breaker connected to the wireless home router, the emergency notifications could be sent via a neighbor-connected device, such as an Echo device or Ring doorbell.
Bill of Materials and Tools
To build a water detection system leveraging Amazon Sidewalk, we will use the following bill of materials (BOM):
- Silicon Labs Pro Kit for Amazon Sidewalk
- Amphenol Advanced Sensors Coolant Breach / Water Intrusion
- TE Connectivity / Holsworthy CFR16J10K 10KΩ Fixed Resistor, 1/4W, 5%
- Adafruit Hookup Wire
- Würth Elektronik WR-TBL Terminal Blocks
- Displaytech Qb Global 5W Power Supplies
In addition to the BOM, the following tools are either required or recommended to have on hand:
- Amazon Echo (fourth generation or newer) to serve as the Sidewalk Gateway
- Small Phillips head and flat head screwdrivers
- Wire cutter/stripper
- Scissors
- Heat shrink tubing
- Small needle nose pliers
- Digital multimeter
- PC running Windows 10 or newer
- High-speed internet connection
Resources
- Access the Mouser shopping cart here.
- Access the GitHub repository here.
- Download Silicon Labs Simplicity Studio.
Important Note About the Amazon Sidewalk Gateway
According to Silicon Labs and Amazon, the Sidewalk protocol requires a gateway that allows endpoints to access the Amazon Web Services (AWS) cloud. Several Amazon products can act as a gateway (Figure 2). These products have different functions and varying support for Amazon Sidewalk network features. This project uses the fourth-generation Amazon Echo smart speaker as the Amazon Sidewalk gateway because Silicon Labs validates the Amazon Sidewalk software development kit for their products.

Figure 2: Sidewalk technology supports multiple wireless protocols for access by endpoint devices. (Source: Allen Stoner/stock.adobe.com: generated with AI)
We recommend using your own gateway, as this affords the greatest control over providing consistent network access during the development phase. However, you may already have access to the Amazon Sidewalk network at your location. To confirm access, see Amazon's Sidewalk Coverage Map.
Lastly, configuring your gateway with Sidewalk support depends on a few additional requirements:
- The Echo device must have a US-localized IP address.
- Amazon Sidewalk must be enabled on the device.
Hardware Build
This water detection project uses the Silicon Labs Pro Kit for Amazon Sidewalk (Figure 3) and an Amphenol Advanced Sensors BAF147B002-00A0 liquid leakage sensor.
Silicon Labs Pro Kit for Amazon Sidewalk
The comprehensive Silicon Labs Pro Kit for Amazon Sidewalk development kit provides all the hardware and software tools needed to evaluate and develop high-volume, scalable Amazon Sidewalk devices.

Figure 3: Silicon Labs offers a Pro Kit for Amazon Sidewalk that enables rapid prototyping of endpoint products such as a water detection device. (Source: Silicon Labs)
The kit includes the following components:
- KG100S radio board: A complete reference design that supports Bluetooth, FSK, and CSS protocols used in Amazon Sidewalk. This is the radio board we will be utilizing for this project.
- BG24 radio board: A Bluetooth-only radio board for users who want a discrete design.
- FSK/CSS adapter board: A board that allows the BG24 radio board to be used with Amazon Sidewalk.
- Wireless Pro Kit mainboard: A mainboard that contains an onboard J-Link debugger, Packet Trace Interface, and a virtual COM port, enabling application development and debugging of the attached radio board and external hardware through an expansion header.
- Amazon Sidewalk SDK: A software development kit that provides the necessary libraries and tools to develop Amazon Sidewalk devices.
We will use the Wireless Pro Kit mainboard and the KG100S radio board in this project. Ensure that the KG100S radio board is carefully seated into the mainboard, carefully aligning the fine pitch pins between the two circuit boards. Also, ensure the main board's power switch is set to the AEM position. This will allow us to power the device via USB while programming the firmware. You can also power the mainboard from a CR2032 coin cell battery, which makes it convenient to place the device in real-world applications.
Amphenol Advanced Sensors Liquid Leakage Sensor
For this project, we are using the Amphenol Advanced Sensors BAF147B002-00A0 liquid leakage sensor (Figure 4). The sensor integrates a fixed 510KΩ resistor, which connects the two electrodes. Water acts as a variable resistor between the electrodes, thus altering the internal resistance of the sensor.

Figure 4: The water sensor follows a voltage divider topology and is connected to the mainboard ADC pin. (Source: Mouser)
You will need to add a second fixed external 10KΩ resistor as a pull-up resistor. One lead from the resistor will connect to one lead on the water sensor and the other lead will connect to the 3.3V source of the mainboard (Figure 5).
- Connect the 3V voltage source pin of the mainboard to one lead of the external 10KΩ fixed resistor.
- Connect the other lead of the 10KΩ fixed resistor to a lead of the water sensor.
- Connect the second lead of the water sensor directly to the GND pin of the mainboard.
- Connect a wire to the ADC pin of the development board to the lead of the 10KΩ resistor that is also connected to the water sensor. Do NOT connect it to the lead that connects to the voltage source.
- Apply heat shrink tubing at all connection points to help mitigate issues with water contacting the wiring.

Figure 5: This drawing shows how the water sensor is wired to the dev board and how the voltage divider works. (Source: Amphenol Advanced Sensors/Mouser Electronics)
NOTE: The 10KΩ resistor is a recommended starting value. If you are not getting reliable sensor readings, try increasingly larger resistor values. Additionally, if you use a different development board with a 5V source voltage, try starting with a 100KΩ fixed resistor.
Software Development
This water detection project uses Simplicity Studio 5 to develop and upload the firmware to the development board. Silicon Labs Simplicity Studio 5 (SSv5) is a free integrated development environment (IDE) for developing embedded applications on Silicon Labs devices. SSv5 is an Eclipse-based IDE available for Windows, macOS, and Ubuntu Linux that provides a comprehensive set of tools for software development, debugging, configuration, and analysis. It is designed to simplify the development process for developers of all experience levels. It features an intuitive user interface and a wide range of features, including:
- Device Configuration: The platform includes tools for configuring microcontroller peripherals and settings. SSv5 automatically recognizes the boards you’ve purchased and filters out sample apps that are not applicable, showing only the sample apps related to your hardware selection. This simplifies the setup process and reduces the complexity of working with hardware components.
- Wireless Development: SSv5 offers extensive support for wireless development, making it suitable for Internet of Things (IoT) applications. It includes libraries and tools for developing applications using popular wireless protocols like Bluetooth, Zigbee®, and Thread.
- Energy Profiler: Energy efficiency is crucial in battery-powered embedded systems. The energy profiler in Simplicity Studio helps developers analyze and optimize power consumption, which is vital for extending the battery life of devices.
- Software Stacks and Libraries: The platform provides a range of pre-built software components, including protocol stacks, middleware, and drivers. These components save development time and simplify the process of building embedded applications.
- Built-in Configuration Management: Simplicity Studio links directly to the private GitHub repositories.
In addition to Simplicity Studio, we recommend you download and install J-Link RTT Viewer to view application logs. The software can be found here. To configure the application, follow these steps:
- In the Configuration window, in the Connection to J-Link section, select USB.
- In the Specify Target Device drop-down list, select the connected part. For the EFR32xG24 radio board BRD4187C, select EFR32MG24AxF1536.
- In the Target Interface & Speed drop-down lists, select SWD and 4000kHz.
- In the RTT Control Block section, select Auto Detection.
- Click OK.
Amazon Web Services
As Sidewalk is an Amazon service, we will use AWS (Figure 6) for the backend to relay messages from the embedded device to the cloud. According to Silicon Labs, you will need to know if you are a root user or an Identity and Access Management (IAM) user. If you’re a new developer, then we recommend setting up a root user account. If you’re an experienced developer, then an IAM user account is a better choice. You will be prompted to add your payment and billing details during the setup process.

Figure 6: The Amazon AWS IoT Core serves as the backend for Sidewalk devices. (Source: Amazon)
You will need an Amazon Sidewalk-enabled bridge device to connect to AWS using Amazon Sidewalk. For this project, we will use the fourth-generation Amazon Echo. As of the writing of this article, Amazon only enables Sidewalk capability on bridges located in the United States. To onboard your device onto AWS, you will need to do the following:
- Create an AWS account:
- Install the AWS command line interface (CLI):
- You can install AWS CLI on Windows, macOS, or Linux. For more information, see the AWS CLI Installation Guide.
- IMPORTANT NOTE: Be sure to use version 1. X CLI. Using version 2.X CLI is not currently supported.
- Configure the AWS CLI by typing
aws configure
and pressing Enter.- You will be prompted to enter your AWS account credentials.
- Amazon has activated Sidewalk only for the northern Virginia region ("us-east-1"). To support Sidewalk development (and operation), your AWS CLI and AWS web interface should be localized on this us-east-1 region.
- Install the Amazon Sidewalk SDK.
- You can install the Amazon Sidewalk SDK from the Silicon Labs website.
- For more information, see the Amazon Sidewalk SDK Getting Started Guide.
- Create an Amazon Sidewalk account.
- Register your Silicon Labs Pro Kit with Amazon Sidewalk:
- Go to the Amazon Sidewalk Developer Console and click the Manage Devices tab.
- Click Register Device.
- Select Silicon Labs as the device manufacturer and Pro Kit as the device model.
- Click Generate Registration Code.
- Enter the registration code into the Silicon Labs Simplicity Studio IDE.
- Provision your Silicon Labs Pro Kit with AWS:
- Open the AWS IoT Core console.
- Click the Manage tab.
- Click Things.
- Click Create Thing.
- Select Custom as the thing type.
- Enter a name for your thing and click Next.
- Select Connect your device directly to AWS IoT Core and click Next.
- Click Create Thing.
- Copy the device shadow Amazon Resource Name (ARN).
Amazon Sidewalk Overview
Amazon Sidewalk is a low-bandwidth, long-range wireless network that uses unlicensed spectrum in the 900MHz band. Amazon operates the network at no charge to end customers. It is designed to be a secured, shared network, meaning multiple devices can share the same network resources. This is made possible using a technique called channelization, which divides the available bandwidth into multiple channels. Each device can be assigned to a specific channel, which helps to prevent interference between devices.
All data transmitted over the network is encrypted, and devices are authenticated using a secure handshake protocol. This helps to protect the network from unauthorized access and data theft. The technology is also meant to be scalable and accommodate many devices, and it can be easily expanded to cover new areas. This makes it a good choice for applications that require low power, low data rate, and wide-area coverage. Sidewalk supports data speeds up to 100Kbps and ranges up to 1 mile. The following are additional technical details about Amazon Sidewalk:
- Modulation: Amazon Sidewalk uses a modulation scheme called Chirp Spread Spectrum (CSS), a spread spectrum modulation technique designed to be resistant to interference.
- Network topology: Amazon Sidewalk uses a mesh network topology. In a mesh network, devices can communicate directly with each other as well as with the internet. This allows the network to self-heal and allows devices to extend the range of the network. Amazon Sidewalk consists of a protocol stack, application layer, and standard physical layer (specifically Bluetooth Low Energy, FSK, and CSS wireless technologies).
- Device registration: Devices must be registered with Amazon Sidewalk before they can use the network. This helps to ensure that only authorized devices can use the network.
- Device management: Amazon Sidewalk provides a device management platform that allows administrators to manage devices that are connected to the network. This includes viewing device status, configuring device settings, and updating device firmware.
Code Overview
Let’s begin with a quick look at the critical files of the project in Silicon Labs’ Simplicity Studio (Figure 7):
- app_init.c handles functionality related to configuring the board’s hardware, such as the network devices and ADC.
- app_cli.c provides a mechanism to interact with the dev board from a development computer connected via USB.
- app_process.c contains the code to process communications and sensor interactions.
- main.c is the main loop that will run continuously to poll the water detection sensors and transmit data to AWS IoT Core.

Figure 7: Silicon Labs' Simplicity Studio 5 is an all-in-one programmer, debugger, and uploader solution. (Source: Silicon Labs)
initADC function enables the clocks and sets up the ADC hardware to appropriate settings. Unless otherwise indicated, typical conditions are ADCCLK=10MHz, OSR=2.
void initADC(void) {
// Enable ADC clock
CMU_ClockEnable(cmuClock_ADC0, true);
// Base the ADC configuration on the default setup.
ADC_Init_TypeDef init = ADC_INIT_DEFAULT;
ADC_InitSingle_TypeDef initSingle = ADC_INITSINGLE_DEFAULT;
// Modify the default ADC settings
init.timebase = ADC_TimebaseCalc(0);
init.prescale = ADC_PrescaleCalc(ADC_FREQ, 0);
ADC_Init(ADC0, &init);
// Set input to temperature sensor. Change this for your specific sensor
initSingle.acqTime = adcAcqTime16; // Acquisition time
initSingle.posSel = adcPosSelAPORT2XCH9; // Change to your ADC channel
ADC_InitSingle(ADC0, &initSingle);
}
readADC function reads the voltage present at the ADC pin.
uint32_t readADC(void) {
ADC_Start(ADC0, adcStartSingle);
while (ADC0->STATUS & ADC_STATUS_SINGLEACT) {}
return ADC_DataSingleGet(ADC0);
}
To send a message from a Silicon Labs Pro Kit to AWS IoT Core using Simplicity Studio, you'll need to set up the device, establish a secure MQTT connection, and publish a message to an AWS IoT Core topic. If you haven’t already done so, first create an AWS account.
Register your Pro Kit in AWS IoT Core and create a thing. Generate and download a certificate, a private key, and a root CA certificate for your device.
Next, open Simplicity Studio and create a new project for your Pro Kit.
Ensure that the necessary SDKs and libraries for networking and MQTT are included in your project. We will use a secure MQTT connection to publish messages to the AWS IoT Core endpoint (port 8883 for secure MQTT). The code will perform two functions: First, establish an MQTT connection between the endpoint device, through the gateway, to the AWS IoT Core. Then publish a custom message to a specific topic to AWS IoT Core.
#include "mqtt_client.h"
void initNetwork();
// Initialize MQTT and connect to AWS IoT
void connectToAwsIot() {
MQTTClient client;
Network network;
unsigned char sendbuf[512], readbuf[512];
NetworkInit(&network);
MQTTClientInit(&client, &network, 3000, sendbuf, sizeof(sendbuf), readbuf, sizeof(readbuf));
MQTTPacket_connectData connectData = MQTTPacket_connectData_initializer;
connectData.MQTTVersion = 4; // MQTT v3.1.1
connectData.clientID.cstring = "your_device_id"; // Set your device ID
connectData.username.cstring = "your_username_here";
connectData.password.cstring = "your_password_here";
// Use your AWS IoT endpoint
char* address = "your_aws_iot_endpoint";
int rc = NetworkConnect(&network, address, 8883);
// Error checking for rc (return code)
rc = MQTTConnect(&client, &connectData);
// Error checking for rc
}
// Publish a message to a topic
void publishMessage(MQTTClient* client, char* topic, char* payload) {
MQTTMessage message;
message.qos = QOS1;
message.retained = 0;
message.payload = payload;
message.payloadlen = strlen(payload);
int rc = MQTTPublish(client, topic, &message);
}
main function will be how you call all these support functions from a main loop that runs continuously. The main function will look something like this:
int main(void) {
char* topic = "/sidewalk/water/data";
initNetwork();
connectToAwsIot();
CHIP_Init();
// Initialize ADC
initADC();
while (1) {
uint32_t adcValue = readADC();
char* payload = adcValue;
publishMessage(&client, topic, payload);
// Small delay
for (volatile int i = 0; i < 100000; i++) {}
}
return 0;
}
Firmware Upload, Final Assembly, and Troubleshooting
Now that we have an idea of how the firmware is structured and functions, we will get the firmware off the development computer and onto the target device. The following procedure should work for most situations:
- Mount the EFR32xG24 radio board onto the mainboard, then connect the assembly to your computer through the USB connector on the mainboard. A new entry should appear in the Debug Adapters view.
- Select the board and make sure your Gecko SDK with Amazon Sidewalk SDK extension installed is selected in the Preferred SDK section of the General Information card. If the Secure FW version on the card is below the minimum SE FW for your target device specified by the prerequisites page, click the nearby link to upgrade the SE FW before proceeding.
- Add the Sidewalk project (.slcp file) in the Simplicity IDE perspective by clicking File and then clicking Import. In the Import Wizard dialog box, click Browse and navigate to where you downloaded the project repository from GitHub.
- Verify that Simplicity Studio adds the project to the workspace folder. You can now compile and flash the project on the EFR32xG24 radio board.
- Click Run, then select Debug to compile the project.
- Wait for the build and flash operations to succeed.
- Click Run from within the Debug window.
- Select Resume.
If you encounter any problems importing the project files, consult this Silicon Labs Amazon Sidewalk troubleshooting guide for importing projects into Simplicity Studio. Open a browser and check to see if you are receiving MQTT messages on the AWS IoT Core MQTT console (Figure 8). The endpoint sends data via the gateway to the AWS cloud platform. Use the following steps to set up an AWS rule to reroute the data to an MQTT topic.
- Go to the MQTT console in AWS.
- Type # in the Topic filter field.
- Click Subscribe.
- Introduce water to the sensor, triggering the endpoint to send a message to the AWS IoT Core.

Figure 8: Testing to see if the endpoint device is connected via Sidewalk to the AWS IoT Core. (Source: Green Shoe Garage)
If you find that you are having challenges with your project, here are some troubleshooting tips that we discovered during development:
- Make sure the radio board is seated firmly on the mainboard.
- Ensure the DC power supply can deliver at least 1A of current.
- Ensure the pins connected to the water sensor match the pins as defined in the firmware.
- With the power switch in the AEM position, the kit hardware is powered through the mainboard's USB-C connector. Connecting the mainboard to a USB power source starts the demo; first, check for network availability:
- Minimize the physical distance between the development board and your Amazon Echo gateway.
- If using a gateway other than an Amazon Echo, confirm that Sidewalk is enabled and verify the gateway has access to the internet (try asking, "Alexa, are you online?") from a US-based IP address.
- For further troubleshooting tips, specifically regarding provisioning and network configuration potential issues, consult Silicon Labs’ Amazon Sidewalk Developer’s Guide.
Summary
Amazon Sidewalk is a potentially transformative network technology for home automation, addressing the critical need for extended range and reliable connectivity of smart devices. Its innovative use of low-bandwidth, low-power networks through devices that many consumers likely already own (e.g., Amazon Echo and Ring) enables Sidewalk to seamlessly connect devices such as cameras, smart locks, and water intrusion detectors beyond the confines of individual homes. By fostering a communal network that enhances device functionality and connectivity across neighborhoods, Sidewalk could revolutionize the concept of a smart home and a smart neighborhood.
Of course, the existence of a network alone is insufficient if no endpoint devices are leveraging this wide-ranging connectivity. Silicon Labs has made it easy and straightforward for developers to get started with Amazon Sidewalk (Figure 9) by introducing the Silicon Labs Pro Kit for Amazon Sidewalk and the associated SDK for the Simplicity Studio IDE. As a leading provider of silicon for Amazon Sidewalk development and IoT device makers with the most complete, one-stop-shop, wireless development solution for Amazon Sidewalk, Silicon Labs can simplify your development process, reduce costs, and accelerate time to revenue.

Figure 9: Amazon Sidewalk with Silicon Labs hardware makes it straightforward to prototype and manufacture IoT devices that are Sidewalk-friendly. (Source: Silicon Labs)
Silicon Labs and Amazon are also ready to support you when you are ready to move from prototyping to manufacturing for mass production. Contract manufacturers can mass manufacture Sidewalk-enabled products and then provide the control log information to AWS IoT Core for Amazon Sidewalk to bulk-provision these devices and onboard them to AWS IoT. They even provide an online pricing calculator to estimate the cost of the AWS services for your Sidewalk-centric product. However, as you move to a custom board solution when utilizing the KG100S, Silicon Labs recommends against using the SPI peripheral because the multi-chip module design already leverages it for communication between the EFR32 and the Semtech radio transceiver. Sharing the SPI bus with additional devices can negatively impact time-critical radio control signals and lead to message failure in sub-GHz protocols.