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
My BLE project on stm32wba65 makes use of "UTIL_TIMER_Create" to set a callback. This works ok when the RTC is configured just as free running binary. If I set the rtc mode to mixed binary & bcd, the callback never gets fired. I'm using an LSE to drive the rtc. Why is this? I'm trying to base a project off the BLE_Heartrate example. I need the calendar time & date so I can timestamp data. I synch the time over the BLE from a PC. I suppose I could just use the ms ticks since boot, but how does this survive a reset (but not power outage)? Is the binary counter derived from the rtc sufficiently large enough to hold a date for a year or more? Any examples using binary RTC and external time synch would be most welcome.
Hello,I am using NUCLEO-WB05KN1 development board with the embedded STM32WB05KN MCU.My goal is to advertise in Eddystone UID frame format.Currently I generate the advertising packet manually and insert:10-byte Namespace ID6-byte Instance IDAdvertising works correctly.:question_mark:What I Want To AchieveI want to be able to change:Namespace IDInstance IDremotely from a mobile phone using nRF Connect (by writing to a custom GATT characteristic).This is important because we will deploy many devices in the field and updating IDs over BLE would be very useful.:white_heavy_check_mark:What I ImplementedI created a custom GATT service with two writable characteristics: uint16_t my_service_handle = 0;uint16_t ns_char_handle = 0;uint16_t inst_char_handle = 0;uint8_t Namespace_ID[10];uint8_t Instance_ID[6]; aci_gatt_srv_attribute_modified_event()I handle write events using: aci_gatt_srv_attribute_modified_event() When I receive new data:I u
I have a STM32WB55 board where I have two I2C connections:1. LSM6DSO IMU2. TCA9548A with downstream I2C to hall sensors The TCA9548A I2C multiplexer does not ACK when addressed. The firmware scans 0x70 (this should be correct already)–0x77 and gets no ACK. The LSM6DSO IMU on the same MCU works, so the MCU is fine; only the TCA9548A path fails. the A0, A1, A2 are all grounded, RESET pin is pulled up to VCC with the appropriate resistor, VCC and GND are wired correctly as well (~3.3V). TCA on PB8 (SCL) and PB9 (SDA) pins of the STM32WB55, each with 4.7k pull-up resistors to VCC. I even changed the PB8 PB9 pins to software I2C and back to hardwawre I2C, but no luck; I did even deeper diagnosis, and it is just that TCA9548A never ACKs at any address 0x70–0x77. The data is collected via BLE, the exact steps since I obtained the PCB are as follows:1. Upgraded firmware on:> FUS: stm32cubewb-v1-24-0\\\\STM32Cube_FW_WB_V1.24.0\\\\Projects\\\\STM32WB_Copro_Wireless_B
Device STM32WLE5 Clock configuration SYSCLK : MSI 16 MHz (MSIPLL mode Enabled)LSE : 32.768 kHz crystalLPTIM2 kernel clock : LSELow power mode : Sleep Observed behavior When configuring LPTIM2 with LSE clock, the following code sometimes blocks because the ARROK flag never sets. __HAL_LPTIM_AUTORELOAD_SET(&hlptim2, Period); while (!__HAL_LPTIM_GET_FLAG(&hlptim2, LPTIM_FLAG_ARROK)); This occurs after waking up from Sleep mode. Workaround Executing the following code before or after wake-up resolves the issue. RCC->BDCR |= RCC_BDCR_LSESYSEN; After writing LSESYSEN, the ARROK flag sets normally. Initialization code SystemClock_Config() already enables LSESYSEN. It is CubeMX provided. LL_PWR_EnableBkUpAccess(); LL_RCC_LSE_SetDriveCapability(LL_RCC_LSEDRIVE_MEDIUMLOW); LL_RCC_LSE_EnablePropagation(); LL_RCC_LSE_Enable(); while (LL_RCC_LSE_IsReady() != 1) { } LL_RCC_LSE_EnablePropagation() is defined as: __STATIC_INLINE void LL_RCC_LSE_EnablePropagation(void) { S
Hi, I'm using an STM32WL5MOC where the LPUART is used to wake up the module from Stop2 mode. Since I have a lot of data to transfer, I would like to ask how I can switch to the HSI clock after waking up, and then, of course, switch back to the LSE to allow wake-up functionality. Thanks.
Hello.I'm currently working on the above cpu and trying to implement a custom ble p2p server app. I have 1 service and 2-3 characteristics and i want to add Freertos for time critical constraints managenments. Correct me if im wrong, but it seems that the Freertos stack is incompatible with a custom ble p2p server template. The only thing that i can choose to use when enabling Freertos is the heart monitor template. Is there any work around or do i have to ditch free rtos all together and go bare metal instead ?
Issue Description:I am using the `STM32_Programmer_CLI` to flash the BLE Wireless Stack on an STM32WB series MCU. However, after the programming process is complete, the memory read returns an unexpected value at the Stack Version address, even though the GUI shows the correct version.**Steps to Reproduce:**1. **Read Initial "Stack Version":**```textReading 32-bit memory contentSize : 4 BytesAddress : 0x200100140x20010014 : 01180003```*(Note: 01180003 corresponds to Version 1.24.0.3)*2. **Delete "Stack FW"**3. **Read "Stack Version" again:**```textReading 32-bit memory contentSize : 4 BytesAddress : 0x200100140x20010014 : 00000000```4. **Flash "stm32wb5x_BLE_Stack_light_fw.bin"**5. **Read "Stack Version" after programming:**```textReading 32-bit memory contentSize : 4 BytesAddress : 0x200100140x20010014 : 130E0019```**The expected value is `01180003`.****Comparison with STM32CubeProgrammer GUI:**If I then switch to the GUI version of STM32CubeProgrammer:* **Connect** --> **Firmware
I have come across an issue which I believe is a bug in the implementation of the osThreadFlagsWait function. Scenario A thread is waiting on a flag (e.g. 0x2u) for a timeout above 0, before this timeout should occur, there are multiple other flags set on the thread (e.g. 0x1u) using osThreadFlagsSet, this results in the osThreadFlagsWait function returning with a value of osErrorTimeout sooner than the set timeout. Cause The xTaskNotifyWait function which is called by osThreadFlagsWait returns each time the 0x1u flag is set, resulting in this section of code being run: Note that t0 is set to the return value of xTaskGetTickCount() at the start of the wait loop, so is the start time, tout is a timeout value passed to xTaskNotifyWait, which is originally the set timeout, but is adjusted each time the xTaskNotifyWait function returns. The issue with the code above is that the value of td is the total time that the thread has been waiting, this is subtracting fro
Hello everyone, as mentioned in the title, I'm using STM32WBA in a project. Immediately after sending data to the stm32wba coordinator, I add an expression to the backup register and reset the processor using `Nvic_system_reset`. I check this at startup and then run a different routine. It runs continuously in a loop. My question is, are there any disadvantages to resetting the processor? Would it cause problems like freezing? Does this situation lead to a logical fallacy? What exactly does the MCU do with the reset process? HAL_NVIC_SystemReset();
Are there any expansion boards with Quad SPI NOR Flash chips? I am interested in using it with a NUCLEO-WB55RG board.Preferably it should use the Macronix 25L6433FM2I-08G chip, but that is not a hard requirement. This chip is found on the X-NUCLEO-GFX01M2 board, but it is implemented as a standard single SPI interface.Thanks
Is there any way to optimize the IPD BALFHB-WL-01D3 to work at 865MHz at 22dbm for STM32WL55? And is there any hardware design guide for power of STM32WL like it is there Hardware design guide for STM32L0 application note AN4467.
Hi ST Community,I’m working with STM32WBA (STM32WPAN / BlueNRG-style stack APIs). I’m using Extended Advertising on the peripheral (connectable + scannable, secondary PHY = Coded) and a STM32WBA central that scans and then calls aci_gap_create_connection().ProblemConnection is intermittent: sometimes it connects, but often the peripheral prints multiple times:HCI_DISCONNECTION_COMPLETE_EVT_CODE - Connection Handle: 0x01 - Reason: 0x3E (repeats 4–5 times)The central does retries very often, so the peripheral sees repeated disconnect events before it finally connects.Setup detailsPeripheral (Extended Advertising)Advertising set configured as connectable + scannable:u16Property = HCI_ADV_EVENT_PROP_CONNECTABLE | HCI_ADV_EVENT_PROP_SCANNABLE;Primary PHY = 1M, Secondary PHY = Coded (0x03):aci_gap_adv_set_configuration(..., primaryPHY=0x00, secondaryPHY=0x03, ...)Address type used in advertising set:u8AddressType = GAP_STATIC_RANDOM_ADDR;Advertising channels 37/38/39 enabledTX power se
Hello everyone, this is my first time using an ST microcontroller. Specifically, I am using the MB1389E (NUCLEO-WL55JC1) development board. It has been a bit confusing because most of the tutorials have an old version of STM32CubeIDE where everything was there, but now it seems that many tools must be downloaded separately, such as STM32CubeMX. After solving that, I've managed to get it to perform the most basic functions, such as turning LEDs on and off. However, due to project requirements, I now have to take a big leap and make a connection through the Sigfox network. To do this, I've tried using the Sigfox_AT_Slave example from the STM32CubeWL package, which indicates that by entering “AT” in the terminal will print the ID and PAC of the card to register it in Sigfox, but I have not been successful in that part since even when the code loads without errors, it does not show me anything in the terminal, which in this case I use PuTTY, and I have configured the frequencies of 9600 an
Hello, I have a custom board with a STM32WB55CEU6 and I am trying to programm it through a Nucleo STLink with SWD. The onboard Nucleo CPU is detected and works fine if I add the jumpers, and I can program a different STM32 board with the jumpers removed as well, so the STLink is functional.It fails when trying to connect to the STM32 saying it's unable to detect the Device ID, so no SWD communication happens at all. I have connected SWCLK, SWIO, NRST and GND and checked the polarity multiple times. I also checked with a multimeter, and there is connectivity between the pins. I used a 10cm Dupont Jumper and the traces on the board are around 3cm long. Boot0 is tied to GND. Supply voltage is a clean 3V3 and I am using the internal SMPS, where VDDSMPS is at 0.97V if I plug it in. So I think the STM32 is powered and operational, just not able to connect. I don't really know what else could be going wrong on the board, so I came here to ask for help.
Dear all, I have a custom PCB with the STM32WBA5MMG module. I missed the keepout requirement in the reference design and pads 2 - 5 and pads 56 / 59. These pads are connected to GND in my design. I did some signal tests, and I have a feeling the antenna is not performing well (I configured +10dbm). Can somebody confirm these pads connected to ground influence the antenna performance? Below is a snippet of the PCB design: Thanks, Robin
Starting my design on a reference design based on STDES for WL3 series. I would like to know what is needed for the smallest hardware connection to download a program from ST32CUBE IDE. I need to have the minimum amount of connectors on the board. I.E. I don't want to plug in my board that I designed to the NUCLEO base board debugger for downloading a program if I don't have to. Can I take advantage of the STDC14 connection on the ref Des and if so, do I need some external piece of hardware to connect to it which then connects to the USB port on a computer? Thanks!
I've built cmwx1zzabz_0xx project on B-L072Z-LRWAN1 discovery board. From the source code, it looks like the app configures a 9600 baud serial console using UART1 on the STM32LO72 on the MuRata LoRa module.Please confirm that the TX/RX signals are available at PA9 and PA10 on the discovery board's pin header.Which #defines are necessary to route app console logging as well as AT command responses to this console?Thanks,Curtis
I'm a novice to ESP32 programming and LoRa, and I'm finding myself stuck with simple interfacing.I have a L073RZ connected to a Semtech SX1280 Evaluation Board, but I don't have a display attached to it (didn't come with one). I'm wondering how I can connect the ESP32 to my PC to control the SX1280. I'm trying to use the LoRa for its ranging abilities.I can't seem to find any firmware for the L073RZ+SX1280 combo, on either Semtech or NUCLEO.
I am unable to successfully run zephyr samples/bluetooth/peripheral on nucleo_wb55rg. The software appears to enter a fault handler. The basic blinky project does work (samples/basic/blinky) Wireless stack stm32wb5x_BLE_HCILayer_fw.bin v1.24 is programmed and running (see attachments) I have also tried v1.23 without success. Is there a known good combination of software and hardware for stm32 BLE and zephyr?
Hello,Is it possible to power this board with an external 3.3 volt supply while still having the st-link active for debugging purposes? If not, how else can I debug my firmware? I've looked through the UM2592 for the dev board, but can't seem to nail down my answer. Any advice is appreciated. Thank you.
Hello, I am currently looking at the reference designs for STM32WLEx and am interested in board reference STDES-WL5I4IHH. (high band, high power with optimized BOM target for 915MHz/22dBm). As seen on page 6 of: Data brief - STDES-WL5xxxxx - Reference designs for STM32WL5x and STM32WLEx microcontrollers When looking at the BOM, the only difference I see between STDES-WL5I4IHH and STDES-WL5I4IHL is the IPD with designator U4. But when looking at the schematics, inductor L3 has no value attached. The BOM states it is 47nH and recommends LQW15AN47NG00. I also checked for STDES-WL5I4ILH which also has 47nH for L3. Is this correct?Do all 3 of these use an L3 inductor with value 47nH? STDES-WL5I4IHH | Product - STMicroelectronics STDES-WL5I4IHL | Product - STMicroelectronics STDES-WL5I4ILH | Product - STMicroelectronics I am mainly asking this question because when looking at the eval board NUCLEO-WL55JC, there is a switch that changes that i
Hello ST Community,I am currently testing the PWR_DEEPSTOP_RTC example on the STM32WL33CC and I am observing a higher current consumption than expected in Deepstop RTC mode.According to the documentation, the expected current in Deepstop mode with RTC (LSI) enabled should be around 1–2 µA. However, I am consistently measuring approximately 50 µA. The application appears to be entering Deepstop correctly (according to the consumption behaviour). I'm measuring with the following configuration:1. Set the JP2 jumper to OFF.2. Insert the external supply on pin 2.3. Connect GND to CN12.4. Change the position of SW1 (not the default position).Could you please advise what might be causing this discrepancy?Thanks.
STM32WL55 BPSK modulation bitrate for transmission and reception. Transmission is mentioned in data sheet is 600 bit/sec, but need to know reception max bit/sec. Is that same 600 bit/sec?
Can Mesh network be implemented on a STM32 WB05KZ? If yes, how? I don't see any available examples in the STM32CubeWB0 MCU package.
I have a problem with the RTC initialization on the STM32WB05TZF6TR (BGA package). When the board is powered on, the MX_RTC_Init() function calls HAL_RTC_Init(), which returns with HAL_ERROR status.I traced the problem to the stm32wb0x_hal_rtc.c file, inside RTC_EnterInitMode(). It attempts to set the INIT bit, and then waits until the INITF bit changes state to confirm that Initialization Mode has been entered.However, the INITF bit never changes state, so the while loop times out. On my custom board, I have confirmed that this error always occurs when power is applied to the board, but if I manually reset the MCU while power is already applied (by shorting RESET to GND momentarily), then the initialization will complete successfully.To eliminate anything specific to my board, I generated a very simple test project (attached), which uses the default clock configuration with internal oscillators only, for both High Speed and Low Speed clocks. The ONLY configurati
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.