LoRa STM32WL DevKit
Overview
LoRaWAN development kit based on Olimex BB-STM32WL module using the STM32WLE5CCU6 MCU.
Hardware
The board has below hardware features:
- BB-STM32WL, 256KB Flash, 64KB RAM with external antenna 
- Lithium battery connector 3V (does not include battery) 
- UEXT connector for external sensors 
- BME280 temperature, humidity, pressure sensor 
- LDR resistor for lighting measurement 
- IIS2MDCTR 3-axis magnetometer for smart parking 
- GPIO connector for prototyping 
- Low power design 
- 1 User LED 
- 1 user, 1 boot, and 1 reset push-button 
- 32.768 kHz LSE crystal oscillator 
More information about the board and the module can be found here:
Supported Features
The olimex_lora_stm32wl_devkit board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
- 
      Number of instances that are enabled / disabled. 
 Click on the label to see the first instance of this feature in the board/SoC DTS files.
- 
      vnd,foo
- 
      Compatible string for the Devicetree binding matching the feature. 
 Click on the link to view the binding documentation.
olimex_lora_stm32wl_devkit@C/stm32wle5xx target
| Type | Location | Description | Compatible | 
|---|---|---|---|
| CPU | on-chip | ARM Cortex-M4 CPU1 | |
| ADC | on-chip | STM32 ADC1 | |
| Clock control | on-chip | STM32WL RCC (Reset and Clock controller)1 | |
| on-chip | STM32WL HSE Clock1 | ||
| on-chip | Generic fixed-rate clock provider2 | ||
| on-chip | STM32 MSI Clock1 | ||
| on-chip | STM32 LSE Clock1 | ||
| on-chip | STM32WB and STM32WL PLL node1 | ||
| on-chip | STM32 Microcontroller Clock Output (MCO)1 | ||
| Counter | on-chip | STM32 counters3 | |
| Cryptographic accelerator | on-chip | STM32 AES Accelerator1 | |
| DAC | on-chip | STM32 family DAC1 | |
| DMA | on-chip | STM32 DMA controller (V2)2 | |
| on-chip | STM32 DMAMUX controller1 | ||
| Flash controller | on-chip | STM32 Family flash controller1 | |
| GPIO & Headers | on-chip | STM32 GPIO Controller4 | |
| I2C | on-chip | ||
| Input | on-board | Group of GPIO-bound input keys1 | |
| Interrupt controller | on-chip | ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 | |
| on-chip | STM32 External Interrupt Controller1 | ||
| LED | on-board | Group of GPIO-controlled LEDs1 | |
| LoRa | on-chip | STM32WL Sub-GHz Radio1 | |
| Memory controller | on-chip | STM32 Battery Backed RAM1 | |
| MTD | on-chip | STM32 flash memory1 | |
| on-board | Fixed partitions of a flash (or other non-volatile storage) memory1 | ||
| Pin control | on-chip | STM32 Pin controller1 | |
| Power management | on-chip | STM32 power controller1 | |
| PWM | on-chip | STM32 PWM4 | |
| Regulator | on-board | Fixed voltage regulators1 | |
| Reset controller | on-chip | STM32 Reset and Clock Control (RCC) Controller1 | |
| RNG | on-chip | STM32 Random Number Generator1 | |
| RTC | on-chip | STM32 RTC1 | |
| Sensors | on-board | BME280 integrated environmental sensor1 | |
| on-board | STMicroelectronics IIS2MDC magnetometer accessed through I2C bus1 | ||
| on-chip | STM32 family TEMP node for production calibrated sensors with two calibration temperatures1 | ||
| on-chip | STM32 VREF+1 | ||
| on-chip | STM32 VBAT1 | ||
| Serial controller | on-chip | ||
| on-chip | STM32 LPUART1 | ||
| SMbus | on-chip | STM32 SMBus controller3 | |
| SPI | on-chip | ||
| on-chip | STM32 SUBGHZ SPI controller1 | ||
| Timer | on-chip | ARMv7-M System Tick1 | |
| on-chip | STM32 low-power timer (LPTIM)1 | ||
| on-chip | STM32 timers4 | ||
| Watchdog | on-chip | STM32 watchdog1 | |
| on-chip | STM32 system window watchdog1 | 
olimex_lora_stm32wl_devkit@D/stm32wle5xx target
| Type | Location | Description | Compatible | 
|---|---|---|---|
| CPU | on-chip | ARM Cortex-M4 CPU1 | |
| ADC | on-chip | STM32 ADC1 | |
| Clock control | on-chip | STM32WL RCC (Reset and Clock controller)1 | |
| on-chip | STM32WL HSE Clock1 | ||
| on-chip | Generic fixed-rate clock provider2 | ||
| on-chip | STM32 MSI Clock1 | ||
| on-chip | STM32 LSE Clock1 | ||
| on-chip | STM32WB and STM32WL PLL node1 | ||
| on-chip | STM32 Microcontroller Clock Output (MCO)1 | ||
| Counter | on-chip | STM32 counters3 | |
| Cryptographic accelerator | on-chip | STM32 AES Accelerator1 | |
| DAC | on-chip | STM32 family DAC1 | |
| DMA | on-chip | STM32 DMA controller (V2)2 | |
| on-chip | STM32 DMAMUX controller1 | ||
| Flash controller | on-chip | STM32 Family flash controller1 | |
| GPIO & Headers | on-chip | STM32 GPIO Controller4 | |
| I2C | on-chip | ||
| Input | on-board | Group of GPIO-bound input keys1 | |
| Interrupt controller | on-chip | ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 | |
| on-chip | STM32 External Interrupt Controller1 | ||
| LED | on-board | Group of GPIO-controlled LEDs1 | |
| LoRa | on-chip | STM32WL Sub-GHz Radio1 | |
| Memory controller | on-chip | STM32 Battery Backed RAM1 | |
| MTD | on-chip | STM32 flash memory1 | |
| on-board | Fixed partitions of a flash (or other non-volatile storage) memory1 | ||
| Pin control | on-chip | STM32 Pin controller1 | |
| Power management | on-chip | STM32 power controller1 | |
| PWM | on-chip | STM32 PWM4 | |
| Regulator | on-board | Fixed voltage regulators1 | |
| Reset controller | on-chip | STM32 Reset and Clock Control (RCC) Controller1 | |
| RNG | on-chip | STM32 Random Number Generator1 | |
| RTC | on-chip | STM32 RTC1 | |
| Sensors | on-board | BME280 integrated environmental sensor1 | |
| on-board | STMicroelectronics IIS2MDC magnetometer accessed through I2C bus1 | ||
| on-chip | STM32 family TEMP node for production calibrated sensors with two calibration temperatures1 | ||
| on-chip | STM32 VREF+1 | ||
| on-chip | STM32 VBAT1 | ||
| Serial controller | on-chip | ||
| on-chip | STM32 LPUART1 | ||
| SMbus | on-chip | STM32 SMBus controller3 | |
| SPI | on-chip | ||
| on-chip | STM32 SUBGHZ SPI controller1 | ||
| Timer | on-chip | ARMv7-M System Tick1 | |
| on-chip | STM32 low-power timer (LPTIM)1 | ||
| on-chip | STM32 timers4 | ||
| Watchdog | on-chip | STM32 watchdog1 | |
| on-chip | STM32 system window watchdog1 | 
Programming and Debugging
The olimex_lora_stm32wl_devkit board supports the runners and associated west commands listed below.
| flash | debug | attach | rtt | debugserver | |
|---|---|---|---|---|---|
| jlink | ✅ | ✅ | ✅ | ✅ | ✅ | 
| pyocd | ✅ (default) | ✅ (default) | ✅ | ✅ | ✅ | 
Applications for the olimex_lora_stm32wl_devkit board configuration can be built the
usual way (see Building an Application).
The board contains an on-board debug probe which implements the CMSIS-DAP interface.
It can also be debugged and flashed with an external debug probe connected to the SWD pins.
The built-in debug probe works with pyOCD, but requires installing an additional pack to support the STM32WL:
$ pyocd pack --update
$ pyocd pack --install stm32wl
Flashing an application
Connect the board to your host computer and build and flash an application.
# From the root of the zephyr repository
west build -b olimex_lora_stm32wl_devkit samples/hello_world
west flash
If you’re using devkit revision C or higher, you’ll need to specify the appropriate revision letter to enable the VDDIO supply to the UEXT1 connector and CON1 pin header.
# From the root of the zephyr repository
west build -b olimex_lora_stm32wl_devkit@D samples/hello_world
west flash
Run a serial terminal to connect with your board. By default, usart1 is
accessible via the built-in USB to UART converter.
$ picocom --baud 115200 /dev/ttyACM0
Debugging
You can debug an application in the usual way. Here is an example for the Blinky application.
# From the root of the zephyr repository
west build -b olimex_lora_stm32wl_devkit samples/basic/blinky
west debug
On board revisions C or newer:
# From the root of the zephyr repository
west build -b olimex_lora_stm32wl_devkit@D samples/basic/blinky
west debug