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 need to add a method to the on pairing event that will return the active bond list entry. In case of rebond -> the correct entry that is used ( not the last ) Thanks
I've been stuck trying setting up an ADC pin on an STM32WLE5C8U6 MCU for several days. Although I'm new to the ST environment, I have experience setting up ADC pins on other F series chips without any issues. Am I possibly overlooking something? According to the documentation, it appears that setting up the ADC should be even simpler on the STM32WLE5. Any guidance would be greatly appreciated.#include "stm32wle5xx.h" void ADC_Init(void) { // Enable GPIOB clock RCC->AHB2ENR |= (1U<<1); // Enable ADC clock RCC->APB2ENR |= (1U<<9); // Breakpoint here to check if ADC clock is enabled // Configure PB4 as an analog input GPIOB->MODER &= ~(3U << (2 * 4)); // Clear mode for PB4 GPIOB->MODER |= (3U << (2 * 4)); // Set PB4 to analog mode // Ensure ADC is disabled before starting configuration if (ADC->CR & (1U<<0)) { ADC->CR |= (1U<<1); while (ADC->CR & (1U<<1)); } // Breakpoint here to check if ADC i
Hi, for a remote dev environment I need to connect to the on-board stlink remotely.when trying to connect I get this error: I already tried this forum solutionhttps://community.st.com/t5/stm32-mcus-boards-and-hardware/how-to-deal-wirh-could-not-verify-st-device/td-p/234230 but the issue persists. Any hint?
I'm working on stm32wl55 Nucleo-64.I have doubts regarding the mechanism by which the duty cycle control is implemented in the project.I am sending a test LoRa message with a payload of 231 Bytes, using DR5 and SF7 every 10 seconds (whereas a 1% duty cycle should enforce a retransmission approximately every 36 seconds).What happens is highlighted by the log below:###### ========== MCPS-Confirm =============###### U/L FRAME:0042 | PORT:10 | DR:5 | PWR:7 | MSG TYPE:UNCONFIRMED450s717:TX on freq 868100000 Hz at DR 5450s725:SEND REQUEST451s109:MAC txDone451s110:RX_C on freq 869525000 Hz at DR 0456s086:RX_1 on freq 868100000 Hz at DR 5456s133:IRQ_RX_TX_TIMEOUT456s133:MAC rxTimeOut456s133:RX_C on freq 869525000 Hz at DR 0457s137:RX_2 on freq 869525000 Hz at DR 0457s335:IRQ_RX_TX_TIMEOUT457s335:MAC rxTimeOut457s335:RX_C on freq 869525000 Hz at DR 0###### ========== MCPS-Confirm =============###### U/L FRAME:0043 | PORT:10 | DR:5 | PWR:7 | MSG TYPE:UNCONFIRMED460s725:TX on freq 868500000 Hz at
Hello Guys, We are trying to set maximum power for BLE i.e +6 dbm. After setting the power, we are getting max power of +1.74 dBm only. This was measured at the RF output of the SMA connector in the STM32WB55 Nucleo Board dev kit. Below is the code snippet used for setting the BLE power.status = aci_hal_set_tx_power_level(1, 0x1F);if(status==0){ printf("Power Set is +6 dbmis : \r\n");} Looking forward for your response. @rapoorv Regards,Sharanu Patil
HelloI have tried to update the FUS, BLE Stack, and the default client app on the dongle.I have now done this several times, with the Clent App not doing what the UM says.But the issue now is that the USB Dongle in Boot0 mode is not seen by windows (--> Cube Programmer).If I move the switch to std mode, no difference. Only the green LED lights on the dongle.Have I bricked the device? or is there a process to bring it back.Thank you.Giri
Start FUS: worksRead FUS info: works (see screenshot)Neither firmware deleting nor Firmware upgrading is possible with my STM32WB55 Nucleo board.Always receiving FUS_STATE_ERR_UNKNOWN.Can you please advise how to proceed?Below you can find the option bytes of the board:STM32_Programmer_CLI.exe -c port=SWD -ob displ-------------------------------------------------------------------STM32CubeProgrammer v2.16.0-------------------------------------------------------------------ST-LINK SN : 0669FF545057717867195119ST-LINK FW : V2J43M28Board : P-NUCLEO-WB55Voltage : 3.26VSWD freq : 4000 KHzConnect mode: NormalReset mode : Software resetDevice ID : 0x495Revision ID : Rev BDevice name : STM32WB5x/35xxFlash size : 1 MBytesStart Address : 8000000Device type : MCUDevice CPU : Cortex-M4BL Version : 0xD2Debug in Low Power mode enabledUPLOADING OPTION BYTES DATA ...Bank : 0x00Address : 0x58004020Size : 96 Bytes██████████████████████████████████████████████████ 100%Bank : 0x01Address : 0x58004080Size
Dear ST,We found that when we execute NVIC_SystemReset(); there will be a random CPU hang. In order to eliminate the problem of whether it is developed for our program,I used the lorawan at slave routine, and after compiling it directly,When I execute the ATZ command, it will reset the module. It may succeed the first time, but it will almost hang the CPU the second time.I am using SDK V1.3 version.Please tell me how to solve this problem.
According the the Lora Logo guide from Semtech, one can apply on the use of the logo if one is using a RF IC of Semtech. https://blog.semtech.com/how-to-name-and-brand-your-lora-applicationDoes this also hold true for the STM32WLE which integrates Semtech technology?
From RM0461, Reference manual, STM32WLEx advanced Arm®-based 32-bit MCUswith sub-GHz radio solutionIs it correct that there are TWO RTCs inside STM32WLE5JCI6TRa) one is the normal STM32 RTC and just call RTC in many ST application notesb) the other is a seperate "Sub-GHz radio RTC" on third party "silicon"Many thanks----a) STM32 RTC is section 30 of the Reference Manual, Real-time clock (RTC)b) The OTHER is section 4.10.51 to 4.10.54 4.10.51 Sub-GHz radio RTC control register (SUBGHZ_RTCCTLR)Address offset: 0x902Reset value: 0x004.10.52 Sub-GHz radio RTC period MSB register (SUBGHZ_RTCPRDR2)Address offset: 0x906Reset value: 0x004.10.53 Sub-GHz radio RTC period mid-byte register(SUBGHZ_RTCPRDR1)Address offset: 0x907Reset value: 0x004.10.54 Sub-GHz radio RTC period LSB register (SUBGHZ_RTCPRDR0)Address offset: 0x908Reset value: 0x00
Hello, I am working with RAK3172 which has STM32WLE5CCU6, from CubeMX I am enabling it's SUBGHZ_Phy functionality. But after code generation I am seeing there are two files "app_subghz_phy" and "subghz_phy_app", what are the differences between these two? Which files needs to be modified if I want to control the radio layer? Thank you.
I use the CUBEMX create a project of BLE and FreeRtos , when i send aci_gap_update_adv_data ,it return 145,I don't find the meaning of code in the aci/hci interface.And i can see it in the BEL profile App, But I can not connect it. it return connect time out or cannot establish connection.Below is the print debug infomation �Wireless Firmware version 1.14.0Wireless Firmware build 5FUS version 1.2.0>>== SHCI_SUB_EVT_CODE_READY>>== WIRELESS_FW_RUNNING >>== DBGMCU_GetRevisionID= 2001 Success: SHCI_C2_BLE_Init command==>> Start Ble_Hci_Gap_Gatt_Init function Success: hci_reset command Success: aci_hal_write_config_data command - CONFIG_DATA_PUBADDR_OFFSET Public Bluetooth Address: 00:80:e1:26:c8:e1 Success: aci_hal_write_config_data command - CONFIG_DATA
Some odd behavior I experience with STM32WB peripheral. Bonding list was cleared, after having been boned with a master. Now when same master connects to me, I get a connection and an immediate disconnection! What may be the cause? How to prevent that behavior when clearing Bonding list on my side?
I have an issue where I can't obtain values near 2048 in the 12-bit ADC sampling of stm32wb5mmg. The actual data is shown below. hadc1.Instance = ADC1; hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; hadc1.Init.Resolution = ADC_RESOLUTION_12B; hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc1.Init.LowPowerAutoWait = DISABLE; hadc1.Init.ContinuousConvMode = DISABLE; hadc1.Init.NbrOfConversion = 1; hadc1.Init.DiscontinuousConvMode = DISABLE; hadc1.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T2_TRGO hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING hadc1.Init.DMAContinuousRequests = DISABLE; hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; hadc1.Init.OversamplingMode = DISABLE; sConfig.Channel = ADC_CHANNEL_13; sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.SamplingTime = ADC_SAMPLETIME_12CYCLES_5; sConfig.SingleDiff = ADC_SINGLE_ENDED; sConfig.OffsetNumber = ADC_OFFSET_NONE; sConfig
I would like to connect a stm32wb55 as a BLE client and a stm32wb15 as a BLE server ? Is there any example how to make a point to point connection between these microcontrollers ?
Hello, I have a trouble using the listening mode of the Sub-GHz radio module to wake-up the STM32WLE5CCU6 MCU from the standby mode. My MCU is configured to wake-up on RFIRQ (EWRFIRQ = 1).My radio module is configured in listening mode with a 15 seconds RX period and 105 SLEEP period. All the IRQ are disabled with the Cfg_DioIrq() function except RX_DONE.However, my MCU is wake-up (reset) each time after RX period duration (15 seconds here).So I have the feeling that even if the "RX or TX timeout" IRQ is disabled, the IRQ is forced by the radio module and wake-up the MCU. Is there any trouble in my configuration ? Is it possible to use the listening mode when the MCU is in standby mode ? Best regards.
Hi, I have a custom board with a STM32WB5MMG module.This board is very simple. It is a Bluetooth dongle which act as an intermediate between and a serail bus for an other board.In some case, almost one time in 10, at power up, the dongle still stuck in a state where it can't connect to the counterpart.------------------------------------------The program is based on "Custom Template" from the "Server Mode" in the STM32_WPAN configuration.For now, the behaviour is very simple :- I have a server named FS.01 (Bluetooth short local name)- I have a scanner named HS.01 (Bluetooth short local name)- the scanner search FS.01, connect to it , discover all services associated and wait data from server through notifications.------------------------------------------As you could see in the log below (I add some makers [?] for clarity) :the start of the MCU is going well[1] the program still some several seconds at "** START GENERAL DISCOVERY (SCAN) ** ". When the program working correct
Dear ST experts,I am developing a Zigbee wireless solution where I have a coordinator and several Zigbee routers and end devices from different manufacturers. My coordinator is a HMI, and one of its capabilities is to display the connection quality of the Zigbee devices on its UI. This connection quality value is based on RSSI, and all devices in my network are configured to report their RSSI once per specified amount of time.One of the types of my Zigbee devices is the Zigbee router developed by our company based on STM32WB55 and my problem is that these routers are not able to report RSSI value because this attribute is not reportable in STM32WB55. I know that according to the Zigbee cluster library specification, the LastMessageRSSI attribute of the diagnostic cluster is read-only but AN5498 section 3.2.1 says that the user can override the built-in definitions of the mandatory attributes. However, it seems impossible to override the LastMessageRSSI attribute because the diagnostic
Based on the Wiki exemple Connectivity:Zigbee_Binding#Find_and_Bind ,For my application, I need to start manually finding and binding for distinct Endpoints.From the documentation exemple, finding and binding can be started manually from the application by calling ZbStartupFindBindStart() on all endpoints, or calling ZbStartupFindBindStartEndpoint() from a specific endpoint.There is no implementation of the ZbStartupFindBindStartEndpoint fonction, and there is a single way to perform a FindAndBind with M0 :- MSG_M4TOM0_STARTUP_FINDBIND = 0x0022, /* ZbStartupFindBindStart */ (stm32wbxx_core_interface_def.h) Is there any possiblity to bind each EndPoint separately?Thanks for your support
After debugging Window Covering with STM32CubeExpansion_MATTER_V1.0.3, after commissioning with Apple's HomePod, it shows "no response" on the iPhone and cannot be controlled.I debugged that it is calling CHIP_ERROR WiFiDiagosticsAttrAccess::ReadWiFiRssi(AttributeValueEncoder & aEncoder) in wifi-network-diagnostics-server.cpp. Why is it calling this function when it is a threaded device?
Hi to allI got interested on STM32WB55CGU6 which is recently available as a development board found online and in its reference manual I kind of notice that there is no detailed explanation or rather configuration for the Radio CTRL register and BLE Cntrl. Are these suppose to be like this? Any help with you guys. Best regards.
Hello!I'm a university student with some experience with STM.I'm working on an STM32WB55 DevBoard and an STM32WB5MMG-based custom board, they both are programmed with same code when i compile and works perfectly.Regardless, the specific board names are irrelevant (And not worth discussing), just know that i'm working in general with STM32WB BLE products to make the following:-The ADC Samples a value read from a single pin at a frequency of 10kHz, driven via TRGO by TIM2 Timer.-The Sampling occurs with DMA (ADC started with HAL_ADC_Start_DMA), and after it fills an array, the sampling operation stops and restarts on a second array.-In the while the sampling has started on the second array, the first array of samples is transferred via SPI to a Micro SD Card.-Once the second array is filled, sampling is restarted on the first array, and the second is transferred via SPI to a Micro SD Card.-This double buffering ping-pongs from the moment ADC reading with DMA and TIM are started and lasts
I AM USING STM32 WL55JC2 CONTROLLER TO WORK AS A LORA END NODE , I AM WORKING WITH EXCISTING CODE FOR LORA END NODE AND I WANT TO CONFIGURE UART1 , THE CODE IS WORKING UNDER SEQUENCER OS. SO I AM TRYING TO IMPLEMENT UART1 WITHIN THE SEQUENCER OS , UART1 FUNCTION IS CALLED UNDER THE SEQUENCER OS , THE FUNCTION IS CALLING BY THE SEQUENCER , BUT THE UART IS NOT WORKING , I TRIED WITH DMA AS WELL AS INTERUPT , EVEN THOUGH UART IS NOT WORKING.I NEED SUPPORT PLEASE HELP ME .
The directory:STM32CubeWB-v1.19.1/Drivers/CMSIS/Device/ST/STM32WBxxis empty. There should be an "Include" directory here.This missing directory means that some of the BLE programs (BLE AT Server) cannot compile.I was on the P-NUCLEO-WB55.Nucleo platform.The cproject file refers to:<state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include</state>=====Related problem:directory: STM32CubeWB-v1.19.1/Drivers/STM32WBxx_HAL_Driveralso does not have the Inc directory but the cproject file has:<state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Inc</state>====Bottom line, none of the BLE examples run with v.1.19.1 for the P-NUCLEO-WB55.Nucleo platform.
Good afternoon, I am currently working with the STM32WB5MMDK. Upon verifying the documentations, I couldn't find any mention of a JTAG interface for debugging purposes. I wanted to know if the JTAG pins can be used for programming and debugging as SWD pins. Could you please confirm whether the JTAG interface is available for debugging on the STM32WB5MMDK? Thank you, Best regards Nour
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.