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,I am trying to make a basic Enhanced Advertising low power application using Arduino IDE.I use a standard P-NUCLEO WB55.I need Arduino IDE because this application is intended to be open for modifications.The current STM Documentation (https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_BLE_Arduino) is more than one year old and is outdated.I succeed in lighting the 3 color led by redefining their PIN OUT according with the electrical schematic. But I was not even able to get print messages (I guess the Serial is not properly define for that board).Where can I found a basic Arduino Example.I did already the update of the M0 FW which is supposed to be HCI compliant. FUS version V2.2.0.0 and STACK version v1.24.0.3.Thanks in advance.Edited to fix link.
Greetings,in one of my current projects i am using a STM32WB55 as peripheral which requests a secure connection with the host (bonding mode = 1). When the connection is newly established, everything works as expected - the "pairing" dialogue pops up once and when the procedure completed, the connection works. With Android there is no further problem.But iOS causes inconvenient behavior by not automatically re-pair when the information got stale or lost. I didn't find a way to at least reopen the pairing dialogue on a secured connection. iOS terminates the connection as soon as it receives a "key missing" error and there seems to be no way to let it re-pair. The user has to "forget" my device and restart the pairing procedure manually... However some approachers at least caused different behaviour:Set the bonding mode to 0 in the authentication requirements.If not done already remove the pairing information in iOS by forgetting the device.Do one of the following:issue aci_gap_slave
Dear Sir/Madam, We are using the STM32WLE5CCU6 LoRa MCU for our custom LoRa application project. We are able to detect the MCU successfully, and flashing/programming is also working without any issues. However, with our LoRa application, we were initially unable to establish a link with the LoRa gateway. After investigation, we identified an issue related to the 32 MHz clock circuit. We replaced the crystal on our custom board with the crystal used on the STM32WLE5 evaluation board, and after this change the issue was resolved. We were able to communicate with the gateway, and packets were received correctly. Later, we ordered the same evaluation board crystal again and assembled it on our board. However, this time we are once again unable to link with the gateway, even though the crystal part number is the same. This behavior is confusing, as the evaluation board crystal had previously worked on our board. We would like to understand: Is there any register or configuration option in
Hi , I have designed one product with STM32WB55 for BLE and Zigbee concurrency. The schematic design I have followed is the with out SMPS design (LDO mode). VFBSMPS, VLXSMPS, VDDSMPS pins are connected to VDD. Our firmware will scan for BLE devices and it works in Nucleo development board. But not functional in our custom board. With our board it is able to connect upto 4 devices only, but the same firmware can handle up to 18 devices in development board. What will be the reasons for this ?
Split from RF Communication with Nucleo-WL55JC Boards - Seeking Guidance This is a different question. Hiii,I need to receive the time from the network server. How to fix this issue.Give me the clear steps to fix .
Hello everyone,I am facing severe stability issues with a Nucleo-WB55RG project generated via STM32CubeMX (FW Package V1.24.0).The Core Problem: The device advertises and connects, but suffers from random "Silent" Disconnections (no event generated) - connection loops and eventually complete silent (advertisement doesnt start after disconnection). This happens in multiple scenarios, including simple idle connections and bonding attempts.Detailed Scenarios:1. Scenario A: Idle Connection (Without Bonding)I connect using the ST BLE Toolbox app and leave it idle.Behavior: After a random period (non-uniform time), the device automatically disconnects, reconnects, and enters a loop.Observation: Even without initiating bonding, the link is unstable.2. Scenario B: Pairing via Android Bluetooth SettingsI go to Android Settings > Bluetooth and tap the device to Pair.Behavior: The phone displays "Pairing..." indefinitely.Observation: The UART logs show "BLE Connected", but the handshake never
Hi all, Im currently designing my own pcb with a STM32WBA65CIU6 MCU in the UFQFPN48 package.Im doing this for the first time (still gaining all the knowledg needed) and currently ran into the following problem:I'm having trouble understanding the footprint and EDA symbol given for the STM32WBA65CIU6 on the product site and shop. According to those, eg OSC32 are Pins 16 and 17:But according to the data sheet and also in CubeMX the OSC32 should be pin 19 & 20: Is this not a problem and can be solderd anyway? Also some other pin names are also missmatched :\Thanks for the help :)
Hi Team, We are using the STM32WB55CGU6 for one of our application. Since, the product has internal bluetooth functionality, we are usin for our application. However, the expected range is not meeting with the application that we anticipated. Kindly review the attached circuit and provided your insights. Regards, Abinaya.M
Good day I am currently trying to run the end_node sample located on the STM32Cube_FW_WL_V1.3.1 package. I would like to know if i can have some guideline on how to use LmHandlerDeviceTimeReq(). Which class do i need to use?What lora server allows the time request?How do i check if the MAC request is even sending? Should I see this on the Logs under my application located on the server?The request currently is not updating my system time. The request is currently being done in a callback after a successful join. static void OnJoinRequest(LmHandlerJoinParams_t *joinParams){/* USER CODE BEGIN OnJoinRequest_1 */if (joinParams->Status == LORAMAC_HANDLER_SUCCESS){APP_LOG(TS_ON, VLEVEL_L, "JOINED\n"); // Send time requestif (LmHandlerDeviceTimeReq() == LORAMAC_HANDLER_SUCCESS){APP_LOG(TS_ON, VLEVEL_L, "DeviceTimeReq sent.\n");}}/* USER CODE END OnJoinRequest_1 */}After the request is sent successfully, the below lines are never r
Hi - does anyone have a solution for this?I have the latest CubeMX with STM32CubeWBA Firmware Package V1.8.0 / 29-October-2025 installed.The attached .ioc file is a minimum configuration for BLE. I am attempting to just get basic BLE advertising working as the first step on a new board.The build (using the auto-generated makefile) fails with "System/Config/LowPower/peripheral_init.c:24:10: fatal error: aes.h: No such file or directory". The AES is turned on in the .ioc file but the header file didn't get generated.
I am working with the NUCLEO-WB55RG, trying to get the filter accept list ("white list") feature working. Here is what I'm doing: - The NUCLEO is a peripheral implementing a custom BLE template, generated with STM32CubeMX 6.16.1. The "full" wireless stack V1.24.0 is installed on the M0+ core. - Start advertising with NO_WHITE_LIST_USE, connect, pair, and bond with a Central. This all works. Disconnect, call "aci_gap_add_devices_to_list()" (mode 0x03, also tried 0x05) with my bonded device list (retrieved with "aci_gap_get_bonded_devices()"). I have _also_ tried just called the "aci_gap_configure_whitelist()" command, the result is the same. - Then, if the # of bonded devices is > 0, when advertising restarts I use WHITE_LIST_FOR_ALL as the filter policy. In either case, I can connect and bond with two iOS devices. It seems that the white list isn't actually doing anything, and I can't figure out what to do. I followed the advice here, with no resul
Hello, I am planning out a project that uses new BLE 5.4 feature periodic advertising with response and I wanted to use STM32WBA as a broadcaster and STM32WB0s as observers. There seems to be a great software support for this on WB0 but when it comes to WBA I can't find much documentation or any examples even on periodic advertising. Do you plan to add this in the future? Or is STM3WBA more focused on audio and will not get these features? Thank you
Hi there, i hope youre doing great! Im exploring FUOTA over LoRa/LoRaWAN using STM32CubeWL and the Nucleo-WL55JC1For this purpose im exploring the application (included in STM32CubeWL) "LoRaWAN_FUOTA_DualCore"I read the 'readme' file to accomplish build and flashing of the board with this application but the build.bat file throws an errorSo i decided to compile every project of the full application inside STM32CubeIDE, but in the project 'LoRaWAN_End_Node_DualCore_CM0PLUS' i found a linker error:... LoRaWAN_End_Node_DualCore_CM0PLUS.elf section `.data' will not fit in region `APPLI_ROM'...region `APPLI_ROM' overflowed by 272 bytesIm using STM32CubeIDE v2.0.0 and STM32CubeWL v1.4.0, running on windows 11Am i doing something wrong? Any suggestions?
I have enrolled the gateway and the end node of my PNUCLEO lrwan 3 on Loriot server, but when I view the boot log on my Terra Term terminal, I observe that the end node does not join the server, returning JOINED FAILED.I made sure the end node and the gateway are configured to the same frequency - EU433I also made sure I used the correct details like the dev EUI, APP EUI amd AppKey from the end node to connect to the server, what could be the cause of this JOIN FAILED.
Dear STMicroelectronics Team,I am writing to strongly condemn the way power consumption values are presented in the STM32WB55 datasheet.When I choose a wireless SoC, I do so because of its wireless capabilities. If I only needed a microcontroller, I would simply buy an MCU from your STM32 families. The reason I selected WB55 was specifically for its BLE functionality. Therefore, the datasheet must provide power consumption values with BLE active, not just MCU Stop mode currents with BLE disabled.Presenting only the MCU’s low‑power figures while omitting the real BLE consumption is misleading and deceptive. It creates false expectations for developers and leads to serious disappointment in real‑world applications. This practice can only be described as fraudulent.I strongly denounce this approach. Wireless SoCs must be documented transparently, with accurate BLE advertising and connection current profiles. Competing vendors such as Nordic and Telink provide this clarity, and ST should d
NUCLEO WB55For an unknown reason I2C1 has just stopped working. The BLE & UART are working but the boards (I've tested on 2 identical boards) are no longer talking to the sensors via I2C.When I scope them up the traces for SCL & SDA are both flat lines (yes I checked the scope is working properly).Frustratingly, this all worked before xmas.Anyone any clue what could cause this?
Hello,I’m new to embedded systems and currently learning STM32 + LoRa.I’m using two NUCLEO-F411RE boards and two RA-02 (SX1278) LoRa modules. My goal is to establish basic point-to-point communication.I initially tried using a LoRa.h library, but I couldn’t get it working reliably. To reduce complexity, I decided to verify SPI communication first, before dealing with LoRa TX/RX logic.However, SPI itself does not appear to work as expected, so it’s unclear whether the issue is: SPI configuration Hardware wiring Or the LoRa library integration Below are two minimal examples: A bare SPI register read (RegVersion = 0x42) A minimal LoRa.h initialization without TX/RX logic I would appreciate feedback on: Missing or incorrect SPI configuration Whether the LoRa initialization sequence is reasonable Common SX1278 + STM32 HAL pitfalls Minimal SPI test (RegVersion check) #include "main.h" #include "spi.h" #include "gpio.h" #defin
Hello,Looking at the HRS FreeRTOS example applications code for STM32WB55, I see several task configured with osPriorityNone as priority.This priority level is defined as meaning 'no priority, not initialized' in cmsis header.Why is it used here ? How are the tasks supposed to run if they don't have priority ? Does that in effect act as a very high or very low priority ?Regards.
I have a project for a battery-powered clock using the STM32WBA55 chip. The battery is replaceable; the device can sit unused on a shelf for up to 4 months without the battery. Since the STM32WBA55 doesn't have VBAT or VRTC pins, how can I keep the backup recorder, time, and date active?
I have a custom board with stm32wba65 processor. I also have an RFM95 LoRa module. I need to add LoRaWAN capability. I tried adding I-CUBE-LRWAN into my CubeMX but was not able to load it (not a recognised package).How can I get an ST or Semtech approved LoRaWAN stack into my project?Please do not suggest I use stm32WL processor.
Hi, I'm working with a STM32WL5MOC with the STM32Cube FW_WL V1.4.0. In my main.c I have this initialization: MX_GPIO_Init(); MX_DMA_Init(); MX_RTC_Init(); MX_LPUART1_UART_Init(); MX_USART1_UART_Init(); MX_ADC_Init(); MX_CRC_Init(); MX_SPI1_Init(); MX_LoRaWAN_Init(); I put the MX_LoRaWAN_Init after all inizialization. However, I noticed that the code get stacked in MX_RTC_Init();, in particular on here if (HAL_RTCEx_SetSSRU_IT(&hrtc) != HAL_OK).I attach the ioc file and the main. Thanks.
I found in my tests that for the same sequence of operations (Radio.SetChannel -> Radio.RadioSetTxGenericConfig -> Radio.Send), the time required differs significantly between waking up from STOP2 sleep mode and waking up from Sleep mode. Here is Radio workflow:Startup -> Sleep -> Calibration -> Standby Here is the test code, with two additional modifications.void app_fsk_send(void) { if (!s_radio_init_flag) { Radio.Init(&s_radio_events); s_radio_init_flag = true; } TxConfigGeneric_t tx_config; uint8_t syncword[] = {0xC1, 0x94, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00}; if (!s_radio_init_flag) { Radio.Init(&s_radio_events); s_radio_init_flag = true; } priv_prbs9_generator(s_payload, 16); tx_config.fsk.ModulationShaping = RADIO_FSK_MOD_SHAPING_G_BT_1; tx_config.fsk.FrequencyDeviation = 40000; tx_config.fsk.BitRate = 100000; /* BitRate */ tx_config.fsk.PreambleLen = 4; /* in Byte */ tx_config.fsk.SyncWordLength = 3; /* in Byt
A development collaborator on the application is trying to improve the performance of transmitting the payload between the app and the board containing the STM32WB55 microcontroller via BLE. He is asking if he can increase the size beyond 20 bytes in order to reduce the upload time, which is currently 40 seconds (ideally, he wants to reach 6 seconds, the same way I did using the ST BLE Sensor app). The AN5247 documentation recommends writing in 20-byte increments as shown in the image below, and he would like to know if he needs to perform an ACK after each 20 bytes or if he can send directly. Any help would be appreciated.
Hello guys.I have an STM32WB5MM-DK disco board and im trying to get familiar with the ble stack. What i want to do is create a p2p server, poll an onboard i2c temp sensor for data and send that data through ble. What i did at first (successfully)was to set the device as a p2p server, set the user button as an EXT line and set the irq to schedule a task. That task transfered a random number through ble.What i tried to do next was to set the interrupt handler schedule a task tha would poll for the i2c data and schedule another task that would send said data, which didn't work. The address of the onboard i2c sensor is 0x70. I attach my .ioc file My callback function void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin == B1_Pin) { UTIL_SEQ_SetTask(1U << TASK_BUTTON_1, CFG_SCH_PRIO_0); } APP_DBG_MSG(" Buttn press\n\r"); return; }I've added the name of my tasks on the app_conf.h file/**< Add in that list all tasks that may send a ACI/HCI command
Greetings,I am trying my hands on STM32WLE5CCU6 and want to encrypt variable length data using inbuild encrypt hardware or feature of the controller. I am generating a byte array of variable length. Is it possible to encrypt that array ? In an example i have seen an array of 32bits but not 8 bits. Please guide me.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.