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 all, I have a brand new B-WB1M-WPAN1 board which worked with the ST BLE Toolbox out of the box. It had 2 services, Heart Rate and LED. I was able to turn the LED on and off, notify the phone with the button and see heart rate. Imported into CubeMX the .ioc project "BLE_HR_p2pServer.ioc" from theSTM32Cube MCU Package for STM32WB series page (link below) and flashed to the board. I can still connect to the board and see the 2 services but the LED and notification button will not produce any actions. The heartrate also has no data. https://www.st.com/en/embedded-software/stm32cubewb.htmlAny ideas what to look for?Thanks
Hi All,1. [Part Number] STM32WL33CC12. [Environment] Windows OS, STM32CubeIDE version 1.17.0, Firmware package STM32Cube FW_WL3 V1.0.03. [Schematics] STM32 Nucleo-64 development board4. [Details] See below.5. [Expected behavior] The script would patch file same baudrate6. [How to reproduce] Write a script and add the script to the Prebuild step in Settings. 7. [Occurrence] Consistent8. [Sanity checks] See below.Here’s a rephrased version of your text:I am attempting to patch a file before building, but I have not been successful. I tried using both a .sh bash script and a Windows .bat file, and they work as expected when executed directly from their respective terminals.However, when I run them through the STM32CubeIDE Pre-build step in the Settings, they fail to work as intended. Interestingly, the .bat file appears to execute and displays a message in the STM32CubeIDE console stating that the pa
The simple DMA_MUX_RequestGen example code doesn't work as expected. I have tried running the example from https://github.com/STMicroelectronics/STM32CubeWB/tree/master/Projects/P-NUCLEO-WB55.Nucleo/Examples/DMA/DMA_MUX_RequestGen on the P-NUCLEO-WB55 board, but it does not run as expected; when I press the SW1 button, the LED2 gets on, but it stays on forever, and it does not toggle as expected (the DMA gets only the first trigger and then stops functioning) The DMA ISRs also don't get triggered in any case. After enabling the EXTI line4 interrupt and changing the HAL_DMA_Start_IT(&DMA_Handle, (uint32_t)SRC_Buffer_LED2_Toggle, (uint32_t)&LED2_GPIO_PORT->ODR, 2); to: HAL_DMA_Start(&DMA_Handle, (uint32_t)SRC_Buffer_LED2_Toggle, (uint32_t)&LED2_GPIO_PORT->ODR, 2); Somehow, it started to work, but none of the DMA interrupts will work in either case. Then I tried configuring it with the CubleMX but I can't get it to work, the DMA gets the first tri
I am developing a very energy-efficient device. Which will work on the 2032 element. I understand that this will be a server that will wake up every 3 seconds for a short time and wait for a connection to it. I have a problem that in the HAL_PWREx_EnterSHUTDOWNMode(); mode, the controller consumes as much as 0.113 mA, but it should be 0.013. Maybe I am not turning on the SHUTDOWNMode correctly?/* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals *//* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop *//* USER CODE BEGIN WHILE */while (1){ HAL_PWREx_EnterSHUTDOWNMode();/* USER CODE END WHILE */ /* USER CODE BEGIN 3 */}/* USER CODE END 3 */}
Hello everyone.I'm using two STM32WBA55CG-DK1 boards for central and peripheral.I'm looking forward a method to get distance between two BLE devices in a short time (<50ms).In real application, there are numbers of centrals and peripherals and it should interacts each other.So I thought unconnected advertising but I don't have any experience about it.How to start it? From scratch or by using certain example?Please help me for this.Thank you.
I have file stm32wb5x_BLE_Stack_full_fw.bin how can I understand which stack version of it file without CubeProgrammer.Probably exist doc where described of bin file structure. Or somewhere in file should be this information.
Hi,with the BLE_p2pServer example for STM32WBA55, i want to change the interface from USART1 to USART2. How can i use the trace information likewith USART2?
Hello allwe have recently recevied several NUCLEO-WL33CC1 boards, equipped with the brand new STM32WL33 wireless MCU.The problem we are facing is very strange: we can't connect to the board after some operation.we have created a new project with Cube MX 6.13 for STM32WL33CCVx, and then we configured only the clock tree.The idea was to try different stop modes and measure the current consumpion using NUCLEO JP2 jumper.We did these steps:- created a new project in CubeMx selecting STM32WL33CCVx target- enabled HSE oscillator and configured the clock tree in this way:- thus we obtained this simple configuration:- generated the code from the .ioc file- opened the project with CubeIDE and start a debug session, which perfectly worked- measured the current concumption in run, in pause and in reset- modifyed the main.c to enter the deep stop mode (with deep_stop_mode_2 bit set), adding these only two lines just after the while(1): MODIFY_REG_FIELD(PWR->DBGR, PWR_DBGR_DEEPSTOP2, 1
Hello,I am using an STM32WB55 and am trying to figure out how to get the current time including milliseconds using an RTC and display that time in 6 byte hex format. I would most likely call the GetTime() based of a millisecond timer if that is the most efficient way to do it.For example I would like the time to return like this (0x017FB1731312)Any help or example on this would really be appreciated.Thanks in advance!
I have a dev_kit which I want to use to connect to a cellular network with LTE-M. But the example-file that they gave were a .bin file from XCUBE_CELLULAR for B-L462E-CELL1\cellular. Since I never used i, I have no clue what to do. How could I get started with the modem and get a connection with a network. So that I can send and receive data? OR something like the project-example they gave to us. That would also help. Thank you!
hi ST support teamI am designing a circuit using the STM32WB09KE chip.However, when running the BLE_p2pServer example program from the package STM32Cube_FW_WB0_V1.1.0 and using the ST BLE Toolbox app (on iphone) to connect, I encounter a continuous disconnect issue.I have changed the UART1 pins and am not using the LSE compared to the example code.Could you help me resolve this problem?
I'm working with the p-nucleo-wb55, and I would like to configure the pin PA0 , PC13 to wake up the MCU from Standby Mode. I configued PA0 and PC13 from STM32CubeMX to GPIO_EXTI0 and GPIO_EXTI13 respectively.Config:PA0 : External Interrupt with Falling edge , Pull-upPC13 : External Interrupt with Falling edge , Pull-upIn my code I set the sequence that I follow to enable the WKUP line is: HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1_LOW); HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN2_LOW); HAL_PWR_EnterSTANDBYMode();But interrupt from PA0 , PC13 not working in standby mode.I reference from RM0434: Multiprotocol wireless 32-bit MCU Arm®-based Cortex®-M4 with FPU, Bluetooth® Low-Energy and 802.15.4 radio solution
Hi. I'm developing a custom board using STM32WB09TEF7TR microcontroller.I had a problem re-accessing the microcontroller using SWD once I finished programming one time.I found that it is due to the SPI3 (PA3) and one GPIO pin (PA2) sharing the pin for SWD (SWCLK and SWDIO).So, I want to control this microcontroller with two stages, "operation mode" / "programming mode", that change the pin setting from SPI3 / GPIO_out to not assigned pin for SWD. Could you tell me what I can do about this?I failed to change the pin setting using the function below. void enter_SWD_mode(void){GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_3;GPIO_InitStruct.Mode = GPIO_MODE_INPUT;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_InitStruct.Pin = SYNC_Pin;GPIO_InitStruct.Mode = GPIO_MODE_INPUT;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(S
I want to pair my Oticon hearing aid with a Bluetooth LE audio/Auracast transceiver for streaming from laptop or mobile or TV to my hearing aid. It is a personal use case and am looking at some of the chipsets along with Eval kit or USB dongle that STMicro offers.I wish to know if there is any related example use case with any of the Eval kits that STMicro provides.
I am generating code for the STM32WL33 using CUBEIDE 1.17 and am using CMSIS V2. The IOC editor insists (but does not enforce) that NEWLIB_REENTRANT be enabled before generation. When compiling, the file "FreeRTOS.h" erroneously includes "newlib-freertos.h", which does not exist. Other projects I have that use a similar configuration have different content in the same file, including <reent.h>. Is this what it is supposed to be, and do I have the correct version of 'FreeRTOS.h'. This file looks like it is edited during the generation process, so do I have the wrong prototype? The source is below, with the modification it does compile. CubeMX behaves in the same manner. /* Required if struct _reent is used. */#if ( configUSE_NEWLIB_REENTRANT == 1 ) #include "newlib-freertos.h" // generated by WL33 IOC-- OR --#include <reent.h> // generated by a different project #endif /* if ( configUSE_NEWLIB_REENTRANT == 1 ) */Thanks.
I am trying to use the standby mode. As the datasheet specifies, it can only wake up from this mode from the reset pin, wake-up pin, or RTC trigger. I searched on the internet to find out how to do it.If I use standby mode like this in the main it works correctly (so without the sequencer): while (1) { /* USER CODE END WHILE */ //MX_APPE_Process(); /* USER CODE BEGIN 3 */ for (int i = 0; i<5;i++) { HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin); HAL_Delay(50); } HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN4); HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN4_LOW); /* Clear the WU FLAG */ __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); HAL_PWR_EnterSTANDBYMode(); } But I use Bluetooth and I have to use the sequencer. And I have a function like this:void task_foo() { HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin); count++; if (count > 5) { count = 0; HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN4); /* Enable WakeUp Pin PWR_WAKEUP_PIN4 connected to PA2 */
Hi!I am using a STM32WB55 on a custom platform.I added "just work" encryption that will force a pairing with my device when I am using a protected characteristic thanks to ATTR_PERMISSION_ENCRY_READ/WRITE.My enc_key_size is 10, my CFG_IO_CAPABILITY is CFG_IO_CAPABILITY_NO_INPUT_NO_OUTPUT, my CFG_MITM_PROTECTION is CFG_MITM_PROTECTION_NOT_REQUIRED,Everything behaves normally but when I read a characteristic and the pop-up to pair my device appears. At this moment, if I close the application connected to my device (nrf connect in my case) without responding anything to the pairing it disconnects to the device but the application does not seem to see the flag HCI_DISCONNECTION_COMPLETE_EVT_CODE and thus does not restart the advertising. In this situation, my device is so no more visible on BLE through its advertising data.Do you have a clue about the origin of the problem and how I could solve it?Do not hesitate if you need any additional information.Thank you in advance Tom
### 1. About the STEVAL-IDB012V1 Evaluation KitWe have purchased the STEVAL-IDB012V1 evaluation kit. On ST's official website, we found a software package for QUUPPA tag emulation using BlueNRG-LP/LPS (en.STSW-QUUPPA-ETAG.zip). After downloading, we extracted it into the BlueNRG SDK (STSW-BNRGLP-DK). However, when I tried to compile the project using Keil, I encountered errors. The error details are shown in Attachment 1. The version of Keil I am using is 5.40, and the compiler version is 6.09.I could not find a detailed solution to this issue in your forums or documentation. Additionally, there is no detailed explanation of the purpose of this project, only a brief mention that it is a "QUUPPA tag emulation."### 2. About PCB Design for STM32WB09Since the STM32WB09 is a relatively new product, I have not found much information regarding its PCB layout guidelines.We followed the design guidelines for BlueNRG (`AN5526 - Guidelines for PCB Design on BlueNRG-LP/Bl
I want to send current date and time from mobile app(like nrf connect app) to STM32WB via BLE. Need to set that received time to RTC. From that time, RTC should update the date and time continuously. I don't know how to set that received time to RTC. Or else can we read current date and time from RTC without setting it manually in cubeMX and without any external hardware modules? is there any other methods? Ultimately, I need to add a timestamp with my existing continuous data packet. Can anyone help me to do this?
Hello,I am using the microcontroller STM32WL55Jc1 with the Nucleo WL55JC1 modules and I want to go into stop mode and consume as little as possible while ensuring wakeup via reception with LoRa signals. I have tried various configurations, but the measured current is always the same whether in LPRUN or LPSLEEP (both in debug mode and not). Both currents are very high compared to the datasheet. Where could the problem be? Below I write the part of the code used for LPRUN and LPSLEEP.LPRUN: Radio.Rx(0); /*Continue receiving*/ LL_PWR_SetRadioBusyTrigger(LL_PWR_RADIO_BUSY_TRIGGER_WU_IT); LL_PWR_SetRadioIRQTrigger(LL_PWR_RADIO_IRQ_TRIGGER_WU_IT);/* Reduce the System clock */SystemClock_Decrease(); /* Set regulator voltage to scale 2 */HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE2); APP_LOG(TS_ON, VLEVEL_L, "RXDone:SENS_COMM_LOWPOWER_ALL Modalità LOW Power RUN Attivata!!\r\n");/* Enter LP RUN Mode */HAL_PWREx_EnableLowPowerRunMode(); LPSLEEP:Radio
Hello, I am using the STM32WL55JC1 microcontroller on the NUCLEO-WL55JC1 board and I tried the PWR_PLSLEEP example which is used to enter LPRUN mode. The example works, but the power consumption measurements are very different from those stated. In RUN mode, the consumption is 9.9 mA, while in LPRUN mode it measures 3.9 mA. Since the example does not set the LDO/SMPS configuration of the microcontroller, it is assumed to be in default LDO mode. However, the stated consumption in LPRUN mode is 220 µA and not 3.9 mA! What could be the reason? Thanks in advance
Now that the BLE_wrap.c issue has been solved, I've gotten back to trying to develop my application for the WBA52KGU using STM32CubeIDE 1.17.0 and STM32Cube FW_WBA V1.5.0. Frustratingly, everything is still broken. Without the WPAN middleware enabled, my blank project compiles properly. However, enabling any BLE WPAN middleware results in compile errors. If the BLE config requires UART, I'll get the error ../System/Interfaces/usart_if.c:130:9: error: 'UART_HandleTypeDef' {aka 'struct __UART_HandleTypeDef'} has no member named 'TxCpltCallback' followed by more compile errors in that file all related to the transmit callback not existing as a member.If I choose a config that doesn't require UART, HAL_StatusTypeDef is suddenly undefined for the WBA driver and results in errors in almost every header file. For example: ../Drivers/STM32WBAxx_HAL_Driver/Inc/stm32wbaxx_hal_rcc.h:2452:1: error: unknown type name 'HAL_StatusTypeDef'; did you mean 'HAL
Hello,I face same issue.same ashttps://community.st.com/t5/stm32-mcus-wireless/shci-c2-ble-init-never-returns-in-ble-ota/td-p/724995https://community.st.com/t5/stm32-mcus-wireless/stm32wb-cpu1-stuck-waiting-cpu2-at-init/td-p/80505 I am use the BLE_Ota on STM32WB5MM-DK, set CFG_LED_SUPPORTED = 0, CFG_BUTTON_SUPPORTED = 0I tried to Commenting these lines as last post same.and it's not working.I still stuck waiting for SHCI_C2_BLE_Init() to finish after APP send Reboot.On P-NUCLEO-WB55 is working well.On STM32WB5MM-DK is stuck. (but erase user application from 0x8007000, only BLE_Ota can do FUOTA by APP without Reboot)Any help from anyone would be greatly appreciated. Thanks,Leimen Debug log as follow:----------------------------------------Wireless Firmware version 1.13.2Wireless Firmware build 2FUS version 1.2.0>>== SHCI_SUB_EVT_CODE_READY>>== WIRELESS_FW_RUNNING>>== DBGMCU_GetRevisionID= 2003>>== DBGMCU_GetDevi
Hello, I have a STM32WB55RE connected to a CAN bus. I'm receiving the CAN data via the Main function using polling. When a message is received (250K Baud Rate) I want to forward that data to the BLE stack so I can send it to another STM32WB55RE. I'm currently using the sequencer to manage all the BLE tasks. There doesn't seem to be any queue or semaphore that I can use with the sequencer.Is there a preferred method to CAN bus data from the Main loop to a task running within the sequencer?Kindest regards.
I'm testing the sample project BLE_p2pServer on STM32WB09.When the low-power mode (LPM) is not activated (CFG_LPM_SUPPORTED = 0 in app_conf.h) the project works OK.To activate LPM I set CFG_LPM_SUPPORTED to 1, but that doesn't work and there is no advertising.What must I do to activate LPM ?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.