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
Spoiler (Highlight to read)Hi,When using ZbZclWriteReq to write Zigbee attributes remotely, it works OK if I write one attribute at a time, but I am not able to write several at once. Shouldn't the following code work with two attributes? Is there any limitation in the implemented stack?memset(&writeReq, 0, sizeof(writeReq));writeReq.dst.mode = ZB_APSDE_ADDRMODE_SHORT;writeReq.dst.endpoint =SW1_ENDPOINT;writeReq.dst.nwkAddr = 0x0000; writeReq.count = 2U;writeReq.attr[0].attrId=MY_ZCL_DEV_TEMP_CURRENT ;writeReq.attr[0].type=ZCL_DATATYPE_SIGNED_16BIT; writeReq.attr[0].value= (const uint8_t*) val;writeReq.attr[0].length = 2; writeReq.attr[1].attrId=MY_ZCL_DEV_PRESS_CURRENT ;writeReq.attr[1].type=ZCL_DATATYPE_SIGNED_16BIT;writeReq.attr[1].value= (const uint8_t*) val2;writeReq.attr[1].length = 2; if(ZbZclWriteReq(zigbee_app_info.device_temp_client, &writeReq, APP_ZIGBEE_Write_cb,NULL) != ZCL_STATUS_SUCCESS){APP_DBG("Error, ZbZclReadReq failed (SW1_ENDPOINT)"
In X-CUBE-MATTER, how are the Basic Information Cluster attributes NodeLabel, ManufacturingDate, and UniqueId configured? Are they fixed values, or does the user need to implement their setting? Also, are these set using the ZAP Tool?Regarding UniqueId, I believe a truly unique value should be used. Is it implemented that way currently, or does this functionality need to be added?
The goal of my program is to: 1. Set low power time that runs off HSI for 10 seconds 2. Enter stop2 WFI 3. Wake up from low-power interrupt 4. Advertise for 5 seconds 5. Stop advertising 6. Repeat StepsDuring stop2 at the beginning of program my system is using ~ 74uA (which seems high but is reasonable), and when I wake up to start advertising and call aci_gap_set_discoverable(). This raises the current to ~3.4mA while advertising but when I call aci_gap_set_non_discoverable() it only lowers the current draw to ~3mA.I would expect the system to go back to the ~74uA it was drawing before advertising was turned on but it is not. I am able to connect to the chip over bluetooth successfully just want to know what needs to be done to get the power draw wher
I am trying to send GPS data using B-L072Z-LRWAN1. I use PingPong project and changed the PingPong_Process as follows.static void PingPong_Process(void) { Radio.Sleep(); memcpy(BufferTx, tempBuffer, sizeof(tempBuffer) - 1); Radio.Send(BufferTx, PAYLOAD_LEN); } "tempBuffer" contains a portion of the GPS data. When I receive data on another B-L072Z-LRWAN1 and view it in TeraTerm, it appears to be capturing GPS data. However, data reception stops after a few minutes. Sometimes it stops after one minute, while other times it continues for about 20 minutes. I can send text data using same B-L072Z-LRWAN1 without problem. However, errors occur when sending and receiving GPS data.Edited to apply source code formatting - please see How to insert source code for future reference.
Hello everyone! My problem is that if I flash the BLE_DataThroughput_Client and Server projects to the boards and follow the ReadME step by step to connect two boards, the boards are seemingly doing nothing. On the terminals I can see that after pushing the reset button, the programs are initialized correctly, but no matter how I'm pushing the joystick, nothing happens (no blue led, nothing on the terminal). I tried implementing the joystick in the project in a similar way that the BLE_Audio_PBP_Sink does but it did not work, and manually toggling GPIOC PIN 13 did not work either. It seems like to me that the buttons are not correctly implemented in the projects for this discovery kit. That being said, in the ST BLE Toolbox android app I can connect to the server board and measure upload speeds. Anyone else had this issue or am I doing something wrong? Thank you in advance!
Hello ST Community,I am testing the BLE_Audio_TMAP_Peripheral application from STM32Cube_FW_WBA_V1.6.1 on the STM32WBA55G-DK1 board. I noticed an issue that occurs consistently after a BLE audio call is terminated.After the call ends, the firmware falls into a loop. In debug mode, I see that the RADIO IRQ (RADIO_IRQHandler) is firing, and eventually execution reaches the function llhwc_sm_done_isr() after low-level radio interrupt handling. At this point, the code is polling the RADIO register (at 0x48020440) waiting for some acknowledge bit that never gets set.This behavior is reproducible not only when running from the IDE but also when flashing and running the provided BLE_Audio_TMAP_Peripheral_reference.bin binary. I observed this issue when testing with a Samsung Galaxy A55 smartphone.Could you please advise whether this is a known limitation, or if there is a workaround/fix available?Thank you!
Hello everyone,I'm very new to BLE in general. Here is the story, i'm aplplying this example STM32WBA Bluetooth® LE – Serial communication - stm32mcuI want to create a button EXTI to send a BLE message and i should see the message on my phone via ST BLE Toolbox app. As my button is Pull-up configured, i have declared the EXTI as shown in main.c: void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin == Button_2_Pin) { const char *message2 = "Button 2.\r\n"; static uint32_t last_btn2_interrupt_time = 0; uint32_t current_time = HAL_GetTick(); if (current_time - last_btn2_interrupt_time > 200) { // Button Debounce last_btn2_interrupt_time = current_time; tx_com((uint8_t *)message2, strlen(message2)); // USART debugging message SendBLEMessage(message2); // Actual BLE message } } }This is SendBLEMessage defined in coc_peripheral_app.c: void PeriphSendData( void ) { tBleStatus status = BLE_STATUS_INVALID_PARAMS; /*Data Packet to send to remote*/ status
Does the device enter Sleep Mode during OTA?Please explain separately for the download phase and the update phase.
Hello, I modified the SubGHz example from ST, and it's sending the message and goes to sleep, but when it wakes up it get's stuck on error handler.I'm getting stuck on where's the problem but I think it's an issue when it needs to configure the clocks.That's my consumpion graph that shows the transmission and sleep Here it wakes up but no transmission and when I debug it it's stuck on error handler.
Hello,I would like to use STM32WL5MOC module with AT Slave interface. In STM32WL package:* Which FW is recommended for STM32WL5MOC module: Single core(LoRaWAN_AT_Slave) or dual core(LoRaWAN_AT_Slave_DualCore)?* I couldn't find any examples for master/host MCU. Is there any example demonstrating how to configure the device using AT commands for any STM32 MCU as host? Thanks.
After flashing firmware to STM32WB5MMG, commands return error codes regardless of which firmware type is flashed:With HCI Layer firmware (stm32wb5x_BLE_HCILayer_fw.bin):HCI commands return 0x01 (Unknown HCI Command)With Full BLE Stack Extended firmware (stm32wb5x_BLE_Stack_full_extended_fw.bin): aci_gap_set_non_discoverable(); // Returns 0x0C (Command Disallowed) aci_gap_ext_start_scan(...); // Returns 0x01 (Unknown HCI Command) aci_gap_start_observation_proc(...); // Returns 0x01 (Unknown HCI Command)ConfigurationDevice: STM32WB5MMGFUS: 1.2.0Both firmware files flashed to 0x080CA000 and verifiedApp Config: Adjusted appropriately for each firmware typeResult: Both report "Wireless Firmware version 1.20.0 build 2"What WorksNon-connectable advertising (ADV_NONCONN_IND) works fine with both firmware typesBasic BLE stack initialization succeedsWhy do both firmware types fail to activate despite successful flashing?Is FUS 1.2.0 incompatible with
Hello everyone,I am working with the B-L072Z-LRWAN1 board using the I-CUBE-LRWAN stack. My goal is to reduce power consumption by putting the MCU into Sleep or Stop mode, but so far I haven’t been able to get it working. Even when I try calling the low-power functions, the board doesn’t seem to enter low-power mode.From what I’ve read, the LoRaWAN stack from ST already integrates low-power management through UTIL_LPM and the sequencer, but it’s not clear to me:Do I need to explicitly call low-power functions, or is this handled automatically by the stack?Is there any configuration I should enable/modify in the project files (e.g. lora_app.c, stm32_lpm.c) to make low-power work?What is the recommended way to confirm that the MCU is really entering Stop/Sleep mode and not just staying active?Any advice or example from someone who has successfully used low-power with this board and stack would be very helpful.Thanks in advance!
Hi all,i'm working on a project involving BLE and I wanted to use the P-NUCLEO-WB55 board as a BLE sniffer as described here: https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32_Sniffer_for_BLE_Setup_guide#HardwareI managed to find a P-NUCLEO-WB55 board used by a colleague for old projects and I was trying to follow the guide at previous link to set-up the board but I cannot download the BLE stack, nor update the FUS. I am using STM32CubeProgrammer 2.20.0, and by reading FUS infos I get the following reply:The option bytes are set as listed in the attached file.I tried also to follow the procedure shown in this video (How to program a STM32WB55 with STM32CubeProgrammer ) having the following result:Is it possible to restore the stack on this board? Kind regards,Andrea
Hi,I am using STM32WB55 device in my design and have to provide 3.3V from outside to BOOT0 pin BEFORE MCU is powered ON. In the datasheets and the manuals that I have been reviewing I didn't find any straightforward information what voltage level can be provided to this pin before device is powered-up.Please let me know if someone have encountered with this topic before.Thanks!
I have developed a custom board with the STM32WL5MOC and I am trying to download a dual core STM32 project to it. I now have two ELF files, one for CM4 and one for CM0+. I am doing by connecting the STLINK-V3SET debugger to 3V3, GND, SWDIO, SWCLK, and NRST pins on the STM32WL5MOC IC.Using CubeIDE, I have successfully downloaded the ELF file for CM4 and verified that it runs correctly (i.e. interacts with peripherals properly, outputs correct debug messages via UART).However, (still using CubeIDE), I have not been successful in downloading the ELF file to CM0+ irrespective of my run/debug configurations. I investigated why using CubeProgrammer instead and here are some observations I have made:I am able to connect to CM4 with no problem, which expected as I can already download to it.I am unable to connect to CM0+, except in the "hot plug" mode.Every time before downloading the ELF files, I manually perform a full chip erase, which is successful for both cores.In hot plug mode, when I t
Hello everyoneI have the BLE_TransparentMode firmware available on the ST website, but it's from the Nucleo-68 development kit. Unfortunately, it doesn't have the firmware for 48 pins, as that's the product I'm developing and I need to go through the certification process using the STM32Cube RF Monitor's Test Mode for Bluetooth connection testing. Does anyone have any tips on how to migrate it to the same project folder and change the .ioc file (Cube MX settings), which I didn't want to redo? Or do you know if there's BLE_TransparentMode firmware for 48 pins? I tried to figure out how to do it in CubeIDE but haven't been able to yet. Thanks.
Dears,I hope you are doing well!I am running the ST example LoRaWAN End Node FreeRTOS.After switching to class B, the MCU goes into hard fault in the following function call stack: LoRaMacClassBProcess() -> LoRaMacClassBProcessMulticastSlot() -> ComputePingOffset() in Line *pingOffset = ( uint16_t )( result % pingPeriod ); that's because the pingPeriod value is zero. What may be the reason for this?And I don't understand why the functions related to multicast processing is enabled by default in Class B before setting up any multicast configurations from the server to the node.Thank you for your support.Best Regards,Abd El-Rahman KadahStandard Firmware EngineerIoT TeamAZKA Technology Company
Hello ST Team,I’m Shashank Hoysala from Wolkus Technologies.We have two device variants, Fasal 5.0 and Fasal 6.0, which differ in hardware but both use the same STM IC (STM32WB5MMGH6TR). We attempted BLE RF testing following the procedure recommended by the ST team, including updating the Stack, FUS, and binary code.Test Case 1:BLE RF testing between a Fasal device (5.0 or 6.0) and the STM32WB5MMG Discovery Kit worked as expected. Communication was successfully established, and all required tests were completed without any issues.Result: PassTest Case 2:When performing the same testing between two identical Fasal devices (5.0 & 5.0 or 6.0 & 6.0) or between different Fasal devices (5.0 & 6.0), communication could not be established, and all tests failed.Result: FailFor your reference, I have attached a test setup photo and a video demonstrating Test Case 1.My key question is: How can we perform BLE RF testing between two Fasal devices without using the Discovery Kit?&nb
Hello,I'm chasing a problem where my project is having its configuration of SMPS mode switch back to LDO, and I was realizing that the settings are reset when USB is enabled. Digging into this, I came across this: /* Enable VDDUSB */ if(__HAL_RCC_PWR_IS_CLK_ENABLED()) { __HAL_RCC_PWR_CLK_ENABLE(); HAL_PWREx_EnableVddUSB(); HAL_PWREx_EnableUSBPWR(); __HAL_RCC_PWR_CLK_DISABLE(); } else { HAL_PWREx_EnableVddUSB(); }At a glance, the logic appears incorrect -- why would you enable PWR_CLK when you just checked and it was already enabled? I looked through the v1.7.0 SDK example projects, and saw that most other projects, the line is `if (__HAL_RCC_PWR_IS_CLK_ENABLED() != 1U)`. This only appears here:./Projects/NUCLEO-WBA65RI/Applications/USBX/Ux_Device_CDC_ACM/Core/Src/stm32wbaxx_hal_msp.c: if(__HAL_RCC_PWR_IS_CLK_ENABLED()) ./Projects/NUCLEO-WBA65RI/Applications/USBX/Ux_Device_CDC_ACM/Core/Src/stm32wbaxx_hal_msp.c: if(__HAL_RCC_PWR_IS_CLK_ENABLED()) ./Projects/NUCLEO-WBA65RI/Appl
I am experiencing an issue with OTA updates on the STM32WB5MMGH6TR when using an Android application. I would like your guidance and support in resolving it.1. Device / EnvironmentDevice: STM32WB5MMGH6TRAndroid app: Custom OTA implementation using BluetoothGattST BLE Sensor Android App versions tested:ST BLE Sensor 4.18.1 → OTA failsST BLE Sensor Classic 4.20.1 → OTA failsST BLE Sensor 5.2.10 → OTA works successfully2. Problem DescriptionOTA update fails consistently around 65% when updating to a different firmware version Updating with the same firmware version works fine.Android BLE log shows: - system/stack/gatt/gatt_cl.cc:245 gatt_act_write: gatt_act_write() failed op_code=0x52 rt=143 - system/bta/gatt/bta_gattc_act.cc:1132 bta_gattc_write: write status:0 - system/btif/src/btif_gatt_client.cc:211 btif_gattc_upstreams_evt: Event BTA_GATTC_CONGEST_EVT [24]Using ST BLE Sensor 5.2.10, OTA completes successfully regardless of firmwa
Hi I have a PCB board based off of NUCLEOWB55RG board. I am planning to power it externally (3.3V regulator and Lipo battery) but I also want to program it. How can I disable the onboard regulator to program it with USB? Or can I program it using the J-Link board instead? I ran a test by removing the JP1 jumper, the 3.3V output remains 0. However, the ST-LINK doesnt work when I program using CUBEIDE. How can I proceed with this?
Hello everyone,I'm currently working on a LoRaWAN End Node dual-core application using the NUCLEO-STM32WL55 board, and I'm facing unexpectedly high power consumption during transmission. I'm seeing very high current consumption — around 220 mA. I would like to reduce it, but I'm not sure what I'm missing.Any help or advice would be appreciated. Thanks!— Maroua
Hello,I am currently working on the STM32WB5MM and I need a debugger terminal to monitor some application functionalities.While testing, I noticed that in the HeartRate example, enabling the following macros allows me to print debug traces successfully:#define CFG_DEBUG_TRACE_UART hw_uart1#define CFG_DEBUGGER_SUPPORTED 1#define CFG_DEBUG_BLE_TRACE 1#define CFG_DEBUG_APP_TRACE 1#define CFG_DEBUG_TRACE_FULL 1 Additionally, including the header dbg_trace.h in the main.c makes the traces available and I can also display messages from main. ( at least to test if its working )However, when I create a new project and follow the official guidelines here:STM32WB BLE STM32CubeMX - Enable traces,I do not see any output on the terminal, regardless of the configuration.Could you please advise what additional configuration or source files (e.g., UART initialization, or missing debug modules) are required in a custom project to replicate the behavior of the HeartRate example?Thank you in advance
Hi, Does Cubeprogram CLI support OTP commands with STM32WL33? I have try below command get below information Error: OTP programming commands are not supported with STLINK interfaces for this device. Thank you Best Regards. Ethan Chen
I'm working on NUCLEO-WB55RG board, and I cannot access to my NUCLEO-WB55RG board.1. I first tried DFU Mode with the setting below, but my computer couldn't find it.2. after that, I connected my board through ST-LINK with the setting below and used STM32CubeProgrammer for connection, But No STM32 target found! error occured. I've tried all the reset settings and Mode settings but same error occurs.3. So I gave up on checking the inside of the board. And I started IDE. I downloaded some examples and I run it. And now I see the error :Failed to execute MI command:target remote localhost:61234Error message from debugger back end: localhost:61234: Connection timed out.4. So I tried to follow link below(https://community.st.com/t5/stm32-mcus/how-to-solve-debugger-connection-issues/ta-p/49693)but I cannot see debug option on changing the pinAnd I also cannot access to my board with CubeProgrammer,And I also cannot get any different result by changing Debugger settings to Under Reset.I'm
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.