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
(1) We use our own custom board with the STM32WB55RGV6, we want to test the radio.Question:Is the CPU2 CM0+ already programmed with the "stm32wb5x_BLE_Stack_fw.bin" from the factory?I have tried to download the "stm32wb5x_BLE_Stack_fw.bin" using ST-Link Utility and with assistance of a STM32WB Nucleo board, with address: 0x080CB000. The firmware download process was successful, no error message shown.(2) We have tested the board, by downloading a blink LED firmware to the CPU1 CM4F, it works well. (3) We also have tried to download the example "BLE_HeartRate" firmware, but the BLE is not detected by the ST BLE Sensor Mobile Application and by the ST BLE Profile App.firmware source: C:\STM32WB\Projects\NUCLEO-WB55.Nucleo\Applications\BLE\BLE_HeartRateQuestions:Is there any document or instruction on how to do further tests, especially the radio portion?What kind of tools needed?Should we use STM32CubeMonitor-RF app?Any comment, question back, or feedback would be greatly appreciated.Bes
I need receive data on UART and this uart should use an external clock (6.78MHz) and not system clock.It's should be possible todo it, but I can't find a solution, is there an example?I need set also a divisor on input clock for uart, is it possible?I trying with STM32CubeMX but without success.Thank you
From the ST BLE Toolbox app, I see the OTA Reboot Characteristic on my connected BT device. I type in 01 and the following code is executed:void P2PS_STM_App_Notification(P2PS_STM_App_Notification_evt_t *pNotification){/* USER CODE BEGIN P2PS_STM_App_Notification_1 *//* USER CODE END P2PS_STM_App_Notification_1 */ switch(pNotification->P2P_Evt_Opcode) {/* USER CODE BEGIN P2PS_STM_App_Notification_P2P_Evt_Opcode */#if(BLE_CFG_OTA_REBOOT_CHAR != 0) case P2PS_STM_BOOT_REQUEST_EVT: APP_DBG_MSG("-- P2P APPLICATION SERVER : BOOT REQUESTED\n"); APP_DBG_MSG(" \n\r"); *(uint32_t*)SRAM1_BASE = *(uint32_t*)pNotification->DataTransfered.pPayload; NVIC_SystemReset(); break;#endifWhen the reset occurs, the program at address 0x08007000 and not the OTA program at 0x08000000 is executed. According to the app note AN5247, the Reboot request characteristics is:Field 0 - Boot mode 0x00 for appl
..
Hello,I am looking to implement BLE MESH onto the WB10, however there are not any tutorials. I usually import the NUCLEO-WB15 onto the WB10 as they are similar bar a few config values but there aren't any WB15 MESH examples either, just the WB55. Has anyone got a BLE MESH example for the WB15 or WB10?
Hi team, I have been asked to work on STM32WLE5JC development kit. So, I have purchased one kit online. Meanwhile, I would like to know which IDE (for coding) is best to work with the kit as well as the other necessary hardware and software tool chain suitable for my purpose.Thanks.
Hello!I'm developing a project on chip STM32WB55. I have referenced the demo aboutBLE-HID of ST's "STM32Cube_FW_WB_V1.14.0" folder. Base on it, I configured my board become a hid keyboard Bluetooth LE. It worked well on laptop Windows and smartphone Android, Windows and Android can received data from MCU and print them on excel, text file or notepad,... However, on IOS, it can't work as I hope. My MCU still can connect with my Iphone, but my Iphone can't receive data from MCU and after connected I can't forget MCU device on Iphone. Clearly, Bluetooth feature on IOS has somethings difference from Bluetooth feature on Windows and Android. I tried many ways to fix this issue but I still can't find the true way. I hope I can get answers or help from everyone. I will so happy if this happen! Please help me!This is ST's demo project that I base on it to make my project:
HI,I'm currently struggling to add new characteristics and characteristic descriptors to my BLE profile. Unfortunately it seems that CubeMX does not support adding more than five characteristics and has no support for adding descriptors.This is the main code where I am trying implement a new descriptor (all in custom_stm.c file generated by CubeMX): And here is the return value I get (72) from the aci_gatt_add_char_desc(): Unfortunately I can't find any definition for what this value means. I found the following in a document online for another ST board (I am using an STM32WB5MM): Unfortunately none of these fit the bill. There is also no definition for this particular return value in "ble_defs.h", this is where the other BLE return values are defined.Apologies for the messy code, I have been trying everything I can to get rid of this error but haven't been able to figure anything out.Greatly appreciate any input on this issue. Thanks very much!
I am notifying large data, so I send them in packages. How can I store the incoming (notified) data in the memory of the STM32WB board to process it?
Hi Team,We are using the Flash Operations as part of Data saving in specific page. As part of that we are erasing the page and writing the new data. As Part of the Flash Erase operation, we are Entering into HardFault_Handler() function through the FLASH_FlushCaches() function. Original Flash Erase operation was success like FLASH_PageErase(), after that we are getting this issue in the function FLASH_FlushCaches().Could you please provide the insight on this one, why Flush operation is failing randomly, is there any changes or additional initializations are required for flash Erase before going to execute the Erase operation.Regards,Srinivas.V
I'm using the STM32WB55, with STM32CubeWB V1.14.1 & `stm32wb5x_BLE_Stack_full_fw.bin` V1.14.1.Looking in `app_debug.c`, I can configure `aGpioConfigList[]` and `aRfConfigList[]`, which allows for CPU2 to toggle a GPIO pin based on various events.I can successfully toggle a GPIO pin upon each connection event (END_OF_CONNECTION_EVENT), however because multiple packets can be transferred during a single connection event, I'd like to be able to toggle a pin upon each packet.Is this possible?In addition, could you provide some more information about what each of the 'aRfConfigList[]' & `aGpioConfigList[]` events relate to? (e.g. FSM0-4 etc.)(I'm using a logic analyser to determine the relative timing between a number of events throughout the firmware & hardware, therefore simply using a packet sniffer isn't that helpful).
Some strange behavior is happening when debugging our firmware through STM32CubeIDE, where it erases the option bytes upon flashing the firmware (0xFF @ 0x1FFF8000 onwards). The debugging session still launches ok and the firmware appears to be flashed correctly and working as intended.This is especially annoying as it triggers the flash option bytes protection where it secures the memory and I have to manually restore it using the FUS safe boot mechanism. Our firmware is designed to go to shutdown mode each time which triggers this, so I can't do any work on it right now.At first I thought it was a problem inside the firmware, but if I flash the ELF / srec artifact through the STM32CubeProgrammer directly, the problem goes away??This never used to happen - took a break over the new year and I've come back to this problem.Tried:Creating a dummy firmware with size larger than ours (thinking its a size problem) - dummy firmware works fine, no erasing of OBs.Dummy firmware is just a blink
Document AN5554 Rev4(LoRaWAN® firmware update over the air with STM32CubeW) mentions, on page 60, about file fuota_automation.py. I can not find this file in software package for STM32WL. Is this file accessible to download?
Hello, I use a Nucleo WB55 and I would like to receive temperature data from MAX31855. The protocol used is SPI. 1) ConnectionsFirstly I tested the MAX31855 with an Arduino and I managed to get data. I used the same MAX31855 and double-checked the wires between the Nucleo and the MAX and this seems good. I chose SPI1 (NSS = PA4 / SCK = PA5 / MISO = PA6). I think that these connections are right.2) SPI mode Regarding the MAX chronogram, I think that the right mode is 0.3) Configuration file IOC Data Size is limited to 16 bits but the MAX sends 32bits. Is it ok if I use twice HAL_SPI_Receive_DMA() ? (Full code is available at point 4)uint8_t pData1[2] = {0}; uint8_t pData2[2] = {0}; ... HAL_SPI_Receive_DMA(hspi, pData1, 2); HAL_SPI_Receive_DMA(hspi, pData2, 2);SCK Rise and Fall time is 200ns. so I made this operation to find the baud rate : Baud Rate = 1 bit / SCK Rise and Fall time = 1/(200 x 10^-9) = 5 x 10^-6 = 5Mbits/s In IOC file, the maximum baud rate (
I am using STM32CubeWL PingPong application. It is consuming 370uA in stop 2 mode. I need help to reduce it to 2uA(As specified in datasheet). I have initialized all unused GPIOs as analog inputs with no pull up. Still the module consumes 370uA in stop 2 mode. Any suggestions on how to reduce the current?
The previous developer developed a device based on STM32wb55. We were produced an anower such device and flashed with the same firmware and wireless stack version 1.14.0. The new device communicates with the our test software, but loses communication at random intervals, although the first board does not have this problem. The hardware part is checked and completely identical, the software too. Obviously the problem is in the stack version. Reading the stack version of the first board gives the following result - Stack Version - v16.12.0.27, FUS version v0.0.0.0. I think the embedded software work properly only with this particular stack version, but i don't now what Cube Packgage verion contains it. e?Where i am need to looking for? Or, may be here is anower problem, which i don't see?
In the datasheet of the STM32WB5MMG Module is writtenThe module antenna must be installed to meet the RF exposure compliance separation distance of “20 cm�? and any additional testing and authorization processes as required.in the sections FCC and ISED certification.In the application we are pursuing, the module is to be located on a custom pcb, which - surrounded by a plastic housing - is to be worn directly on the skin, like a wearable.This means that the minimum distance of 20cm to the body is not maintained.This raises the following questions:1. Is a new RF certification necessary to confirm compliance with the RF radiation exposure requirements directly on the skin?2. Why is the 20cm distance not mentioned in the CE certification section?2.1 Is the distance to the body irrelevant for the validity of the CE certification (EU)?And one additional question, in case someone knows:How much does certification by a testing laboratory (CE, FCC, ISED, ...) cost (approx.)?Thank you very much
I have some question related to the BLE stack code. Specifically regarding GAP operation.My device is the peripheral.On first connection to my device from peer :How long can a 'connection procedure' take. From when the stack is receiving a connection request from peer until creating a connection event for the M4 (GAP_GENERAL_CONNECTION_ESTABLISHMENT_PROC), is there a timeout, can it be calculated ? In case I initiate an ACI_GAP_SET_NON_CONNECTABLE command in the middle of a 'connection procedure', does connection fail? does the command return a specific error? do I get GAP_AUTO_CONNECTION_ESTABLISHMENT_PROC with a specific error code? which one?In case of switching to ACI_GAP_SET_NON_DISCOVERABLE , am I still connectable ? In case the periph is ACI_GAP_SET_LIMITED_DISCOVERABLE, and it gets connected , do I get an ACI_GAP_LIMITED_DISCOVERABLE_EVENT or only the connection event and in what order? In case i am ACI_GAP_SET_LIMITED_DISCOVERABLE, and I don't get connecte
What is the meaning of the time data in last 4 columns in table 3 ("Stop 2 versus Standby gain, function of Tx interval time") and 4 ("Stop 1 versus Stop 2 gain, function of Tx interval time") of AN5568? What is the meaning of different percentages (1%, 5%, 10%, 20%)?Thank you very much!
Hi everybody,I have to problem with LoRaWan EU868 certify in Ukraine, specifically as follows:I am using ABZ module as CMWX1ZZABZ-091 to develop product, and I set ABZ module such as:+ firmware based on source code en.i-cube lrwan v1.3.0+ used Lora modulation, EU868, BW 125kHz, ADR ON (SF12..SF7), class A, Tx UNCONFIRMED, OTAA, Tx power 14dBm+ send packet by trigger and cyclic 10 minutes after last tx done, payload 10 bytes+ set EU868_NUMB_CHANNELS_CF_LIST = 0 in file RegionEU868.h, so the module will only be used 3 EU868 default channels (868.1, 868.3 and 868.5MHz in SubBand G1)=> To make type approval certificates in Ukraine=> However, the test results appear frequency 890.375 Mhz, -37.86dBm as picture show (attached file)I don't know what's wrong, please help usThank so much
I'm trying to start up CPU2 on an STM32WB55. I've looked at various examples and I seem to be doing all the right things. SHCI_C2_BLE_Init returns 0xFF in payload[0] which corresponds to SHCI_FUS_CMD_NOT_SUPPORTEDI have FUS V1.2.0.0 installed and the Full BLE stack V1.15.03 installed, which I can start and run from the STM32CubeProgrammer.Advice on how to debug this would be welcome.
I am working on STM32WB15CC and working on bluetooth application (Custom Server). I am facing a problem whenever I call the functions from ble libraries like (ble_gap_aci, ble_hci_le)etc. e.g. I used the command to stop advertising or to disconnect using hci_disconnect(); the program get stuck in the stm32_seq.c and never come out of it.Can someone kindly tell me the reason and solution??
Greetings,Currently the project has a requirement for a Custom BLE server profile. I have a few doubts, for which I'm seeking clarifications.I flashed the 'stm32wb5x_BLE_Stack_full_fw' v1.14 at the specified memory location as per the release notes. The binary was successfully upgraded. When I perform the step debug, the 'WirelessInfo' returns the proper values. In the next step, most of the times 'p_sys_ready_event' returns FUS_FW_RUNNING instead of WIRELESS_FW_RUNNING. What is the cause for this? Even though the wireless stack is programmed why does the return value is not proper?When the return value of p_sys_ready_event is proper(WIRELSS_FW_RUNNING), the program moves forward. Program hits the 'APP_BLE_Init' function and the command packet is initialized. Then 'SHCI_C2_BLE_Init' is hit. This function is returns the status with the value 0x04(undefined in the documents) and the program gets stuck in Error handler(). Based on the comments provided before the error handler function, C
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.