STM32 Nucleo-WL55 example

This example application runs out of the box on the STM32 Nucleo-WL55 Kit (NUCLEO-WL55JC2) doing firmware updates OTA.

Prerequisites

Software

To build and flash the example, you need to have rustup. In practice you can use whatever tool you want to flash the device, but this guide will assume that probe-run is used (cargo install probe-run).

Configuring

Over The Air Authentication (OTAA) credentials will come from these entries in ~/.drogue/config.toml:

"dev-eui" = "..."
"app-eui" = "..."
"app-key" = "..."

Running

First, flash the bootloader:

cargo flash --manifest-path ../bootloader/Cargo.toml --release --no-default-features --chip STM32WLE5JCIx

You can then run the application with the dfu parameter:

DEFMT_LOG=info cargo run --release

Usage

Once the device is flashed, it will connect to the local LoRaWAN network. Once the network is joined, you can press the B1 button on the development kit to send a test message ping:<num-clicks>, where num-clicks is the number of times you pressed the button since resetting the board.

LEDs

The board features 3 user controllable LEDs. The program will use 3 of them to show the internal status:

Blue

Will light up when starting and turn off once it joined the LoRa network.

Green

Turns on while sending the uplink message.

Red

Turns on when receiving a downlink message and waiting for next uplink message.

Troubleshooting

If you’re experiencing problems, try setting the VID:PID values to that of your probe (you can find that from lsusb once your board is powered).

cargo run --release -- --probe <VID>:<PID>