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 programming the STM32 NUCLEOWBA55CG with Zephyr v4.0.0 and our application is using the BLE stack.Due to flash limitations, we would like to use the basic stack and link layer BLE libraries for the STM32WBA series (see communication with STM before)Zephyr itself is not adding a lot of FLASH , the bottleneck is the size of the STM32WBA Link Layer lib. Why When building with Zephyr you can not guess what customer is willing to do : a basic peripheral ? a central device ? Zephyr is so flushing from our repository the Full Link Layer stack (254Kbytes) to accommodate all capabilities. How to overcome Now for sure you can still replace this Full Link Layer stack by the Basic Link Layer stack, and you will drastically reduce to overall Flash needs. If so Build Peripheral HIDS example will consume FLASH: 220460 B 1 MB 21.02% Basic Lib is for sure providing needed feature for peripheral device (STM32WBA Bluetooth® LE Stack Integration - stm32mcu) How to replace :
Hello,here in my code I want to send the received values of the payload directly to USART2. This works fine if I send less than 20 characters. If I send more, the program chrashed.case P2P_SERVER_UART_C_WRITE_NO_RESP_EVT: /* USER CODE BEGIN Service1Char3_WRITE_NO_RESP_EVT */ uint16_t payload_Length = p_Notification->DataTransfered.Length; // conversion uint8 Length to uint16 payload_Length if(HAL_UART_Transmit_DMA(&huart2, p_Notification->DataTransfered.p_Payload, payload_Length) != HAL_OK) { Error_Handler(); }When I set a breakpoint and check the value of the length, a maximum value of 20 is displayed although the variable SizeUart_C = 50 (in file p2p_server.c).Why is this the case?What can I do to transfer more characters?
Hi,- MCU: STM32WBA52CGU6- SDK: 1.1.1- Configured SYSCLK: PLLCLK: 70 MHz - Issue: System-Clock-Source auto-change to HSE, upon any BLE related API calls such as start BLE advertisement related API aci_gap_update_adv_data().- Issue is repeatable.- Issue is hardware independent as verified with different custom boards and two NUCLEO-STM32WBA52 boards.- Observed that upon ble_init or BLE related API call, SFR RCC_CFGR1: Bits 3:2 SWS[1:0]: system clock switch status:Before BLE call: 11: pll1rclk used as system clockAfter BLE call: 10: HSE32 or HSE32/2, as defined by HSEPRE, used as system clock.- For reference attached configuration snapshot:- Note that upon reconfigure system clock source by API: SystemClock_Config(); Make PLLCLK as SYSCLK till the time BLE related API not call.- Request to provide solution/workaround for same.Thanks
HI, please help to check the following build error.I used CubeMX and IAR build tool and the following code.en.stm32cubewl-v1-3-0\STM32Cube_FW_WL_V1.3.0\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\LoRaWAN_End_Node Error is as below,Error[Li005]: no definition for "BSP_RADIO_GetRFOMaxPowerConfig" [referenced from C:\work\stm_project\Lora_Test\WLE5CC6_LORA\EWARM\WLE5CC6_LORA\Obj\radio_board_if.o]Error[Li005]: no definition for "BSP_RADIO_GetTxConfig" [referenced from C:\work\stm_project\Lora_Test\WLE5CC6_LORA\EWARM\WLE5CC6_LORA\Obj\radio_board_if.o]Error[Li005]: no definition for "BSP_RADIO_ConfigRFSwitch" [referenced from C:\work\stm_project\Lora_Test\WLE5CC6_LORA\EWARM\WLE5CC6_LORA\Obj\radio_board_if.o]Error[Li005]: no definition for "BSP_RADIO_IsDCDC" [referenced from C:\work\stm_project\Lora_Test\WLE5CC6_LORA\EWARM\WLE5CC6_LORA\Obj\radio_board_if.o]Error[Li005]: no definition for "BSP_RADIO_Init" [referenced from C:\work\stm_project\Lora_Test\WLE5CC6_LORA\EWARM\WLE5CC6_LORA\
Hi,I have some doubts regarding the answer I've received from ST (the ticket was closed, so I'm writing here once again).My product is currently operated in LDO mode. The certifications have already been completed in this configuration.During the errata check of the STM32WB, I noticed that SMPS mode should used, due to HW design (different series coils value etc., see schematic attached). I received the response from ST team, that "Choice SMPS vs LDO is mainly about power consumption performances". But still I do know if there is a risk of oscillations coming from low self-resonant frequency value of the series coil and series resistance ( 6GHz required vs 32MHz used and 2.2ohms required vs 0.7 ohms used ) in LDO mode.Or maybe it does not matter in LDO mode?
I am trying to communicate with ADS1115 using Seeed Studio's LoRa Wio E5 mini in the I2C2 peripheral to which PA15 and PB15 are connected. It doesn't work and I am able to see nothing on my logic analyzer. SCL stays high and SCL stays low with no data at all in the bus. I have enabled pull up resistors for the I2C pins in my Wio E5 mini using CubeMX. I am using Seeed Studio LoRaWan for the LoRaWan stack to connect to my TTN network and without the I2C master transmit or device ready commands the demo code runs well and I receive the dummy data at TTN side. If I include any master transmit or any command related to I2C the code gets stuck at MX_LoRaWAN_Init().
We are developing Matter Device using X-CUBE-MATTER.Is there any way to compile and debug on Visual Studio Code instead of on STM32CubeIDE?
Hello Community, I am using the STM32WL55JC16 microcontroller. When I try to set the PA1 pin as EXTI1, I am unable to enable its interrupt in NVIC1. A popup message appears stating: "The corresponding GPIO pin is left as 'FREE' and not used by any middleware or pack." I have updated to the latest version of the IDE, but I cannot find the Pin Reservation button. Could anyone provide guidance on how to resolve this issue? Thank you for your help!
Can the 433 MHz STM32WL55JC2 operate at 915 MHz by changing the antenna and software configuration?I have the STM32WL55JC2 functioning at 433 MHz. I'm studying signal propagation and want to operate this device at 915 MHz. I know there is a difference in antennas, but can I swap in the 915 MHz antenna and set up the software using the STM32CubeMX to broadcast at 915 MHz?
Hello everyone, The last few days I have been trying to get Zigbee working on my STM32WB55CGU6 and I can now switch on and off a light! But the more difficult thing to get working is the WindowCover. Below you will find the image where my STM32 has connected to home assistant and I can turn the led on and off with the top switch. The problem I now have is sending the other attributes in particular the position. Below you will find my app_zigbee.c file
@ABN Hello All,Steps happening in the code (FREERTOS based). 1. Initialization ( 4 ADC channels, DMA, BLE)2. Take 1 sample of each channel. Store in register.3. GOTO STOP2 mode.4. Wakeup at 10th second using LPTIM.5. Reinint everything above menitoned.6. Take ADC samples of the 4 channels.The problem.ADC samples taken after 1st init is correct. ADC samples taken hereafter on wakeup are incorrect.This is being checked by debugging through STM programmer.
I am working on a WTM32WB55RG BLE application that reads a sensor via I2C and sends the output of some calculations to a BLE characteristic running on the p2pserver on the same WB55RG. I'm able to successfully send an Integer to the BLE characteristic but I'm struggling to understand the "best" or "proper" way to send, let's say 6 x uint32_t for example.Option 1: Step 1: Assemble the 6 x uint32_t in an array. Step 2: Then it appears I need to reverse the byte order before I send so when I look at the values in the iPhone ST BLE Toolbox I get recognizable data. Step 3: Make a call to Custom_STM_App_Update_Char(CUSTOM_STM_CharSensor, (uint8_t*) dataArray); This is what I'm doing today. I've tested it with 2 uint32_t in an array and it works, so assume it would work for 6.Option 2: I originally wanted to build a struct that contains all of the data (in case all data values to be sent aren't the same number of bytes) I want
Hello everyone,I want to try to wakeup my system from the the STOP2 mode with a button press. The button is also in use in the rest of the application and works just fine. But when going to STOP2 it does not wake up the system again.I've tried it with the preconfigured interrupt, which also handles the button presses while the system is active, as well as a change to an event based trigger setup right before going to STOP2. Both do not wake up the system. void setEXTIEvent(void) { LL_EXTI_InitTypeDef EXTI_InitStruct = {0}; EXTI_InitStruct.LineCommand = ENABLE; EXTI_InitStruct.Line_0_31 = LL_EXTI_LINE_6; EXTI_InitStruct.Mode = LL_EXTI_MODE_EVENT; EXTI_InitStruct.Trigger = LL_EXTI_TRIGGER_FALLING; LL_EXTI_Init(&EXTI_InitStruct); HAL_NVIC_DisableIRQ(EXTI9_5_IRQn); } void setEXTIInt(void) { LL_EXTI_InitTypeDef EXTI_InitStruct = {0}; EXTI_InitStruct.LineCommand = ENABLE; EXTI_InitStruct.Line_0_31 = LL_EXTI_LINE_6; EXTI_InitStruct.Mode = LL_EXTI_MODE_IT; EXTI_InitStru
I think it is the most popular topic among STM32 programmers who use ST-LINK V2 programming devices.I have two devices: one is the Lora E5 MIni, and the second is the Lora E5Dev board. Both respond to the AT commands, so I expect they are healthy.A few days ago, I could access these devices and see their memory. Today, I can't, and I don't know why.I connected the programmer to the dev board as needed, and I can't connect to this device. I tried to change settings as the other programmers suggested to achieve connection to such devices but without any success. Programming STM32 controllers using ST-LINK V2 is a kind of magic. It's a horror for me. I can't program my devices.I upgraded firmware versions several times without any changes.From the ST-LINK, it looks as expected, I think:As I wrote above, changes of modes and reset modes gave no change.So, what is wrong? ST-LINK answers on connection, but why it doesn't see devices connected to it?
I am trying to upload BLE stack on my custom designed board. The MCU is STM32WB35CCU6A. Below is FUS Version, I am able to get from MCU. but when I try to upload BLE stack , I see below error. Error: FUS_STATE_IMG_NOT_FOUND: Firmware/FUS upgrade requested but no image found. (such as image header corrupted or flash memory corrupted). I checked First install: No stack delete option , but still same error Option bytes setting"deviceId" : 1173,"bitNameToValue" : {"RDP" : 170,"BOR_LEV" : 0,"nBOOT0" : 1,"nBOOT1" : 1,"nSWBOOT0" : 0,"SRAM2RST" : 0,"SRAM2PE" : 1,"nRST_STOP" : 1,"nRST_STDBY" : 1,"nRSTSHDW" : 1,"WWDGSW" : 1,"IWDGSTDBY" : 1,"IWDGSTOP" : 1,"IWDGSW" : 1,"IPCCDBA" : 0,"ESE" : 1,"PCROP1A_STRT" : 511,"PCROP1A_END" : 0,"PCROP_RDP" : 1,"PCROP1B_STRT" : 511,"PCROP1B_END" : 0,"WRP1A_STRT" : 255,"WRP1A_END" : 0,"WRP1B_STRT" : 255,"WRP1B_END" : 0,"SFSA" : 244,"FSD" : 0,"DDS" : 1,"C2OPT" : 1,"NBRSD" : 0,"SNBRSA" : 16,"BRSD" : 1,"SBRSA" : 0,"SBRV" : 2
Hi, I'm developing my custom board using STM32WB09TEF7TR Microcontroller but have a problem during Programming using STM32cubeIDE. I can access the memory of this microcontroller using STM32CubeProgrammer through SWD protocol.However, once I try to import my code to the microcontroller using STM32CubeIDE, the importing fails with error message below.-----------------------------------------------------------------------Break at address "0x100017d0" with no debug information available, or outside of program code. Log output file: C:\Users\GGKIM\AppData\Local\Temp\STM32CubeProgrammer_a31344.logST-LINK SN : 0037002F3532510631333430ST-LINK FW : V3J15M7B5S1Board : STLINK-V3SETVoltage : 3.30VError: ST-LINK error (DEV_TARGET_RESET_ERR)2nd connect tentative with frequency (8MHz)ST-LINK SN : 0037002F3532510631333430ST-LINK FW : V3J15M7B5S1Board : STLINK-V3SETVoltage : 3.30VError: ST-LINK error (DEV_TARGET_RESET_ERR)Encountered Error when opening C:\ST\STM32CubeIDE_1.17.0\STM32Cu
Hello,I have used to read EXTI.SWIER1 to know if interrupt comes from SWI or external. But it seems that WB55 doesn't allow to read anymore the SWIER1 register. The RM notices that reading SWIER1 returns always '0'.So my question is : How to know the source of the interrupt ?EXTI.PR1 indicates an interrupt is pending but it is not very discriminant.
Hi everyone,I am currently working on the LoRaWAN_AT_Slave example from the firmware package repository (STM32Cube_FW_WL_V1.3.0) provided by ST. So far, I have successfully implemented uplink and downlink communication, enabling the device to send sensor data and receive downlink commands.Now, I aim to implement FUOTA (Firmware Update Over The Air). As a first step, I need to configure multicast within the LoRaWAN_AT_Slave project to support the FUOTA process.However, I'm not sure how to configure the multicast properly. Could anyone guide me through the steps or provide an example configuration?Here’s what I’ve done so far:I’ve explored the LoRaWAN_AT_Slave project in the STM32Cube's STM32WL firmware package.I understand that FUOTA requires multicast communication, but I couldn’t find detailed documentation or examples specific to this setup.Specific questions:Which files or functions should I modify or focus on to enable and configure multicast in this project?Are there specific
I am in a similar situation to @Richard Lowe back here:https://community.st.com/t5/stm32-mcus-wireless/looking-for-uart-guidance-for-the-stm32wb05kn-network-co/m-p/721231The getting started guide from the last post there references a "X-CUBE-WB05N user manual" which does not exist.Technically i do understand that the WB05N is actually an BlueNRG-LPS relabeled and pre flashed with the UART DTM firmware. Which means I already expect to fall back to the old documentation for the BlueNRG DTM for normal use. But this doesn't answer the "network co processor only" specific stuffIs it actually locked to be only that? So do I need to interface with the UART to get the SPI image? And if this is the case, which tooling (think production) can do this? Or can it be re flashed via SWD? And if it can, what prevents anyone from using it as a full blown MCU?Also the old info here was that the device is shipped empty, which from the getting started guide is not true? https://community.st
Hi. I`m using Zigbee_OnOff_Router_NVM example on WB55CGU6 custom board with existing Zigbee network in my home, but seems that my device not act as router. I mean that it not extends range of my network. What i do wrong?i checked:Set config.startupControl to ZbStartTypeJoin on M4 side.Flash Zigbee FFD copro binary on M0 side [tl_mbox.c][OutputDbgTrace][829] sys evt: 0xFF[tl_mbox.c][OutputDbgTrace][830] subevtcode: 0x9200[tl_mbox.c][OutputDbgTrace][833] payload: 00[tl_mbox.c][OutputDbgTrace][838]\x1B[0m[M4 APPLICATION] APP_ZIGBEE_Init\x1B[0m[M4 APPLICATION] **********************************************************\x1B[0m[M4 APPLICATION] WIRELESS COPROCESSOR FW:\x1B[0m[M4 APPLICATION] VERSION ID = 1.20.0\x1B[0m[M4 APPLICATION] FW Type : FFD Zigbee stack\x1B[0m[M4 APPLICATION] Application flashed: ..\x1B[0m[M4 APPLICATION] Channel used: 13\x1B[0m[M4 APPLICATION] Link Key: ZigBeeAlliance09\x1B[0m[M4 APPLICATION] Link Key value: 5a 69 67 42 65 65 41 6c 6c 69 61 6e
Hi. I have a problem with the STM32WB09KE board.I'm trying to activate Bluetooth LE using this developer board but the BLE init function returns this error massage. Success: aci_hal_write_config_data command - CONFIG_DATA_PUBADDR_OFFSETSuccess: aci_hal_set_tx_power_level commandSuccess: aci_gatt_srv_profile_init commandSuccess: aci_gap_init commandPublic Bluetooth Address: 00:08:e1:2a:12:34Success: Gap_profile_set_dev_name - Device NameSuccess: Gap_profile_set_appearance - AppearanceSuccess: aci_gap_set_io_capability commandFail: aci_gap_set_security_requirements command, result: 0x11==>> End BLE_Init functionServices and Characteristics creationSuccess: aci_gatt_srv_add_service command: WB09KESEnd of Services and Characteristics Creation Is there anyone who knows about this? and How to solve this.In the code, the input value of aci_gap_set_security_requirements() is below.I don't think this code is wrong because CubeMX automatically makes it. bleAppCont
Hi, I am using stm32wba55cg nucleo board, and running the example application BLE_p2pServer. While the serial logs of the board show that the device is in advertisement mode, it can not be discovered on my samsung s20 fe, running android 13.I tried using different advertisement intervals, but no result. Please help on this.
Hi, I was learning how to work with STM32WB55RG, using the following wiki page: https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_BLE_STM32CubeMX The tutorial here is top notch, great explanation and examples, easy to follow. Only error is that there is no note to redefine CubeMX generated define in main.h for blue led and user switch, which causes faults when trying to compile and flash code. So there should be a picture and note, to replace cubeMX generated private defines in main.h with the ones from provided functions: file name: main.h void Error_Handler(void); void MX_USART1_UART_Init(void); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ #define BUTTON_SW1_PIN GPIO_PIN_4 #define BUTTON_SW1_GPIO_PORT GPIOC #define BUTTON_SW1_EXTI_IRQn EXTI4_IRQn #define LED_BLUE GPIO_PIN_5 #define LED_BLUE_GPIO_PORT GPIOB /* USER CODE BEGIN Private defines */
I am using LoRa Wio E5 dev kit with ST-Link V2 clone. From Seeed Studio E5 project I can successfully run the LoRa demo code that sends a stream of dummy values like temp, battery voltage well and connects with my TTN server. When I try to use CubeMX to generate code even changing just the LED user label brings errors after a build. When looking at the place where the LED label should have changed, it didn't :( . Like CubeMX says it generated the code but I can't see any sort of changes in the actual code. What might be the problem?
Hi,I use the example “BLE_p2pServer_ota” with NUCLEO-WBA55 as a template for a project.For space reasons and to save costs, I would like to use the internal oscillator LSI1 (32,000kHz) instead of the external 32,768 chrystal LSE. After switching to LSI1 with CubeMX, the advertising works, but a connection can no longer be established. Which workaround is required to use the LSI?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.