Interacting with the Cloud#

The Sidewalk solution allows an endpoint to natively exchange data with the AWS cloud. Before trying to send and receive message you should verify that your endpoint achieved time sync. You should see the following line in your device logs.

[00063831] <info> App - registration status: 0, time sync status: 0, link status: 0

Send Data#

First, the endpoint sends data to the AWS cloud platform. An AWS Rule reroutes the data to an MQTT topic.

  • For the Amazon Sidewalk - SoC Bluetooth Hello Neighbor application, make sure the endpoint is connected to a gateway by pressing the main board's PB0/BTN0 button.

  • Go to the MQTT test client in AWS.

  • Type “#" in the Topic filter field.

  • Click Subscribe.

  • Press the PB1/BTN1 button. It triggers the Sidewalk endpoint to send a counter value to the AWS IoT Core.

AWS MQTT ConsoleAWS MQTT Console

An MQTT message appears in the AWS MQTT console.

Receive Data#

The Hello Neighbor applications don't support the MQTT test client publish feature to send message from the cloud to the endpoint. For this step, you will need AWS CLI configured and associated with your IAM user. Your user should at least have the following policies: AdministratorAccess and AWSIoTWirelessDataAccess. If your user is Administrator, you don't need to do anything. You can check your users in the IAM Identity Center.

You are now ready to receive data on your Sidewalk endpoint. Run the following command in a terminal:

aws iotwireless send-data-to-wireless-device --id=[Wireless-Device-ID] --transmit-mode 0 --payload-data="SGVsbG8gICBTaWRld2FsayE=" --wireless-metadata "Sidewalk={Seq=1}"

Where:

  • Seq=x, x should be unique any time you run the command.

  • --id should be the “Device ID” of the device in the AWS portal IoT Core -> Wireless Connectivity -> Devices -> Sidewalk.

  • --payload-data is the message to send in binary format (in this case, “Hello Sidewalk!”).

You should see “Hello Sidewalk!” on the EFR32 log console.