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 try to start a a continuous waveform (CW) from the STM32WB radio using theaci_hal_tone_start command from the DTM suite. I execute the following commands:hci_reset( );HAL_Delay( 10 );aci_hal_set_tx_power_level( 1, tx_pow );aci_hal_tone_start( RF_Channel, offset);which all return success. At that point the ble advertisements stop so it is doing something, but I do not seem to be getting the CW.Am I missing some call to eg 'activate; DTM ? Or something else I might be doing wrong ? (I looked at the PER testbench code, but did not see anything special in the start_TX function of that codebase, there the same steps are done except of course the different last call to start transmitting packets)ThanksBram
* JLink Info: Device "STM32WB55VG" selected.JLink info:------------DLL: V7.66d, compiled Jun 21 2022 17:00:22Firmware: J-Link Ultra V4 compiled Sep 24 2021 16:41:09Hardware: V4.00Feature(s) : RDI, FlashBP, FlashDL, JFlash, GDB * JLink Info: Found SW-DP with ID 0x6BA02477* JLink Info: Failed to power up DAP* JLink Info: Found SW-DP with ID 0x6BA02477* JLink Info: DPIDR: 0x6BA02477* JLink Info: CoreSight SoC-400 or earlier* JLink Info: Scanning AP map to find all available APs* JLink Info: AP[0]: Stopped AP scan as end of AP map seems to be reached* JLink Info: Iterating through AP map to find AHB-AP to use***JLink Error: Could not find core in Coresight setupError: Flash Download failed - Target DLL has been cancelledHow can I fix it?
Hi,For stm32wb flash operations we have to implement diagram described in AN5289, page 36. How about option bytes access? Do we have apply the same approach, with semaphores etc? Or we just can use regular HAL functions? Best,Mateusz
My expectation was that a pin-interrupt using EXTI will lead to wakeup times just slightly longer than the wakeup delays named in the datasheet (below 10µs), but what I see is this (falling edge on yellow finally reached the ISR on the magenta rising edge :(This was measured using an STM32WB55 waking from STOP2.How is this delay explained and can I shorten it while still using stop-mode?EDIT:I tested the reaction from standby mode via a wkup pin as well and it's even a bit faster! (different project so no reverse edges by design)
I am having similar issues with STM32WL54 with boot pin pulled up to 3.3V, it was initially working but suddenly stopped responding. I have tried connecting via a STLink using CubeProgrammer c2.12.0 and STLink Utility v4.6.0.0. Additionally, I have also tried connecting to Jlink as well but STM32 failed to connect. 12:54:42 : Error: No STM32 target found! 12:54:50 : ST-LINK SN : 53FF6D065056705449132081 12:54:50 : ST-LINK FW : V2J40S7 12:54:50 : Board : -- 12:54:50 : Voltage : 3.16VI have assumed that somehow I killed the STM32 because I can connect to another board (same hardware) with the same setup ( both Jlink and STLink v2 connects). Did anyone see similar issue and manage to find a root cause ?
Hello,I have thought to use FreeRTOS with the Bluetooth stack with STM32WB family MCU but it appears it is not possible by the STM32CubeMX if you want to build your custom service.Then, I have to use the SEQUENCER but I have no idea how to use it..... Is there any literature or manual or application note which explains how to use it? ThanksMaurizio
it's returning 0x82.Can someone please help me with this?
The datasheet of the STM32WB5MMG BLE module describes the placement of the module, as well as recommendations for the ground plane on the right side to the module:- The module should be placed in the top left corner- The ground plane should be kept free and provided with vias. My question:What influence does it have on the antenna performance if the board on which the module is mounted has a similar width like the module? I.e. that the board ends directly behind the module (on the left and right side)?Similar to this board:Other electronic components would be placed under the module in the red zone.Or like the Arduino Nano33 (but without the pins next to the module): Thank you very much :)RegardsBenjamin
Hi,can someone help me with how to write a value to the server from the client? which API to useThank you,
Hi,I am using STM32WB55CG6 custom board and configured as cliend and trying to connect with server(ESP32 configures as server).When a button is pressed i am connecting to server =============================================================void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ if(GPIO_Pin == 1) { APP_BLE_Key_Button1_Action(); }}void APP_BLE_Key_Button1_Action(){ UTIL_SEQ_SetTask(1 << CFG_TASK_START_SCAN_ID, CFG_SCH_PRIO_0);}==============================================================As soon as client makes connection with server, client device go to HardFault_Handler.I tried debugging problem is some where in function UTIL_SEQ_Run local_taskset = TaskSet; local_evtset = EvtSet; local_taskmask = TaskMask; local_evtwaited = EvtWaited;I have not modified anything other than the Button press->start scanning-> find my device -> connect.I am stuck at this point can some one please help me with this!!!Thank you,
When uploading a wireless stack image via the ble ota application, how is it communicated to the FUS where the image is located in flash ? At the end of the data transfer, in otas_app.c there is the part where it says in the comments "Request CPU2 to reboot on FUS by sending two FUS command" but as far as I can see image location and size are never communicated to the FUS. In AN5185 it is mentioned when using the programmer you should put it at DownloadAddress = 0x08000000 + (SFSA x SectorSize) - ImageSize - 1xSectorSize so I am guessing this is also the case then when using the ota update, but even then the FUS does not know the image size so it would not know the start address (unless there is a 'footer' section in the image at a fixed location in the end). And on a sidenote, what is the deal with the 2 FUS get status commands after another trigger a reboot ?? Do I understand that correctly ? What are the timing requirements thre, if the processor is preempted by some interrupt betwe
..
I bought the P-NUCLEO-LRWAN3 STM32 Nucleo starter pack for LoRa and it says that if the NUCLEO-LO73RZ board's serial number is within a certain range, which it is, the board must be updated with a new firmware before use. However, the link provided only takes me to the LoRaWAN software expansion for STMCube. So, where can I get the new firmware that I must update the board with?
We made a custom PCB board using STM32WB5MMG. We tried connecting with ADS1299 using SPI, but we are new to this controller. So we didn't know how to enable SPI and transfer and receive data from it.Thanks,
I have a board P-Nucleo55WB and I have to receive data from usart syncronized with external clock. Is it possible?I tried to configure with CubeMX as Syncronized Slave and I see USART1_CK enabled, but this pin is not used for receive the external clock, is it correct?In the generated code I see this /*-------------------------- USART BRR Configuration -----------------------*/ /* BRR is filled-up according to OVER8 bit setting which is forced to 1 */ USART_GETCLOCKSOURCE(husart, clocksource); switch (clocksource) { case USART_CLOCKSOURCE_PCLK2: pclk = HAL_RCC_GetPCLK2Freq(); usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler)); break; case USART_CLOCKSOURCE_HSI: usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate, husart->Init.ClockPrescaler)); break; case USART_CLOCKSOURCE_SYSCLK: pclk = HAL_RCC_GetSysClockFreq(); usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudR
Dear Everyone, I created a custom STM32WB55 board taking hardware consideration from the RF hardware guide. Instead of a discrete matching network that was used on the Nucleo, we used IPD (integrated passive device), which was pretty much the equivalent. Based on pg.32 of AN5165. The schematic and the actual PCB design are shown below. The custom MCU of the custom board was ok, I could load firmware, debug and code just fine, but when I tried the BLE, I could not even detect the device on the BLE toolbox. I tried the Beacon sample firmware still nothing can be seen. Can someone help me with this issue, or has somebody encountered the same problem?I’ve exhausted the net, scouring for a possible solution, but it is hard. That is why I’m asking for somebody’s expertise regarding this.
We made a custom PCB board using STM32WB5MMG. We tried connecting BLE and USB (DFU mode) together using STMCubeIDE, but if we enable BLE USB is not working. But without both are working well independently. We are new to this controller. So we didn't know how to enable both.
I have a WIO-5 mini from Seeed. I bought STM-LINK V2 to program it. But I can't attach it to STM32 Cube Programmer; I read this page Wio-E5 mini - Seeed Wiki (seeedstudio.com), but I found it completely unusable. I tried to connect STM8 wires to that chip, but the cables on the photo are entirely different from those in my ST-LINK device. They have different colors, and the authors of this page don't explain which pin should be attached to WIO-5 pins. I tried to do it in many ways, but STM32 Cube Programmer doesn't;t react to Connect button (without success or fail message)So I have a question, how to program a WIO-5 device using ST-LINK?
Hey Everyone. Happy new year. I hope everyone is okay.I am developing a BLE device using STM32WB55RG.The test board I am using is as follows.P-NUCLEO-WB55MB1355D-01It's my first interaction with STM32WB MCUs so I followed the Getting Started Series video and particular : "STM32WB Getting Started Series: Part 12b, Lab. Receiving data from the phone".I followed all the steps mentioned in the video. However, when it was a time to test the firmware. I couldn't see the device in the ST BLE Toolbox app. Can you guys please help me out, what should I try next? Thanks.
Hello!I am using STM32WB5MMG processor to start working with mass storage class using the internal FLASH memory. However, I have a problem with using the internal FLASH to declare the capacity of the built file system, because the device is detected by the computer, but without obtaining information about its capacity or the size of the allocation unit.I tried to use the advice from this post ("STM32F4 mass storage class with internal flash"), but unfortunately it didn't work.Best regards.
I am trying to setup a ble server on a stm32 board that does not have a lse crystal. I have followed the normal steps and the steps that use the hse crystal instead (https://community.st.com/s/article/configuring-stm32wb-for-bluetooth-le-without-an-lse-crystal). I managed to get this setup to work on a WB55RG board but I am unable to get it to work on the custom board. The generated code gets to initializing the time server inside the generated HW_TS_Init function in the hy_timeserver.c file but it then errors saying “No source available for "<signal handler called>() at 0xfffffff9�?�?. The error occurs in this part of the function./*** Initialize the timer server*/for(loop = 0; loop < CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER; loop++){ aTimerContext[loop].TimerIDStatus = TimerID_Free;}If I stop pause it before the loop I can step through the loop and make it a few lines down before the error happens.When paused I am unable to step any further into the code because the debugger
I have a BLE server derived from the STM provided BLE examples. The server ID that it generates is 00012002FF77. How is this generated? I can't find it anywhere in the code. Should each of my devices use the same ID or should they each generate unique server IDs? If so, how do I do that?Sorry for my BLE ignorance!
The code in question is below. You can see that each of the characteristic handles have an integer added to them prior to the comparison (i.e., + 2, + 5, +1). Why? case EVT_BLUE_GATT_ATTRIBUTE_MODIFIED: { attribute_modified = (aci_gatt_attribute_modified_event_rp0*) blue_evt->data; if (attribute_modified->Attr_Handle == (aDataTransferContext.DataTransferTxCharHdle + 2)) { /** * Notify to application to start measurement */ if (attribute_modified->Attr_Data[0] & DTS_STM_NOTIFICATION_MASK) { APP_DBG_MSG("notification enabled\n"); Notification.Evt_Opcode = DTS_STM__NOTIFICATION_ENABLED; DTS_Notification(&Notification); } else { APP_DBG_MSG("notification disabled\n"); Notification.Evt_Opcode = DTS_STM_NOTIFICATION_DISABLED; DTS_Notification(&Notification); } } //if (attribute_modified->Attr_Handle == (aDataTransferContext.DataTransferTxChar3Hdle + 2)) if (attribute_modified->Attr_Handle == (aDataTransferContext.DataTransferTxChar3Hdle + 5))
Hi,I'm looking for help configuring STM32WB55 as a heart Rate Collector. I'm currently using the Nucleo-WB55RG and the Heart Rate example project only sets the nucleo up as a heart rate device.I'm looking to set the nucleo up as the central device that will connect and collect heart rate info from another off the shelf BLE heart rate sensor.Any help is greatly apprieciated Chris
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.