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'm currently using an STM32WB5MMG on my project and I'm struggling to reach the expected power consumption.Please note one known error on the PCB: the RF_OUT and ANT_IN pins, which should be connected to GND according to the datasheet/guidelines, were inadvertently left unconnected. These pins are currently inaccessible for rework.Anyway, I'm trying with all the examples available for this MCU, and I have read all the conversations about this MCU and the Low Power modes multiple times with no success.I have tested the PCB with the HeartRateFreeRTOS example and with the PWR_STOP2_RTC example, but again, no luck.The current is always around 500 μA.I have already tried to desolder all the sensors from the PCB to be sure that the extra consumption doesn't come from one of them, but no luck.I have also deactivated all debug functionality while testing for power consumption, and I have tested the PCB with the debugger disconnected, so it is not related to this.I also tried to initial
i am using LoRaWAN_End_Node_FreeRTOS in STM32WL55JCIX in that for send the data i used APP_TX_DUTYCYCLE and set 43200000(12 hours) for send data to gateway there is delay getting of 20 to 25 minutes every data send is there any solution for that ???
We are currently developing two LoRaWAN-based products using STM32WL55J (battery powered and Mains AC). Both devices are designed to sample sensor data every 30 seconds and transmit it according to a defined daily duty cycle.However, we are facing challenges in maintaining accurate timing synchronization: The internal RTC is already being utilized by the Sub-GHz radio stack, limiting our flexibility. Using the Timer Utility for periodic alarms leads to cumulative delays over time - for example, if the first alarm triggers at 12:00:30, subsequent triggers drift gradually and no longer align with real local time (e.g., 12:01:00, 12:01:30, etc.). We are looking for general design guidelines for STM32-based LoRaWAN devices that require long-term periodic data acquisition synchronized with real time. Specifically:Is it common or recommended to use an external RTC (e.g., via I²C/SPI) in such designs? Are there firmware design patterns or best practices for maintaining rea
Hello everyone,I’m working on a project using the STM32WB55RG microcontroller with FreeRTOS, and I’m trying to put the MCU into STOP Mode 2. The system is supposed to wake up regularly using the RTC.I’m using LL libraries to configure the power registers for STOP Mode 2. However, when I reach the _WFI() instruction, the MCU does not actually enter stop mode—it simply continues normal execution instead of waiting.Has anyone experienced a similar issue? Are there any specific configurations, prerequisites, or FreeRTOS-related considerations I might be missing?Any suggestions or debugging tips would be greatly appreciated.Thank you in advance for your help!Here is my code piece: void EnterStop2Mode(uint32_t seconds){HAL_RTCEx_DeactivateWakeUpTimer(&hrtc); // Ensure wake-up timer is resetuint16_t rtc_counter = RTC_CalculateWakeUpCounter(seconds);HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, rtc_counter, RTC_WAKEUPCLOCK_RTCCLK_DIV16);__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_0);LL_PWR_SetPowerMod
Dear ST members,I'm designing a new board with STM32WBA65RGV6 in LDO power supply scheme. The datasheet and reference manuals are not clear how to connect certain pins in this configuration. Please, clarify the queries below:Is VDDSMPS to be connected to GND or to VDD? On the reference manual page 299 it says to connect to ground, but on Figure 31 it is connected to VDD with a capacitor. If a capacitor is to be added, please specify the value.Is VDD11 to be connected to capacitor like in Figure 31? If so, what is the capacitor value?Regards
Hi,I'm trying to make continuous TX CW signal on 868.1 MHz or 432.4 MHz with the nucleo stm32 WL55jc2 without success. I spend a lot of times but sometimes goes wrong.I'm looking for somebody who as experienced with SUBGHZ and ping-pong as my app is derivated from to help me to make it works.I can share the project if somebody could help.Thanks by advance Franck from France
Hello ST team,We are using the STM32WL5MOC6HTR module, which does not include the STSAFE-A110 secure element.However, in the STM32WL5MOC6HS variant, the PB8 pin is used to power the STSAFE chip (VDD_STSAFE).In our setup (with the HTR module), when we set PB8 high during testing, the flashing process (using ST-Link / STM32CubeProgrammer) fails or hangs.When PB8 is left floating or configured as input, flashing works normally.I want to understand:Why does driving PB8 high prevent flashing on the STM32WL5MOC6HTR module?Is PB8 internally connected or reserved for STSAFE even on the non-S variant?Should PB8 be kept floating or pulled low when STSAFE is not populated?Any hardware or reference design explanation would be very helpful.Thank you!Module: STM32WL5MOC6HTRObserved Behavior: Flashing fails when PB8 is driven high.
Hello,I'm trying to implement a usb cdc device on a stm32WBA65RI-DK1 board but seems like the only usb otg supported is the usb st-link port CN6 that supports USB_OTG_HS. Using cube mx, Im trying to configure that usb as device with the vbus enable, to force that usb port to be powered through the usb, but the MX is not letting me do such thing. Can someone explain why I'm not able to enable it?I wanted to ask if the CN5 connector could be enabled as USB_OTG_FS, although I dont see anything about that in the board manual nor in the mx.Thanks in advance.Best regards,Rares
I've been following the tutorial for the P-Nucleo-WB55 Nucleoboard (https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_BLE_STM32CubeMX#Pinout_and_IP_configuration)However, when I get to the section 6.1 UART1 USART1 pinout definition, I can't complete it as it is greyed out and it won't let me activate UART1. When I place my cursor over it I get the following information that it is not available IP under HPI BSP driver controlI can't find anything online, and I've checked the tutorial steps again.When I set up the project, I enabled all the default options that it asked for.Thanks for any help
Hello everyone,We are working on a project using a STM32WB5MMG, facing a strange situation with AES encryption userkeys. Our application code performs data encryption using the internal AES module and for that we load the (previously saved) internal user key from index 1. Everything works fine if we only flash the application code.But, our full project also uses BLE OTA, as long as SECoreBin and SBSFU, besides the previously mentioned application code. By the way, SBSFU uses the key in index 1 to decrypt the encrypted firmware image received from BLE OTA.The thing is that when the full project is flashed, our application cannot load userkey from index 1 anymore and we have to use the one from index 2. It would seem that userkey index 1 is reserved for the secure core and cannot be used by the user application.We could not find any documentation that states that index 1 is reserved for the secure core, in case it is present. So, are we doing something wrong then? We could not find any m
Edited by a ST moderator to follow the community rules especially for code sharing. So please use </> to share your code Hello, I am using the STM32WBA, and I am interested in persisting data to start after waking up from standby mode.I am unable to keep the data in memory. Here is how I am configuring the linker script and main.c.Can you please help me with how to keep the data when waking up? I am configuring a pot for wakeup GPIO_PIN_13.My goal is for the MCU to wake up, perform some actions, and go back to sleep repeatedly. STM32WBA55CGUX_FLASH.ld MEMORY { RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K BKPSRAM (xrw) : ORIGIN = 0x40024000, LENGTH = 2K } ## after .bss: ## .bss_bkpsram (NOLOAD) : { . = ALIGN(4); KEEP(*(.bss_bkpsram)) . = ALIGN(4); } > BKPSRAM main.c typedef struct { uint32_t magic_number; uint16_t device_id; } PersistentState_t; __attribute__((section(".bss_bkpsram"))) volatile Persistent
Dear all,I am using the cube programmer in order to set WRPA_PEND, WRPA_PSTRT and uncheck the unlock to actually lock the area defined by the WRPA field. It works fine and I can actually see that the memory region is protected.I am unable to restore the situation and change back the unlock bit to 1 for this same region.The cube programmer returns the following errors:Error: Expected value for Option Byte "unlock_a": 0x1, found: 0x0Error: Expected value for Option Byte "wrpa_pend": 0x0, found: 0x7FError: Option Byte Programming failed Or modified by application after OB_LAUNCH The RDP level is set to 0xAA (not set at all nor changed). Can anyone help me out with this issue?
Hello team, We are using STM32WL55 MCU. I haven't found any information about resistance value of its internal pull-down resistance. As far as I know it is typically 40k. But could you tell what is the tolerance of this value? Best regards, Vladislav
Hi everyone,I'm working with the WB05KN because I’d like to take advantage of the option to have the firmware preloaded during production.However, I also want to make sure that I’ll be able to load a custom firmware in the future. Is this possible?I tried flashing the BLE_TransparentMode_SPI and BLE_TransparentMode firmwares from the examples for NUCLEO_WB05KZ, but without success — the firmware gets stuck inside SystemClock_Config. if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } I understand that the two components have different part numbers, but my understanding is that the only difference is the pre-flashed firmware — or is there something else that differentiates them?
This is a repost because the forum decided that my follow-up was a 'solution'.We want to scan using the BLE Full stack, v1.21. What is happening is that the BLE stack is claiming that these HCI commands are unsupported. HCI_LE_SetScan_ParametersHCI_LE_SetScan_EnableHCI_LE_Set_Extended_Scan_ParametersHCI_LE_Set_Extended_Scan_EnableHCI_Read_Local_Supported_CommandsThe last one is unexpected.The AN5270 doesn't list the 'full' stack among the firmware that is documented as having specific commands. Section 2.1:In Table 1 "Y" means that the corresponding command applies to the dedicated Bluetooth® Low Energy (BLE) stack variant, namely LO / BO / PO / BF / LB, respectively, for Link layer only / Beacon only / Peripheral only / Basic feature / Link layer only basic.Is there another place for documentation on the supported HCI commands per stack? Is there another set of commands we should be used to enable scanning?Cheers
Greetings,Looking at PM0271, there seems to be an API call aci_gap_start_gen_disc_proc. However, I don't see this in the Cube firmware package anywhere in the headers and I haven't found it in sample code as yet. We would like to configure the STM32WB55 for dual role BLE, Central and Peripheral. The Peripheral works. When we enable the Central role and then send the scan_enable command, the wireless stack doesn't accept the request. So, we figure it might be helpful to see an example. What examples are available that demonstrate BLE scanning on the STM32WB55? I checked the AT_Client/Server. BTW, It's pretty difficult to search through samples as the IDE tends to bog down then crash.Cheers
Dear Sirs,I have been developing a board with an H7 and a WB5. I have not had any issues, but one day the WB5 stopped answering, and when I try to connect with the CubeProgrammer I get: "no stm32 target found if your product embeds debug authentication".I moved to a new board wight out of the box, without luck, I changed from the STLink V2 to a new bought STLink V3, no luck.At this point I do not know what to try, because I have already validated my custom PCB as I have it already running and it just lost the communication one day, and with a completely new board (because I thought I could have reflashed the SWIO/SWCLK pins or something to different pins) it does not work either.One point to mention , is that the CubeProgrammer detects the Target Voltage at 3.23V.I have updated both STLinks to the last FW versions that the updater tool allows.I tried too by setting the BOOT0 pin to 1 so it boots in the default bootloader.What could I try? Am I missing something? Has something been upda
Im using a STM32WLE5CCU6 board, I am able to log easily using the APP_LOG() helper function that is provided. The problem is that im not able to receive anything as the USART interrupt never fires hence, HAL_UART_RxCpltCallback() is never called. After searching in the web I saw https://github.com/STMicroelectronics/STM32CubeWL/issues/34 facing the same issue, however the fix they have said doesn't work for me. I also tried the changes proposed in bug stm32 hal driver lock mechanism is not interrupt safeand https://github.com/STMicroelectronics/STM32CubeWL/issues/32 Yet none of these solutions make the interrupt work. If I comment HAL_UART_Transmit_DMA(&huart1, p_data, size); in UTIL_ADV_TRACE_Status_t vcom_Trace_DMA(uint8_t *p_data, uint16_t size) { /* USER CODE BEGIN vcom_Trace_DMA_1 */ /* USER CODE END vcom_Trace_DMA_1 */ HAL_UART_Transmit_DMA(&huart1, p_data, size); return UTIL_ADV_TRACE_OK; /* USER CODE BEGIN vcom_Trace
Hi, I have been facing with an issue that like stm32wl LoRa feature is not compability with other transceivers.However, had 4 transceivers: 1. Esp32-sx126x2. stm32f429-sx126x3. stm32wl (x2) First two can easily communicate with each others, they can exchange data even in pingpong structure but they can't send or receive data from stm32wl. In first glance, i don't know why but stm32wl couldn't be set correct syncword. After explicitly writing to its register problem solved and i could just see some thing on scanners (first two were in receiving mode) but always CRC error occurs. When third one was in tx mode and others in rx mode, others rised CRC errors and visa versa...In other hand (without changing any configuration), stm32wls can communicate with each others. And yes i examine and double-double check all parameters of LoRa (like sf,cr,bw,frequency). After all question rised is there stm32wl incompatibility with other LoRa tranceivers (Specif
I purchased the STM32WB5MM-DK and it has an application running. When I update CUBE-MX with the patch for STM23WB5MM , there are is no examples that match the application. The training talks about the example projects but they did not come with the update. Where can I find the source project for the Dev Boards application? I work in MKS toolset
Hello,I use a STM32WLE5JCI6 MCU. Sometimes I need a good clock precision so I switch to HSE as SYSCLK, with a 32MHz quartz. I use 4MHz as HCLK, and I chose to set HSEPRE=2 and HPRE=4. When I call SystemCoreClockUpdate() function the SystemCoreClock value is 8MHz, because HSEPRE value is not considered. Is it a bug or this is the expected value, for any reason I missed? The function HAL_RCC_GetSysClockFreq() uses LL_RCC_HSE_IsEnabledDiv2 to return the expected value, so the SystemCoreClock value is 4MHz if I configure the HSE as sysclock at startup.Thanks,Sylvain My code:void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2); /** Initializes the CPU, AHB and APB buses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState
Hi, I started from the LoRaWAN_End_Node example to develop a custom application with a STM32WL5MOC module. I would like to modify the example such that I can wake up the MCU from stop2 mode when I received some data on the lpuart . I set LSE as clock for LPUART1. I found some example on the community but they didn't for on my STM32WL5MOC. Someone can explain how to setup the LPUART?Thanks.Matteo
Hi all, apologies if I have missed the answer to this question in previous posts. I understand that according to the datasheet, the maximum input voltage of FT_xx (and even TT) pins is 3.9V even when VDD, VDDA, VDDRF, and VDDSMPS = 0V. From my understanding, this is possible because of the logic level shifters that have been implemented in the design of the chip. These logic level shifters are powered by the VCORE domain according to the datasheet. Based on the datasheet, if the microcontroller chip is put into SHUTDOWN mode, the VCORE domain is powered off. Does this mean that the maximum input voltage on the FT_xx pins become 0V? Thank you for clarifying this!
Hello,I have the MKSBOX1V1 and I programmed it with the OTA firmware. I launch the android app ST BLE Sensor but when I xant to dowload an application it is sending forever as shown on the picture. What am I doing wrong?Thanks
I'm trying to set up the Utility Sequencer to run an acquisition task followed by an signal processing task, see code snippets below.When I look at the serial monitor, I see the start acquisition task message but then it hangs waiting for EVENT0So even though I've set EVENT0 in Custom_APP_Init() it looks to me that the event is not in fact set.What am I missing here?Edit, I commented out the SetTask line as I realized I hadn't finished setting up before the sequencer sets off but now no tasks get set, so I dont get the start acquisition task message any more.#define EVENT0 1<<0 #define EVENT1 1<<1 void Custom_APP_Init(void) { /* USER CODE BEGIN CUSTOM_APP_Init */ UTIL_SEQ_RegTask(1<<CFG_TASK_SENSOR_UPDATE_ID, UTIL_SEQ_RFU, sensor_update); UTIL_SEQ_RegTask(2<<CFG_TASK_FFT_ID, UTIL_SEQ_RFU, do_fft); UTIL_SEQ_SetEvt(EVENT0); // UTIL_SEQ_SetTask(1<<CFG_TASK_SENSOR_UPDATE_ID, 0); /* USER CODE END CUSTOM_APP_Ini
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.