- [Greg] Hello, and welcome to Getting Started
with AWS IoT Core for LoRaWAN, Multicast Downlink.
My name is Greg Breen,
and I'm an IoT Specialist Solutions Architect with AWS.
This video dives straight
into the Multicast Downlink feature
of the AWS IoT Core for LoRaWAN service.
To follow along, it's helpful
if you're already somewhat familiar
with LoRaWAN, LoRaWAN classes,
Multicast, Unicast,
and the AWS IoT Core for LoRaWAN service.
To use the Multicast Downlink feature,
you must have a LoRaWAN device that supports
the LoRa Alliance Application Layer
Clock Synchronization Specification,
and the Remote Multicast Setup Specification.
You can find links to these specifications
in the video description.
Most LoRaWAN devices do not support
the remote Multicast Setup Specification at this time,
so please check your device documentation.
In this video, I'll demonstrate multicast downlink using
an ST Nucleo-WL55JC evaluation board.
The STMCubeWL firmware
includes the LoRaMAC-node reference stack.
This stack includes implementations
of the specifications mentioned on the previous slide.
I'll our demonstrate multicast downlink,
specifically multicast downlink to a group
of Class A devices that temporarily switch to Class C.
The steps we'll take are,
firstly, create a wireless device with assigned FPorts
for the Application Layer Clock Synchronization package
and the Remote Multicast Setup package.
Secondly, create a multicast group.
This synchronizes the device time
and sets up the multicast keys.
And finally, schedule a downlink message
to assign the multicast start time duration,
frequency, and data rate,
and also to assign the payload
and the FPort on which to send the downlink message.
We begin by creating a new wireless device.
We configure the wireless device specification,
the EUIs and the keys,
and the device name in the normal way.
We then enable FUOTA,
because it's currently the only way
to assign the clocks sync
and multicast FPorts in the console.
For LoRaWAN 1.0.X devices,
we need to supply the GenAppKey.
This is the root key for deriving multicast session keys.
Please check your device documentation.
For this ST Nucleo device,
it's just the app key again.
We also need to assign the FPorts
for the Multicast, FUOTA, and Clock Sync packages.
The default values are usually correct,
as they are for this ST Nucleo device,
but please consult your device documentation.
Select your profiles and your destination,
as you normally would, and then create the device.
Now we create a multicast group
that the downlink message will target.
We select the RF region the device is in,
and select Class C as the type of multicast.
Normally, a multicast device would include multiple devices.
For this demonstration, however,
just a single device in the group.
At this point, we introduce the ST Nucleo's serial terminal.
Here we can see that the devices joined the network
and is sending uplinks once per minute.
We create the multicast group
and drill into the group's details.
The group status is pending
because no session start time has yet been scheduled.
The individual device status is package attempting
because the multicast group has not been initialized
on the device.
Upon the next uplink,
AWS IoT Core for LoRaWAN issues commands
from the Application Clock Layer Synchronization
Specification to synchronize the time
and commands from the Remote Multicast Set Up Specification
to create the multicast group.
With the multicast group created on the device,
we can observe that the status
of that individual device has changed
to multicast setup ready.
Note that the multicast group session is not yet scheduled
and therefore no start time, session duration,
RX frequency, nor RX data rate has yet been assigned.
We can now schedule a downlink message.
The session start time has to be at least 30 minutes
into the future because AWS IoT Core for LoRaWAN
needs to send set up messages to every device
in the multicast group.
We can select any preferred frequency
and data rate for the downlink message.
The ST Nucleo accepts LED on and off commands
on FPort2.
Here we schedule a base-64 encoded command
that will turn the LED on.
The group now has a session start time.
Its state has changed to session waiting,
and the device state has changed to session attempting.
Upon the next uplink,
AWS IoT Core for LoRaWAN issues a command
from the Remote Multicast Setup Specification
to schedule the multicast Class C session.
The device is now furnished with the session start time,
session duration, RX frequency, and RX data rate.
Accordingly, the individual device state has changed
to session ready.
At the scheduled time,
the device switches to Class C,
the downlink message is received,
and the LED turns on.
At the expiry of the session timeout,
the multicast session concludes
with the device switching back to Class A.
With the session finished,
we can refresh the console
and see that the group status has returned to pending.
Thank you for watching this video.
If you have any questions,
please ask them at repost.aws,
where you can leverage the entire AWS community.
I may see you there.
Goodbye for now.