Table of Contents

NUCLEO-WL55JC1

Top Bottom

This is a LoRa radio board with a dual core STM32WL55JC MCU which contains both a Cortex-M4 and Cortex-M0+ CPU.

Two demo boards exist, the JC1 and JC2. The former is for high band RF and the latter low band RF.

Pinout

Clocks
OSC32 X2 NX2012SA 32.768KHz PC14/PC15 
OSC   X3 NX2016SA 32MHz
Peripherals
PB9  LED2 GREEN
PB11 LED3 RED
PB15 LED1 BLUE

PA2 USART2_TX VCP_TX LPUART1_TX
PA3 USART2_TX VCP_TX LPUART1_RX
PB6 USART1_TX ARDUINO_TX
PB7 USART1_RX ARDUINO_RX

PA0 BUTTON1 PC13
PA1 BUTTON2
PC6 BUTTON3
Frontend
PC3 FE_CTRL3
PC4 FE_CTRL1
PC5 FE_CTRL2

PB0 VDD_TCXO
RF mode FE_CTRL1 FE_CTRL2 FE_CTRL3
Tx high power011
Tx low power111
Rx 101

Software

Software available for this board depends on a proprietary IDE and doesn't support GNU Make or cmake out of the box.

There are two version of the support package. One contains proprietary source code and is dated, the other only free to use source code and is maintained and kept up to date.

1.3.0

This version contains proprietary source files and requires an ST login to download.

Extract

unzip en.stm32cubewl-v1-3-0.zip
Github

Source code on github is maintained but lacks proprietary code. See the README section for a list of features removed.

Checkout

git clone --recursive https://github.com/STMicroelectronics/STM32CubeWL.git

Update

git pull
git submodule update --init --recursive

README

These are the features removed from the non proprietary version maintained at github

cat Projects/README.md
# Some projects are unavailable in this repository

In this repository, some middleware libraries **along with** the projects (demos, applications, and examples) using them, are **not available**. Please refer to the [README.md](../README.md#some-middleware-libraries-and-projects-are-unavailable-in-this-repository) file at the root of this repository for further details.

## List of unavailable projects

* `./Projects/B-WL5M-SUBG1/Applications/LoRaWAN/LoRaWAN_End_Node_DualCore`
* `./Projects/B-WL5M-SUBG1/Applications/LoRaWAN_FUOTA_DualCore_ExtFlash`
* `./Projects/NUCLEO-WL55JC/Applications/BFU_1_Slot`
* `./Projects/NUCLEO-WL55JC/Applications/BFU_2_Slots`
* `./Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_AT_Slave_DualCore`
* `./Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_DualCore`
* `./Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_DualCoreFreeRTOS`
* `./Projects/NUCLEO-WL55JC/Applications/LoRaWAN_FUOTA`
* `./Projects/NUCLEO-WL55JC/Applications/LoRaWAN_FUOTA_DualCore`
* `./Projects/NUCLEO-WL55JC/Applications/LoRaWAN_SBSFU_1_Slot_DualCore`
* `./Projects/NUCLEO-WL55JC/Applications/SBSFU_1_Slot_DualCore`
* `./Projects/NUCLEO-WL55JC/Applications/SBSFU_2_Slots_DualCore`
* `./Projects/NUCLEO-WL55JC1/Applications/Sigfox_SBSFU_1_Slot_DualCore`

Application

Checkout the software package from github into the STM32CubeMX project directory as STM32CubeWL

Create an LoRAWAN end node which will default to the following connection parameters

EU_863_870 Default frequency plan for Europe
Link Layer TS001-1.0.4 + Regional Parameters RP002-1.0.1

At this point the project can be built using `make'

make
...
   text    data     bss     dec     hex filename
  78816     280   10968   90064   15fd0 build/LoRaWAN_End_Node.elf
arm-none-eabi-objcopy -O ihex build/LoRaWAN_End_Node.elf build/LoRaWAN_End_Node.hex
arm-none-eabi-objcopy -O binary -S build/LoRaWAN_End_Node.elf build/LoRaWAN_End_Node.bin

Program using the STM32CubeProgrammer GUI for convenience.

Log

APPLICATION_VERSION: V1.3.0
MW_LORAWAN_VERSION:  V2.5.0
MW_RADIO_VERSION:    V1.3.0
L2_SPEC_VERSION:     V1.0.4
RP_SPEC_VERSION:     V2-1.0.1
###### AppKey:      xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
###### NwkKey:      xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
###### AppSKey:     xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
###### NwkSKey:     xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
###### DevEUI:      xx:xx:xx:xx:xx:xx:xx:xx
###### AppEUI:      01:01:01:01:01:01:01:01
###### DevAddr:     xx:xx:xx:xx
0s037:TX on freq 868500000 Hz at DR 0
1s522:MAC txDone
6s553:RX_1 on freq 868500000 Hz at DR 0
7s871:MAC rxDone

###### = JOINED = OTAA =====================
###### U/L FRAME:JOIN | DR:0 | PWR:0
###### MCRootKey:   xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
###### MCKEKey:     xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
###### AppSKey:     xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
###### NwkSKey:     xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
###### DBIntKey:    xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
###### DevEUI:      xx:xx:xx:xx:xx:xx:xx:xx
###### AppEUI:      01:01:01:01:01:01:01:01
###### DevAddr:     xx:xx:xx:xx

...

###### ========== MCPS-Confirm =============
###### U/L FRAME:0010 | PORT:2 | DR:0 | PWR:0 | MSG TYPE:UNCONFIRMED
110s118:VDDA: 254
110s118:temp: 25
110s118:Next Tx in  : ~49 second(s)
160s030:VDDA: 254
160s030:temp: 25
160s034:TX on freq 868500000 Hz at DR 0
160s037:SEND REQUEST
161s683:MAC txDone
162s714:RX_1 on freq 868500000 Hz at DR 0
162s913:IRQ_RX_TX_TIMEOUT
162s913:MAC rxTimeOut
163s714:RX_2 on freq 869525000 Hz at DR 0
163s913:IRQ_RX_TX_TIMEOUT
163s913:MAC rxTimeOut

###### ========== MCPS-Confirm =============
###### U/L FRAME:0011 | PORT:2 | DR:0 | PWR:0 | MSG TYPE:UNCONFIRMED
170s038:VDDA: 254
170s038:temp: 25
170s038:Next Tx in  : ~154 second(s)

LoRaWAN firmware

The I-CUBE LoRaWAN demo has been updated to support GNU make here.

Resources

Product page

User manual

Schematic

MCU product page

STM32CubeWL software page

STM32CubeWL software repository

STM32CubeWL user manual

STM32CubeWL application note

STM32CubeWL LoRaWAN_End_Node HOWTO