Introduction:
Amazon Sidewalk is a free, secure, low-power, and low-bandwidth network that connects devices to the internet. It uses Sidewalk Bridges, like compatible Amazon Echo and Ring devices, to provide cloud connectivity for IoT devices. Sidewalk can support long-range and low-bandwidth connectivity at home and beyond, using Bluetooth LE for short-distance communication and LoRa and FSK radio protocols at 900MHz frequencies for longer distances. Currently, Amazon Sidework can only be used in the United States. The use of Sidewalk gateway functions outside the United States is limited to the development and debugging of Amazon Sidework. Note that using Amazon Sidework outside the United States may violate local regulations.
Preparation:
1. AWS (Amazon Web Service) account (a credit card is required) is used as a cloud server
2. Amazon developer account is used to configure gateway devices using the app, $100 per month
3. Install AWS CLI aws command line tool
4. Gateway that supports Sidewalk
5. 52840dk + SX1262 development board or MinewSemi’s MS24SF1 module
6. NCS2.6.1; Environment configuration will not be explained here
7. Sidewalk code; This article uses version v2.6.1
Configuration:
Add device to AWS
Add Destinations
This step can also use the AWS CLI aws command line tool, which will not be introduced in detail here.
Log in to your AWS account and enter the Sidewalk configuration interface to add Destinations.
Add Sidewalk device
Click Provision device
Add device profile
Give it a name and click on Confirm
Click Next
Click Next
Click Create to configure successfully. The configuration is as follows:
Then download the Json file
The downloaded file is called certificate.json. Save it. This is used to configure the generated hex file.
Generate nordic_aws_nrf52840.hex
Open cmd in the path E:\ncs\ncs_v2.6.1\v2.6.1\sidewalk\tools\provision
According to the actual situation, my path is this
I have generated bin and hex files here
Copy certificate.json to this folder and enter the following commands to generate bin and hex reference link
python provision.py nordic aws --output_bin mfg.bin --certificate_json certificate.json --addr 0xFF000
Sidewalk as a repository for ncs
Open command line
Enter the Sidewalk folder
At this time, some people may have questions about the v2.6.0-rc2 version. This is automatically switched to this path after west update.
Actually I downloaded version v2.6.1
In order to facilitate the description, I switch back to the V2.6 version here.
Make sure the manifest path points to west.yml in nrf, enter the following command
west manifest --path
If the manifest path points to a different file, use the following command to point to west.yml in nrf
west config manifest.path nrf
Enable Sidewalk group filter
west config manifest.group-filter “+sidewalk”
Check if Sidewalk exists
west list sidewalk
This already points to the V2.6.0-rc2 branch
Update repository
You can see branches switching directly here, no doubt about it
west update
Python requirements for installing Sidewalk
pip install -r sidewalk/requirements.txt
Setup to use internal flash upgrade
Since the process uses mcuboot and uses external flash upgrade, this will cause the module of MinewSemi to be unusable even if the pins are modified, so we first change it to internal flash upgrade here.
Delete the following configurations in boards/nrf52840dk_nrf52840.overlay and child_image/mcuboot/boards/boards/nrf52840dk_nrf52840.overlay
Modify configuration/nrf52840dk_nrf52840/pm_static_dfu.yml
code show as below
Compile and burn
Compiled memory allocation
Burning nordic_aws_nrf52840.hex
nrfjprog --sectorerase --program nordic_aws_nrf52840.hex --reset
Burning application
Since the Sidewalk gateway device has not been configured at this step, you can only display the following log, and there will be a sign that time synchronization failed.
I have a gateway device here, so I will add the following log later to show that the time synchronization is successful.
Configure Sidewalk Gateway
No more introduction here
Data Transmission
Short press button1 to send data to the server. The ble method is used by default.
Short press button3 to switch the data transmission mode to fsk
Short press again to switch to lora
Press button1 and send it to the server through lora
Modify Pin
If you do not use the dk board but use other boards (minewsemi ms24 series), you need to modify the pins
The modified overlay is as follows (boards/nrf52840dk_nrf52840.overlay)
But switching ble fsk and lora will cause errors
I have modified the dts here. I did not build the board myself. Just delete the red box part of nrf52840dk_nrf52840.dts.