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
While attempting to identify an issue with reading and writing to emulated EEPROM, I have identified a bug in V7.0.0 of the X-CUBE-EEPROM source code.This was identified in the STM32WB version of `flash_interface.c` with `DUALCORE_FLASH_SHARING` defined. In the function `FI_WriteDoubleWord` on lines 97-104, the value of `ee_status` is correctly set to `EE_WRITE_ERROR` when a program failure occurs, however this is overwritten on line 104 with `EE_OK`.As a fix for this, I changed these lines to the following: Could this be addressed in the next release of this tool?
Hi,In my product, I use the STM32WB5MMG module as Bluetooth link with the rest of the product.The STM32WB5MMG module is configure as Client.But during the discovery procedure, I always go to :- SVCCTL_App_Notification -> case HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE -> case ACI_GAP_PROC_COMPLETE_VSEVT_CODE with BleApplicationContext.DeviceServerFound = 0. But I don't find any informations about the event code HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE (0xFF). Do you have some informations this ?
The following are the steps i am following to access ram2 (my Microcontroller documents - https://www.st.com/en/microcontrollers-microprocessors/stm32wle5cc.html) See the linker script ,how they have defined ram2 in my linker script they have defines as .RAM2_region . Now will go the code then find the function which i have to shift to ram2 will add before or after the function - __attribute__((section(".RAM2_region"))) . I am able to see the movement of the function from ram1 to ram2 but when i flash the code into my device its not working i mean the that particular function is not working .Can anyone let me know what mistake i am doing to access ram2 , if you can provide with example code it would be really helpful . Thank you
Hello. If I write the protocol stack to an address different from the original address, will the protocol stack work properly? The firmware I wrote is stm32wb5x_Ble_Mac_802_15_4_fw.bin, and I wrote it to 0x080B1000 when it should have been written to 0x080B9000. I don't have the actual firmware so I can't see how it works. I think the protocol stack isn't working properly. Is that correct? Or will it work properly even if I write it to the wrong address?
When I was debugging, I found that the program got stuck in SHCI_C2_BLE_Init, and it neither returned success nor failure.What is the reason for this? I correctly burned FUS and protocol stack when I confirmed, and the version also corresponds.
Any idea to open the MX and see how clock is setup?This project was created on TrueSTUDIO as reported in the error message (old_MX_IDE.jpg). Hit CONTINUE or MIGRATE give same error message (continue.jpg).Seem it says needing MX 5.3.0 and FW_F1 V1.8.0Many thanks
Hey,im developing a zigbee sleepy end device. The device is supposed to periodically send sensor values (max length of 512bytes) read via I2C to the coordinator using the custom cluster. I use the HW_TS to trigger the sensor readings and sending the message. After a few messages (~8-20) the sleepy end device messages start to not arrive in time or at all and out of order, ending with the end device hanging up and being removed from the network by the coordinator.What I have tried:Disabling sleepy mode -> resolves the issue, but not acceptable due to energy consumptionUsing the SE Messaging Cluster with burst messages -> no changeUsing fastPolling -> as expected, no changePlaying around with interrupt priorities, especially sysTick Timer set to highest prioity. My current setup:I would appreciate any advice on what might cause this issue or what else I could try to avoid wrongly timed/garbled messages from the SEDs!Best regards
Where can I find the st-nucleo-lora-gw-atfw-v2.0.2.bin for the NUCLEO-F746ZG board
Hello,I would like to reach the lowest consumption as possible. I am programming an end node which sends data through TTN. My project is based on the LoRaWAN End Node example with the LoRaWAN middleware. My fimrware works like that :at boot, the board join to TTNafter joined, the board turns in low power modeif the button on the board is pressed, the board wakes up and sends some datas to TTNafter received the acknoledge, the board turns in low power modeThe example PWR_STANDBY works without any problem, I reach a consumption of 1.1 µA. I copied the code that configures and turns the board in standby mode into my firmware but at each boot, after reached the function HAL_PWR_EnterSTANDBYMode(), the board resets automatically.Do you have any idea what I did wrong or miss in my firmware ? I can add the source code if needed.I am using a custom board with the LoRa E5 STM32WL5EJC module embedded and the STM32WL package.Thanks you in advanceRegards
Hello,I have developed a breakout board for the STM32WL5MOC for development purposes and it uses both rf switches and the wiring is identical to the B-WL5M-SUBG1 evaluation board.Running the B-WL5M-SUBG1 sample application SubGhz_Phy on my board and I can only receive, but the board does not send anything. This applies to both LoRa and FSK. The output of the USART debugging looks identical.My board does not contain any of the sensors of the B-WL5M-SUBG1 board. Is this likely to be an issue with my circuit board or is there anything in the software that I need to adapt? I am using the STM32WL5MOCH6TR version.Thank you,Daniel
Good evening, I ask for help regarding the communication between stm32wb5mmght6tr and the scd41-d-r2 sensor. I connected the sensor to pins PC0 (SCL) and PC1 (SDA) and powered the sensor but after loading the code I attach, the i2c communication gives me an error (they don't communicate). I checked the address of the sensor and it is correct and also the connections. Anyone know what it could be? Thank you in advance. circuito di connessione del sensore Codice: #include "i2c.h" #include "gpio.h" #include "CO2.h" #include "main.h" #include <stdio.h> #define SCD41_ADDR (0x62 << 1) // Indirizzo I2C del SCD41 // Comandi SCD41 #define SCD41_CMD_START_MEASUREMENT 0x21B1 #define SCD41_CMD_READ_MEASUREMENT 0xEC05 extern I2C_HandleTypeDef hi2c3; // periferica I2C utilizzata // Funzione per iniziare la misurazione del SCD41 void SCD41_Start_Measurement() { uint8_t cmd[2] = {SCD41_CMD_START_MEASUREMENT >> 8, SCD41_CMD_START_MEA
I am trying to implement MODBUS slave on custom board with WB55 on low power mode and need to support 9600, 19200, 57600 and 115200 baud rates.As a first step, I tried to receive 8 bytes of MODBUS command on LPUART and send it on USART1 with HAL without low power mode and it worked as expected on all baud rates.As next step, I had added Low power mode (STOP2) implementation code from LPM utilities without enabling the WPAN module. I see that the bytes are received as junk with all baud rates. Thinking about the generic implementation in HAL and switching between the clocks from 32 MHz to 16 MHz might be the reason for overhead during wakeup. So, I had ported the STOP2 example on the custom board and this was working as expected on all baud rates.As next step, I had improved the example to receive multiple bytes and transmit it on USART1. With 115200 baud rate bytes are being received as junk and on all other (9600, 19200 and 57600) baud rates reception was good.ISR routine: void L
I am having an issue with configuring the C1IMR1 register, I created test code for enabling interrupts on the user buttons on the stm32wl55cj1 board but the C1IMR1 register is not being set. Below I will attach the code.
Hi, I work with stm32wle5 where AT commands are received from LPUART. This interface is setup for 9600 bps / 8N1 and its baudrate clock is derived from LSE (32768Hz) clock. The chip is wake up by incoming characters. I observe that transmitted bits have some jitter. Also I have problems on received characters - single bit errors, blocking HAL. I saw that LPUART baudrate is determined by equation: fbaud=256 * fclk / lpuartdiv I would like to understand how x256 is performed. Is there DLL loop inside? What bit jitter can I expect for 9600? Regards,Piotr Romaniuk
Hello, My problem is that I have a custom STM32WB55RG board and I want to use ADC reference voltage as 1V or as close as possible to 1 V. My questions are:1- In datasheet, it states that "If VDDA> 2V, it should be 2<Vref<VDDA and if VDDA<2V, Vref should be equal to VDDA". If I decrease VDDA to 1.7 which is around its minimum,1.62V, could there be a problem with other peripherals etc?2- Not in STM32WB55 Datasheet but in other datasheets such as "STM32F103x8 Datasheet Table 9", it states that VDD-VDDA should be maximum 300 mV". Is it valid for STM32WB55RG too? And if it is, could there be problem if I decrease VDD to around 1.8V?3- Would using an external ADC with SPI protocol be a feasible solution? I use SPI1,SPI2,ADC1,RTC,USB,I2C1,TIM16 and RF peripherals in my software and there is a RGB LED in the board. Sincerely,Yusuf.
Hi, We are using STM32WB5MMGH6TR pre-certified module on our product. Our certification parnter insisted that we should perform tests under EN300 328 even though the module is RF tested and there is no RF design on the product side. We tried to use STMCubeMonitor with an STLinkV3 connected to our PCB via UART and we were able to get the transparent mode firmare to run. However the RX RF test house claimed the test has failed (while TX has passed). They shared the attached test result.I want to know:a) Is it true we need to test for EN300 328 even when using the pre-certified module? Does ST provide EN300 328 test reports?b) What can possibly cause a fail on our hardware? This test is running with ST provided SW image ans stack so our application SW is irrelevantc) Is the test valid when there is a laptop with an STLink in the chamber? How can this test be performed , the regulation describes connecting directly to the antenna which is not accessible 
Does STM32-WB55 MCU work without USB dongle? Where can i find the quick start program for led blinking ?
Hello All, I am using STM32WB5MMG for BLE Application, I want to initailly mcu is stop mode or sleep mode,when external interrupt (switch) is triggered its wakeup from low power mode.After wake up re-installize the System Clock for Mcu running configured clock frequency. In my case its working well without configure STM32_WPAN (BLE) in STM32Cube Mx, When ever i use both Stop mode and BLE its not working while wakeup trigger is applied. I tried Sleep, Stop and Shutdown mode ,all are gives same response.Anyone suggest me how to use both in efficient manner.
Hello ST experts,I hope this message finds you well!I am writing to request your support for a project involving the Nucleo-WL55JC. I have successfully communicated between two Nucleo boards using RF communication with the SUBGHZ protocol (not LoRa).However, I have encountered difficulties in establishing communication with other RF devices.Could you please assist me in developing an application -similar to the ping-pong example- that can scan RF signals within the range of 150 MHz to 980 MHz?Here you can find the last post.@STTwo-32 Many thanks in advance for your support.Best regards,Zayoud
Hi ST support team,I'm trying to implement OTA in my application using the BLE-OTA bootloader firmware and test it using BLE sensor application running on a mobile device. I have successfully tested the BLE-OTA using the heart rate sensor OTA application, and everything worked fine. I made the same changes as suggested in the user guide and also referred to the HRSTM OTA application. In my custom BLE firmware, all changes are done, and I can see the reboot OTA characteristics.However, when I start OTA in my firmware, it receives the data on the reboot characteristic, and the application switches to bootloader mode. After switching to bootloader mode, the BLE-OTA application gets stuck and does not start any advertisements or BLE connections. The only difference between my application and the heart rate sensor application is that my application uses FreeRTOS config.While debugging the BLE-OTA application, I found that the OTA app gets stuck in the SHCI_C2_BLE_Init function, specifically
I'm using STM32Cube_FW_WL_V1.3.0and trying to generate LoRaWAN End Node FreeRTOS. I precedently set in file se-identity.h values for LORAWAN_APP_KEY,LORAWAN, LORAWAN_NWK_KEY,LORAWAN_JOIN_EUI, as shown in the guide and everything went fine.Now I want to assign them new values in the same manner, but after compiling the project and programming the device with ST-LINK, on boot in the serial output it shows the first ones that I set:APPLICATION_VERSION: V1.3.0MW_LORAWAN_VERSION: V2.5.0MW_RADIO_VERSION: V1.3.0L2_SPEC_VERSION: V1.0.4RP_SPEC_VERSION: V2-1.0.1NVM DATA RESTORED###### AppKey: F2:54:51:E9:24:11:25:F7:A5:24:80:97:32:CC:58:CD###### NwkKey: F2:54:51:E9:24:11:25:F7:A5:24:80:97:32:CC:58:CD...The output shows that the values was restored from NVM, but I can't manage to change them in NVM.How can I force the new values into NVM. Related to this, how does the BUT3_Pin work? It activates thread Thd_LoraStoreContext ( that calls the func LmHandlerNvmDataStore) but seems it
Hi,the STM32WL55's reference manual states:> BW[DSB] > BR + 2 x frequency deviation + frequency errorHowever, in the SubGHz_Phy_Per example, FSK is configured as follows: #define FSK_FDEV 25000 /* Hz */ #define FSK_DATARATE 50000 /* bps */ #define FSK_BANDWIDTH 50000 /* Hz */ Therefore, "BR + 2 x frequency deviation" would be equal to 100000Hz. But the bandwidth is set to just 50000Hz. But the example still works. Why? The gaussian filter (BT=0.5) reduces the bandwith, but not that much.The reference manual also states:> In receive mode, the bandwidth is automatically adjusted to match the selected data rateDoes this mean I don't have to specify the bandwidth? Is the following interpretation of the FSK frequency parameters correct?
For your informationSizeof is used in place of strlen and my coordinator receive a \0x00 at the end of the string !!when i generate code with MX generation tools, in function : in red old code in green new code void APP_ZIGBEE_ConfigBasicServer(void){static struct ZbZclBasicServerDefaults stBasicServerDefaults;/* Initialize Basic Server Cluster 'defaults' information */memset( &stBasicServerDefaults, 0x00, sizeof(stBasicServerDefaults) );stBasicServerDefaults.mfr_name[0] = sizeof strlen( APP_ZIGBEE_MFR_NAME );memcpy( &stBasicServerDefaults.mfr_name[1], APP_ZIGBEE_MFR_NAME, sizeof( APP_ZIGBEE_MFR_NAME ) );stBasicServerDefaults.model_name[0] = sizeof strlen( APP_ZIGBEE_CHIP_NAME );memcpy( &stBasicServerDefaults.model_name[1], APP_ZIGBEE_CHIP_NAME, sizeof( APP_ZIGBEE_CHIP_NAME ) );stBasicServerDefaults.date_code[0] = sizeof strlen( APP_ZIGBEE_APP_DATE_CODE );memcpy( &stBasicServerDefaults.date_code[1], APP_ZIGBEE_APP_DATE_CODE, sizeof( APP_ZIGBEE_APP_DATE_CODE ) );stB
Hello developers,I am currently developing all-in-one AT slave firmware for STM32WLE5CCUX, which can handle both LoRaWAN and Sigfox AT commands. I have successfully implemented and tested AT slave drivers for LoRaWAN and Sigfox using the video linked below:https://www.youtube.com/watch?v=HsrL-7WmhUE In my application, I publish hourly data on the LoRaWAN server and Sigfox backend, one at a time. What I am doing is first transmitting the data to the Sigfox backend, then switching to the LoRaWAN stack to send the data to the LoRaWAN server. So far, everything has been working well.Now, I want to implement one more stack, which is WMBUS, into my application.For this purpose, I got the drivers for the MBUS stack from STACKFORCE and successfully implemented them into my application.Now in my application, three different stacks are running. I am publishing hourly data on the LoRaWAN server, Sigfox backend, and MBUS collector, one at a time.Everything has been working fine except f
Could you add NVM option for zigbee stm32WBA in cubeMX ?It's essential for developement of application (persistence and coord association...)thanks
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.