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
Hello,I have a custom PCB with STM32WB10 with full BLE stack configured with server profile and a custom template in Cube IDE. The problem is that other devices don't see its advertising packets (or maybe are ignoring them), I tried BlueSee on a Macbook, ST BLE Toolbox on an iPhone, and the hcitool on Linux, but the STM32WB10 is not on the list of found device. I also tried other templates available in the IDE with no success.However, when I use the NUCLEO-WB55 in transparent mode with the STM32CubeMonitor-RF to scan BLE devices, I can see my WB10 in the list, I can connect to it and I can also read, write, and notify characteristics, so everything seems to be working.Any ideas would be welcome, thanks
I find that when entering deep sleep using aci_gap_set_non_discoverable(), C2 would not reliably enter the ultra low (~4uA) power consumption mode, current would jump to ~5mA. a) Calling aci_gap_set_non_discoverable() while there is RF activity can cause CPU2 to get stuck in a spin loop and become unresponsive. b) aci_hal_set_radio_activity_mask(0x0002) can be used to obtain an RF event ACI_HAL_END_OF_RADIO_ACTIVITY_VSEVT_CODE to synchronize call to aci_gap_set_non_discoverable() while no RF activity (assuming event is serviced in time; it is only in main() thread). But even after successfully calling aci_gap_set_non_discoverable(), if CPU1 remains in run or sleep mode longer than about 200ms after CPU2 disables advertising, again CPU2 can get stuck in a spin loop.The above issues can occur even if using aci_gap_set_limited_discoverable(); when 180 seconds is up there is a chance CPU2 will again just spin if condition a) or b) at the time. After lookning at ht
Hi there :waving_hand:I am quite new to the topic of developing BLE hardware.My goal of the current project is quite simple:I have a custom board featuring stm32wb55ceu6 and a ambient temperature/humidity sensor.All hooked up including the RF part with an impedance matching network to 50 ohms and an antenna for 2.4 GHz (BLE).Now I would like to read the sensor using i2c and get the values for temp and humidity every let's say 10 minutes.After getting the values I would like to just send out a ble advertisement containing the sensor data in bthome format (so that my home assistant can just read it).There should be nothing else involved. The board is just sending out once every 10 minutes and after sending it goes back to sleep.My question: can you maybe provide me a startingpoint where I can find information about BLE advertisement, etc.? I saw that there is a stm32wpan module but I am not sure if this is total overkill for this simple use case.I am a bit lost with this :(I was ins
Hey there ,Here I am doing a project where, i want to to establish a full duplex communication between two STM32WL55jc, Is it possible to establish such type of of communication where the module should be able to receive and transmit the data simultaneously.
Would Interrupt or DMA consume less cell energy (need months of cell life)for UART and SPI for STM32WLE5JCI6?SPI links with slave sensor chip. Data volume 100 bytes per second.STM32 master SPI clock can choose 2 to 10 MHz as slave sensor specification.MCU stays in power saving mode for most time. Only wake up briefly to do simple processing and back to power saving mode ASAP.Use Sequencer in utility of HAL WL firmware libraryFor these HAL library functions.(+) HAL_UART_Transmit_IT()(+) HAL_UART_Receive_IT()(+) HAL_UART_Transmit_DMA()(+) HAL_UART_Receive_DMA()HAL_SPI_Transmit_IT() HAL_SPI_Transmit_DMA()HAL_SPI_Receive_IT() HAL_SPI_Receive_DMA() Many thanks
Which example 'may be' a better start for reading? Do they use interrupt, DMA and power saving mode?SubGHz_Phy_PingPongLocalNetwork_Sensorhttps://github.com/STMicroelectronics/STM32CubeWL/tree/main/Projects/NUCLEO-WL55JC/Demonstrations/LocalNetwork/LocalNetwork_SensorMany thanks
Hello everyone, I am using a custom board for LoRa operations, where I have used RAK3172 which is based on STM32WLE5CCU6, the Official LoRa SDK from ST is working fine , now I want to develop the same program from scratch,Issue: The module is joining the network server joining continuously(with an interval of 10s) after powering up, how can I program the module to send the join request for 5 or 10 times(just for example) and after joining it will send data to the server with particular time interval.
Dear, all.Im trying to read the trough the forum regarding information about AWS IoT Core and MCU's, same with the mainpage for STM, but the amount of information is so big, that im having some issues navigating to figure out the information i need.My question is that im in planning face for a PCB board where i want to use STM32WB55xx or equivalent chip with Bluetooth capability and i want to use AWS IoT Core when it comes to the PCB's to send information to a MQTT broker etc.Do STM32WB55 or equivalent support AWS IoT Core solution? - I can see from https://www.st.com/content/st_com/en/ecosystems/stm32-cloud-solutions.html#developer-resources there are mentioned some boards, but im having issues figuring out if the AWS is also supported for bluetooth MCS? Regards from Norway!
Hello ST Support Team,I am currently facing an issue with the BLE functionality on my custom board utilizing the STM32WB55CE MCU. While the code works flawlessly on the STM32WB Nucleo EVK, the BLE feature doesn't seem to function as expected on my custom board.Upon further investigation, I observed a disparity in the wireless firmware version and build values between the two boards. When running the code on the EVK, I received wireless firmware version 1.13.2 with a build value of 2. However, on my custom board, both values indicate 0. Meanwhile, both boards display the same FUS version value, which is 1.2.0.I have also tried to re-flashing of BLE firmware but receive the error in flashing.I used following link for reference and follow all steps. Also used "stm32wb5x_BLE_Stack_full_extended_fw.bin" file and address "0x08051000".https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_BLE_Hardware_Setup I tried to flash the BLE stack firmware multiple times but not worked in my
Hi All,I have flashed custom BLE profile code to STM32WB55 and sending dummy values over a service. I am able to see data in the LightBlue App.In LightBlue Application, when READ button is pressed, it displays the data that was sent from firmware.My question is:Does the BLE firmware running in STM32WB55 receives some kind off command when the READ button in application (Light Blue) is pressed?If yes, how to debug that?If not, what is the flow of receiving data in the App. Is it independent of the press / not press of the buttons on application?I am a beginner in BLE deveopments, so please pardon me.Thanks and Regards,Pluto
Hi everybody, how can the CPU1 of module STM32WB5MMG be waken up by the RF subsystem?The idea in mind is to use the module as a BLE Server, have the CPU2 perform advertising while the CPU1 is in STOP2 mode. According to the reference manual RM0434, this could be done? And in the Datasheet of STM32WB55xx, the RF is listed as a possible wake up source as well.Waking up with the the RTC, an EXTI event and EXTI interrupt worked, but the CPU2 stops its advertising shortly after the CPU1 goes to STOP2 mode, even though the low power mode for the CPU2 is disabled. I thought that the CPU2 would continue the adversiting and either the EXTI listed as "CPU2 SEV interrupt..." or "PWR switching on the fly, ..." could wake up the CPU1 if a connection is requested from the client. Obviosly I am missing somehting, does anybody has an idea of what am I getting wrong?Thanks in advance!
Hi all, I think this is a bug of CubeMX. Everytime the .ioc gets updated for the project, the code written for the descriptor characteristics get deleted in the SVCCTL_InitCustomSvc() of the autogenerated custom_stm.c file.I don't know if this issue is konwn or I am missing something while updating the .ioc file. Best Regards.
HI, I am developing my ble audio headphone with STM32WBA55G-DK1.But when i called the CAP_Init function which provided by ST with binary library, the CAP_Init function return BLE_STATUS_OUT_OF_MEMORY. I compared with the STM32WBA55G-DK1 demo applicaiont, but i still can't find the real reason. It is so terrible to program such complex functions with binary library. When we meet trouble, we will have little ways to deal it.
For best EMC immunity and minimum cell current (need months of cell life), how to setup un-used pins of STM32WLE5JCI6? The chip in a module with metal screen box. Pins are 'broken out' to edge of module with pcb trace of a few mm.a. Should we program un-used pins as digital input (internal pull up, pull down or none), digital output (set to zero or one) or analogue input (seem minimum cell current drain as application note)?b. Should un-used pin connect to Vdd, Ground or left open (if it is digital output)?For EMC, the device should function properly near a cellular phone transmitting at maximum power (assume phone is far away from base station). Phone is likely 4G or 5G (and 3G rarely). Not sure if maximum transmit power differ?Many thanks
Hey ST Community!I've been using an LoRaWAN AT Slave example provided by STM32Cube_FW_WL_V1.3.0 on a new Nucleo STM32WL55JC1 board and managed to successfully join the network. Sending data using the AT+SEND=<Port>:<confirm/unconfirm>:<data> command has been smooth sailing, with successful transmissions to the server. However, I encountered a hurdle when attempting to implement downlink communication in Class A mode.Here's the situation: According to TTN guidelines, in Class A mode, after an uplink transmission, the device switches to the receiver window, which consists of two consecutive slots, RX_1 and RX_2, each open for a specific period of time. Now, I want to send a message to the device on a specific port during this receiver window, but I'm facing a challenge.When the device sends data to the server, it switches to the receiver window to await any potential downlink messages. However, since the event +EVT:SEND_CONFIRM is received via downlink, the receive
Hello everyone!MCU : STM32WLE5CCI am reaching out for help to validate an architectural choice! Here is the design part of the MCU datasheet : In our design concept, we planned to power VDD directly from our 2x alkaline batteries and the VDDRF part from a 3.3V DC/DC converter that we can turn ON/OFF. Thus, in stop mode 2 (sleep), we can cut off the VDDRF part (3.3V from the DC/DC) to reduce overall consumption to 3uA. Here is the simplified diagram :We have implemented a modified board, and our results show that 1 out of 5 times upon waking up, we have no signal modulation. No LoRa messages are sent. If we wait for a few minutes with everything powered, the LoRa transmissions start working again. The behavior is random each time.We found this line in the datasheet : Has anyone tried to achieve this scenario before ?Can we have two different voltage sources between VDDRF and VDD? Or is it mandatory for both to be at the same voltage level ? Thans for your help guys !Stéph
Dear ST members, I am developing a BLE application with STM32WB15 that requires entering to standby mode, thus the need to retain some variables. The standard linker script has the RAM_SHARED region defined as per below:RAM_SHARED (xrw) : ORIGIN = 0x20030000, LENGTH = 10KAnd, on this thread, your colleague advises with the remark "Note that the RAM_SHARED section is used (and reserved) to exchange data in between the 2 cores". I can only conclude that my application shouldn't use this region and I must define my own region on the linker script using some of the remaining sectors of SRAM2a. Now, with STM32CubeProgrammer I was able to read the security configuration option bytes and it shows me the following:SBRSA_B, Value=0x0, Address=0x2000b000SBRSA_A, Value=0xA, Address=0x20032800QUESTION 1 - Having SBRSA_A pointing to 0x20032800 means that there are no more free sectors on SRAM2a. How is that possible?QUESTION 2 - The datasheet specifies that SRAM2b
Hi all,If I want to increase transmit power when press button, how to do it?1. Do I stop or DeInit something?2. which API can change power?Thank you
Hello, I am working on a new design using the STM32WBA52CGU6, but I have not found a specific value for the RF output impedance of stm32wba,How do I match it to 50 ohms?
Hello everyone, I have a problem with Nucleo-STM32WB55RG. I am trying to make an OTA Firmware application but for starting I am trying to make bluetooth application. I'm trying to reboot it using ST BLE Toolbox and it works good. But when I add 2 more service and 5 more charachteristic in total it stops working. Actually sometimes it is working sometimes it is not and when I connected it after 40 seconds it disconnects randomly. Can anyone inform me about these situation if anyone knows how to fix it. You can see my ioc in attachements.
I am running into some trouble with a STM32WB while using a custom GATT server and attempting to disconnect from an Android device. The core issue is that the CPU2 has turned on the HSE. This is known because the HSERDY bit is set while the HSEON bit is off. This is causing ~0.5mA of extra current draw. Below is what I have investigated:Scenario 1:I am attempting to disconnect from an Android device by calling aci_gap_terminate(connectionHandle, 0x13) which returns 0x00. After terminating the connection I expect to see a HCI_DISCONNECTION_COMPLETE_EVT_CODE event generated in SVCCTL_App_Notification() as stated in an5270. The Android device observes and reacts to the disconnection. I believe this leaves CPU2 in a bad state as calling aci_hal_get_link_status(status, link_handle) returns 0x02 and the corresponding link handle. In an5270 a return status of 0x02 says that the STM32WB is connected in the peripheral role. Is my understanding correct that I should see
Any advice on where to start to track down an issue related to a custom BLE server not functioning on custom hardware? I am using the STM32WB35CEU6A and have flashed the firmware and wireless stack as well as followed this guide: CubeMX Initialization (of course changing the hardware configuration to match my custom hardware). I understand this guide is catered towards the STM32WB55, but I cannot even see the BLE server on my peripheral devices. I have tried the debugger to track down the issue, but it just loops through UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);Any advice on how to proceed? Is there a way to debug the other core? Where can I put a printf() to check that the BLE application is running smoothly, to confirm that the issue is not hardware-related?Thank you!
I am attempting to connect to the STM32WBA55CG using a JLink Compact Plus following the following instructions from SEGGER: https://wiki.segger.com/ST_NUCLEO-WBA55CG.This connection fails as the DAP is not responding. The output from JLink is attached below: SEGGER J-Link Commander V7.96g (Compiled May 8 2024 15:03:51) DLL version V7.96g, compiled May 8 2024 15:03:24 Connecting to J-Link via USB...O.K. Firmware: J-Link V12 compiled Apr 23 2024 10:41:21 Hardware version: V12.00 J-Link uptime (since boot): 0d 00h 39m 37s S/N: 852002069 License(s): RDI, FlashBP, FlashDL, JFlash, GDB USB speed mode: High speed (480 MBit/s) VTref=3.303V Type "connect" to establish a target connection, '?' for help J-Link>connect Please specify device / core. <Default>: STM32WBA55CG Type '?' for selection dialog Device> Please specify target interface: J) JTAG (Default) S) SWD T) cJTAG TIF>S Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device
I'm trying to find out the wireless technology that I can use for peer to peer communication. The main requirement is to have good data transfer speed (at least 500kps or more), pairing process should be without user intervention and the devices will be in close proximity during the communication, probably <15cm.I have evaluated UWB but it seems packet loss could be an issue there. IR is out as well due to speed and longevity. Do you think active NFC will fit into my need?I understand that BLE and WiFi Direct could be another option but those will demand another technology for without user intervention pairing. Any thoughts are highly appreciated?
I have an STM32WB55CGU6 processor. I initially started with updated the FUS from v0.5.3 to v1.0.1 via the STM32CubeProgrammer. This update was successful. I then proceeded with trying to load the v1.2.0 FUS. However I got the following error:After doing some digging I came across this post, https://community.st.com/t5/stm32-mcus-wireless/stm32wb-fus-update-fail-from-1-0-1-to-1-0-2/m-p/344015.This says I basically locked my processor. However none of this information is available on the Release Notes. Firstly why is this crucial information still not clearly visible on your Release Notes but rather hiding in this post regarding the locking of the processor.Secondly how do I unlock the processor.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.