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
DescriptionI am developing a system with STM32WB5MMG module.A pushbutton is connected to PA0 and is used to control the system power state:During runtime, PA0 works as an EXTI interrupt to request shutdown.In shutdown mode, PA0 should act as the wakeup source.System state before shutdownAt the moment the shutdown is requested, the system is fully initialized:Both cores (M4 and M0+) are running,The BLE stack is active and functional,Clocks, peripherals, and services are all started.Before calling the shutdown function, clocks and peripherals are stopped.So the transition into shutdown happens from a stable and fully operational state.IssueEntering shutdown works as expected: the current consumption drops to nearly 0 µA.Once the button is pressed to wake up:Without the debugger, I can see consumption rises to about 3–4 mA, but the application does not start.With the debugger connected, I can see the program counter and the system falls into the HardFault handler immediately after wa
ST ,I am working on getting the scan request event ob the full stack.After looking at these posts : https://community.st.com/t5/stm32-mcus-wireless/ble-how-can-i-get-a-scan-request-event/td-p/221485https://community.st.com/t5/stm32-mcus-wireless/ble-how-can-i-get-a-scan-request-event/td-p/221485It looks bleak. Option 1: AN5270The enable event : ACI_HAL_SET_EVENT_MASKThe event message: ACI HAL eventsBoth seems not to be enabled ( no "Y" on any of LO, BO , BF etc... ) . What does it mean ? Will they work on full stack ? Option2 : AN6142/AN5270The enable event : HCI_LE_SET_EVENT ( I guess puting : • 0x0000000000040000: LE scan request received event will do the trick?) The event message:: HCI_LE_SCAN_REQUEST_RECEIVED_EVENT is enabled only for LO ? will it work on full stack bin?
Split from L072Z LRWAN1: Switch from Class C to AI also encountered the problem of CLASSC conversion failure. Could you please tell me if you have any solutions at present
Hello,I am working to incorporate BLE bonding into our project, and have run into a tricky issue where the Flash Manager gets stuck trying to write a key to flash. I've enabled the Flash Manager and SNVMA_NVM modules in the IOC file:I'm currently using RTT Viewer for logging, and this is the output I see:00> FM_WindowAllowed_Callback00> FM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP00> FM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Time window granted00> FM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Write operation00> HAL_FLASH_Program: Address: 0x081FE000, DataAddress: 0x2002F610 (status: 0x00000000)00> FM_BackgroundProcess - Flash operation not complete yet, request a new time window00> FM_WindowAllowed_Callback00> FM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP00> FM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Time window granted00> FM_BackgroundProcess - Case FM_BKGND_WINDOWED_FLASHOP - Write operation00> HAL
I want to program a NUCLEOWB55RG board with another identical NUCLEOWB55RG. The reason is the other NUCLEO board is placed on a PCB and is powered externally, so i cannot connect USB to it. Do I just remove the JP1 jumper and connect the SWD pins (SWD, SWDIO, GND, VDD, NRST) between boards?
Hello everyone,I'm working with the STM32WL30 and I'm trying to change the baud rate of the USART peripheral. However, I'm encountering some issues when I change the baud rate.The function I wrote for changing the baud rate looks like this:void changeBaudRate(uint16_t baudRate) { // start USART reset RCC->APB1RSTR |= RCC_APB1RSTR_USARTRST; // disable interrupt NVIC_DisableIRQ(USART1_IRQn); // stop reset RCC->APB1RSTR &= ~RCC_APB1RSTR_USARTRST; // set BRR USART1->BRR = 16000000 / baudRate; // set CR1 USART1->CR1 = USART_CR1_RXNEIE_RXFNEIE | USART_CR1_TE | USART_CR1_RE | USART_CR1_UE; // set IR prio NVIC_SetPriority(USART1_IRQn, 1); // enable IR NVIC_EnableIRQ(USART1_IRQn); } When I configured the baud rate for the first time, everything works fine and I receive the messages. If I change the baudrate to another value, I won't receive messages on the new baud rate, but still with the previously configured baud rate. When I debug the baud rate cha
Hello, I have modified the SubGHz_Phy_PingPong example to create separate transmitter-only and receiver-only code for two STM32WLE5 modules.I'm using the Low Level (LL) driver with UART1 interrupts on the STM32WLE5 TX module to receive data via UART, which is then transmitted over the radio. On the receiving end, the STM32WLE5 module receives the data via radio and forwards it to the target device through UART.Setup:UART ---> STM32WLE5 TX------| ( Radio ) |----------- STM32WLE5 RX ------> UARTAll data received by the STM32WLE5 TX module is handled exclusively through UART interrupts. Therefore, if interrupts are disabled, the UART will not be able to read any incoming data.In the STM32WLE5 transmitter code, Radio.Send() disables interrupts while transmitting data over the radio. During this period, UART interrupts are also disabled, preventing UART from receiving incoming data, which leads to overrun errors.Is there any possible way to prevent UART overrun errors when interrupts
Hey here is my FLASH.ID : I want to use more of the ram . I am using : STMicroelectronics Arm Cortex-M4 MCU, 320KB flash, 48KB RAM, 64 MHz, 1.71-3.6V, 30 GPIO, UFQFPN48 STM32WB15CCU6 .. So i should have more RAM. but I am nor sure how to adjust the memory so I can use it. Currently as you can see. I am using the p2p OTA example, in which initially the FLASH was configured to be very small, and i extended that, but now the RAM is twice as less than what i should be able to use . Can you help me with this? Thanks!MEMORY{FLASH (rx) : ORIGIN = 0x08007000, LENGTH = 135KRAM1 (xrw) : ORIGIN = 0x20000008, LENGTH = 0x2FF8RAM_SHARED (xrw) : ORIGIN = 0x20030000, LENGTH = 10K}
Hello,We are currently working on a project that requires integrating FreeRTOS with the STM32_WPAN BLE Stack. Based on various forum discussions, it seems that configuring the BLE portion of the project using CubeMX is currently not feasible.However, as we are still in the early stages of development, we would like to retain the convenience and simplicity that CubeMX provides for setup and configuration. To address this, we have decided to split the project into two separate projects:FreeRTOS and other application-related hardware/software functionality.Bluetooth functionality using the STM32_WPAN BLE Stack.Once both projects have been sufficiently developed, our plan is to merge them into a single project and continue development without relying on the CubeMX configurator.Our question is:Does STM or the STM community have a better approach or recommendation for addressing this issue?Best regards,Nick
Greetings,I have tried lora on STM32 nucleo bards. I want to learn to make custom code for STM-32-WL-E5CCU using cube mx. Is it possible ? I want to implement LORA SubGHz and not LORA WAN. Is there any tutorial pdf or video that teaches or gives some insight for building applications for lora using cube mx ?
Hi,I am working with the STM32WBA62CI MCU and need to communicate with an external SPI-based device by reading 34 registers (16-bit each) periodically. I want to store received data in RAM for 20 such events before overwriting it and continuing indefinitely.Currently, I can successfully perform the DMA based SPI communication using HAL_SPI_TransmitReceive_DMA() triggered by a timer interrupt, incrementing the RX buffer manually by 34 on each transfer. However, I want to eliminate CPU involvement by triggering the SPI DMA transfers via peripheral interconnects and/or GPDMA triggers.From my research, I understand there are two possible approaches:SPI Autonomous Mode (trigger SPI):Configure SPI1 in autonomous mode triggered by LPTIM1_CH1.Start LPTIM1 so that its update event triggers SPI and automatically starts GPDMA channels 6 and 7 transfers as SPI requests them.GPDMA Trigger Mode (trigger GPDMA):Configure SPI1 normally (no autonomous mode) and configure GPDMA channels 6 and 7 to be tr
Hello,I’m working with STM32WB55. I used this example:STM32WB-BLE-HID-Selfie (https://github.com/stm32-hotspot/STM32WB-BLE-HID-Selfie).I have a working Mouse HID over GATT using that project (no .ioc).Now I want to create a new CubeMX (.ioc) project for my product (so I can configure peripherals in CubeMX), and reuse the HID logic from the Selfie example. I’m not sure what the minimal, correct set of files and steps is.EnvironmentMCU/Board: STM32WB55 (my custom board)STM32CubeWB FW pack: v1-23-0STM32CubeIDE: v1.19.0Wireless Coprocessor on CPU2: BLE Full Stack What I triedCreated a new .ioc project with BLE → Custom Template.I can see the middleware and app files in Includes, but I’m unsure which files from the Selfie example I should copy and where.I’m also not certain where to call the HID init functions in the generated code.What I’m askingWhat is the minimal set of files to copy from BLE_HID_Selfie into a .ioc project? (e.g. hids.c/.h, hids_app.c/.h, hid_report_desc.c, Utilitie
Can the STM32WB55 use external SRAM, or can it only use external PSRAM?If external RAM can be used, can it also be used to execute code and run tasks?
Hello,We try to upgrade the BLE stack to the latest 1.23.0. This version requires FUS v.2. We are unable to do this due to the FUS_STATE_IMG_NOT_AUTHENTIC error. We're using STM32CubeProgrammer v. 2.12.0. We have also tried with STM32CubeProgrammer v. 2.20.0following the steps in the release note of the binary files with the same result. Currently:- FUS version: 1.2.0.0- BLE stack version: 1.8.0.3. We tried on both out custom board and on NUCLEO-WB44 with the same result. Could someone guide us to a solution?Thanks in advance.
I want to upgrade the WB05N chip on my custom board.I downloaded X-CUBE-WB05N v2.0.0 and programmed the chip with BLE_TransparentMode_SPI_with_Updater.hex (I am using SPI on my board).I selected the Verify and Run after programming options. The download verified successfully, but when I call hci_reset() I get a timeout.Additionally, when I compare the BLE_TransparentMode_SPI_with_Updater.hex file with the image read back from the module, there are differences.With version 1.0.0 everything works fine (image comparison is identical).Do you have any ideas what might be wrong?
Hello everyone,Newbie to the whole stm environment here but am trying to learn. I'm developing on the NUCLEO-WL55JC1.I've been trying to create a dual core communication design using IPCC. I started with loading the "IPCC_HalfDuplexMode_DualCore" example available in the STM32CubeWL firmware package -- which worked just fine. Moving forward, I created a new project using CubeMX from the IOC file in the example so I could develop further using that as a base. However, I keep getting this error:'IPCC_C2_RX_C2_TX_IRQn' undeclared (first use in this function); did you mean 'IPCC_C1_TX_IRQn'? stm32wlxx_hal_msp.c /DualCoreComm_LVL1_CM0PLUS/Core/Src line 92 C/C++ ProblemThe problem originates in the "stm32wlxx_hal_msp.c" file in the "HAL_IPCC_MspInit" and "...DeInit" functions at the "HAL_NVIC_SetPriority()" and "...DisableIRQ" function calls. Of course, the first thing I did was check if the IRQn type "IPCC_C2_RX_C2_TX_IRQn" was declared for CM0. As far as I can tell, it is in the
Hello, I am working on a project where I send accelerometer data with the NUCLEO WB55RG in BLE to my phone. I now want to add another NUCLEO WB55RG that acts as a repeater, so it both observes and broadcasts. Is it possible to do this on this type of board, and if so, how?
Split from Interfacing external sensors with I-CUBE-LRWAN End Node STM32L476RG based Library.Hi! Could you please share how you interfaced the RFM95 with the STM32L476RG using the I-CUBE-LRWAN library? I’m new to using the I-CUBE-LRWAN library and would really appreciate your guidance.
Using STM32CubeWB v1.23.0, I am running the hardware timer in the following order:HW_TS_InitHW_TS_CreateHW_TS_StartHowever, despite this, the callback registered at the time of Create is not executed after the set time.What could be the problem?
Hello,I have a question regarding the antenna area PCB artwork design for the STM32WB1MMC and STM32WB5MMG modules.In the STM32WB5MMG datasheet, it is recommended to:- place the module at the edge of the PCB,- fill the right-hand side of the module with a solid ground plane,and the antenna clearance requirements are clearly specified.On the other hand, I cannot find such information in the STM32WB1MMC datasheet.My questions are:1. Does the STM32WB1MMC not have the same layout constraints as the STM32WB5MMG?2. Is there any available specification or information about the built-in antenna design and placement inside the STM32WB1MMC?Thank you for your support.
We are seeing an issue where the STM32WB55 module is failing to send a valid write response. The write response is attempted but based on the packet logs, the CRC is failing. This results in the central (app running on Android) forcing a disconnection. This always happens on the first connection to the module and is reproducible. We are using a very lightly modified version of the Cable replacement example. Pcap and project attached
Hello STM Community, I’ve successfully implemented a Zigbee application on the STM32WB series MCU that leverages the Low Power Manager to enter Standby or Shutdown modes, as detailed in AN5289 section 4.6. The application note highlights the Low Power Manager’s ability to support up to 32 users, select the optimal low-power mode (Stop, Standby, or Shutdown), and execute callbacks during mode transitions. In my implementation, I focused on enabling Shutdown mode to minimize power consumption after performing a Zigbee On/Off toggle command. Key points from the code: Low-Power Mode Configuration: The application disables Stop mode and enables Shutdown mode using UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE) and LL_C2_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN). CPU2 Handling: As noted in AN5289, CPU2’s low-power mode is managed by the wireless firmware. I ensured the low-power mode selection is set to SHUTDOWN before starting CPU2 to allow the device to enter low-power mode
Hi, I'm planning to use a STM32WB5MMG for a custom board. For this application, I need to measure the frequencies and the duty cycles of three different PWM signals. I know that there is the PWM Input mode of some TIM. However, I verify that there are only two timers with this function. How can I overcome this limitation? Can I use Input Capture direct/indirect mode of the timers?Thanks.Matteo
Hello everyone,I'm currently working with the STM32WBA65RI Nucleo board.For my upcoming application, I require a stable BLE throughput of over 800 kbps. However, using the provided example, I can only achieve around 600 kbps.So far:I'm using an MTU of 244 bytes.2M PHY Manage to minimize connection interval : 11.25 ms when using the ST BLE Toolbox app, and 7.5 ms when using a custom script on Windows.I’ve tested with several smartphones/ configuration and also tried increasing the MCU clock, but none of these changes improved the performance significantly.Has anyone managed to achieve a higher throughput with this setup or found effective optimizations?Thanks in advance for any insights.
Hi.I'm working on stm32wb for some time, handling CPU2 updates of BLE stack application.Lately, version 1.23 was published with new FUS version, so I tried updating it with my application running on user flash. I searched for the magic word but I found something strange, empty word in the middle of the footer:I compared it to previous version and it appear there also.As described in AN5185, magic word is placed after FW version, so what am I missing?Any help is welcome.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.