Ask questions and discuss STM32 wireless solutions and their implementation for running Bluetooth LE, Zigbee, LoRaWAN applications.
Most recent activity
Please go and visit our wiki pages where you can find a lot of information on our wireless product families (WB, WBA, WL) and the supported protocols: BLE, Zigbee, Thread, Matter, Lora, ... To begin your technical journey, please start from this top page: https://wiki.st.com/stm32mcu/wiki/Category:Connectivity This top page will guide you to the first steps to develop a wireless application using connectivity protocols on ST wireless microcontrollers. For BLE protocol, please visit: https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_BLE_with_STM32https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Bluetooth_LE_Audio You can find information on BLE Certification, BLE Features, BLE Mesh, BLE Audio, … For Zigbee protocol, please visit: https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Zigbee You can find information on Zigbee certification, Zigbee Features, BLE-Zigbee concurrent mode, … For Tread protocol, please visit: https://wiki
Dear all, The X-CUBE-MATTER Expansion Package is now available on our official website following this link MATTER - Matter software expansion for STM32Cube - STMicroelectronics It is a reference implementation for the demonstration of Matter on STM32. It is ready for prototyping a Matter end-device on a reference development platform. Refer to STMicroelectronics Matter wiki articles at https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Matter to get started with matter for the supported STM32 platforms. Kind regards, Ouadi
Hello,I want to implement HOGP (BLE HID) on an STM32WBA23KE so that it can connect to Windows 11.I implemented it using the BLE_HID_Mouse sample for STM32WBA55G-DK1 as a reference, but Windows 11 does not recognize it as an HID device (it seems to be failing in some procedure after the Bluetooth connection). I checked the GATT service configuration by connecting with a smartphone app, and there seem to be no particular problems (although I cannot read the Report Map or HID Information due to BLUETOOTH_PRIVILEGED).With the STM32WBA55G-DK1, I have confirmed that it can connect to Windows 11 as an HID device and behaves like a mouse.I have attached the main source files and .ioc file of the STM32WBA23KE project.Are there any possible causes?Best regards, Gotoda
Hello, I am trying to interface Audio codec with stm32wba65 (using reference: GitHub - stm32-hotspot/STM32WBA-Advanced-BLE-Broadcast-Speaker: The BLE Speaker is a prototype for a portable Bluetooth® Low Energy speaker supporting broadcast sink, scan delegator role and optionally unicast server role · GitHub ) , there is an additional MCU between STM32WB55 and Audio codec but i am thinking to use the audio codec directly over SAI1. as SAI1 has 2 blocks SAIA and SAI B. Is it possible to interface audio codec via one block (SAI A) and any other MIC (I2S or PDM) another block (SAIB) ? can someone please tell if it is possible .If yes can plz provide ioc settings.? what things to be take into care?Regards,D
Hellow everyone, i am facing this issue that when connect my nulceo-WL55JC1 with perfectly working cable to my PC it rapidly connects and disconnects again and again i tried to update its driver and mass erase but it connect and disconnects so fast i am not able to do it and i read its quick guide and all the jumpers are in its place once is tried to upload the code to it and in between it got connect the again disconnect some behavior every time. This is the log when is was able to upload the code on it :STMicroelectronics ST-LINK GDB server. Version 5.7.0Copyright (c) 2020, STMicroelectronics. All rights reserved.Starting server with the following options: Persistent Mode : Disabled Logging Level : 1 Listen Port Number : 61234 Status Refresh Delay : 15s Verbose Mode : Disabled SWD Debug : Enabled InitWhile : EnabledWaiting for debugger connection...
Hi,I'm working on a product based on the STM32WB5MMG module, running the BLE + Thread dynamic concurrent CPU2 binary (stm32wb5x_BLE_Thread_dynamic_fw.bin v1.24.0, FUS 2.2.0). Our boards are Thread routers.The 802.15.4 link margin is too low for us. Two boards 1 m apart see each other around -85 / -88 dBm, so I'd like to raise the Thread TX power. BLE is set to +6 dBm with aci_hal_set_tx_power_level(1, 0x1F) and works fine. For Thread we never set anything, so it runs at the stack default. The SMPS is not enabled in our code, so the chip is powered in bypass at 3.3 V.I tried otPlatRadioSetTransmitPower(NULL, x):called at Thread start on both boards with 6, -6, -20 and 0x1F: the boards don't attach to each other anymore. Remove the call, reflash, and everything works again. 6 on one board only, at the end of our Thread init (before BLE advertising starts): the board attaches and goes up to router, and it receives the multicast CoAP messages from the other board. But the other board never
Dear ST Community,I am on the STM32WL55CCUX and am facing an issue with both the SubGHz radio initialization and the external 32 MHz TCXO/HSE32 clock.I have a working STM32WL55JC1 board for comparison. The same/general SubGHz software flow works correctly on the JC1, whereas the custom CCUX board exhibits the following two problems:The SubGHz radio remains permanently/continuously in the RF BUSY state. The external 32 MHz, 3.3 V TCXO is not being powered through PB0/VDDTCXO, and HSERDY does not become active.I would like ST's assistance in determining whether these two symptoms are related to the RF power/reset/TCXO sequencing, a CCUX-specific requirement, or a hardware/configuration issue. This is the current analysis so far JC1 CCUXPB0/TCXO supply Active 0 VHSERDY 1 0ErrorCode 0 0x02RFBUSYS after init 0 1STDBY_RC PASS F
I am trying to get to the lowest possible power consumption on a WB55 NUCLEO board while the BLE is advertising every three seconds and waking up on the RTC every second. I have the NUCLEO booting up on the HSE clock, and the stm32_lpm_if.c code switches from HSE to HSI and back as it enters and exits STOP2. Re-enabling HSE takes about 24 ms and consumes significant current, giving me an average of about 62 uA in this mode. I’ve found that if don’t enable the HSE, but stay on the HSI the current drops to about 10.5 uA. The BLE radio functions normally, and I can connect and disconnect and return to the 10.5 uA advertising mode. Is CPU2 somehow choosing the LSE clock to run on when it exits STOP2 and the HSE is not available? What is going on? The documentation is adamant about needing 32MHz for the system clock when running the radio.
Hello, I'm developing software for the STM32WBA2. Bonding is a required feature of this project, so I've set the bonding-related parameters as follows: CFG_BONDING_MODE: Bonding mode (0x01)CFG_ENCRYPTION_KEY_SIZE_MAX: 16CFG_ENCRYPTION_KEY_SIZE_MIN: 8CFG_IO_CAPABILITY: Display Yes No (0x01)CFG_MITM_PROTECTION: MITM protection required (0x01)CFG_SC_SUPPORT: Secure Connections Pairing supported but optional (0x01)CFG_KEYPRESS_NOTIFICATION_SUPPORT: Keypress notification not supported (0x00) I've also attached app_conf.h and ble_conf.h.However, when I connect using ST BLE Toolbox and press the Bond button, the Bluetooth connection is lost.What could be the cause?Is it possible to view communication logs using ST BLE Toolbox? Best regards, Gotoda
Hi all,I'm designing a LoRa node with STM32WL55JCU6 (UFBGA73), using RFO_LP only (+14 dBm, high band 868 MHz). My starting point is the MB1842 reference design, which uses a BGS12SN6 RF switch between the TX and RX paths.For UFQFPN48, ST provides direct-tie reference designs without a switch (MB1789). For UFBGA73, both MB1842 and MB1849 use an RF switch, and I couldn't find a direct-tie BGA73 reference.Questions:1. Is direct-tie recommended on UFBGA73 in LP mode?2. Has anyone implemented it on BGA73? If so, what matching network did you use, and how did TX power and RX sensitivity compare to the switched design?3. Are the TX/RX impedances for UFBGA73 available to design a direct-tie network per AN5457?Thanks!
void HAL_MRSubG_IRQ_Callback(void) { uint32_t irq = __HAL_MRSUBG_GET_RFSEQ_IRQ_STATUS(); if (irq & MR_SUBG_GLOB_STATUS_RFSEQ_IRQ_STATUS_RX_OK_F) { last_rx = HAL_GetTick(); HAL_GPIO_WritePin(LD1_GPIO_Port, LD1_Pin, GPIO_PIN_SET); if (HAL_MRSubG_GetBytesOfTransaction() <= ring_buffer_u8_free(&radio_ring_buffer) && radio_packet_fifo_free(&radio_packet_fifo) != 0) { for (uint8_t i = 0; i < HAL_MRSubG_GetBytesOfTransaction(); i++) { ring_buffer_u8_write(&radio_ring_buffer, radio_rx_buf[i]); } radio_packet_t radio_packet = { .len = HAL_MRSubG_GetBytesOfTransaction(), }; radio_packet_fifo_write(&radio_packet_fifo, radio_packet); } __HAL_MRSUBG_STROBE_CMD(CMD_RX); __HAL_MRSUBG_CLEAR_RFSEQ_IRQ_FLAG( MR_SUBG_GLOB_STATUS_RFSEQ_IRQ_STATUS_RX_OK_F); } if (irq & MR_SUBG_GLOB_STATUS_RFSEQ_IRQ_STATUS_RX_TIMEOUT_F) { __HAL_MRSUBG_STROBE_CMD(CMD_RX); __HAL_MRSUBG_CLEAR_RFSEQ_IRQ_FLAG( MR_SUBG_GLOB_STATUS_RFSEQ_IRQ_STATUS_RX_TIMEOUT_F); } if
Hello,I have a custom board with a 4.2V battery followed by a linear voltage regulator at 3.0V powering a STM32WL33.When battery is inserted sometimes the power up is not clean and the cpu freezes, no code is executed. (the code is just pulling down a GPIO, no other initialization)BOOT pin A10 has a 560 Ohm pull down.Pulling down NRST later doesn’t have any effect. Freeze happens when the VDDIO goes down to 500mV and then rise up again.As you can see in the following images in clean startup the core VCAP voltage rise up from 0 to 1.2V very fast, while in bad case the VCAP voltage follows the VDDIO ramp from 0.5V to 1.2V and the core freeze.BOR is not working!!! NRST is not pulled down.Schematic is as suggested.Any workaround?Thanks!Fabio Good power-up:Green: VDDIO; Yellow: SMPS output on VFBSD; Cyan: VCAP; Purple: NRST Bad power-up:Schematic:
Hello,I would like to report a documentation issue in RM0511 Rev6, section 15.9 (LCSC register map, Table 38).The introductory text states:> "The green cells indicate the register is in the VDD12o power domain. This implies those registers are not reset on Deepstop exit."However, in Rev6 the color highlighting is missing from the table — it is not possible to identify which LCSC registers are in the VDD12o power domain. This information is critical for correct Deepstop/low-power mode implementation, as registers in the VDD12o domain retain their values across Deepstop while others do not. **References:**- RM0511 Rev6, section 15.9, Table 38- RM0511 Rev5, section 15.9, Table 39Thank you.
Hi, could you please check the colored cell highlighting in RM0511 Rev 6 register map tables?For example, page 304 states "The green cells indicates the register is in the VDD12o power domain" but no green cells are visible.This affects at least Table 38 (LCSC register map, p. 304).RM0511 Rev 5 displays the colors correctly on the equivalent pages.Thanks
at stm32wl33 datasheet there is RX sensitivity topic but i think wrong– RX sensitivity @ 1% BER:◦ -132 dBm @300 bit/s 433 MHz OOK◦ -128 dBm @300 bit/s 868 MHz 2(G)FSK◦ -112 dBm @38.4 bit/s 868 MHz 2(G)FSKit should be kbit/s .
I trying to follow the UFQFPN48 reference design for a STM32WB55CGUx in KiCAD.The ref design has some pinouts that don’t exist in the associated KiCAD symbol for the chip.The ref design, The KiCAD symbol with as much as I have wired up so far, So the branch in the orange box for example, in the refence design this should have a branch just above C13 going to VFBSMPS yet in the KiCAD symbol this is missing. also there is no RF0.
I have an STM32WB05 board (approx 30mm x 30mm) with the following major components :STM32WB05KZV6TR, LTC4095EDC, LTC3531ES6-3.3, LSM6DSV80XTRI have followed the reference design for running on SMPS.When running directly from VDD (3.3V) it works great. Advertising, connecting reliably.When running through the BuckBoost it does not advertise (with either a LiPo feeding or a bench PSU at 4V or via the USB charging circuit) . No errors, no obvious issues.. just cant see or connect to it over BLE. I checked that TX_SEQUENCE was active and it is. Registers look the same for both modes. VDD does have some noise but it is within spec for the LTC3531 in burst mode. I purchased a TinySA Ultra+ and have taken traces. I can see the advertising (attached)Really need to help to diagnose.. is it a lost cause having the BuckBoost on a board this small?Let me know how to configure the TinySA also for more detailed traces as i am struggling (so is Claude!)
I tried to program my STM32WB09ke chip with my ST-LINK V3 MINIE. When pressing the Connect button on stm32cubeprogrammer, I got the DEV_TARGET_CMD_ERR. It says: unable to get core ID. When debugging with my J-Link, everything works completely fine. I can program, debug, ...When connecting my ST-Link to one of my other projects with other ST MCU but with exactly the same debug connector, It completely works fine. Here are my schematics: Does someone knows what the problem could be or am I missing something?I checked the SWDIO and SWCLK signals with my scope and everything looks fine.
Hello, I am working with X-NUCLEO-WB05KN1 together with NUCLEO-U083RC. I had previously tested U0 consumption in Stop mode and I got around 1.5uA (using 3.3V supply and LSI). From the datasheet it says that STM32WB05KZ should be an ultra low-power MCU, however I am using the Beacon app from the X-CUBE-WB05N software package and I am getting measurements of around 37mA. Is this related with the SPI firmware (DTM binary) flashed into the shield to run the example? I would like to achieve a consumption on the uA scale, do I need to make my own firmware to the chip? If so, is there any example and how to communicate with my U0?I am supplying 3.3V into the CN6 pin 4 and measuring with a multimeter so the ST-LINK is now being powered.BR
What is repopulating the security database on the stm32wb55 when it reboots and how do I stop it. I’m calling aci_gap_clear_security_db() and verifying that the bond list is empty with aci_gap_get_bonded_devices(). When the device reboots, the bond entry that was deleted is back when aci_gap_get_bonded_devices() is called. What’s going on?
Hello Team,We have manufactured 500 boards using STM32WBA52CGU6. During testing, we tested 50 boards, out of which 5 boards are not advertising BLE, while the remaining 45 boards are working normally.We have attached the schematic and PCB layout screenshots for your reference.Our PCB is a 2-layer board, and we have not followed a controlled 50 Ω impedance for the RF trace. Could this be contributing to the BLE advertising issue on these 5 boards?Could you please review the attached schematic and layout and help us debug this issue? We would also appreciate your guidance on the key parameters or measurements we should checkon the failed boards compared with the working boards.
Hi ST Community,I am designing a custom board with STM32WLE5CCU6 (UFQFPN48 package) for a LoRa application in the 470–510 MHz band.I will use RFO_LP only, with +14 dBm output power and VDD_MCU = 3.3 V.Could you please provide the ZOPT (optimal impedance) for the PA output matching network at 475 MHz for this configuration?AN5457 Appendix A only covers 868/900/915/923 MHz, so I cannot find the data for 475 MHz. If there is any reference design or application note for this frequency, please point me to it.Thank you very much.
Hi all,I'd appreciate some help with a BLE range and stability issue. SetupMCU: STM32WB5MMG module on a custom board Firmware package: STM32Cube FW_WB V1.23.0 BLE wireless stack: v1.16.0, full stack TX power: +1 dBm Connection interval: 10 ms min / 15 ms max. Peripheral latency is 0 and the supervision timeout is 6 s. ATT MTU: 180 Role: peripheral only. The central is a Windows 10/11 PC. PHY: Windows defaults to 2M PHYApplicationThe peripheral sends data to the Windows central over GATT notifications at about 5400 bytes/s (~30 packets/s). ProblemAt short range, the data notifications work correctly. As the distance grows to about 30–40 ft, data notifications start to struggle. At that distance, if the Windows central reads or writes any characteristic, the device goes into an unknown state. For a few seconds it continuously sends unexpected data: the values 0x0839 and 0x08FD repeat every 64 bytes.Often the device recovers within a few seconds and then completes the read/write. Sometime
From the documentation it sounds like the STM32WB vectors to the reset hander when it exits STANDBY and lower power modes, correct?
I built up an application using STM32CubeMX and FreeRTOS but left BLE disabled. Now, I want to add that connectivity.I went back into CubeMX and turned on BLE with the HeartRate application. The only thing I changed were ASYNC_PRESALER and SYNC_PRESCALER so that the RTC time keeping would be correct.Now, whenever I allow appe_TI_Init() to execute, I get an IPCC_C1_RX_IT interrupt (VECTACTIVE = 0x3C) as soon as osKernelStart() is called. If I comment out the call to appe_TI_Init(), the rest of the code operates as before. Yes, I know that BLE is not running.What have I missed that causes the interrupt when it is not handled?Thanks
ST Community highlights – April to June 2026
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.