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 Concerned Team,Need valuable support:1. Advertisement Issue: Discoverable in iOS/Windows not in Android- Board: NUCLEO-STM32WBA52- MCU: STM32WBA52CGUX- SDK: 1.14.0- Due to unavailability of out of box any BLE example code for STM32WBA52 series, Used base code for STM32WBA55 series and converted firmware for STM32WBA52, Tried examples: peer_to_peer_server_ota, heartrate_ota and beacon.- Found strange case for all three examples that: Device advertisement found in iOS(BLE5.3) and Windows(BLE5.0), with good RSSI around -26dBm to -34dBm, even able to connect, read, write and notify perfectly, But device advertisement not found in Android phones: MI-11X(Android-V13, BLE5.1), Nokia-G42-5G(Android-V13, BLE5.1)- peer_to_peer_sever_ota (STM32CubeIDE) advertisement found in windows and iOS related screenshots attached here.Ref: Windows discovered advertisement- Related peer_to_peer_server_ota firmware attached here for reference(7zip need to extract same).-
I wish to add BLE functionality to an existing project on an STM32WB55. It appears that use of the sequencer (UTIL_SEQ) is encouraged if not mandatory for employing the BLE coprocessor on the WB55. My understanding of the sequencer is that it's simply an optimized while loop and so any existing interrupts (Timers & DMA) I have utilized will continue to function as normal and I should take what's running in my current super loop (while(1) loop) and slot them into functions that I then register as tasks and set with the sequencer.Are the assumptions I've made regarding interrupts correct and is the approach of integration I have described straight forward and reasonable? Here is a list of resources I've found relating to use of the sequencer with the STM32WB55:STM BLE TutorialBuilding wireless applications with STM32WB Series microcontrollersSTM32WB Bluetooth® Low Energy (BLE) wireless interfaceSTM32WB – BLE SW Application Architecture
I've been working on a project building off the UART_console example from the STM32WB MCU package and have been able to do everything I need using UART but when I try to add BLE functionality to my project using the STM32_WPAN middleware package, I get errors such as:It looks like when I enable STM32_WPAN from the .ioc file, the required middleware header files are not being imported and judging from this screenshots they are not part of my project's Includes:I've tried changing these parameters as well with not result so far:How should I fix this? Do I manually import the files, am I not configuring something correctly, is there a missing step?
I've tried building and flashing the same BLE_TransparentMode example on an STM32WB5MMG-DK board from two different sources which gives me two separate results. Once straight from the latest MCU package found in https://www.st.com/en/embedded-software/stm32cubewb.html and another from STM32CubeMX with all parameters like the WPAN library included, the correct BLE stack binary on the coprocessors, etc. When I flash it from the MCU package folder I've gotten it to work properly and when I measure Jumper 1 (JP1 connected to the ble module) I get a current consumption value of 10.90 mA. I am also able to use all the example program's functionalities.However, when I build (using STM32CubeIDE toolchain and flash from the project created by STM32CubeMX I suddenly see a current consumption of 11.50+ mA and when I try to use STM32CubeMonitor-RF I'm unable to connect to the board. Adittionally the LED screen doesn't show anything even tough it should so it seems th
Hello, I am working on a project using the STM32WLE5JC module and STM32CubeIDE for development, with firmware packge v.1.3.0.We are currently running EMC tests at a test facility, and they have requested for the ability for the device to send data every 500ms (to The Things Network, TTN). Is this doable? What configuration will be needed to accomplish such a fast transmission rate?Thanks
Dear Team,I am currently working on designing a low-power Bluetooth device and we need a suggestion as to choose an ultra-low power consumption and distance to meet BLE MCUIn particular, I am looking for advice on:Selecting the best STMicroelectronics microcontrollers or SoCs for low-power Bluetooth applications.Implementing power management techniques to achieve optimal energy efficiency.Any available reference designs, application notes, or resources that could be beneficial to my project.The objective of the project is to meet the Accurate distance between BLE devices using RSSI Note:Already we have used the STM32WB5MMG series MCU for BLE, but it does not meet the distance and expects low power, Your suggestions would be incredibly valuable, and I look forward to your expert guidance.Thank you for your support.
Hi,I am attempting to get two B-WB1M-WPAN1 boards to connect to each other, one acting as a server and one acting as a client. I am fairly new to ST programming and thus I rely heavily on the examples and documentation to guide me. I have found an example p2p server project using the cube IDE which works well, I am also able to connect to my phone and communicate with this server.My problem lies in attempting to create a client project for my WPAN1 board which can connect to the server WPAN1. I cannot find any examples or documentation for this? I have seen similar examples for other MCUs but I have struggled to emulate this on a WPAN1. Is there any example client projects out there worth looking at or perhaps some good documentation for this?I have also tried using the template for WPAN1 BLE using the MX configurator following this tutorial:STM32WB Getting Started Series: Part 12b, Lab. Receiving data from the phone (youtube.com)This appears to make a template project capable of conne
Hello, I am developing a BLE HID device using the STM32WB55.I am generating random static addresses using a program implemented in the STM32CubeWB. This is used to identify multiple peripherals with the same functionality. #else /* Get RNG semaphore */ while(LL_HSEM_1StepLock(HSEM, CFG_HW_RNG_SEMID)); /* Enable RNG */ __HAL_RNG_ENABLE(&hrng); /* Enable HSI48 oscillator */ LL_RCC_HSI48_Enable(); /* Wait until HSI48 is ready */ while(! LL_RCC_HSI48_IsReady()); if (HAL_RNG_GenerateRandomNumber(&hrng, &a_srd_bd_addr[1]) != HAL_OK) { /* Random number generation error */ Error_Handler(); } if (HAL_RNG_GenerateRandomNumber(&hrng, &a_srd_bd_addr[0]) != HAL_OK) { /* Random number generation error */ Error_Handler(); } a_srd_bd_addr[1] |= 0xC000; /* The two upper bits shall be set to 1 */ /* Disable HSI48 oscillator */ LL_RCC_HSI48_Disable(); /* Disable RNG */ __HAL_RNG_DISABLE(&hrng); /* Release RNG semaphore */ LL_HSEM_ReleaseLoc
Hello Developers,In our current project, we are using STM32L496 mcu along with STM32WL chipset loaded with AT Slave example to communicate with LoRaWAN network. We are able to send/receive uplink and downlink from STM32L4 end device to LoRaWAN server using the STM32WL chipset. Now we are looking for the possible ways of performing FUOTA of master device STM32L4 using STM32WL as slave device. So can anyone please guide me what could be a good starting point do i need to modify changes in AT slave example of STM32WL as well ? Currently i am reffering to "STM32CubeExpansion_LRWAN_V2.1.0" repository for LoRaWAN FUOTA examples where STM32L476 is interfaced with SX1272 via SPI interface. I am ciurrently stuck as i can't undertsnad how to use the same code for communicating with STM32WL chipset i.e using AT slave. I am also reffering the following AWS IoT Core for LoRaWAN Workshop for performing the FUOTA https://catalog.us-east-1.prod.workshops.aws/
Hi,I would like to use the STM32WBA55 controller and forward the clock of the HSE to the MCO pin. The data sheet states that this is only possible for internal clocks:Clock-out capability:– MCO (microcontroller clock output): outputs one of the internal clocks for externaluse by the application. (only available in Run, Sleep and Stop mode)– LSCO (low-speed clock output): outputs LSI or LSE in all operating modes.According to the block diagram (see attachment), however, this should be possible.
Hello!The errata states this as a workaround for this errata:DescriptionWhen CPU1 switches the system clock frequency, the C2HPRE divider may need to be updated according toCPU2 frequency requirements. Changing the C2HPRE divider by CPU1 when CPU2 is running can cause awrong instruction fetch on CPU2, which may lead to a hard fault.WorkaroundTo avoid this situation, once CPU2 is started, the C2HPRE divider must not be updated by CPU1. CPU1 must callthe SHCI_C2_SetSystemClock system command to request CPU2 to manage the switch of the system clock. TheC2HPRE divider is then set in a specific procedure to avoid wrong instruction fetching by CPU2Does this apply if C2BOOT is cleared after the BLE stack had been running for some time and PWR_EXTSCR.C2DS is cleared? Normally C2BOOT is set once at startup, but if it was more dynamically managed and CPU2 isn't currently running via the following checks:PWR_CR4.C2BOOT is 0CPU2 cannot start autonomously with this set to 0, but will continue
We are working on a product on the STM32WB55 that is hard faulting when trying to modify AES2 peripheral registers while actively bonded to a Windows PC over BLE.What we discovered is that we can use AES2 to encrypt and decrypt just fine, but the moment I bond to a Windows PC and attempt the same encryption/descryption we bus fault, the bus fault is trying to write a 0 to the control register 0x58001800. My assumption is that when the CPU2 is bonded with the Windows PC it blocks access to the AES2 registers from CPU1 as a security measure. I cannot find confirmation of this in any of the reference documentations.I confirmed that when I remove the bond on the Windows PC then perform the encryption using AES2 it works, and when I bond with the Windows PC the AES bus faults trying to access the registers.Does the STM32WB55 CPU2 restrict AES2 peripheral access to CPU1 when the CPU2 establishes a bonded connection over BLE?
Dear community, We are currently developing custom firmware for an upcoming device based on STM32WB55. It's written from scratch, including a very simple cooperative scheduler. Recently, we rewrote our I2C driver. Ever since, we occasionally see one of our asserts failing. The bug sequence is as follows: Handler for I2C3_EV (i2c_handle_event) is called Checks that there is a non-NULL transaction associated with I2C3 (this is a global volatile variable) The handler finds NACKF set in the corresponding I2C_ISR Another function (i2c_handle_error) is called to deal with the NACK: Masks the corresponding I2C_ISR to obtain error flags Acknowledges the interrupts by setting the I2C_ICR register Stops current transaction and sets current transaction global variable to NULL If another transaction is pended, starts it Occasionally, the assert that current transaction is non-NULL fails. I am pretty sure that the code is semantically correct and I have ruled out the usual suspects. I have observ
Hello,I have a custom board, equiped with a Murata CMWX1ZZABZ, running a firmware based on the LoRa and SigFox libraries provided by ST. Several hundreds, if not thousand, units are currently depoyed. For the most part, everything is fine.See the attached schematic for reference. I recently discovered an issue regarding the external reset.From time to time, it may occur that we need to reset the device using the NRST pin. Again, this was already made on hundreds of units with no problem. However, I've had several cases.Here is the behaviour :The device ends up no longer sending LoRa/SigFox frame, for unknown reason. Also for unknown reasons, the watchdog doesn't seem to be triggered ... or it is, the device doesn't restarts properly.If i try to reset the device via the NRST pin, nothing occurs.It's also impossible to reprogram/debug the firmware via SWD.If I disconnect/reconnect the battery, the device restarts properly. Looking at the oscilloscope, the reset signal is clean
Hello!I have a question about doing flash operations without the BLE wireless stack firmware being present in STM32. As it seems from the examples, the flash operations requires to notify the CPU2. For example, when doing flash erase, the CPU2 will have to be notified first in order to continue with it. But since wireless stack is not present, a HardFault is encountered after notifying, because no wireless stack is present. The question is now, if it is possible to do flash operations without having to notify CPU2, and thus not needing to have the wireless stack present in STM32?If the answer is yes, then where could one find an example of doing so?
Hello,i want to start a Project based on Hands-on_WS_WBA55.ioc file, as descriped in STM32WBA5x Workshop - 4.But i only find on github the Hands-on_WS_WBA52.ioc file.Where can i download the file Hands-on_WS_WBA55.ioc?
Hi together,I have the STM32WB55CG on a custom PCB and plan to integrate it into a smart home Zigbee network, that uses a Tuya Gateway and is controlled by Smartlife app. I tried to use the project Zigbee_Find_Bind_OnOff_Router1 from the ST examples and hoped, it can connect to my network easily. About my Setup:Since my chip is another than the Zigbee Nucleo uses, I do not have access to the button pins, but at least I could solder the LEDs (red, blue, green) to the respective Pins.I am using Cube IDE V1.16.0 and Cube Programmer 2.17.0 to flash the wireless coprocessor.To connect my board, I am using the ST Link from an official Nucleo board as programmer.Scenario:After falshing the Example, I could not connect the board to my Tuya Zigbee network. My board shows a sequence with all LEDs (blue-blue/green-blue/green/red-green/red-red). From the docuementation I cannot understand what that means.Unfortunately, I do not have any Wireshark logs, but if you need a specific inf
Hello,I have combine mouse with keyboard HID_12 and keyboard with media HID_23,but not able to combine mouse with media and all 3 together! Any help with resolving the problem will be greatly appreciated!Here are my HID_12 and HID_23:HID_12 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */0x09, 0x02, /* USAGE (Mouse) */0xa1, 0x01, /* COLLECTION (Application) */0x85, MOUSE_REPORT_ID, /* Report ID (1) */0x09, 0x01, /* USAGE (Pointer) */0xa1, 0x00, /* COLLECTION (Physical) */0x05, 0x09, /* USAGE_PAGE (Button) */0x19, 0x01, /* USAGE_MINIMUM (Button 1) */0x29, 0x03, /* USAGE_MAXIMUM (Button 3) */0x15, 0x00, /* LOGICAL_MINIMUM (0) */0x25, 0x01, /* LOGICAL_MAXIMUM (1) */0x95, 0x03, /* REPORT_COUNT (3) */0x75, 0x01, /* REPORT_SIZE (1) */0x81, 0x02, /* INPUT (Data,Var,Abs) */0x95, 0x01, /* REPORT_COUNT (1) */0x75, 0x05, /* REPORT_SIZE (5) */0x81, 0x03, /* INPUT (Cnst,Var,Abs) */0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */0x09, 0x30, /* USAGE (X) */0x09, 0x31, /* USAGE
I have a very generic question ,What happens if in an example for a different board . I just remove the BSP and instead add a BSP for a different board.
Hello. I have very simple question: how create from blank (new project and next) in CubeIDE for SMT32WB55 (Nucleo) for BLE Mesh project (say, PRFNode analog from yours ready projects)? I don't found any description or algorithm for that not in AN5292, not in MOOCs. All examples - with ready projects. I know about ST BLE Mesh library. Maybe, there is method like: create BLE project with such configuration for BLE middleware (config in CubeIDE) and copy-paste list of files to needed directories for it?Yes, i don't want use "ready project BLE_MeshLightingPRFNode" for my idea, i want to create project from blank and add to it PRFNode functionality but with my configuration for GPIOs, USART, I2C and so on. But HOW for CubeIDE?
I've got custom hardware with an STM32WB5MMGH6 micro. I am using STM32CubeIDE Ver 1.16.0.I fetched the BLE_Sensor project to use as a code base for development. I edited the IOC and removed a lot of the peripherals that don't exist on my hardware. I loaded the BLE Stack (stm32wb5x_BLE_Stack_full_fw.bin) into the RF co-processor. I built and loaded the modified BLESensor App (which I 'renamed' to Cardinal). When I run the code, it ends up stuck in the USB_LP_IRQHandler. The NVIC says this interrupt is not enabled. I attached a screenshot of the IDE showing the Debug call stack, C file, and Disassembly windows. Is it a coincidence that the IRQ is 4 bytes before the Main function entry point? And what's with the <signal handler called>() at 0xffffffff9 seen in the call stack?Any ideas on why I'm getting stuck in the USB_LP_IRQHandler?
I am working on LoRa-E5 mini. When I try to erase the chip, I receive the error Error: Mass erase operation failed. Please verify flash protection. So I am trying to set RDP on level 0 to 1, but I am getting an Error: Expected value for Option Byte "RDP": 0xBB, found: 0xAA Error: Option Byte Programming failed or modified by application after OB_LAUNCH.Any help would be greatly appreciated.
Why this mouse report descriptor is working on nRF52 Nordic Semiconductor hardware and give driver error after BLE HID Bluetooth connection on STM32wb55?[Keyboard report descriptor from nRF52 is working OK]. Report Descriptor should be not dependent from hardware!// FROM nRF52 NORDIC - ble_hid_mouse_pca10040_s132 example:static uint8_t report_mouse[] = {0x05, 0x01, // Usage Page (Generic Desktop)0x09, 0x02, // Usage (Mouse)0xA1, 0x01, // Collection (Application)// Report ID 1: Mouse buttons + scroll/pan0x85, 0x01, // Report Id 10x09, 0x01, // Usage (Pointer)0xA1, 0x00, // Collection (Physical)0x95, 0x05, // Report Count (3)0x75, 0x01, // Report Size (1)0x05, 0x09, // Usage Page (Buttons)0x19, 0x01, // Usage Minimum (01)0x29, 0x05, // Usage Maximum (05)0x15, 0x00, // Logical Minimum (0)0x25, 0x01, // Logical Maximum (1)0x81, 0x02, // Input (Data, Variable, Absolute)0x95, 0x01, // Report Count (1)0x75, 0x03, // Report Size (3)0x81, 0x01, // Input (Constant) for padding0x75, 0x08, //
I want to use pyocd to write Firmware to M4 of STM32WB5MMG.I am trying to change the range of RDP=BB to RDP=AA and WRP before writing, but it is not working. Do I have to do something special?
Hi @STTwo-32 @KDJEM.1 I created a custom service with two services and successfully debugged the code... But the board isn't advertising. I am not able to see the advertised name in the ST BLE Toolbox app.i am attaching a screenshot of the Cubemx advertising tabCan you please help me with this 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.