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
When generating code that uses the CMSIS OS V2, it appears that a template directory gets included in the generated code. causing massive linker errors. The offending directory is Drivers/CMSIS/Device/ST/DEM32WL3X/Source/Templates. Removing it gets rid of the errors.While we are at it, the LICENSE.txt file in the same directory is spelled incorrectly, it should be LICENCE.txt, as it is not a verb.
I have found another bug in SWDIO code generation. I previously reported that no code is generated for SWCLK, but if both are relocated, SWDIO is also incorrect. The .Alternate uses a define of GPIO_AF1_SYS, which does not exist in stm32wl3x_hal_gpio_ex.h. The correct define should be GPIO_AF1_SWDIO, which is.Generated code:GPIO_InitStruct.Alternate = GPIO_AF1_SYS;Correct to:GPIO_InitStruct.Alternate = GPIO_AF1_SWDIO;
Hello.I am facing a problem: timer tim2 is not working with initialized ble and tasks and timers HW_TS (button and LED processing). Just in case, I checked that TIM16 is working, but it is busy with another task, so I can't use it. I've tried many things, but all I get is either the interrupt triggering instantly and going to hard fault, or just going to an error handler, or nothing happening.static void MX_TIM2_Init(void) { TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; /* USER CODE BEGIN TIM2_Init 1 */ /* USER CODE END TIM2_Init 1 */ htim2.Instance = TIM2; htim2.Init.Prescaler = 31999; htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 2999; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim2) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_
Hello everyone, I’m experiencing an issue with communication between two STM32WL33CC1 devices. I’m using one for LPAWUL wakeup receiver and the other for MRSUBG transmitter, but I noticed that beyond 10 meters, the communication starts failing. Setup Details: SB1 resistor: 0Ω -C3 resistor: 0Ω -Configured for +20 dBm PA -Test environment: tested indoors in a hallway The communication works fine up to 10 meters, but beyond that, wakeup packets are not received reliably. Can everone help me solve this problem and get +/-30 stable meters? Code LPAWUR: https://github.com/STMicroelectronics/STM32CubeWL3/tree/main/Projects/NUCLEO-WL33CC/Demonstrations/LPAWUR/LPAWUR_WakeupRadio_Rx Code MRSUBG: https://github.com/STMicroelectronics/STM32CubeWL3/tree/main/Projects/NUCLEO-WL33CC/Demonstrations/MRSUBG/MRSUBG_WakeupRadio_Tx
I own 2 P-Nucleo-WB55 boards and dongles. I was able to program the FUS, Stack and FW in both Nucleo boards, but now I want to do the same with the dongles but I cannot program the FUS or the Stack in none of them. * In one of them I get:FUS status is FUS_IMAGE_NOT_FOUNDWarning: Firmware upgrade Error!when trying to upgrade the stack to the stm32wb5x_BLE_Stack_full_extended_fw.bin at 0x080C7000 (in this dongle i was able to upgrade the FUS to the last version (1.2.0) using the CubeProgrammer CLI )* In the other dongle, I tried using the CubeProg GUI , but when trying to upgrade the FUS or the Stack I got FUS status is FUS_IMAGE_NOT_AUTHENTICError: Firmware not authentic!The same error got using the CLI. Althought I couldn't upgrade the FUS, when pressing Read FUS Infos I get that the FUS version is 1.2.0 (but no FUS Operator).Also, sometimes using the GUI I got Device Desconected error when upgrading either the FUS or Stack.CubeProgrammer v2.19Stack v1.22FUS v1.2.0E
Respected Members,We are using STM32Cube Package 1.16.0 and STM32CubeIDE v1.12.1. We have 10,000 devices in market with BLE stack v1.16.0 and FUS v1.2.0 (STM32WB5MMG). We encountered a BLE related disconnection bug that was resolved when we switch to BLE stack v1.21.0 so now the idea is to wirelessly OTA BLE stack of CM0+ and firmware binary of CM4+.But the problem is that whenever I make a call to FUS using SHCI_C2_FUS_GetState(NULL), it is blocked and keeps waiting on shci_send( SHCI_OPCODE_C2_FUS_GET_STATE, 0, 0, p_rsp ); This call never returns if I check with debugger (STLINK-V3 using IDE attached).Now, if I manually start FUS from CubeProgrammer, then re-run the firmware, FUS get state works but I cannot do this on working devices deployed in the field. If BLE stack is running, I cannot seem to get this call SHCI_C2_FUS_GetState(NULL) to work.The startup script and linker script is attached as well along with .ioc file used to generate project (wb_1.21.0.zip). This
Hello,I am using a STM32WBA55 controller and want to wake up from sleep mode (STOP1) as soon as an external interrupt (UART start bit) with falling edge occurs on pin PA11 (PA11 is also the USART2 Rx pin).Is there a possibility (e.g. with USART autonomous mode) to wake up with falling edge (UART start bit) to start UART with GPDMA or do I have to configure PA11 as external interrupt pin first:1.) Configure PA11 as external interrupt pin2) As soon as an interrupt occurs, initialize UART2 and receive a few bytes3) When the UART2 communication is finished, de-initialize UART2 and initialize PA11 as external interrupt pin again4) Go into STOP1 mode
Hi, I am planning to use STM32WL5MOCH6TR which you have suggested. So, to start with can I use this expansion board which contains the same chip for prototype purpose. Can I order this board https://www.st.com/en/evaluation-tools/b-wl5m-subg1.html?ecmp=tt9470_gl_link_feb2019&rt=db&id=DB4904 . or do you suggest any other development board. Thanks, Praba
Stlink-V3PWR no longer works because it displays the message "embeds Debug Authentication, please perform a discovery using Debug Authentication" and "Connection to target must be established before performing file download operation". I have already tested the power supply voltage and it is ok, several adjustments in the STM32CubeProgrammer, I replaced the USB cable with a new one, etc. What can I do to save the Stlink V3PWR? Figure above Log Cube Programmer
Hello Is it possible to communicate with the LPAWUL using only the STM32CubeMX MRSUBG/LPAWUR settings, to wakeup sending a direct message through the data buffer? I noticed on GitHub that the CRC calculation and the concatenation of the preamble and sync word are handled separately. I’d like to simplify this process and configure everything directly through the MRSUBG settings, if possible. I’d be grateful if you could provide an example. Here are the reference projects: Code LPAWUR: https://github.com/STMicroelectronics/STM32CubeWL3/tree/main/Projects/NUCLEO-WL33CC/Demonstrations/LPAWUR/LPAWUR_WakeupRadio_Rx Code MRSUBG: https://github.com/STMicroelectronics/STM32CubeWL3/tree/main/Projects/NUCLEO-WL33CC/Demonstrations/MRSUBG/MRSUBG_WakeupRadio_Tx
In my design I needed to use the SPI on the 32-pin WL33, which normally is SWCLK, so I relocated it from its usual PA3, to PB2. When connecting the debugger, it was unable to find the target, which is usually an indication of incorrect connections to SWCLK and/or SWDIO.The manual (rm0511) on pp58-59 describes the alternate functions, and I can see that using PB2 is a valid configuration using AF1 on on that pin. However, when doing a deeper dive into the generated code, I discovered that it has generated code for pin PA2 (SWDIO), (albeit using the wrong define for the Alternate member of the GPIO initialization struct, which is GPIO_AF0_LCO, instead of GPIO_AF0_SWDIO, but luckily they have the same value!), but NO CODE has been generated for SWCLK. As the default alternate register value, according to the manual, is AF0, then it comes up on the wrong pin. Hence the debugger error.I am presuming that I can fix this by adding code to configure PB2 to use AF1? If there are any other sugge
I am using the STM32WB55 microcontroller for my product. I want to connect more than one module to my Windows laptop. When I pair one module, it pairs correctly, but when I try to connect another module with the same firmware, it shows the message "Try to connect your device again" and does not connect. I have tried changing many things, but it is still not working. Where do I need to make changes so I can connect both devices with the same firmware to my laptop?
Hello ST Community,I am implementing FUOTA on STM32WL55-based device using ChirpStack. For this purpose, I am implementing the example code (Lorawan_FUOTA) provided by st-microelectronics in the stm32cube_fw_wl_v1.3.0 library. I have successfully built the LoRaWAN_End_Node example from the stm32cube_fw_wl_v1.3.0 library. I have installed the ChirpStack FUOTA server, which is running successfully.Current Progress:1. The multicast group is created on the ChirpStack server.2. The multicast setup request is successfully sent to the end device.3. The device creates the multicast session and switches to Class C.4. Data is received on multicast port 201 (fragmentation port).Issue:Despite receiving data on port 201, the fragmentation decoding process is not being initiated on the device.Some data is being received via multicast. However, when the code reaches the check for MultiCastGroupBitMask: if( ( groupId == 0xFF ) || ( ( FragSessionData[fragIndex].FragGroupData.FragSession.Field
Hello,Is there support for PAwR with BLE on the STM32WB10CCU5 chip? Additionally, I would like to know what methods I can use to send different data to multiple devices using BLE with this chip. If this chip does not provide the necessary functionality, could you recommend another STM32 BLE chip suitable for such an application?Thank you for your assistance.Best regards,Teoman
Hello,I'm facing an issue while performing OTA firmware updates using the ST BLE Toolbox app. The image file uploads successfully in most cases, but quite often, the final confirmation pop-up (indicating completion or prompting for reboot) does not appear. Additionally, the BLE connection does not disconnect automatically after the upload finishes.As a result, the firmware gets stuck, and it seems the device is not transitioning out of the OTA mode properly. I suspect the problem might be related to BLE service handling in the firmware, possibly missing a disconnection trigger or final response from the app.Has anyone else faced a similar issue or can suggest what part of the BLE service code should be checked for proper OTA completion and BLE disconnection?Any guidance would be appreciated.Thanks in advance.
If I realize it is true, is it needed to solder SB12 in NUCLEO-WBA52CG board for using SWO as ITM_SendChar in printf debug? Thank you for helping!
Hello; I am very new to STM32 products. I have been working with the P2P_Server and P2P_client examples using the STM32WB05KZV6TR MCU.As I use the P2P_clent example in both the Nucleo board WB05KZ and a custom board and load the built image, the next time I try to download a new image I need to put the nucleo board into Bootloader mode(BOOT0 jumped to Vcc) and download the new image that way. The custom board that I am working with currently has no hardware way of putting it into bootloader mode therefore I cannot load a new image.My question is, why do I need to put the nucleo board into bootloader mode to load an P2P_Client image?, The P2P_server does not have this issue Is there a way to prevent this? thanks Fernando
Dear ST and STEmployees,I know, everything is hard and stressful and nobody has time to take care about daily quality topics. However, I need to let you know that I'm heavily disappointed about the documentation and programming too. quality around the STM32WB55RG.My personal story: I'm teaching as a professor at a German university. About two years ago I asked a student to work with the STM32WB55RG in his final year project. It was about using the STM32WB55 for a custom sensor node that is transmitting data using BLE. All started with the respective Nucelo Board.The student managed to get the non-BLE part running on the Nucleo board, but not the BLE part. The project finally failed and slept about 2 years. Now I have a different usecase. So I thought I will do it on my own. Beside the really complicate structure and most of the ST teaching (webinar, documents) material outdated, I really ask myself if this product family is something worth to consider for teaching or product developmen
I feel duped right now. I bought the P-NUCLEO-LRWAN3 kit yesterday from st.com directly as my starting point into embedded stuff. Today I installed CubeIDE and went to generate a new project for the NUCLEO-F746ZG included in the kit, and I get a message telling me the board is obsolete. The kit says the marketing status is "active", but when I look up the NUCLEO-F746ZG directly, sure enough it says it's obsolete and I should use the NUCLEO-F756ZG instead.Why is this package marked as active and still in circulation? I feel this is just a way to sell obsolete boards to people don't know any better. Yeah I should have looked up the each board in the kit individually before buying, but I guess I was just burned out from researching all these different boards and I decided to trust that the kit is legit. edit: Maybe the wrong board is listed in the kit description? I hope that's the case. It's due to arrive on Monday, so I guess I'll see then.
On a server device I'm updating a characteristic that is 32 bytes long and when receive the ACI_GATT_NOTIFICATION_VSEVT_CODE on client side I got only notified for 20 bytes.I don't find any reference to a 20 bytes limit in read or notify command / messages but it looks I can't transmit more that 20 bytes in one time in one way or anotherit's almost like a complement issue of this post : https://community.st.com/t5/stm32-mcus-wireless/read-characteristic-48-bytes-long-generate-3-read-permit-req/td-p/789019I've try to change (enlarge or reduce) connection time min/max and scann window / periodThank's to anyone that have any idea
Hi,Using Wise studio Version: 1.3.1_R Build id: 2023_05 on Linux with the STEVAL-IDB012V1 (BlueRNG-LPS dev. kit). I am trying to make the DMA sending a series of bytes to the lowest byte of the GPIOB output. The goal is to see a binary sequence appear on PB0 and PB1. I filled the buffer "buffer" with values where bit 0 and 1 are changing. Then, I call the two functions depicted below but nothing happens on PB0 and PB1. I already verified that the counter is counting and the GPIO can drive different values on PB0 and PB1. So I think my problem is in the DMA settings.#define BUFFER_LENGTH 1400 #define PERIOD_50_US 3200 // 50us from 64Mhz timer 16 uint8_t buffer[BUFFER_LENGTH]; void My_GPIO_Settings() { GPIOA->MODER =0x000000A0; LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_0, LL_GPIO_MODE_OUTPUT); LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_1, LL_GPIO_MODE_OUTPUT); } void DMA_Based_Waveform_Settings() { // Setting DMA channel MODIFY_REG(RCC->AHBENR, 0, 1); // Enable the clock for DMA and
Hi everyone,I’m trying to implement LoRa point-to-point (P2P) communication using the stm32wle5ccu6.I configured the .ioc file based on the SUBGHz_Phy PingPong example for the NUCLEO-WL55JC1. Then, I wrote the code for LoRa transmission. On the receiver side, the only change I made was replacing:Radio.Send((uint8_t *)BufferTx, sizeof(BufferTx));withRadio.Rx(RX_TIMEOUT_VALUE);However, I’m still unable to successfully send or receive packets. On the transmission side, I keep getting a TX timeout.Could someone please take a look at my configuration and help identify where I might have gone wrong? If there are any other examples, guides, or documentation that I might have missed, I would really appreciate it if you could point me in the right direction.Thank you/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body **********************************************************************
Hello, i am looking into doing wireless thermostats using Zigbee who communicates with controlers. The controlers activate and desactivate valves to heat the house. What would be the configuration of the microcontrolers and how can i program my application. its a custom circuit board i have made i only need to configure and program. I have activated the STM32_WPAN and i dont know how to configure the Zigbee after i activate it, i cant find applications on the internet.Thank you!
I am trying to update my stm32wba55 firmware using stm32wba web Bluetooth app but every time its getting stuck at uploading please wait. I have successfully updated the firmware using web Bluetooth once and after that every time I am trying its showing uploading please wait.I have attached the log file.
Hello, I tried to enable the PTA peripheral on stm32WBA63. Seems like it's not generating any initializing code regarding the PTA. Neither any example is provided how to do so. It tried manually to enable the PTA, but its still not working. I still see the ble advertising. I am attaching the sample ioc file. What I tried manually, is #define PTA_ACTIVE_Pin GPIO_PIN_4#define PTA_ACTIVE_GPIO_Port GPIOB#define PTA_GRANT_Pin GPIO_PIN_15#define PTA_GRANT_GPIO_Port GPIOB GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = PTA_ACTIVE_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = 0x0C; // AF for PTA_ACTIVE_Pin HAL_GPIO_In
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.