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'm trying to get the STM32WB custom BLE example working in low power mode with no success.Running the stock example from the latest version (1.15.0) with no modifications except the following in the app.conf:#define CFG_LPM_SUPPORTED 1#define CFG_DEBUGGER_SUPPORTED 0#define CFG_DEBUG_BLE_TRACE 0#define CFG_DEBUG_APP_TRACE 0The application works but for some reason the CortexM4 never stays in stop2 mode, it skips right over the __WFI in the sequencer Idle function. I can confirm it doesn't stay in stop2 because I added a toggling IO to see when CM4 is sleeping and it is always togglling.From my understanding once the BLE stack is started, CPU1 should be able to stay in stop2 mode ( not toggling the IO) while CPU2 is still advertising, right?Or maybe my understanding is wrong and CPU2 does indeed need to wakeup CPU1 on every advertising packet? Which would be contradictory to what is explained in this tutorial video on measuring
2 years ago it happened that the controller turned to brick. I corresponded with technical support for a long time and I was offered to send the controller to the factory or representative. But since the case was a single one, I did not take advantage of this case and forgot about it.Now there is a situation that, probably, everyone who uses this chip has, namely, that for unknown reasons it turns into a brick.I re-read all my messages in the STM community, but to my surprise, the post in which I described the transformation into brick disappeared.Today I have about 70 controllers with which I cannot do anything because they are not programmable.I decided to understand the reason and found it.The reason is well described in the post:https://community.st.com/s/feed/0D53W000010si7oSAA?t=1676280731376But for all this time, not a single STM employee has given a clear explanation of why this is happening.The question is simple: why sometimes, after loading the stack, the chip register SFSA
I've gotten my STM32WB55 into a state where CPU2 is booting into a "wireless firmware" area, but I think it's crashing when it starts. I can no longer talk to FUS inside CPU2:------------------------------------------------------------------- STM32CubeProgrammer v2.5.0 ------------------------------------------------------------------- USB speed : Full Speed (12MBit/s) Manuf. ID : STMicroelectronics Product ID : DFU in FS Mode SN : 205434853236 FW version : 0x011a Device ID : 0x0495 Device name : STM32WBxx Flash size : 1 MBytes Device type : MCU Device CPU : Cortex-M0+/M4 FUS state is FUS_ERROR FUS status is FUS_NOT_RUNNING getFUSstate command execution finishedstm32_programmer_cli -c port=usb1 -ob displ ------------------------------------------------------------------- STM32CubeProgrammer v2.5.0 ------------------------------------------------------------------- USB speed : Full Speed (12MBit/s) Manuf. ID : STMicro
I successfully implemented a service with different characteristics. However on the android side when I call getDescriptor()descriptor =characteristic.getDescriptor(UUID.fromString(CLIENT_CHARACTERISTIC_CONFIG)); CLIENT_CHARACTERISTIC_CONFIG = "00002902-0000-1000-8000-00805f9b34fb";It always returns null. I need this to set the notify command to be true. In the ST BLE Toolbox, this works perfectly. So in principle, this should be able to be called. It seems that I missed a setting in CubeMX.
I'm starting with the wb15. For this I followed the video series and currently I'm stuck at https://www.youtube.com/watch?v=lFDMBeJpib0&list=PLnMKNibPkDnG9JRe2fbOOpVpWY7E4WbJ-&index=15Even following every step in the cube setting I'm not getting any advertising from the board. I turned on the debug to monitor the logs of the m4 core but nothing appears.In comparison I took the Heart Beat example project, applied the same steps in the ioc-file and managed to fullfill this tutorial and get log from the debug. For learning purposes however I want to do this from sketch.It seems that appart from the cube settings to generate the code, the app which launch the BLE needs some commands in the C/C++ files. This however is not mentioned in this tutorial series.
..
In my testing, I programmed two NUCELO-WL55JC2's to communicate with one another. I found that I could only receive if the transmitter antenna was aligned and touching the receiving antenna.After further debugging, I traced the issue to the LPO.Using the low power output (even at +15dBm), gave greatly attentuated transmissions. The two antennas had to be touching.On the other hand, using the high power output (even at only +14dBm), I could transmit at range.Have I missed a setting for transmission? My process was based on RM0461.
I've been experiencing an issue where sporadically the aci_gap_set_discoverable fails to start due to a command disallowed error (similiar to this) on the STM32WB50.For context: the device goes into sleep mode and wakes-up 100+ times per day. In sleep mode the device advertises in low power mode (min: 546.25ms, max 760 ms). When woken it will advertise in fast mode (min: 20 ms, max 25ms). These parameters perform well.Before going to sleep mode all active connections are disconnected and this is verified by checking all the link statuses using aci_hal_get_link_status. Once every so many days the device will run into an error that it can't start advertising even though all links appear to be non-active and the advertising parameters are correct.What additional steps can I take to debug this problem? FYI, the device is running STM32CubeWB 1.15.0
I'm busy debugging the RF conditions around my LoRaWAN installation.I get a lot of variance in both RSSI and SNR (+-10dB/+-6dB) and am trying to find it's source.In the absence of an SDR and other equipment, is it possible to read and report RSSI and SNR continuously. Ideally I'd like to distinguish Beacon and Data packets that come flying by.This would enable me to assess whether or not there are competing private networks that are impacting my QoS.I understand that the contents are encrypted, and have no interest in that data.I also understand that this data may never leave the transceiver chip, being first filtered out by the DEVEUI mask and possibly APP Key.Do I need to look at the other modulation modes as well (FSK, CW, Sigfox) since they may contribute to noise.
HiI just bought a B-L4S5I-IOT01A Discovery kit.Confession: I am completely new to ST, and I reckon I have a mountain of learning to do in a short time.However, I just read the blurb on the back of the kit and it essentially says: 1. Verify the jumpers are in the correct position 2. Connect to USB 3. Open terminal and enter Wi-Fi details 4. The loaded demo app will then connect to the Wi-Fi and the demo app will start an HTTP server.Well, I did steps 1, 2 and 3 and waited. But every time I try, I get the following:ERROR : es-wifi module NOT connectedThe complete output is output was as follows:Running HTML Server testeS-WiFi Initialized.eS-WiFi module MAC Address : **:**:**:**:**:**Already configured SSID: *** (WiFi) security: 2Press board User button (blue) within 5 seconds if you want to change the configuration.Connecting to ****** (WiFi)ERROR : es-wifi module NOT connected
The errata sheet ES0500 - Rev 4 mentions a workaround for 2.8.3 DMA stream locked when transferring data to/from USART where bit 20 of register DMA_SxCR shall be set. This register is not mentioned in the reference manual and not in the respective header files of STM32CubeWL.Q1: Is the mentioned errata relevant for the STM32WL5x family?If yes:Q2: How is the workaround implemented, e.g. where is register DMA_SxCR?Thanks!Carsten
Hi, I've got an STM32WB15CCU6 on a custom board and am currently trying to get it to boot from Flash memory after programming it with the STM Cube IDE.Debugging a program in the IDE works perfectly fine, but if I flash it to my microcontroller (using SWD) and remove the ST-Link from it and supply it from a different source, my LED blink demo doesn't run anymore. The BOOT0 pin is on GND via a 10kOhm resistor, this is my pinout from the IDE: I looked up the Option Bytes via the STM Programmer and they all seem to be set correct, as described in the boot process FAQ.In the PCC Tools, the configuration looks as follows: Does the Memory Fetch Type have anything to do with from where the MCU boots during a normal boot process and if so, do I have to set it to F_FLASH? It is currently set to SRAM1. If all of the above are correct that way, what else should I check to get the boot process to run correctly? Thanks a lot in advance!Best Regards, Nik
Hello I have two STM32WL55JC2 boards and I would like to run the PingPong DualCore example available in this WL package folder : I run the .project file on the STM32 IDE and I get this: After adding several missing .h files I manage to flash to the boards but I think I am missing a step.In the tutorial it says: " - Open your preferred toolchain - Rebuild all CM4 files and load your image into CM4 target memory - Rebuild all CM0PLUS files, set PWR_CR4_C2BOOT flag via CM4 and load your image into CM0PLUS target memory - Do the same for second board - Reset the two boards - Run the example on two boards - Open two Terminals, each connected to their respective PingPong Device - UART Config = 115200, 8b, 1 stopbit, no parity, no flow control"It's not working from now on and i think i've missed something but i can't find what."Rebuild all CM0PLUS files, set PWR_CR4_C2BOOT flag via CM4 and load your image into CM0PLUS target memory" i don
I want to send 2 kbyte data using BLE in WB55.Becasue the packet size is limited to 245 byte (it may be 509 byte if change ATT-MTU to 512 but still I couldn't make it.)So, I wonder whether there is good example for this.Could you suggest anything?
How can I check the ATT-MTU of the current connection (not setup)?What coding can I use to check? For example, I want to return ATT-MTU size through USART after measuring it in the microcontroller.
During several trial to use ACI_GATT_Write_Long_Char_Value,I found that the microcontroller dosen't start its BLE advertisement anymore.It only can indicate wireless firmware version.I think that some transmission cause an error.So, I tried to rewrite FUS and Wireless Stack firmware but it couldn't solve the problem.So, I wonder that there is any way to reset microcontroller completely.
HI everyone, I'm working on creating a sequence of files, that everytime the program starts to run, it creates a sequential file of the last one created. But I'm having troubles trying to create a logic that compares the name of the last file and create a sequence of it, and also I want to put constant data at it, so can i put the f_puts function at the main only, or I need to put it in the while? Also, to create a .csv file, It's just name it that way?I'm using a NUCLEO stm32WLThanks in advance!
Hi.I can see that CFGBSY bit is set and reset in some MX peripheral init functions, but the main problem is that it stays set after MX_TIM1_Init and it locks my flash for any operation.Did anybody saw this kind of problem?Any help will be appreciated.Thanks.
Hi, I would like to use USART1 insted of LPUART1 on LoRaWAN_AT_Slave exmaple. But when I try to do this, I can't choose USART1 on Middleware->LORAWAN->VCOM parameter in STMCubeMX (see screenshot).I don't understand why, thus in LoRaWAN_End_Node, it is possible to do that. Maybe this a bug in STMCubeMX?
Hi.I tried to use TAG_OTA_END and TAG_OTA_START from BLE_HeartRate_ota ST project the same it is used in this project to verify the FOTA operation was finished successfully.I added both, PLACE_IN_SECTION in my ble file and also I added this tags in the scatter file.From ble file:PLACE_IN_SECTION("TAG_OTA_END") const uint32_t MagicKeywordValue = 0x94448A29 ; PLACE_IN_SECTION("TAG_OTA_START") const uint32_t MagicKeywordAddress = (uint32_t)&MagicKeywordValue;From scatter file: *.o (RESET, +First) *.o (TAG_OTA_START) *(InRoot$$Sections) .ANY (+RO) *.o (TAG_OTA_END) My problem is that I get warning L6314W: No section matches pattern, and the tags doesn't exist in map file. I am using ARM compiler v6.16.2 (FuSa).Does anyone tried this kind of operation, adding tags to memory mapping?Thanks.
Hi, I have a problem with USB CDC on STM32WB55CE,My Project version is v1.13.& ble stack(stm32wb5x_BLE_Stack_basic_fw V1.15.0)it's all good on WB55CG(1M)but when I use WB55CE(512K)my CDC can work with no ble stack,and it will failure with stack, My computer cant recognize CDC.
I get the following error when I attempt to Build or Clean any project.21:36:49 **** Build of configuration Debug for project BLE_HeartRate **** make -j12 all "make -j12 all" terminated with exit code -1073741515. Build might be incomplete. 21:36:50 Build Finished. 0 errors, 0 warnings. (took 235ms)This is now occurring on multiple projects that previously built. It initially occurred in STM32CubeIDE 1.10. I upgraded to 1.11 and also did a complete uninstall & reinstall. I then generated BLE_HeartRate for the STM32WB-DK board in a new workspace.Are there any configuration files in hidden directories or in the Windows 11 Registry that could be corrupted?
Hy, I'm currently working on a project that requires CAN and that information needs to be sent via wireless, for that reason, I chose the NUCLEO stm32WL board. To make the CAN work I have to use the MCP2515 module, that converts CAN to SPI so that the uC can read it. The problem I'm facing is that there's not much content about this board and much less about the matter. The only library I found is this one: https://github.com/eziya/STM32_SPI_MCP2515).For the project, I need mainly to receive CAN data from another circuit board, and the baudrate of the bus is 500Kbps, which I set on the SPI configuration. However, I'm having troubles receiving such messages, since I can't read any data that is sent. I'm currently using that library, and altered the "stm32f1xx_hal." library for the "stm32wlxx_hal.h" one and with that it should be working. I could use some help to know if I'm configuring something wrong, or if I need to make some changes on the library, or if there's something about the b
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.