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
I'm currently testing a board that I designed incorporating an STM32WLJC55. The RF section is based on the 433 MHz MB1389E reference, with component changes due to availability issues and some PCB layout revisions. The design does successfully transmit and receive 433 MHz LoRa, however I want to compare and verify RF performance against the MB1389E/Nucleo-WL55JC2 developers' board. Is there a way to generate a continuous RF carrier at a set frequency so I can do RF power meter/spectrum analyser tests?
Hello,after some issues I was able to communicate with EvalBoard MB1801D and MB1803B (STM32WBA55CG) and the STM32CubeMonitor-RF Tool Version (2.18.0) .In the first step, I wanted to use the RF board MB1863 (STM32WBA52CG) in conjunction with the MB1801D board to be able to communicate with the RF monitor here as well.To do this, I generated a new project in the STM32CubeIDE (version 1.19.0) with the STM32WBA52CG µC and configured the pins using the .ioc file (see appendix) and copied the settings for the software pack "STM32_WPAN" from the TransparentMode example project of the WBA55.I can successfully flash the project to the board, but then I cannot establish a connection with the RF monitor.Is there an alternative method to get the BLE_TransparentMode running on the STM32WBA52 or am I overlooking a setting?Would it be possible to use the TransparentMode example project of the WBA55 and only change the linker File xxFlash.ld from the wba55 to the wba52? Thank you very much!
Hello, I'd like to use the STM32WLE5 in an upcoming design. Looking at the datasheet, I noticed the recommendation for the BGA package is to have the stencil opening larger than the pad diameter, instead matching the ball diameter . To me this seems counterintuitive, as I would typically reduce the paste for balls <0.4mm in diameter. Can anyone help me understand this recommendation?Thanks, Billy
Hi all,I’m testing MP3 playback on a Nucleo-WB55RG.Setup:SD card via FATFSHelix MP3 decoder (libhelix-mp3)PCM out via SAI1_A (I²S) → external DACDMA in circular mode, 2× half-buffer callbacksWhat works:A test sine wave buffer played via SAI+DMA works fine at 44.1 kHz stereo.DMA callbacks fire at the expected rate.So SAI + DMA peripheral config is correct.What fails:When I decode MP3 frames with Helix and feed them into the DMA buffer, audio plays but it is ~6× too slow and distorted.Console output shows decoded frames and DMA half/full interrupts incrementing normally.Suspect code (fill_half):static int fill_half(Mp3Ctx *c, uint16_t *target, int targetHalfwords){int written = 0;while (written < targetHalfwords) {if (c->bytesLeft < 4 && c->eof) break;refill_readbuf(c);int offset = MP3FindSyncWord(c->readPtr, c->bytesLeft);if (offset < 0) { if (c->eof) break; c->readPtr++; c->bytesLeft--; continue; }c->readPtr += offset;c->bytesLeft -= offset;i
I am trying to read GNSS data using B-L072Z-LRWAN1 and GPS module. I installed FP-ATR-LORA1 and wrote the project to my B-L072Z-LRWAN1 and viewed it with Teraterm, the following error message appeared."Accelerometer NOT initialized"I don't use an accelerometer. I just want to use GPS module. How can I rewrite the code to prevent the above error message from appearing?
Hello,I am working on a project with STM32 + BlueNRG-M2SP/M2SA and using a custom mobile app to connect over BLE.Here is my setup:The BlueNRG-M2SP/M2SA IC module is configured as a Peripheral (Server) with my stm32l0 mcu.The mobile app scans, finds the advertised name of my hardware, and connects successfully without any pin security.My question:Is it possible to connect two mobile phones (two Central clients) together to the same BlueNRG-M2SP/M2SA hardware device when it is in Peripheral/server role?The datasheet mentions “Supports master and slave modes, multiple roles supported simultaneously”. Does this mean multiple Centrals/phones can connect at once, or does it only mean the device can act as both Central and Peripheral (multi-role), but with a limit of one connection per role/same time?If multi-client support in Peripheral/server mode is possible, how can I configure the max number of links in the BlueNRG stack of my stm32l0 firmware code?Thanks in advance for
I have previously worked on a BLE-based application that required an external antenna. Based on the use case, I selected the STM32WB1MMC module, which, according to its datasheet, supports external antenna connections. I designed the schematic accordingly and initially conducted tests using the internal antenna. After validating the basic functionality, I transitioned to testing with the external antenna as per the actual use case requirements. I obtained this information from "External antenna interface is only verified for conducted testing. Device has been verified and tested with internal antenna." Based on the information provided in the datasheet, can we proceed with using the module's external SMA antenna connection? Do I need to perform any calculations for a Pi matching circuit or conduct further fine-tuning? Additionally, could you suggest any reference designs or recommended external antenna configurations suitable for this module?"
Hello,I am working on STM32WB5MM custom hardware and trying to implement deep sleep mode using RTC wakeup interrupt. What I want to achieve:MCU should stay active for ~30 seconds after reset.Then enter deep sleep / STOP2 mode.Wake up automatically every 30 seconds using RTC wakeup timer interrupt.Expected current in STOP2 / Standby mode = < 1 mA (microamp level).What is happening:In normal running mode, MCU current ≈ 30 mA (okay).When I put MCU into STOP2 mode, it still consumes ≈ 20 mA, instead of going down to microamps.I am not sure if MCU is really entering STOP2/Standby or staying partially active.while (1){HAL_Delay(30000);HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, 30, RTC_WAKEUPCLOCK_CK_SPRE_16BITS);HAL_SuspendTick();HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);SystemClock_Config();HAL_ResumeTick();HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);if (wakeupFlag == 1){wakeupFlag = 0;// Do something on wakeup}}Question:Is this the correct wa
Hi there, I have an B-WL5M-SUBG1 evaluation board which uses the STM32WL5M module.I am having problems with the STM32 receiving a message I am sending it from my laptop via python. I connect between the stm32 and the laptop via an RS422/485 converter. I've used the converter many times before to read print statements from the stm32. Here is the stm32 code I am using: #include "main.h" #include "stm32wlxx_hal.h" #include <string.h> #include <stdio.h> /* Private variables */ UART_HandleTypeDef huart2; uint8_t rx_buffer[4]; // Buffer for received data volatile uint8_t data_received = 0; // Flag for data reception /* Function prototypes */ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART2_UART_Init(void); void Error_Handler(void); void check_uart_errors(void); int main(void) { uint8_t tx_ready[] = "READY\r\n"; /* Initialize system */ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); /* Reset UART2 before use */ __HAL
Hi,We are using the STM32WB5 series. We have implemented a FOTA mechanism to update the BLE Stack and the FUS (both separately).We have noticed a new version of the FUS (2.0.0), which, to our understanding, is not backward compatible with older versions of the BLE Stack. Is our understanding correct?If we just update the FUS to version 2.0.0 without updating the BLE Stack to the matching version, will the BLE stop working? Is there any way to get the BLE to work anyway after just a FUS update to version 2.0.0 with some minor modifications so that we can continue to the next step with our FOTA update and update then the Newer BLE Stack? Thanks,Eyal
Hi,I want to create device, based on STM32WB09, with BLE and battery power. I get sample from CUBE and turn on CFG_FULL_LOW_POWER and CFG_LPM_SUPPORTED. It works, between BLE events MCU work in Deepsleep mode, but i need scheduller:1) Deepsleep2) wakeup by Button or every 60 second by RTC3) turn on BLE, send data to phone4) go to deep sleep after 15 second of workCould you help me, how can i implement this scheduller with BLE and Sequencer? In Sequencer low power mode implements in UTIL_SEQ_Idle, can i change this function? thanks
Hi,I’m working on STM32WLE5 module for storing values in EEPROM. I want to use the last page of flash for storing configuration values of lora.I have used EE library from GITHUB which uses HAL functions.I followed 2 sequences for writing into flash:Erasing the page 127(which I use for writing the values), read and write worked perfectly. Values are being stored correctly in flash.Read the values from page 127 and then erasing the page and writing to it. I get hardfault error everytime.if I erase the page 1st and write to it, then there is no use of storing in it. So, If I read the flash, I’m not able to write to it.I have also moved all the functions used for writing into flash to RAM by adding __attribute__((section(“.RamFunc”))) in function definition so that there won’t be stalling of CPU. I have checked in disassembly while debugging that all the related code is running from RAM. I get hardfault error while HAL_FLASH_Unlock() after erasing the page. Is there any othe
I'm developing an application where I need to have both USART1 and LPUART1 configured to receive commands. I'm using STOP1 mode to ensure the commands can be received by both peripherals (USART1 will not work with STOP2 mode from my understanding). I'm seeing extremely weird behavior and it's perhaps the way I'm implementing the wake up. The same exact setup I use in USART1 has a completely different current consumption with LPUART1. I have another MCU on my board but in STOP1 mode with USART1 enabled only I get about 500uA current consumption and when I swap it for LPUART1 I get 4mA.# ENVIRONMENTSTM32WB35CEUDMARX circular buffer. USART1Baudrate 115200Clock HSILPUART1Baudrate 9600Clock LSE# PROBLEM DESCRIPTIONMy application flow is as follows:When UTIL_SEQ_Idle() gets called I do the following:Check USART_ISR_BUSY is RESET (return otherwise).Check USART_ISR_REACK is SET (return otherwise).Call HAL_UARTEx_StopModeWakeUpSourceConfig() with UART_WAKEUP_ON_STARTBIT.Enab
Hello,I am currently working on integrating the Auracast examples BLE_Audio_PBP_Sink and BLE_Audio_PBP_Source.The main objective is to design a speaker capable of switching between Source and Sink roles depending on the state of a button.However, I am uncertain whether this approach is actually feasible. From what I have seen, the BLE Audio source files appear to be fixed and not meant to be modified, while the surrounding code and configuration suggest that each firmware build is designed to function either as a Source or as a Sink, but not both simultaneously. There are numerous configuration options and macros tied directly to the BLE device role, and this role seems to be determined at compilation time, rather than dynamically at runtime.After reviewing the STM documentation (Bluetooth LE Audio - STM32WBA Architecture and Integration), I found some warnings related to this limitation. Specifically, in section 3.2 it states:"Warning:The values of the parameters of the
MCU: STM32WL55JC1FW Version: STM32Cube_FW_WL_V1.3.1Reference: LoRaWAN_End_Node_DualCoreCompiler/Debugger: STM32CubeIDEIssue:I am trying to expand the flash memory region for the CM4 application by reducing the flash memory region of the CM0+ application. When trying to modify `STM32CubeIDE/CM0PLUS/STM32WL55JCIX_FLASH.ld`: From:FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 120KTo:FLASH (rx) : ORIGIN = 0x0802A000, LENGTH = 80KThe CM0+ core will never synchronize and the applications on both cores are unable to proceed. The CM4 core boots fine, but hangs waiting for the CM0+ core. If I only reduce the LENGTH of the CM0+ core it proceeds without issue.I have also tried to modify `Common/System/system_stm32wlxx.c` by defining USER_VECT_TAB_ADDRESS and adjusting the VECT_TAB_OFFSET with no success.What is the correct way to modify the flash allocations?
Dear ST,I developed a RF PCB with STM32WL Microcontroller. The goal was to create RF Transceiver for 868 MHz transmission. Before I started developing PCB I read thoroughly through documents: DS13105, AN5407 and AN5457. As I am familiar with STM32 microcontrollers and its peripherals I only struggled with RF design, so let HP RF Path only be a subject to the following analysis. I developed a simple board on a following stackup:\(Prepreg’s permeability is 4,1, RF signals are on Top layer, solid GND layer was on layer L2. Traces have matched 50 Ohm impedance. Again, GND plane is solid without any discontinuities on this layer) On PCB I put LC impedance matching filter for 50-Ohm U.FL connector. After it was assembled, I programmed it to emit a continous carrier frequency signal. I connected it through U.FL-BNC adapter and then connected it to IFR2398 spectrum analyzer. The result was a beautiful 20,5 dBm carrier frequency and a satisfactory range. The prototype was a
It was working fine before, but has now stopped working. Upon investigation, we found that the RTC crystal oscillator is not oscillating. It won't return to normal with a reset. An investigation with the crystal oscillator manufacturer found no problems. Debugging showed a timeout at the following code. Do you know what the cause might be? /* Get Start Tick*/tickstart = HAL_GetTick();/* Wait till LSE is ready */while (READ_BIT(RCC->BDCR1, RCC_BDCR1_LSERDY) == 0U){if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE){return HAL_TIMEOUT;}}
Hello, I'm working on a project using the STM32WL55 MCU. I'm using the radio features for a LoRa application. The applications requires low power composition for it need to run un battery power. So far I have achieved low current measurement ~2uA while in stop 2 mode and implementing sleep and wake up routines. One of the latest requirements is to be able to use the channel activity detection mode (CAD) in the application. I have followed steps shown in the example and recommendations form the datasheet. The CAD is required to scan on Spreading Factor 10 and 500Kz Bandwidth. The operation works, however the current consumption is higher to that of other chips with similar CAD setup. The duration of the scan is ~14ms and the current measured during that time is ~4mA, which compared to other chips ~2mA which is about half of the current. These measurements where done while no activity was detected. Are there any recommendations or settings I should con
I'm starting a project using the STM32WL55JCI7 chip, but I'm getting the following error. How do I fix this?An error occurs when compiling with IPCC Activated checkedDescription Resource Path Location Type'IPCC_C2_RX_C2_TX_IRQn' undeclared (first use in this function); did you mean 'IPCC_C1_TX_IRQn'? ipcc.c /STM32WL55JCI7_CM0PLUS/Core/Src line 63 C/C++ Problem
When I run the debugger, it stops at this part and doesn't proceed any further.void MX_LoRaWAN_Init(void)-> MBMUXIF_Init();-> MBMUXIF_WaitCm0MbmuxIsInitialized();-> void MBMUXIF_WaitCm0MbmuxIsInitialized(void){while (pMb_RefTable->SynchronizeCpusAtBoot != CPUS_BOOT_SYNC_CPU2_INIT_COMPLETED){project : LoRaWAN_End_Node_DualCoreSelect radio driver : User boardHow do I solve this? Could something like the above happen if the custom board is not connected properly?solved it ^^
STM32WB1MMCH:Can other values be written again after the otp area is written to 0xFF
Hi,We are using the STM32WLE5JCI6.In our design, the TCXO (HSE) is powered directly by the 3.3 V on-board power supply, and the VDD_TCXO pin is left unconnected. Is this acceptable?Should we avoid using the Set_TcxoMode command in this case?Thanks for any help
Hello All,We have made a custom board design with STM32WB55CGU6.But we are struggling to detect the device with STM32CubeProgrammer. I am using P-NUCLEO-WB55's ST-LINK connection to detect and flash the M0 Firmware with STM32CubeProgrammer.SWDIO, SWCLK, RESET, GROUND and Power connections are fine.Could some experts suggest how to go ahead?Thanks and regards,Paul
Hello,I’m working on a custom board with STM32WB15CC, dual-core mode with BLE stack.I noticed an issue related to PESD (Program/Erase Suspend) when CPU2 enters STOP mode.In my application, I call Adv_Cancel(); and this makes CPU2 enter STOP autonomously.Then I call UTIL_LPM_EnterLowPower(); and CPU1 also goes to STOP correctly.My application uses reduced wake cycles, and sometimes I do not restart advertising after wake-up (so CPU2 stays stopped).Sporadically, in these reduced cycles, I see PESD=1 even though I am not accessing flash on CPU1.This causes CPU1 to block in while(LL_FLASH_IsActiveFlag_OperationSuspended()); inside ProcessSingleFlashOperation() in flash_driver.c (the official ST file for dual-core flash management with PESD).The situation looks like CPU2 goes to STOP with flash still occupied (PESD set).At that point, any flash write from CPU1 remains blocked forever.At the moment, my only workaround is:Before writing to flash, I check PESD, andIf PESD=1, I make BLE di
Hi,currently I am working with the NUCLEO-WL55JC1, using the STM32Cube FW_WL V1.3.0 and the LoRaWAN_End_Node example as base.My target is to keep the LoRa stack working as it is on the example, but also to use the RTC to store the current date and time values, since I have to log the measurements with timestamp on an external memory. When I try to use the RTC Bin Mode set to "Free running BCD calender and binary mode" or "Free running BCD calender mode", the example simply stop working. The last log I get on screen is : "MAC txDone".Is that a way to use the internal RTC to save current date and time, and keep the LoRaWAN stack working?System info:STM32CubeIDE : 1.11.2 (Windows version)STM32CubeMX : 6.7.0-RC4I've found someone with a similar problem, but I was not able to solve my problem with the given answer (Question : BCD Calendar and Binary mode (mix mode) alarm is not working in STM32WL55 by digidhamu)Many thanks in advance!
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.