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 have read AN5289 and it does touch on the subject but there is not enough detail in it to get to a working solution.From my code: /** * Initialize authentication */ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.mitm_mode = CFG_MITM_PROTECTION; BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.OOB_Data_Present = 0; BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMin = 8; BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMax = 16; BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Use_Fixed_Pin = 1; BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Fixed_Pin = 111111; BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.bonding_mode = 2; I would infer that a fixed pin is required and that fixed pin is 0x111111 but that is not the case.Thanks for any help.-Louis
Hello,I open this thread to tell you about one issue I've been having with my implementation of EN-I-CUBE_LRWAN code on a custom board using the STM32L052 MCU.I started with the End_Node example on the L053-Nucleo's folder, and made it work, with an interruption on the PA1 pin, in conjunction with the usual timer wakeup. However, a new version of the board changed this specific pin definition, making me switch the interrupt to the PB4 pin. This time, working behind a pull-up aswell. Changed Rising trigger to Falling and the pull configuration in the GPIO config. Disabled LowPower to debug the interrupt in isolation and it worked without issue.The problem came with I enabled LP again. It doesn't seem to enter the interrupt handler. I know of this because the board has a buzzer which should beep everytime it enters that Handler (Thing that happens when LP isn't enabled). What may be happening? As the previous interrupt worked and this one isn't, I'm kinda lost as in why this isn't workin
Hey everyone,I'm having trouble on my STM32WB55RG custom board.Using version 1.7 of the Cube FW package, my board worked properly. But one day, my device was not discoverable in Bluetooth (I suspected that I deleted it whith my custom bootloader, but I verified the code and don't see how that's possible :\ ).I looked into the copro binaries and everything seems fine...I tried programming the examples that I had, but it does not work: my phone does not find the STM32WB.I might have some old WB samples, as I had a problem with flash that was only related to the first samples (see here: https://community.st.com/s/question/0D50X0000AvfFNKSQ2/why-error-flashsr-is-set-and-block-erasing-flash-memory )I have 3 other cards from the same batch where the memory section where the FUS is supposed to be is readable. Those 3 cards have a very suspicious behavior that I suspect being related to it... They are currently being transported to meWith all of that I am a bit concerned that my board is simpl
Hi, I tried to follow the workshop to start developping with my P NUCLEO WB55.The only thing is that the used firmware is 1.0.0. or something close...I'm pretty sure the 1.7.0 is introducing new cube ide improvement... but i'm really having hard time making it works...It seems that the generated code is not fully working directly. I'm struggling trying to figure out what's missing or what's wrong with just a simple custom ble service.I think i found that (just like the old workshop), it is needed to start the sequencer in the main.c file and insert lines in the stm32wbxx_it.c file... But how are we supposed to figure this out by ourself ? Best regards,
I am using a STM32WB50CGU5, when erasing flash memory where my settings are stored, the BLE connection breaks. It happens even if I erase only one page (number 96).I think the two CPU conflicts doing flash operations, but the datasheet reports:"The embedded Flash memory is shared between CPU1 and CPU2 on a time sharing basis. A dedicated HW mechanism allows both CPUs to perform Write/Erase operations."What can I do to fix this problem? Is it a BLE stack problem?
I'm trying to use Zephyr for development on the nucleo_wb55rg board. While doing this I noticed the problem described in:https://github.com/zephyrproject-rtos/zephyr/issues/27348I think that the sequence firmware flash writes matters. Writing stm32wb5x_FUS_fw.bin and then stm32wb5x_BLE_Stack_full_fw.bin works. But not the other way around. Could someone tell me why the order of writes is important?
Hellothe code generated by STM32CubeIDE version 1.4 with FW package STM32WB 1.8 for BLE application "Router profile" and "Router mode enabled" does not work: It cannot be scanned and connected by smartphone application.The reason (to my opinion after some investigation) is that the default clock configuration when creating new project does not work. I changed it as in distributed sample code to:RTC/LCD Source Mux -> LSERFWKP Clock Mux -> LSESMPS Clock Mux -> HSEWith these changes, the device can be connected.In addition, there are many differences of distributed sample code "BLE_p2pRouteur" (french word ;) which also does not contain the sub directory with binary reference as other sample projects.STMicroelectronics should change the code generator, so that the code work "just in time".Also there should be no difference (e.g.: detected by meld, diff or other tools) between generated and distributed code.Best regardsPaul
As far as I see, the wireless stack can be installed at any location.Currently the Release Notes for the Coprocessor Binaries give an address to install them to, depending on the part flash memory size.For example the BLE_Stack_light install location changed from version 1.6.0 to 1.8.0When updating the wireless stack in the product (i.e. without deleting the old stack) and the new stack is larger than the previous one, AN5185 states: If new image size > current image size: WirelessStackAddress - (2xImageSize – WirelessStackSizeIs the additional storage used temporarily? Or is the new stack installed below the current one?In the latter case: would it be sensible to initially install the stack at a lower address to allow updates "in place" when the wireless stack size changes?
Hello.I am involved in the F/W development of STM32WB55/STM32WB50. Since the load on CPU1 is likely to be high for the F/W of CPU1 (M4), we are thinking of reducing the load on CPU1 by performing operations related to wireless communication with CPU2 (M0 +).I searched for tools for F/W development of CPU2, IEEE802.15.4 protocol stack library, and sample code, but could not find them. Is it possible to develop an F/W for CPU2?
Hello,In STM32WB exemple BLE_HeartRate, i can see the name of HeartRate service on my phone (like image). But when i create my own service, how can i set a name for it ?Thank you.
Hi, I have to accomplish AWS IDT Qualification for FreeRTOS based STM32WB55 Board. I have followed the provide Porting Guide link and successfully ported Amazon FreeRTOS . Now as I'm heading towards AWS IDT for FreeRTOS in provided link https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html Query 1: I would like to know the settings in userdata.json for below mentioned scripts. Also commands and usage of running the source build.sh and flash.sh scripts for Provided FreeRTOS Code. "buildTool": { "name": "make", "version": "v1", "command": [ "</absolute-path-to/build.sh> {{enableTests}}" ] }, "flashTool": { "name": "stmflash", "version": "v1", "command": [ "</absolute-path-to/flash.sh> {{buildImageName}}" ], "buildImageInfo" : { "testsImageName": "<tests-image-name>", "demosImageName": "<demos-image-name>" } }, 2.Any referece Guide which provide referece to build the Source Code and Flash Sou
Thre is an example “Thread_Coap_Generic that works very well. However, I’d like to increase Tx Power to improve de distance communication between the boards.I saw in the Middleware folder, there is a radio.c file. In this file, talk about configure Tx power.Is there anyone has set up or made it work?
Hi,I have created in the past several custom bootloaders with KEIL and IAR for STM32F2,F4 and F7I am now working on the WB55 with Atollic 9.3 I have a boot loader skeleton, a running application each running as stand alone without issues.I have set the VTOR register and updated the linker files.I have triad to follow the Atollic document "Working with bootloaders on Cortex-M devices" but so far with no sucess.When the bootloader does the jump the application is not running ..Is there any other document or example for the WB55 ??Thanks,Noam.
I use the Board B-L072Z-LRWAN1 and i made o new project with Target "B-L072Z-LRWAN1". How can i now use (import) the LoRaWAN-Examle in the St32CubeExpansion_LRWAN_V1.3.1?Greetings E_T
Hello, I need some help with getting the CFG_FAST_CONN_ADV_INTERVAL_MIN and CFG_FAST_CONN_ADV_INTERVAL_MAX in app_conf.hI am using Custom Template with Non connectable and no scan response.I have tried to call ret = aci_gap_set_discoverable( ADV_TYPE, My_Advertising_Interval_Min, My_Advertising_Interval_Max, BLE_ADDR_TYPE, ADV_FILTER, 0, 0, 0, 0, 0, 0);inside the app_ble.c and the function is called with return value of F and the Intervals are not updated.Can someone help me please with this problem and Thanks in advanced.
I am using STM32WB55 Nucleo Pack (STM32WB55RGV6 MCU) and STM32Cube_FW_WB_V1.3.0 SDK, I uploaded BLE_MeshLightingDemo code (without any edit) and provisioned the node using ST BLE Mesh app , all the elements in a node shows simillar models.I want to to run different models on different elements in a single node, help me please....
I am wanting to use stm32L476rg - a nucleo decelopment board that does not include SPSGRF. I am working on learning to communicate via SPSGRF from the nucleo to the STM32 IOT discovery kit - which includes SPSGRF integrated.Please comment on what files or code you would look at to integrate this library. The readme in the P2P_demo folder only tells me that it is easy to do - and it probably is. I'm using Keil in case that matters.Thank you in advance for your time.Frankhttps://www.st.com/en/ecosystems/x-nucleo-ids01a4.html#tools-software
I need to remote update the wireless stack. I read in the AN5270, AN5247 that this can be done only by FUS. I am already able to write in an opportune unprotected Flash location the new wireless stack, but i have not found how to communicate to the FUS FW where it is written and what to do, before launch it with the function SHCI_C2_FUS_GetState. I am looking at the application BLE_Ota contained in the firmware package 1.8. I have understood how the FW is passed via BLE between the 2 devices, but i have not understood how to set registers or flash part to tell the FUS where to write what.NB: my client is another STM32WB, not an Android Application or STM32CubeMonitorRF, so i can't use the BLE_Ota application as it is.Thank you in advance!
I am working with BL072z LoRa discovery kit which has ATSlave LoraWAN stack V1.1.0 flashed on it.AT commands are send over LPUART from host controllerGateway is used to connect to TheThingsNetworkI am using AT+JOIN command to join the network and send data and go to sleep on host controller.The power to discovery kit is always ONAfter, I wakeup from sleep I re-configure the LPUART and send AT+NJS=? to check if network is still joined.This returns status 0 meaning no network joined. Then I again send AT+JOIN and check network status using AT+NJS=? which shows it a success.I am not able to understand as to why do I have to send the join request again after wake-up?TheThingsNetwork shows that device is always connected.
Hello,i need to run a general purpose timer on STM32WB55, the Problem is when i enable the BLE in CubeMX the timer doesn't work anymore, even with or without an interrupt.Can someone help me please. Thanks.
When trying to refresh IWDG when it has not been initialized, causes the FLASH->SR->CFGBSY bit to get stuck on SET. It will not return to zero ever.Also mentioned in this post: https://community.st.com/s/question/0D50X0000Bh5LOVSQ2/trouble-programming-flash-with-halflashprogram by JHuan.1I couldn't find anything in the reference manual, nor in the errata sheet of the STM32WB55 cpu. Is there a link between IWDG and FLASH that I'm not aware of? Or how could IWDG have any effect on FLASH?
Hello,each time I open the ioc file of a STM32WB project, the clock configuration is reported to have an error in SMPS Clock Max (HSI is selected). When I click "Resolve Clock Issues", HSE will be selected. When I save, close and reopen the ioc file, the "correction" is lost and the same error is reported.I presume that this is an error in CubeIDE, which does not save the change...Best regardsPaul
Hi:My platform: STM32WB55CE.I'm using internal clock.I have rigged the TIM2 with an interrupt function. The interrupt could fire, but it will be fired right after all the initialization were done. More over, no matter how I change the prescaler value or the period value for TIM2's init struct, the interrupt seems always fire at the same short, <1second interval. I don't know where to begin, this is quite strange! Did I configured the wrong clock source? I heard that if you designated the wrong clock source the timer shouldn't work at all. Please help!
In my code i try to delete a flash mem page using if(HAL_FLASHEx_Erase(&FlashErase,&PageError) != HAL_OK)but always got an HAL_ERROR because in this function (which is called in HAL_FLASHEx_Erase...)HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) { uint32_t error; uint32_t tickstart = HAL_GetTick(); /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. Even if the FLASH operation fails, the BUSY flag will be reset and an error flag will be set */ while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY)) { if ((HAL_GetTick() - tickstart) >= Timeout) { return HAL_TIMEOUT; } } /* check flash errors. Only ECC correction can be checeked here as ECCD generates NMI */ error = FLASH->SR; /* Check FLASH End of Operation flag */ if ((error & FLASH_FLAG_EOP) != 0U) { /* Clear FLASH End of Operation pending bit */ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); } /* Now update error variable to only error val
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.