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.
OSC32 X2 NX2012SA 32.768KHz PC14/PC15 OSC X3 NX2016SA 32MHz
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
PC3 FE_CTRL3 PC4 FE_CTRL1 PC5 FE_CTRL2 PB0 VDD_TCXO
RF mode | FE_CTRL1 | FE_CTRL2 | FE_CTRL3 |
---|---|---|---|
Tx high power | 0 | 1 | 1 |
Tx low power | 1 | 1 | 1 |
Rx | 1 | 0 | 1 |
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.
This version contains proprietary source files and requires an ST login to download.
Extract
unzip en.stm32cubewl-v1-3-0.zip
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`
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.
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)
The I-CUBE LoRaWAN demo has been updated to support GNU make here.