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 everyone,I am working on LoRa point-to-point communication using the STM32WLE5CCU6 and trying to run the PingPong example. However, I haven't been successful so far.I would appreciate any guidance on whether I need to modify any pin configurations or make changes to the PingPong example before uploading it to the MCU. Additionally, I am using this IC in the RAK3172 module. Has anyone here developed their own circuit for it?Any help or suggestions would be greatly appreciated!Thank you.
Hi, I'm trying to get a bare metal implementation of SPI working on a STM32WB55 Nucleo board.The transmit appears to work but I cant get the receive function to work. I'm using a loop back by connecting MOSI & MISO with a jumper.When in debug I can see my Tx buffer getting loaded with the appropriate value but it never appears in the Rx buffer. When I step through the Tx code runs through as expected, in the Rx code though it looks like the SPI_FLAG_RXNE never gets set i.e. nothing ever arrives.Ultimately I'm trying to connect with 2 x ADXL362s over the SPI bus.I have attached a zip of the CubeIDE.Any help with debugging this or pointers to how I go about that would be most appreciated. I'm getting code blindness trying to find the problem.
HI,I am using the STM32WBA55G-DK1 board to develop my ble audio project referred to BLE_Audio_TMAP_Periopheral project.But when my tablet pc connected to the board successfully, and started play the music. The ble audio stack posted CAP_UNICAST_SERVER_ASE_STATE_EVT. The state of CAP_UNICAST_SERVER_ASE_STATE_EVT were ASE_STATE_CODEC_CONFIGURED、ASE_STATE_RELEASING、ASE_STATE_IDLE。As a comparison, the change rule of BLE_Audio_TMAP_Periopheral CAP-UNICAST_SRVER-ASE_STATEVT state is as follows: ASE_STATE_CODEC_CONFIGURED->ASE_STATE_QOS_CONFIGURED->ASE_STATE_ENABLING.I don't know what factors led to this difference。 Best Regard
I am controlling BLE server using stm32wba54cgu6 chip and CubeIDE 1.18.0.1. In order to use extended advertising function, what part should I set in CubeMx?2. I think that adv_ext_app.c / adv_ext_app.h file should be created to use extended advertising. What setting should I make in CubeMx so that adv_ext_app.c / adv_ext_app.h are created? I am a complete beginner. Please help me.
Hi,I’m currently working with the NUCLEO-F746ZG board. Could someone please guide me on where to find the corresponding gateway firmware binary (e.g., st-nucleo-lora-gw-at-fw-v2.0.2.bin) and the setup procedure for getting the gateway up and running?I am planning to use the loriot.io, please help to find the bin file of that server setup.Any help or documentation would be greatly appreciated.Thank you
Hi,I'm working with STM32WB (with BLE) and trying to write to Flash in a custom section (contains version info, flags, etc.). The target flash memory initially contains 0xFFFFFFFFFFFFFFFF (confirmed in debugger), and I’m trying to write a uint64_t value like 0x0000000000000000. I'm using a function FD_WriteData(...), which internally calls HAL_FLASH_Program(...) via FD_WriteSingleData(...).Here is the FD_WriteData() function:uint32_t FD_WriteData(uint32_t DestAddress, uint64_t * pSrcBuffer, uint32_t NbrOfData) { uint32_t loop_flash; uint32_t return_value; SingleFlashOperationStatus_t single_flash_operation_status = SINGLE_FLASH_OPERATION_DONE; // Take semaphore (dual-core STM32WB) while (LL_HSEM_1StepLock(HSEM, CFG_HW_FLASH_SEMID)); HAL_FLASH_Unlock(); for (loop_flash = 0; (loop_flash < NbrOfData) && (single_flash_operation_status == SINGLE_FLASH_OPERATION_DONE); loop_flash++) { single_flash_operation_status = FD_WriteSingleData(DestAddress + (8 * loop_flas
Hello, I am trying stm32le5ccu6 with SUBGHZ PINP PONG method to send data.in that i am getting stuck at 3 things 1. rtc for time and date. 2. writing data into internal flash address 3. when trying stop2 mode, i have set up 20 sec wake up interrupt. so device wakes up every 20 sec to send data over radio. but after 1st wakeup the device doesnt go in stop mode stays awake. keeps the radio SMPS on. i even tried clearing the SMPS bit. has aanyone tried it, ?
I'm using a WB55 with IWDG enabled. I want to disable The IWDG when the device is in Standby mode. I have cleared the IWDGSTDBY bit using STM32CubeProgrammer, but I still get resets from the IWDG.What am I doing wrong?
Dear ST members, I downloaded the MLPF-WB-01D3 footprint from Ultra Librarian and imported on Altium. The script loads 3 versions of the footprint but none of them matches the recommended dimensions found on the chip datasheet, specifically on the paste and solder mask layers. Can you send me the correct footprint, or can you approved the attached one please? I already had issues with MLPF-WB55-01E3 were my board failed the spurious emission test and to this day I still have no idea what was failing on my design. I don't really want to this unpleasant experience again.
I am working on a custom project and am stuck on one issue which is a large binary file after compling the lorawan_end_node example. I am looking to have a file size of around 50Kb (currently it complies at 250Kb). I have tried the suggestion to change the complier setting is there anything else I can do to achieve this Also, for Lorawan to upgrade its firmware over the air how much time does it takes to upgrade a file size of around 100Kb
I’m working with the LoRa Wio E5 module, using this repository Seeed-LoRa-E5 by danak6jqI’ve encountered an issue where ADR works perfectly for normal data transmission after joining the network, but it seems to have no effect during the join process.The join attempts always use the data rate (DR) set by the macro LORAWAN_DEFAULT_DATA_RATE in the file LoRaWAN/App/lora_app.hFrom my understanding, if ADR is enabled (LORAWAN_ADR_STATE set to LORAMAC_HANDLER_ADR_ON), this macro shouldn’t even be used, yet the join process seems to ignore ADR and always sticks to the default DR.Additionally, I noticed that to reflect changes made to the LORAWAN_ADR_STATE macro in lora_app.h, I had to manually modify the AdrEnable member inside the LmhpComplianceParams_t structure, which is located in:Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.cstatic LmhpComplianceParams_t LmhpComplianceParams = { .AdrEnabled = LORAMAC_HANDLER_ADR_ON, // Had to change this manually .DutyCycleEnabled = t
Dear Community,I am currently working with the STM32WB5MMGH6TR module and using the STM32_WPAN middleware for Bluetooth functionality. Initially, after installing the middleware, Bluetooth advertising worked and the device was discoverable. However, it is no longer being discovered by any Bluetooth scanning tools.Upon further investigation, I found that the code is getting stuck in an infinite loop within the startup_stm32 file, and I suspect this could be either a clock configuration issue or a firmware-related problem.I attempted to update the firmware, and while the FUS (Firmware Upgrade Service) update proceeded successfully, the BLE stack update was not accepted because a higher version was already installed. This leads me to wonder if a mismatch between the versions of FUS and the BLE wireless stack could be causing the issue.I would greatly appreciate any guidance or suggestions from the community to help me resolve this and resume testing.Thank you very much in advance for your
The UART2 IRQ Handler gets called consistently and never clears a few milliseconds after initialization. If the debugger is not present on the RX line, the program always gets stuck in the IRQ Handler forever, until I touch the RX pin with my finger. Then the program begins executing normally. On our STM32WL5MOCH-based board, the debug port (UART2) pins are left floating. Here is the beginning of our main.c, which only uses default STM32CubeMX generated driver files, nothing custom. Please note the included project .ioc file in this post. int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END Sy
I am putting the STM32WB55 into a space sensitive application so i would like things as small as possible. The application note (AN5129) is very good for a PCB antenna, but I would like a chip antenna to be as small as possible (cost is less of an issue).Are there any recommended chip antennas (or even better, reference designs using them) for the STM32WB?Thanks!
Hello, I am trying to implement a zigbee network using stm32wb55 custom board. I use STM32Cube_FW_WB_V1.21.0 zigbee examples. Everything works perfectly, butI want to change the client/router 64 bit IEEE address, but I can't find where it is set or hard coded in the code.I have to change it because end devices must have unique IEEE addresses.
Hi,I want to use CLion for development, which requires CMake, and I've been struggling with integrating the X-CUBE-MATTER package in it.Globbing all files withfile(GLOB_RECURSE src_files "Middlewares/*.c" "Middlewares/*.cpp" "Drivers/*.c" "Drivers/*.cpp")produces a binary significantly larger than FLASH and still fails to compile because it includes various examples and templates.Another option I thought of is manually adding all the necessary files, however that seems like a herculean task.Is there an easier way to go on about this (perhaps ST is already working on it)? Thank you for your reply.
I'm trying to run a sample PWR_DEEPSTOP_RTC from PWR_DEEPSTOP_RTC, but I'm facing some problems.The code works correctly, the UC enters deepstop mode and returns to run mode, but when I try to measure the current in PJ2 as described in item 7.1.4 of UM3345, I get 90uA when in deepstop mode and not around 1uA as the datasheet says. (RTC wakeUP, LSi 32k).I follow this example recipe:/* The following Wakeup sequence is highly recommended before each entry into Deepstop modeespecially when using more than one wakeup source, this is to not miss any wakeup event.- Disable all used wakeup sources,- Clear all related wakeup flags,- Re-enable all used wakeup sources,- Enter Deepstop mode.*/Is there anything I missed or didn't understand?
1. [Part Number] NUCLEO-WL33CC1 2. [Environment] Windows 11 laptop3. [Schematics] Using ST Nucleo board.4. [Details] STM32CubeIDE would not enter debug.5. [Expected behavior] It should enter debug after a power reset regardless of what low power mode6. [How to reproduce] Simply program standard ST MRSUBG_WakeupRadio_Tx example7. [Occurrence] The problem is constant8. [Sanity checks] Changed cable. Confirmed boards with STM32CubeProgrammer.I found that when I run the default ST MRSUBG_WakeupRadio_Tx example program, I am no longer able to enter debug mode or reprogram the device using the STM32_Programming tools (both GUI and CLI).Is this expected behavior? If so, I would appreciate an explanation as to why this happens. My assumption is that regardless of how the device enters low power mode, a power cycle reset should allow the debugger to reconnect.Is there a workaround for this? I find this issue qu
I have a BLE device that uses BLE security mode 1, BLE security level 3 authenticated pairing. It works with iOS, Windows, and MacOS. It has an unencrypted characteristic for the initial connection and an encrypted characteristic for use after pairing. I have an STM32WB55 BLE client that can connect to the unencrypted characteristic, complete the pairing process, and then switch to the encrypted characteristic for normal communication. However, when I disconnect and then connect back in to the server, the STM32WB55 can talk on the unencrypted characteristic, but attempts to transmit to the server on the the encrypted characteristic fail (error code 0x91). Both devices report bonding information that correspond to each other properly. Is there some BLE stack call needed when connected to a bonded server that I am not finding in the documentation? The connect/pairing/switch-to-encrypted-characteristic process works repeatably.&nb
Hi Team, We are using STM32WL33CBV7 controller in our new project, we require complete information of bootloader and its dedicated pins and its implementation, Could you please suggest the application document which gives complete information on bootloader implementation. Best regards, Tejas
Moved from STM8 forum. Hello ST Community, I am experiencing an issue with BLE OTA functionality on my STM32WB-based custom board. I have ported the OTA functionality from the official NUCLEO BLE OTA example project to my custom service and characteristic, and it has been working fine with the ST BLE Toolbox Android app v1.4.2. However, after updating the app to v1.4.3 (March 2025), the OTA process consistently fails. No changes were made to the firmware between tests. If I downgrade the app back to v1.4.2, OTA works reliably again. Additionally, I noticed that STM32CubeMX was recently updated to v6.14.0, whereas my firmware was originally developed using CubeMX v6.11.0. I'm trying to determine whether the problem lies in the new app version, CubeMX updates, or a combination of both. Questions: Are there any breaking changes or modifications in OTA behavior with ST BLE Toolbox v1.4.3? Has the OTA protocol or image transfer mechanism changed (e.g., chunk size, MTU, characteristic b
Dear ST community,I am developing a PCB design for wireless communication utilizing STM32WLE5CCU6. I have a very basic grasp of RF knowledge, impedance matching for example. I read thoroughly the documents: AN5457 and AN5407 of designing RF layout. I also took a glance on the Nucleo PCB design files. I noticed some discrepancies and I would like to ask you for your insight.1. In document AN5407 section 9 Table 5 there is example of recommended discontinuity management. It is designed for RF trace width matching the width of SMD components. I checked the STM32WL Nucleo design and noticed that for RFO_LP and RFO_HP signals the traces are quite thick between the matching components. I extracted the trace design properties (width, height, gap, Er) and put them into Saturn PCB calculator. The Zo impedance doesnt match 50 Ohms as shown below:The Nucleo layout doesn't follow the design rules, as you can see on picture below (I marked a concerning layout with a green rectangle):The "NETC15_1"
Hi,I'm relatively new with ST microcontrollers and I'm struggling a bit to find an answer to a question I have.I have some code that reads data from an external source. I need to read some data on startup, as it dictates the some stages of the boot process. The code that parses that received data also sends notifications over BLE later in the program execution. My problem is that the first calls to my parser triggers some notifications before the BLE interface is properly initialise and the micro hard-faults.I can't bring the call to `app_BLE_init()` any earlier than it is. I was wondering if there's a function in the API to check the status of the BLE stack, and avoid acting on the BLE link before it has been properly initialised. I tried with a dirty boolean flag, but I'm sure there must be a better way, right?
I have made a custom STM32WB55 Board taking evaluation board as reference except antenna. The antenna used is SMD chip antenna. We have generated p2p server program from stmcubemx and loaded on evaluation board. It is advertise/connect/pair is working fine. But on the custom board the advertise itself is not working. But other peripherals like GPIO/UART/LCD over SPI are working good.I would like know, how debug the RF problem in STM32WB55 chip or are there any check list(voltages ) points to verify to ensure that there is no mistake. We have monitored through spectrum analyzer on the RF pin (using some sniffer) but could not get any spectra ?Is there a way to simply generate some CW frequency from the chip and test the RF path as well.
Hello, I want to apply sigfox on the stm32wl33kcv6 project.I have some questions that I hope you can answer. 1. I have sigfox ID and PAC, how do I write to flash?I have noticed these codes:NO_INIT_SECTION(const uint8_t wl3sfx_nvm_boarddata[FLASH_PAGE_SIZE], ".noinit.sigfox_boarddata");NO_INIT_SECTION(const uint8_t wl3sfx_nvm_records[FLASH_PAGE_SIZE], ".noinit.sigfox_nvm_records");NO_INIT_SECTION(const uint8_t wl3sfx_nvm_records_backup[FLASH_PAGE_SIZE], ".noinit.sigfox_nvm_records_backup"); /* Sigfox Data Sections */.sigfox_data :{. = ALIGN(4);KEEP(*(.noinit.sigfox_boarddata))KEEP(*(.noinit.sigfox_nvm_records))KEEP(*(.noinit.sigfox_nvm_records_backup))} > REGION_NVMI don't know how to connect them. 2. Does stm32wl33kcv6 sigfox not support the keil compiler environment?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.