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
I found this module B-UWB-MEK1 but seems like it cannot be purchased. Are there any chances that it will be released soon? Are there any alternatives for UWB position tracking? Or wireless position tracking in general?Thanks for help.
I am currently working on implementing Firmware Update Over-The-Air (FUOTA) using the NUCLEO-WL55JC1 board with the STM32CubeWL SDK, version 1.3.0. The LoRaWAN server being used is AWS IoT Core for LoRaWAN.Here is a summary of the issue I am facing:I have successfully created a multicast group and initiated a FUOTA task from the AWS IoT Core.The multicast session is established correctly, and the device performs the necessary handshaking steps without any errors.At the scheduled time, the end device (NUCLEO-WL55JC1) switches to Class C as expected.I observe that the device enters RX mode and shows RxDone status, indicating that it is listening for downlink data.However, no FUOTA fragments are received by the device, and hence the update does not proceed.On the AWS side, the fragments appear to be sent continuously.The message shown in the image is the last log received on the end device after switching to Class C.I have attached the FUOTA log from the end device.Any insights or suggest
I'm working on sensor data transfer via BLE to mobile app (like nrf connect). My STM32WB board gets connected with the app, but the data is not transmitted. When I give functions in the main while loop for transmitting, it stop the device advertisement at mobile app. How to transfer the data to mobile app? I need to send continuous sensor data to mobile app.I've also tested timer function as well. But still, it's impossible for me to transfer the data. I'm attaching the image of mobile app connection, there you can see that the value is 0. There, I need sensor data to be printed.Can anyone help me to resolve this issue? Thanks in advance!
Hi,I had an issue with UART communication in the SubGHz_Phy_PingPong middleware. The problem is that I can't receive any characters and the callback function never gets called to read the incoming bytes. Also, I figured it out from the ISR routine even the RXNE flag would set randomly. And if I use this function HAL_UART_RxCpltCallback(&huart2); it just keeps calling the callback function and the registered task associated with the callback function even if there are no incoming bytes from UART. Now wondering if there is any configuration in CuebMX or any function to call to receive characters properly and on time. I've checked other libraries for exmaple SigFox AT-Slave and implemented the same code, but didn't work. /* * app_radio.c * */ #include "app_radio.h" extern UART_HandleTypeDef huart2; static volatile uint8_t arr_comPortRxBuff[COM_PORT_BUFF_SIZE]; static volatile uint8_t arr_comPortTxBuff[COM_PORT_BUFF_SIZE]; static void _init_gpio( void ); /** * @bri
Software: STM32CubeIDE v1.18.0, STM32CubeMX v6.14.0, STM32CubeProgrammer v2.17.0Hardware: NUCLEO-WB09KE Hello,I am trying to observe Bluetooth functionality on a NUCLEO-WB09KE board. I have run the p2p_server example for the board unaltered, and it works perfectly. The device is discoverable using a Bluetooth scanner on my phone. However, when I try to copy the .ioc settings and BLE configuration to a custom project (no changes have been made to the .ioc file), it is no longer discoverable. Even when I copy and paste the .ioc file and create the new project from it, it still is not discoverable. I have debugged to verify that I am not ending up in an error handler, and I am not. APPE_Process is running. The only difference is that I am creating a new project and trying as opposed to copying the example from ST. I want to be able to observe BLE functionality in a custom project. Any help here would be appreciated!Matt H.
Hi everyone,I'm working on a BLE application based on the Heart Rate Sensor sample. I have two boards:STM32WB55 Nucleo boardSTM32WB5MM-DK (Discovery kit with WB5MM module)On the STM32WB55, everything works fine — after BLE connection, the current consumption stays below 1 mA, as expected.However, when I run the same application on the STM32WB5MM-DK, I observe a much higher power consumption — around 10 mA after the BLE is connected.Both builds use the same project settings, and I've made sure the low power modes are enabled properly in the application.Is there something specific to the STM32WB5MM module or Discovery board that could be causing this increased power usage?Things I already checked:Same BLE connection parametersSleep/low-power modes enabledNo extra peripherals manually activatedSame firmware version on both boardsAny ideas on what might be causing this difference or what else I should look into?
I made the PCB for stm32wb09kev6 myself and downloaded the p2p_server example program. I changed the LSE clock used in the example program to LSI and added an LED to indicate whether a Bluetooth connection is established. The Bluetooth can be scanned, but there is a problem with the Bluetooth connection part. The Bluetooth connection will be established briefly and then disconnected quickly (manifested as the LED turning off first and then on, and an error "an error occured during connection" will be reported in ST BLE ToolBox). The debug output is as follows:Success: aci_hal_set_tx_power_level commandSuccess: aci_gatt_srv_profile_init commandSuccess: aci_gap_init commandStatic Random Bluetooth Address: fd:c8:e7:c9:5c:bfSuccess: Gap_profile_set_dev_name - Device NameSuccess: Gap_profile_set_appearance - AppearanceSuccess: aci_gap_set_io_capability commandSuccess: aci_gap_set_security_requirements commandSuccess: aci_gap_configure_filter_accept_and_resolving_list command==>> End B
Hello, I am running SubGHz_Phy_AT_Slave on STM32WL55JC1 board and I see when running AT commands menu that there are TX and RX tests. I would like to use that example for peer to peer LoraWAN between two STM32WL55JC1 boards meaning one sends 100 bytes using Radio and t he second one receives it and acknowledges but I am not sure how to modify that example. I have seen that there are suggestions about modifying some examples for using only Radio.Send and Radio.Recv for having peer to peer but not sure how it applied to this SubGHz_Phy_AT_Slave example. In that example I see that the TX and RX tests use some random generated payload(with Prbs9_generator) Has anyone used peer to peer Lorawan between 2 o boards successfully with the ST examples? Thanks, Mihai
Hi There,I am developing an RF link application where I need to transmit 64 bytes of data at 20-50 Hz over a range of 5-10m with some obstacles in the way. For robustness, I was looking at sub GHz devices, such as the STM32WL55. I purchased some NUCLEO-WL55JC1 for testing, and have been testing the example applications provided in the STM32Cube_FW_WL_V1.3.1, such as STM32Cube_FW_WL_V1.3.1\Projects\NUCLEO-WL55JC\Applications\SubGHz_Phy\SubGHz_Phy_LrFhss. However, the radio sending is far too slow for my application. I removed the dependancy on the sequencer and call Radio.Send from my main loop (see below). It takes 1900ms for the TX to be done, see screenshot below. My question is can this chip even send 64 bytes at 20 Hz? Am I just using the wrong example code, or is this chip just designed for a different application than mine (much longer range, lower datarate) and I am wasting my time here? Thanks for taking the time to read this and I hope to hear from you soo
Hi all,Does STM32WL5MOC LoRaWAN Module dispatched with pre-build LoRaWAN alliance registered DevID? Or Do we need to purchase and program the ID in specific location of flash? Thanks,Deepak Naik
Hi,i am using STM32WBA55CG and i want:1. wake-up from STOP mode to receive bytes over USART2 Rx 2. Handle data with half-complete and complete callback3. Use the IDLE interrupt to detect the end of transmissionEach works perfectly on its own. However, when I try to combine both variants, the CPU hangs.Since I cannot expect a specific byte length (1 byte could also be transferred as 100kB), I would like to process the data via a 1kB ring buffer. I can use half complete and complete callback for this. To recognize the end of the data transfer, I want to use the IDLE interrupt.
I am developing a custom board based on the MB1720 HighBand HighPower reference design using the STM32WLE5CC microcontroller.I need clarification on the operation and connection of the FE_CTRL2 and FE_CTRL3 signals that control the RF front-end switch (U3 - BGS12SN6):What is the exact functional role of FE_CTRL2 and FE_CTRL3 in this configuration?1. From the schematic, FE_CTRL2 is connected to PC13, and FE_CTRL3 to PA11, both controlling the BGS12SN6 SPDT RF switch.2. How do these signals behave during transmit and receive? Which one is responsible for enabling TX and which one for RX?3. Additionally, I’ve exposed these FE_CTRL lines to a connector (CN2). Is this standard practice, or should these only be internally controlled by the MCU?
Hello,We have configured the PA2 and PA3 as USART2_TX and USART2_RX pins accordingly.also set the below mentioned images for your reference as configurations in the stm32cubeide code for usart2.but we are unable to see any output in the com port , we have tried all different permutations and combinationskindly help and support as soon as possible so that we can get USART2 working in the STM32WL5MOCH6 PCB.
Hi team, I am facing an issue while upgrading the LoRaWAN MAC version from 1.0.3 to 1.0.4. I have tried different methods to resolve it.1. First, I downloaded the LoRaWAN MAC version 1.3 from STM32CubeMX. Then, I created an end device for LoRaWAN version 1.0.3 in the TTN server. I connected my end device to the TTN server using the credentials I created for it, and it is working well. The data is being successfully sent from the end device to the TTN server.2. I enabled LoRa MAC version 1.0.4 in the source code that came with the download of LoRaWAN MAC version 1.0.3. Next, I created an end device for LoRaWAN version 1.0.4 on the TTN server. However, when I tried to connect my end device to the TTN server using the created credentials, it failed to connect. and shows DevNonce is too small error in TTN server.3. I downloaded the latest LoRaWAN MAC version 1.0.4 from STM32CubeMX, which was released in January 2025. I then ported all the changes from LoRaWAN MAC version 1.0.4 to the
We have tried Waking up the STM32WL IC using standby mode, sleep mode, stop mode using various different permutations and combinations - RTC , EXTI , without using RTC but it is not at all waking up from any of the modes mentioned above.Using Arduino IDE, we are using STM32WLx + RadioLib + RTC/LowPower/EEPROM combination , but we are unable to find any solution.Any help and support would be highly appreciated so that we can proceed further.
Hello,I'm having an issue with the SPI clock on the NUCLEO MB2032 board. As you can see in the image, I only have the debugger connected, and the clock signal isn't completely square.In the code, the only thing I'm running is the following:const uint8_t EEPROM_RDSR = 0b00000101;while(1){ HAL_SPI_Transmit(&hspi3, (uint8_t *)&EEPROM_RDSR, 1, 100);}What I'm measuring with the oscilloscope is pin SB14, which, according to the PCB file provided by ST, is directly connected to the SPI clock.
Hello,I bought P-NUCLEO-LRWAN3 which is STM32 Nucleo pack LoRa™ LF band sensor and gateway. It has NUCLEO-F746ZG and NUCLEO-L073RZ boards and both boards have expansion boards for LoRa communication. NUCLEO-F746ZG has LRWAN_GS_LF1, NUCLEO-L073RZ has LRWAN_NS1 as expansion boards. LRWAN_GS_LF1 and LRWAN_NS1 are both from RisingHF.When you develop software for LRWAN_NS1, you don't directly communicate with Semtech SX1278, you send AT commands to LRWAN_NS1 via UART and RisingHF handles rest of the job. So I can have my own firmware on NUCLEO-L073RZ to do both my tasks and LoRa communication. (My point is document of LRWAN_NS1 tells you how to control LRWAN_NS1 independently)On the other hand, NUCLEO-F746ZG and LRWAN_GS_LF1 communicates via SPI. I found a document about LRWAN_GS_LF1, it shows how to use initial firmware (firmware which is on device when you first bought) of NUCLEO-F746ZG. You are sending AT commands via com port to initial firmware, it translates your AT command and
I have tried to run the "UX Device HID Standalone" example under nucleo-wba65ri, and it doesn't seem to work.I connected the board's via the USB connector to my PC and while it is recognized, in function USBX_DEVICE_HID_MOUSE_Task on line 160 both:1. hid_mouse == UX_NULL2. device->ux_slave_device_state == UX_DEVICE_ATTACHED and not UX_DEVICE_CONFIGURED as needed would appreciate your support, might be imply a setup issue (I simply used a new nucleo boar and compiled and flashed the example)
Hi STM Community,I'm developing a custom LoRa-based board using the STM32WL55CC MCU, migrated from the STM32WL55JC, and referencing the MB138 STM32WL Nucleo-64 board as a design guide.I've attached a portion of my schematic (generated in KiCad), and I would appreciate if the community could help review the following:Schematic and power supply arrangementPin configuration and peripheral mappingRadio signal path integrityCompatibility or functional issues that may arise due to migrating from STM32WL55JC to STM32WL55CCGeneral layout or connection concerns for RF and MCU sectionsS
Hello STM32 Community,I'm working on a custom board based on the MB1389 (Nucleo-WL55JC) reference design, which uses the STM32WL55JC17 (UFBGA) package. Now, I am migrating to the STM32WL55CC in the UFQFPN package for cost and space reasons.While adapting the schematic, I noticed the following pins from the original design are not available in the UFQFPN package:PC3PC4PC5PB14PB1VSSRFVREF+I understand that the pin count is reduced in the UFQFPN package, but I need guidance on the following:Are there any internal remapping or alternative GPIOs for the above functions in the STM32WL55CC UFQFPN package?How should I handle VSSRF and VREF+, since they are critical for RF and analog operations? Can they be connected internally, or do they need external routing?Any advice or reference designs (for UFQFPN-based layouts) that clarify how to proceed with features that originally used those missing pins?For reference, I am attaching a snippet of my schematic based on MB1389, where these pins are cu
Hi,I have to use the transceiver for pure RF communications and implement my own protocole.After checking several boards, I've be recommended the P-NUCLEO-WB55 but from all the doc and example I find, the transceiver is used for BlueTooth communications, which I don't need at all.Is it possible to use its transceiver RF without BLE, Zigbee, etc... as a simple 2.4Ghz range transmitter and receiver?If not, which MCU should I get, that includes a dev board offering AD, DA and pure RF ?Thanks for any light. Steve
Hi, I have attached a X-NUCLEO-WB05KN1 on top of a NUCLEO-H743ZI2 board and are trying to verify whether it works by flashing the peripheral_hr sample with the shield argument "x_nucleo_wb05kn1_spi". Sadly it does not work (it is stuck in bt_spi_open when trying to receive SPI header from shield) The shield is flashed such that it uses SPI instead of UART. I have done the same experiment, placing the shield on top of Nordic Semiconductors' nRF52840 MCU and here it works with the peripheral_hr sample with shield argument. I have also tried the experiment on a NUCLEO-F401RE and here it also fails. Any ideas what could be wrong?
Hi everyone,I'm facing a frustrating issue and would really appreciate any help or insight you could provide.I’m trying to get the STM32WB55CGU6 into STOP2 mode, but I consistently see current consumption over 600 µA, both on my custom PCB and on the WeActStudio.STM32WB55CoreBoard. I’ve been stuck here for days and can’t make progress with my project because of this.Here’s what I’ve done so far:Thoroughly studied AN5071 and AN5289.Read several community posts and blogs from users with similar problems.Ported the official examples PWR_STOP2_RTC and PWR_EnterStopMode to my MCU.Verified that the project builds correctly and behaves as expected, except for the power consumption.Despite following all the steps I could find, the current remains way too high. I would expect it to be in the range of a few microamps.Here’s a screenshot from my PPK2 measurements: (I would expect that when LED is off, the STOP2 mode would be much more evident in terms of consumption)To be extra sure, I follo
Hi there,I'm developing a custom application for FUOTA (Firmware Update Over The Air), targeting an STM32WB55-Nucleo devboard. I’m referencing AN5247 and AN5289 and using the BLE_OTA example from STM (open source code in new page). My user application is located at 0x0800 7000.Description of the IssueWhen I perform the update using ST BLE ToolBox-1.4.2 or ST BLE Sensor Classic, the update is performed OK:The system reboots into the user application, and the firmware runs as expected.I can successfully trigger a reboot into the OTA application from the user app.However, when I use my custom update application (a business requirement), the OTA does not send the Indicate message nor perform the reset:It does not perform a reboot and stays in the OTA mode.If I perform a system reset while in OTA mode, the contents of the user application are removed (the Flash beyond 0x0800 7000 is erased).(Please see the diagram below for the step where I'm stuck):I get to this stepWhat I am DoingI write
When defining a LoRa application bandwidth, the function caller may write the following:#define LORA_BANDWIDTH 0 // 125 kHz /* [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] ???*/Which we then subsequently fill into the tx configuration here:Radio.SetTxConfig(MODEM_LORA, // modem configuration LORA_TX_OUTPUT_POWER, // output power in dBm 0, // fdev (not used for LoRa) LORA_BANDWIDTH, // bandwidth index (0 -> 125 kHz) LORA_SPREADING_FACTOR, // spreading factor (SF7) LORA_CODINGRATE, // coding rate (4/5) LORA_PREAMBLE_LENGTH, // preamble length in symbols LORA_FIX_LENGTH_PAYLOAD, // fixed length payload (true / false) LORA_USE_CRC, // crcOn (true / false) 0, // freqHopOn (true / false) 0, // HopPeriod (not used for LoRa) false, // IQ inversion (true / false) LORA_TX_TIMEOUT_VALUE // timeout value (ms) );The application LORA tx and rx configurations are defined by referencing an index in a global constant in "radio.c:"const RadioLoRaBandwidths_t Bandwidths[] = { LORA_B
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.