Skip to main content
ST Employee
February 13, 2026

STM32WL3 demo workshop

  • February 13, 2026
  • 2 replies
  • 1194 views

The STM32WL3x is a highly integrated long-range wireless solution for IoT devices offering a simplified design approach and low power consumption for extended battery life. In this workshop, ST experts will provide an in-depth exploration of the STM32WL3x series, featuring the Arm Cortex®-M0+ core, sub-GHz radio, and wideband wake-up radio, and supporting multiple modulations with an IQ interface for custom modulations to enhance flexibility.

What you'll learn 

Ready to get started?

The videos are available at our YouTube playlist embedded below, or at the URL:
https://www.youtube.com/playlist?list=PLTJzs51NlEIAwWsUszxul8ACi4uCXy6j6 

Join the discussion

Share your thoughts, ask questions, and engage with fellow developers. Our experts are active in this post and they are excited to hear your feedback.

Additional resources

2 replies

Visitor II
March 8, 2026

Hello,

Thank you for the excellent demo workshop — it has been very helpful for understanding the STM32WL3 system.

I am trying to reproduce the setup shown in the demo video but using the MRSUBG_Chat example. My goal is to understand how the peripheral configuration works so I can later implement it on a custom PCB without relying on BSP.

However, I am struggling to understand how the USART is configured in this example.

  1. [Part Number] STM32WL33CC1
  2. [Environment] Windows OS, STM32CubeIDE version 1.20.0, Firmware package STM32Cube FW_WL3 V1.3.0
  3. [Schematics] STM32 Nucleo-64 development board
  4. [Details] See below.
  5. [Expected behavior] Functional MRSUBG_Chat example code

The example .ioc file shows USART enabled, but the project also relies on BSP functions for the board configuration. When starting from a plain .ioc project, I cannot reproduce the same setup because the BSP layer is not available.

Since I plan to design my own PCB, I would like to avoid using BSP and instead configure the peripherals directly through CubeMX/HAL.

Could someone clarify:

  1. How the USART used in the MRSUBG_Chat example is actually initialized?
  2. Which parts are handled by BSP vs HAL in this project?
  3. What the equivalent CubeMX configuration would be when starting from a plain .ioc file without BSP?

Any guidance on how to reproduce this setup without relying on BSP would be greatly appreciated.

Thank you

Alžbeta

VicR
ST Employee
March 25, 2026

Hello Alžbeta/ @betoslava 

Thank you for your question and for your interest in ST products.

I think there are two ways to run the MRSUBG_Chat example on your own PCB:

A/ You can keep the BSP layer files in your project and adapt them to match your PCB pinout configuration. In other words, you can modify the USART pin configuration in the BSP files so it matches your PCB pinout (in file: "stm32wl3x_nucleo.h", lines 198 to 208 to adapt the USART pins).

or

B/ You can directly open the "MRSUBG_Chat.ioc" CubeMX project in the example folder and configure your USART peripheral according to your needs. Then regenerate the project and it should work for your own PCB.

I think the simplest way is option B.

Now, to answer your questions:

=> In the MRSUBG_Chat example, USART is initialized in "BSP_COM_Init" > "MX_USART1_Init" functions, in "stm32wl3x_nucleo.c".

=> BSP supports the NUCLEO pins and then uses the HAL layer to configure the device.

=> You can start a new project from CubeMX and add any peripherals from the CubeMX interface. To choose your configuration, you can reuse the same settings as in "MRSUBG_Chat.ioc".

Regards,
Victor.