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 am using I-CUBE-LRWAN to create a LORA end-node device. But the documentation does not say anything about how to create your own device using this extension. I have two questions:1) Can this extension be integrated into CubeMX?2) Are there instructions on how to use this extension to create your own device?
hi,I need to run a freertos ble project on stm32wb5mm-dk board like "BLE_HeartRateFreeRTOS" example project avaiable for p-nucleo-wb55 board, but there isn't any avaiable and if I try to replicate it from new project it don't work, "APP_BLE_Init()" is never callde, like cpu2 is not started, how can I achieve this?
On debug, the LoRa device gets stuck in a busy-signal loop. What is the part of the chain I'm missing, in config?
..
Hi,I am using STVM32WB5MMG-DK for my project development activities.When I referred the user manual "UM2825", I came to know that the STM32WB5MMG USART1 interface is connected to the UART2 port of the STM32F103 ST-LINK/ V2-1 MCU.Is there anyway that USART1 of STM32WB5MMG can be used for normal serial application related thing and LPUART1 to be used as Virtual COM Port?At present am using LPUART1 to send/receive data packets and USART1 as Virtual COM Port for debug printing(USART1 console)Thanks.
I am new to this area and I just bought two P-nucleo-wb55 boards. When I used the p2p server example, it can work properly and I am able to use my phone to control the on/off of the led. However, when I tried with another sample 'BLE_HeartRate', it can build properly but after I click debug, LED6 become red forever and I can no longer connect to the device anymore. I have also tried to look at it with st-link unity and stm32 targe information becomes always "Detection Failed" after the program 'BLE_HeartRate' is input.I have tried with both boards and they have the exact same problem after clicking debug with 'BLE_HeartRate', so I guess it must be something wrong with this example.But the main problem lays in how can I recover my boards to their original state or if the mcu are already damaged and unrecoverable. I had tried to connect the boot 0 to 3V but nothing seems to happen. Any help would be appreciated. Thank you.
STM32WL55 family devices need unique credentials on a chip-by-chip basis. These include DevEUI, AppKey and AppEUI, as well as Region etc.What strategies are there to permit this provisioning during the manufacturing process?I am thinking of this process, but I would like to hear of others: initially all devices have the same DevEUI, AppKey and AppEUI. They connect to a LoRaWAN application which then sends them new values for DevEUI, AppKey and AppEUI. The device stores these in a sector of its flash memory, set aside as NVM. On subsequent boots, these new DevEUI, AppKey and AppEUI values are used in place of the defaults.What other strategises? Any software available?
The module that was used on this PCB was the STM32WB5MMGI/O was connected according to the datasheet attached for STM32WB55MMGShort found on 3V3 on 6 out of 6 sample prototypes. When module was desoldered from the PCB, the short went away on both PCB and module. Solder bridging was suspected. Post-mfg x-rays showed 3 possible solder bridges, with one of them on 3V3 pin. However, this one was bridged to an unconnected pin.SWDIO and SWCLK were already identified as incorrect connections. There are two schematic attachments, one for before and after this was changed the ECAD. The layout attachments are after the changes.
Hello there!I just modified the PingPong example for the NUCLEO WL55JC1 Board so I have one defined transmitter and one receiver.As you can see in the picture, the Master transmits continuously the bytes "PING" (wich I want to replace later). /* Send the next PING frame */ Buffer[0] = 'P'; Buffer[1] = 'I'; Buffer[2] = 'N'; Buffer[3] = 'G'; /* We fill the buffer with numbers for the payload */ for (i = 4; i < BufferSize; i++) { Buffer[i] = i - 4; } APP_LOG(TS_ON, VLEVEL_L, "...PING\n\r"); APP_LOG(TS_ON, VLEVEL_L, "Master Tx start\n\r"); Radio.SetChannel(RF_FREQUENCY); /* Add delay between TX and RX = time Busy_signal is ON in RX opening window */ HAL_Delay(Radio.GetWakeupTime() + TCXO_WORKAROUND_TIME_MARGIN); Radio.Send(Buffer, BufferSize);The transmition works and the receiver gets into the command "OnRxDone", so they're both synchronized. After OnRxDone status = TX means its again doing a Radio.RX. If this works, again OnRxDone, and so on
Hi,I want to connect STEVAL-IDS001V4M - 868 MHz RF USB Dongle to the computer or, say, raspberry pi, and then I want to connect B-L475E-IOT01A2 to STEVAL-IDS001V4M - 868 MHz RF USB Dongle and transfer data directly to the computer. Is this kind of communication and data transfer possible? I appreciate any help you can provide.
callback:void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ uint8_t i; if (huart->Instance == USART1) //current UART { if (Rx_indx==250) {for (i=0;i<100;i++) Rx_Buffer[i]=0;} //clear Rx_Buffer before receiving new data if (Rx_data[0]!=13) //if received data different from ascii 13 (enter) { Rx_Buffer[Rx_indx++]=Rx_data[0]; //add data to Rx_Buffer } else //if received data = 13 { Rx_indx=0;
HII am doing experiments with board P-Nucleo WB55, in particular I wanted to update the ble firmware in the allowed ways:1 - Connection in dfu mode via usb with the cube programmer gui2 - Connection in swd mode with the cube programmer gui3 - Connection in dfu mode with cube programmer cli4 - Connection in swd mode with cube porogrammer cliInitially I was able to connect in dfu mode (with cn7.5 and cn7.7 in short circuit and jp1 on usb mcu), and in device manager I saw the dfu device, from a certain point on it no longer recognizes the dfu mode, not even on another pc where a similar card is recognized correctly, and in the device manager nothing happens when I connect it. This prevents me from doing experiments 1 and 3 listed above.For experiments 2 I do everything correctly, so I can update both the fus and the stack, and if I run delete stack and try to load a ble firmware it doesn't work, so it delete the stack as it should be , and if I run update stack and then load a blue firmwa
Having issues with STM32WB55CE FUS and wireless stack update. FUS version:Reading 32-bit memory contentSize : 4 BytesAddress: : 0x200100100x20010010 : 01010100FUS upgrade >STM32_Programmer_CLI.exe -c port=swd mode=UR -fwupgrade stm32wb5x_FUS_fw.bin 0x0807A000 firstinstall=0, getting:Error: Could not execute fwupgrade command, Impossible to install FUS V1.0.1 on256/512KB Flash PartsWireless stack update >STM32_Programmer_CLI.exe -c port=swd mode=UR -fwupgrade STM32WB55\stm32wb5x_BLE_Stack_full_fw.bin 0x08056000 firstinstall=0-------------------------------------------------------------------STM32CubeProgrammer v2.7.0-------------------------------------------------------------------ST-LINK SN : 52FF74067575555041500481ST-LINK FW : V2J37S7Board : --Voltage : 3.26VSWD freq : 4000 KHzConnect mode: Under ResetReset mode : Hardware resetDevice ID : 0x495Revision ID : Rev YDevice name : STM32WB5xFlash size : 512 KBytesDevice type : MCUDevice CPU : Cortex-M4Old wireless stack delete ...W
Hi guys, I am new to BLE and was looking for help finding useful information/examples pertaining to a problem I'm trying to solve. I am looking to connect device 1 (laptop/PC/mobile) via BLE to an STM32WB55 nucleo board, which would then be connected to device 2 (PC/other external device) via UART.The function would be to connect device 1 to the board via BLE, communicate (Via a terminal) a request to send or retrieve packets to or from device 2, which would be relayed through UART between the nucleo board and device 2, and through BLE between device 1 and the nucleo board. (Sending D1 to D2 would be packets containing a few 100 MBs of files, retrieving D2 to D1 would be packets containing debug and similar information).I am somewhat familiar with concepts of BLE due to research, however have little to no experience and minimal complete understanding. Any aid that can be provided to help me solve this issue and improving my abilities and understanding would be greatly appreciated!Kind
I am using B-L072Z-LRWAN1 LoRa®/Sigfox™ Discovery kit. I want to implement broadcast communication using LoRa without gateway(not LoRaWAN). As I could see from the ping pong application sample provided as part of the I-CUBE-LRWAN SDK, that nowhere node address or security key are being used. So I presume it is very much possible to broadcast it to different nodes which are actively listening using just LoRa. Request your thoughts and help on this.
Hi,I am still studying about Low Power mode, according to low power run mode I tried to set V core is in range 2 and set MSI clock in 2MHz in STMWB55. please tell me how to do it?Thank You!:smiling_face_with_smiling_eyes:
I've got custom hardware that needs a wireless stack upgrade to the latest stack, located here:https://github.com/STMicroelectronics/STM32CubeWB/blob/master/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x/stm32wb5x_BLE_Stack_full_fw.binBut I do not know what the correct start address is to use. I have read https://www.st.com/resource/en/application_note/dm00513965-st-firmware-upgrade-services-for-stm32wb-series-stmicroelectronics.pdf and I found the following: 2. Write the wireless stack image in the user Flash memory at the address equal to:– If new install (no wireless stack currently installed): 0x08000000+(SFSA x 4KB) - ImageSize – If a wireless stack is already installed: ◦ If new image size <= current image size: WirelessStackAddress - ImageSize ◦ If new image size > current image size: WirelessStackAddress - (2xImageSize – WirelessStackSize It is advised to perform a FUS_FW_DELETE operation before starting a wireless stack installation. (This is performed by STM32Cube
Good afternoon....I am new to STM32 land. I have a STM32WB55 board I am working with...I am using 16MHz internal clock source, the I2C module at 100kHz, a timer running with 8MHz and some GPIO interrupts. I would like to know how to go about placing the unit into low power mode such that an event (Timer IRQ or GPIO IRQ) wakes up the system, it processes what it needs to in the while loop then goes back to sleep. I am familiar with how to do this in MSP430 land but not in STM32. Can someone tell me what I need to do to accomplish this? Or at the least point me to the correct videos/ documentation for setting up registers for this?Thank youSteve
I am putting all application tasks in block state until successful BLE initialization, still if I add some statements or simply osDelay() in any of task, BLE is not getting on. The code execution is not even reaching to specific statement still why it effects on BLE initialization? I tried to Debug both (success and failure ) case and find one difference, when BLE initialization succeed "IPCC_C1_TX_IRQHandler" this interrupt routine get called , and when fails it wont get called. As this event might be generated by cpu-2 I was not able to further explore. I am able to initialize BLE by some sequence and delay adjustment. But is there any logical & reliable way to overcome this? What can be the root cause behind this behavior?
I'm completely new to the embedded software and want to use STM32WB for my project, which will send image data from USART camera to the mobile phone. For now, I'm researching about BLE (protocols, characteristics etc.) and have no clue about how to use it. I've read the application note AN5289 and it didn't work well for me. Where can I start researching?What should I do?Thanks.
HelloI am working on wb55RGV6 nucelo, I have bought nucleo revision C and I was able to flash it with stmcubeprogammer (stm32wb5x_FUS_fw_1_0_2.bin).I have had a new ,nucleo, a D revsion and I can't flash it, i can't delete firmware, I have tried to apply values's nucleo C revision in option byte and that tells me the following figureNotice : the first screen is showing the defaults values, the seconde is after i set the value's nucelo XB55RGV6 C revision.Could you help me please?Thank you
Dear STI'm working on a custom board, trying to adapt the BLE_HeartRateFreeRTOS to work on a STM32WB55CEU6. So far i have been able to discover and connect to the MCU and call the characteristics in the Heart Rate service:Body Sensor LocationHeart Rate Control pointAs well as the generic and device services.I can see the MCU does receive the HRS_NOTIFICATION_ENABLED/DISABLED notifications, as I'm able to toggle an LED in this callback. It seems like the HW-timer does not run properly. NOTE: the MCU does not crash, it just doesn't notify the client.Setup:MCU: STM32WB55CEU6Code generated with CubeMX 6.2.1Toolchain: MakefileRelevant code:Below is the void HRS_Notification(HRS_App_Notification_evt_t *pNotification) implementation:void HRS_Notification(HRS_App_Notification_evt_t *pNotification) { /* USER CODE BEGIN HRS_Notification_1 */ /* USER CODE END HRS_Notification_1 */ switch (pNotification->HRS_Evt_Opcode) { /* USER CODE BEGIN
HelloI am using an STM32WB55. This microcontroller communicates in SPI with a second STM32F4 micrcontroller.The STM32WB55 is slave and the STM32F4 is the master of communication.During an electrostatic discharge, the SPI communication is disturbed.The master sends the good requests but the STM32WB55 slave does not receive them. The slave SPI is in error, the HAL_SPI_ErrorCallback function is called.In this case, I want to reset the SPI of the STM32WB55 but it doesn't work. I must have a software problem ... I can't find the solution.Here is the configuration of the SPI and the initialization function. SPI1 of the STM32WB55 in slave mode with 2 DMA:- DMA1_Channel2: for sending RX- DMA1_Channel3: for TX receptionThe 2 DMA are linked on two buffers:- COM_spi_drv_hdma_spi1_rx for the DMA1_Channel2- COM_spi_drv_hdma_spi1_tx for the DMA1_Channel3 void COM_spi_init_com(void) { /* Peripheral clock enable */ __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_SPI1_CLK_ENABLE(); /**SPI1 GPIO Conf
To utilize the STM32WB's BLE capabilities we must enable STM32WPAN in peripherals in CUBEMX. Doing so will add the BLE template "p2p_server_app" to your project. This template by default will call APPE_Init() in your main which will in turn call the following ACI API functions to advertise your device over BLE.aci_gap_set_discoverable()aci_gap_set_non_discoverable()aci_gap_update_adv_data()My question is how do I access CUBEMX generated parameters, such as "local_name" and "manuf_data" and that are inserted into "app_ble.c" (located STM32_WPAN -> APP) in my own calls to the listed ACI API functions.More broadly my question is really, what is the best method of implementing control of the BLE connections my STM32WB is making. Should it be done inside of the files generated by CUBEMX such as for registration of tasks using the sequencer inside of "p2p_server_app.c" or is it fine to just do it inside my own custom files? Ref: AN5289
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.