Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and discuss STM32 wireless solutions and their implementation for running Bluetooth LE, Zigbee, LoRaWAN applications.
Most recent activity
Hi everyone,I designed a first custom PCB using the BlueNRG-2N as a coprocessor, and everything was working fine, I was able to control it with my main MCU over SPI without any issue.Recently, I made a new version of the board where I replaced the BlueNRG-2N with the BlueNRG-M2SP module. I flashed it with the DTM firmware (BLUENRG-M2SP_DTM_SPI.hex) because I want to use it as a coprocessor.I’m using exactly the same software as before for my main mcu (which should work), but now it doesn’t work at all : I don’t receive any data on the SPI MISO line from the BLE module.I’ve attached both the old (working) and new designs. Since the firmware works with the BlueNRG-2N, I assume the issue is hardware-related. What could be wrong in my new design? Or what changes are required for the software ? Also, I have a couple of additional questions:1- There are multiple DTM firmware versions available (e.g. BlueNRG-M2SA_M2SP_DTM_Stack_v2.1c, v2.1e, and several others in the BlueNRG-1_2 DK 3.2.3
I am using NUCLEO-STM32WBA25CE1. I created STM32CubeMX project for this board. I activated RF, WPAN, RTC. I configured a wakeup every 10 seconds and set up a task for the sequencer to toggle the LED. The LED pin is correctly configured. I can toggle the LED before the main loop starts. But in the task LED toggling is not working. How should i configure GPIO and anything else to get LED working?I am using STM32CubeMX 6.17.0 and STM32CubeIDE 2.1.1 versions.Moreover, I try to use USART1 or LPUART1 for debugging. Before the MCU goes into low power mode, i can output the message to the terminal. But after the low power mode it stops working.
Good day. I am using STM32WL31 on a custom board.DeepStop mode entry works correctly, but wakeup from PA0 (WakeUp pin) is not reliable or does not work. I used the example code in project:STM32Cube_FW_WL3_V1.3.1\Projects\NUCLEO-WL33CC\Examples\PWR\PWR_DEEPSTOPThe same code I use in my custom board works correctly on NUCLEO-WL33CC2 board (I have tested succefull the code on the NUCLEO-WL33CC2). In my opinion the difference from my custom bord + my code and the NUCLEO-WL33CC2 is the microcontroller; the NUCLEO-WL33CC2 mount the STM32WL33, my board mount the STM32WL31. Code sequence foe enter in deep stop:1. Enable wakeup pin (PA0, PA11 used as wakeup pins are connected by a button to GND). Internal pull-up enabled using LL_PWR_EnableGPIOPullUp on PA0 e PA112. Clear WUF flags3. Enter DeepStop When I press PA0 or PA11 buttons the MCU does not resume execution OR behaves inconsistently, it look like as the micro is in an undefined state.After programmed the micro it seam
Good day,I have a simple custom board with a STM32WL31 that needs to cyclically enter DEEPSTOP mode and then wake by means of RTC internal wakeup. It seems the device enters DEEPSTOP, but does not wake from it. Basic setup:Clocked from HSI, RTC clocked from LSE with 32kHz xtal.SMPS not implemented.Basic project generated with STM32CubeMX 6.16.0 with MCU Package for STM32WL3 Series 1.3.0 installed.IWDT activeMR_SUBG radio not yet implemented I can confirm RTC runs, RTC interrupt occurs every 1s, and HAL_PWR_EnterSLEEPMode() behaves correctly. However, when I enter DEEPSTOP with the sequence below, then the code never gets to HAL_ResumeTick() (reset after a few seconds by IWDT): PWR_DEEPSTOPTypeDef sConfigDEEPSTOP; sConfigDEEPSTOP.deepStopMode = PWR_DEEPSTOP_WITH_SLOW_CLOCK_ON; HAL_PWR_ConfigDEEPSTOP(&sConfigDEEPSTOP); HAL_SuspendTick(); HAL_PWR_EnterDEEPSTOPMode(); HAL_ResumeTick(); Below is a reg dump of possible relevant registers just before calling&
Dear ST team.(related :Re: UART of NUCLEO-WB09KE UART signal no found - STMicroelectronics Community)I am testing with NUCLEO-WB09KE EVBStarted from the example code ; "BLE_Peripheral_Lite", which is using PB0/PA1 as usuart portI can see the Uart output signal on MB1801, CN3.37. Then I manipulate to code to use LPUART; PB4/PB5 [attached code: BLE_Peripheral_Lite_LPUART1_PB4PB5.zip]But the result is, Uart output signal is still on MB1801, CN3.37(same PIN with USART).Did I do something Wrong? or Missed something?Please Help
Can I join a LoRaWAN network only once?so that after a software or hardware reset, i would not need to join the same network once again I am working with LoRaWAN_End_Node_LBM example
Hello,I noticed that the MB1720 High_band Low_power configuration and the MB1720 High_band High_power configuration have different input line differentials. I would like to know, when combining High_band/Low_power nodes with High_band/High_power nodes in the same RF mesh network, what design considerations should be followed and how the part should be designed?Thank you.
I need to implement a protocol using 11110000 as preamble. The protocol is 2-FSK 868.1 MHz, +/-35kHz, 25kbps. According to RM0511 STM32WL33 only supports 01010101 or 10101010 as preamble for 2-FSK. Is it feasible to use the STM32WL33? I am planning to use direct buffer mode.
The WL series is great, but unfortunately there aren't any chips with more than 256KiB flash and 64KiB RAM. This appears to be a serious limitation for a SoC with LoRa connectivity.The value proposition of this series is that you pay for one package that provides both connectivity and compute, which is cheaper than paying for 2 separate ICs. I'm personally working on a project where this small memory is beginning to be an issue, and I might end up having to separate those ICs.It kind of seems strange to me that the G0 "entry-level" series comes with much more memory - up to 1MiB / 144KiB.Are there any plans to bring out WL series chips with more memory?Thanks
Hi, As per UM3610 « section 7.7 », a "Bootloader limitation" has been found in NUCLEO-WBA25CE1. Please refer to "Workaround" section if you are facing this limitation.
We have a custom `STM32WL33CCV6` (`VFQFPN32`) board that should reach about `4 µA` in Deepstop, similar to the NUCLEO-WL33, but instead it drops only to roughly `450–500 µA` and appears to restart on Deepstop entry. `NRST` does not glitch low, and the behavior is unchanged with only `3.3V` and `GND` connected. We also tested direct `HAL_PWR_EnterDEEPSTOPMode()` with wake sources disabled, and it still appears to reboot rather than stay in Deepstop. We reviewed ST errata `ES0612` and applied the documented `VFQFPN32` workaround from section `2.2.9` for nonbonded GPIOs causing increased Run-mode current by forcing the listed nonbonded pins to pulldown at startup. That workaround had no effect on the Deepstop issue. The custom board’s `VFBSD / VLXSD / VDDSD / VDDRF` schematic and BOM appear close to the ST reference, so we are asking whether there are known WL33 low-power / SMPS / Deepstop pitfalls beyond errata `2.2.9` that could explain a persistent `~500 µA` floor or an apparent reset/
I am currently working with the LoRa-E5 Mini module based on the STM32WLE5JC microcontroller, and I am using STM32CubeIDE version 2.1.0 for development. I have successfully tested basic GPIO functionality (LED blinking), and I am now trying to implement LoRa-based communication (transmission and reception) using the integrated SubGHz radio. However, I am facing challenges in properly configuring and utilizing the SubGHz_Phy middleware and radio drivers within STM32CubeIDE. Specifically, I need guidance on the following: The correct procedure to enable and configure the SubGHz radio peripheral in STM32CubeIDE for STM32WLE5JC. How to properly include and use the SubGHz_Phy middleware for basic LoRa communication. Availability of any official example projects (such as Ping-Pong or Tx/Rx) compatible with STM32CubeIDE 2.1.0 for the LoRa-E5 Mini module. Proper configuration of radio parameters (frequency, spreading factor, bandwidth) for reliable communication. Any recommended steps to ensu
Board / SoCBoard: NUCLEO-WB09KESoC: STM32WB09SoftwareZephyr version: v4.4.0-rc2-41-g149c8b1758a8Toolchain / build system: West + Zephyr standard build flowIssue summaryWhen building a very small Zephyr application for NUCLEO-WB09KE, simply enabling:CONFIG_BT=ycan cause intermittent boot failure.The failure happens very early in boot:no UART outputno boot bannerno application printk()main() appears to never run in failed bootsThis happens even when the application does not call any Bluetooth API.Minimal applicationmain.c#include <zephyr/kernel.h> #include <zephyr/sys/printk.h> int main(void) { while (1) { printk("M\n"); k_busy_wait(100000); } return 0; }Minimal project configurationprj.confCONFIG_BT=y CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y CONFIG_EARLY_CONSOLE=y CONFIG_PRINTK=y CONFIG_ASSERT=y CONFIG_ASSERT_VERBOSE=y CONFIG_LOG=n CONFIG_PM=nObserved behaviorWith Bluetooth disabled, the board boots and repeatedly prints:M M M ...With CONFIG_BT=y enabled, boot becomes
Hi everyone,I am experiencing a very specific initialization issue with a custom board based on the STM32WB55RGV6.We recently manufactured a batch of 30 boards. 22 of them are working flawlessly, but 8 boards fail to start the BLE radio on a cold boot (Power-On Reset). They all run the exact same firmware and have the exact same layout.Hardware details:MCU: STM32WB55RGV6HSE: 32 MHz crystal (CS06410-32M)LSE: 32.768 kHz crystalRF: MLPF-WB55-01E3 filter + Ceramic AntennaSymptoms & Debugging Steps Taken:No RF Output: Using an SDR and Near Field Probes, I confirmed there is zero RF energy being transmitted on the 2.4 GHz band during a cold boot on the faulty boards.HSE is Alive: I probed the 32 MHz HSE crystal with an oscilloscope, and it is oscillating perfectly at 32.000 MHz.The FUS Workaround (The Clue): If I send an AT#FUS command via UART to enter the Firmware Upgrade Services mode, the CPU2 wakes up and the board successfully advertises the "STM_OTA" network.Warm Boot Success: If
Hello,I have designed a custom board with stm32wb55. I used the reference schematic and checked everything but I cannot program the board from my cubeide. I have tried different configuration settings in Cube IDE but always got "No device on target" error. I connecte SWDIO, SWCLK, GND and NRST pin to my stlink. These did not work so I tried different configurations with OpenOCD too but they also failed with these symptomsSymptoms (Multiple attempts with OpenOCD at 100 kHz):SWD-DP responds reliably: chip identified as Cortex-M4 r0p1Examination usually succeeds: shows correct breakpoint and watchpoint countsHalt always fails with "Fail reading CTRL/STAT register" → "Not halted"Roughly 1 in 4 attempts fail to even initialize, but when init succeeds, halt always failsManual NRST-to-GND-then-release tried, same resultAlready reflowed the WB55 once with gel flux, no change in behaviorTried:Multiple OpenOCD reset modes including connect-under-resetSpeeds from 480 kHz down to 100 kHzForcing a
Dear ST team. I am testing UART of NUCLEO-WB09KE with the board [STM32WB09 Nucleo-64 board (MB1801 and MB2032)] I Set UART1 PIN PB4, PB4 with the source attached[100ms period tx send ]. I am checking CN3(23), CN4(35) but no signal shown. Is there anythn
Hello,I am currently working with the STM32WBA65RI for BLE Direction Finding using connectionless mode. I would like to know if it is possible to use a low-power mode such as Standby with RTC, allowing the board to consume only a few nanoamps, then wake up periodically via the RTC, perform advertising for a defined period, and return to Standby mode.Could anyone provide guidance or share experience with this approach?Best regards.
I am struggling with the keys in the new V1.5.0 LBM stack. Keys are read from NFC EEPROM and device is joining. After joining, I expect the stack to save the join and session keys in secure memory so the keys are deleted in EEPROM for security. After reset, the device does not join. How must this be handled.
Hello. I'm working on a BLE application that uses an STM WBA55 board and ThreadX. It was based on the St Threadx p2pServer example, The Sequencer is disabled. I'm using stmCubeIDE 1.19 and st_fw1.7 and i cannot migrate to new versions due to compatibility reasons.The main idea for the application is that the board initializes, advertizes 10-20 seconds for a connection, connects to a device like a phone pc, gets data from a sensor and transfers the data to the connected device. If no connection occurs or if the device is disconnected it should go into sleep/stop/standby mode until an EXTI interrupt from the user button is triggered. As of now the application is structured as follows:-- A main thread is in charge of initializing the rest of the threads (one thread for each type of sensor eg temp adc etc) and handle events like ble connection/disconnection and sleep/wake up requests.--Upon a sleep request a flag is set into an appropriate value. The rest of the threads inc
Dear Sir or Madam, We would like to use NUCLEO-WL33CC2 to verify DMR RSSI reliable detection(compulsory requirement) and demodulation(optional requirement). We only need rx chain for scanning purpose. As per ETSI TS 102 361-1, DMR TDMA frame has sync word in the middle of 30ms frame and does not have preamble. And in Chapter 10.2.2.2 (Physical layer), an RRC filter is designed for 4FSK. It seems these settings may not have corresponding option in STMWiseCube, so that we would like double check with you if there is any better setting for detect 30ms packet RSSI at least. We do know the sync word content for DMR, which is 48 bit long. The modulation is 4FSK, nomial channel width is 12.5kHz, and data rate is 9.6kbps. And deviation is +/-0.648kHz and +/- 1.944kHz for 4FSK, shall we use 1.944kHz in the setting of deviation in STMWiseCube? Our requirement is RSSI at room temperature for this TDMA frame detection in RF conducted test mode and without
When using a Zephyr RTOS host with PAwR synchronization response enabled, the STM32WB09 controller (observer role) reports a legacy LE Periodic Advertising Report (subevent 0x0F) while syncing to a PAwR broadcaster.The broadcaster is implemented on EFR32BG42 (SiLabs). Zephyr host reports:[00:00:02.987,453] <dbg> bt_hci_core: hci_event: event 0x3e[00:00:02.987,480] <dbg> bt_hci_core: hci_le_meta_event: subevent 0x0f[00:00:02.987,497] <err> bt_scan: The controller shall raise the latest unmasked version of the eventWhich corresponds to:LE Meta EventLE Periodic Advertising Report (legacy) The Zephyr BLE controller layer is based on stm32wb0x_ble_stack_controller_only.aDoes stm32wb0x_ble_stack_controller_only.a support:BLE 5.4 PAwR (Periodic Advertising with Responses) – Observer role?Periodic Advertising Report v2 (with subevent context)?
Hello, I’m working on a low-power BLE peripheral design on an STM32WBA63 and I’ve hit a timing issue that I’m hoping someone can help me with.Hardware / softwareMCU: STM32WBA63CIUxSTM32CubeMX: 6.15.0Firmware package: STM32Cube FW_WBA V1.7.0Wireless stack: STM32_WPAN (BLE)RTOS: FreeRTOS 1.3.1 with tickless idle enabledLow power mode: STOP1 (not standby/off)BLE role: peripheral advertisingAdvertising interval: ADV_INTERVAL_MIN = 0x0640 (1 s)IDE/toolchain: EWARM V9.60Issue:Advertising is stable until I add some application-side work in the FreeRTOS tickless idle pre-sleep / post-sleep hooks. After that, advertising becomes intermittent and sometimes appears to stop completely.It looks like the device wakes from STOP, but then misses the BLE Link Layer scheduling point for the next advertising event.I instrumented the post-sleep hook and measured the time spent in post-sleep processing, which resulted in a 0.477ms d
Split from STM32WB05KNV6TR missing in STM32CubeIDE 2.0.0 Target Selector - this is a new questionHi Ghofrane,Thank you for the explanation. Since the WB05xN acts as a network coprocessor, it doesn't fit my current design goals as I want to avoid using an external Host MCU to keep the BOM cost and PCB footprint at a minimum.I am looking for a standalone (single-chip) STM32 wireless solution. My requirements are:Standalone Operation: The application and BLE stack must run on the same chip.Eddystone Support: It must be capable of broadcasting in Eddystone format.FOTA (Firmware Over-the-Air): The chip must support wireless firmware updates.Cost-Effective: This is a price-sensitive project, so I am looking for the most budget-friendly standalone option in the STM32WB family.Could you please suggest the most suitable part number for this use case? Would the STM32WB15 or the new STM32WB09 be the right direction for a low-cost, standalone beacon application?
I have a STM32WB05TZF6TR. All VCCs are running off 1.8V. I'm trying to use PA8 and PB5 with 3.3V 10k pullups. But the signals are being clamped at 2.5V. I had expected this not to happen, as they are supposed to be 5V tolerant. Does anyone know what's happening here? There's nothing connected to the pins besides the pullups. I have a bare STM32CubeMX project, with just this GPIO init:void MX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); /*Configure GPIO pin : PB5 */ GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : PA8 */ GPIO_InitStruct.Pin = GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } Much appreciated,David
I am using the NUCLEO-WL33CC1 (for 868 MHz freq) and I tried the LPAWUR feature based on the Github examples that you provided:https://github.com/STMicroelectronics/STM32CubeWL3/tree/main/Projects/NUCLEO-WL33CC/Demonstrations/LPAWUR/LPAWUR_WakeupRadio_Rxhttps://github.com/STMicroelectronics/STM32CubeWL3/tree/main/Projects/NUCLEO-WL33CC/Demonstrations/MRSUBG/MRSUBG_WakeupRadio_Tx The issue is that the range that I get is a max of 3 meters, no more that this. I already soldered the C3 capacitor, that is by default missing, with a value of 100pF. The L3 is 5.6nH and L4 is 6.8nH based on the schematics (MB2029) of the NUCLEO witch matches the values that are in the User Manual of the Nucleo (UM3418). Questions:Is there anything that I am missing here in order to get a better range for the LPAWUR feature ?Should I be using a higher power Tx mode to get a better range, on the Github example the Tx power is set to 14 dbm ? If I change these value to 20 dbm and to PA_DRV_TX_TX_H
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.