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 work with STEVAL-DB012VA, anf WISE-Studio over Linux. Starting from the peripheral exemple, I am trying to output a sequence of bits over GPIOB at a specific rate. To do this I am programming the DMA to transfert data from a buffer in memory to GPIOB->ODR and the DMAMUX to make the transfers clocked by TIM16 overflow.The program compiles without warnings nor errors but nothing appears on the outputs.Please look also to rf_driver_ll_dmamux.h. In the comments for LL_DMAMUX_SetRequestID, the list of possible values for "Request" parameter do not include LL_DMAMUX_REQ_TIM16_UP. This is what I used and it is probably why it do not works. But why? The TIM16 is supposed to be an option for synchronizing the DMA. Is it really possible?See my code in the files main.c and app_main.c attached. Any clue?Thanks,Rémi
We have a device which connects to two other devices as a central, and also is connected to by a third device (Mobile Phone) as a peripheral.When updating the Bluetooth firmware binary from version 1.20.0 to 1.21.0 we have started experiencing disconnections from the third device, downgrading back to 1.20.0 resolves any issues.A summary of the connection flow is detailed below:Device A (Peripheral) and Device B (Peripheral) are scanned for and connected to by Device C (Central)Device C (Peripheral) Advertises and is scanned for and connected to by Device D (Central)Device C soon stops responding to Device D and a connection timeout occurs (this is seen on wireshark and is not always the same point in the connection)This behaviour is not observed, and the connection seems to be stable when Device C only connects to one of Device A or B before connecting to Device D, it also seems stable if the following sequence is performed:Device A or B (Peripheral) connected to Device C (Central)Devi
Hi,Using Wise studio Version: 1.3.1_R Build id: 2023_05 on Linux with the STEVAL-IDB012V1 (BlueRNG-LPS dev. kit). I discovered that my instructions to write values in the timer registers have no effect. I found it by tracing the program while watching the register values in the register window of the debugger perspective. For example, TIM2->ARR = 3200; produce no change in the register. Same result with TIM16 and TIM17. I should miss something very basic here. It is made from the "Profiles_Peripheral_with_Library" example. All my edits are visible in the snippet below:int main(void) { /* System Init */ SystemInit(SYSCLK_64M, BLE_SYSCLK_32M); /* Configure IOs for power save modes */ BSP_IO_Init(); /* Configure I/O communication channel */ BSP_COM_Init(BSP_COM_RxDataUserCb); /* Init Clock */ Clock_Init(); /* Initialize the button */ BSP_PB_Init(USER_BUTTON, BUTTON_MODE_EXTI); // Overwrite initializations //My_GPIO_Settings(); //Define_Waveform_data_buffer(); /
We are experiencing an issue with poor RSSI values on our STM32WB55 based custom board. We are normally running the extended ble stack and with only 3 feet between the windows PC and the STM32WB55 board were at RSSI values around -85. When I switch to the Full BLE Stack I'm getting -50 values, I can go out the office, down the hall about 20 feet before I get the -85 db range.I loaded the BLE_peripheral_lite example onto my board to test out if I had poor configuration and im getting good numbers 25 ft away, the example project requires the full stack. So I wanted to test the full with my board and software, and when I loaded the full im getting much better numbers. Similar to the example project.Is there something related to the extended vs full stack that could be causing this issue? Could this be a configuration issue in my software?My current software almost 1-1 mimics the BLE_Peripheral_lite example for initializing cpu2.Im testing with the 1.20 Extended BLE stack and t
I am developing a custom board based on the MB1389E reference design, using the STM32WL55JC microcontroller. I have designed my schematic using KiCad and attached the PDF version for review.I would appreciate feedback on the following points:Oscillator Circuit – I have included both the TCXO and XO clock sources. Are my connections and component choices correct for stable operation?Power Supply & Decoupling – Are the power rails and decoupling capacitors correctly placed to ensure proper power integrity?RF Section – Since I am working with LoRa, is the RF path correctly designed to minimize losses and interference?Boot and Debug Connections – Do my NRST, BOOT, and SWD connections comply with best practices for programming and debugging?General Design Review – Any potential issues or improvements that you notice?I would be grateful for any insights or recommendations. Thanks in advance!Attachment: pcb3 test board-LORA.pdf
Hello, I'm trying to implement a custom BLE Client on a P-Nucleo-WB55 board. The ST P2p_client example runs fine on the board and I could add some traces and do little modifications in it before trying to start my project from scratch with CubeMX. It seems the VS_HCI_C2_Ready is not received in my project since I never reach a breakpoint in IPCC_C1_RX_IRQHandler. I have checked many times the differences (clocks, code generated, initialisations...) between the P2P example and my project. I don't know what more to check. Since the example runs fine, I guess it's not a stack firmware problem.If a kind soul could enlighten me...Thanks.
Initially flashed the device with a custom code from and it worked fine, the flashed device ran for several days in line power even after multiple power cuts. But one day it stopped trying to join at all. I have used an external RTC to generate alarms to send sensor data to gateway at a particular interval. The sensors, RTC are all initialized successfully and the messages are being printed and then the version of LoRa application versions are also being printed after that then after the device has to try joining i.e MAC Tx done. But I don't see anything printed after that, the code just stops there for no reason. [11:09:32.669] APPLICATION_VERSION: V1.3.0 [11:09:32.672] MW_LORAWAN_VERSION: V2.5.0 [11:09:32.672] MW_RADIO_VERSION: V1.3.0 [11:09:32.672] L2_SPEC_VERSION: V1.0.3 [11:09:32.672] RP_SPEC_VERSION: V1-1.0.3 [11:09:32.685] NVM DATA RESTORED [11:09:32.692] ###### AppKey: 7B:3C:18:12:9A:D3:6F:EF:35:22:3A:CB:F9:7A:37:E6 [11:09:32.733] ###### NwkKey: 7B:3C:18:12:9A:D3:6F:EF:35:22:3A
Hello, I have a STM32WBA55G-DK1 board, and i'm trying to build the example code for the Unicast server (BLE_Audio_TMAP_Central example project). I'm importing it using the GUI (new project, example, then i select the example). I haven't modified anything in the code, but when i try to build it, i have the following error (see image bellow) I tried to compile another example code (using the same steps as with the one giving errors), and it is working as intended. Can you help me please? Thank you.OS: Windows 11, last version CubeIDE: last version
Hi all,I'm currently working on a project involving bidirectional communication (TX and RX), and I'm encountering an issue with the RTC initialization.The problem is that my code often gets stuck in the MX_RTC_Init() function. Interestingly, it works fine occasionally, but most of the time it hangs at this point during startup.As part of my troubleshooting, I tried disabling the RTC interrupt, and after that, the code seems to run consistently without getting stuck.Has anyone experienced something similar or have any suggestions on what might be causing this inconsistency? Could it be related to the RTC clock source or interrupt configuration?Any help or insights would be appreciated.Thanks
When temperature below -15℃ , STM32WLE5CCU6 UART can't receive any data from uart, But it can send data out from UART.,and The LoRa Unit worked well,It seems the TXCO is working. What's the problem? How can solve this problem?
hey fellas, i'll try to do this as quickly as possible to not waste your time, but i'm at my wit's end with this thing.i'm requesting for forgiveness since i'm sort of a noob, but i DID read every relevant documentation before posting here.MCU: STM32WLE5CCU7using a custom board (relevant portion) for my uni projectEdit: Here's the DC part of the board as wellboard was manufactured and soldered by the PCB maker by machineOscillator: NX2016SA 32MHz as recommended in the reference manual, connected to OSC_IN and OSC_OUTdebugging/writing code via SWD using STLINK-V3SETi'm using STM32CUBEIDEmy clock treeWhat i'm trying to do:I want to set up a simple LoRa p2p rx tx test.My Symptoms:when subghz_phy middleware is enabled AND HSE is enabled and involved in any way with the MCU, i get stuck at stm32wlxx_hal_rcc.c (Called by SystemClock_Config), in a while loop with the condition LL_RCC_HSE_IsReady() == 0Uif SUBGHZ_Phy is turned off, but HSE is still selected, i get a timeout error (makes sense
we are working stm32wle5ccu6. In than I am trying to put device in power saving mode but its not working properly.I was getting 15 mA consumption before now after reducing clock freq, I am getting 5.51mA.. we want to achieve consumption in microamps,I tried Stop mode and even sleep mode. But in that mode also the consumption stays same as 5 mA, and also the pulse count stops.We need GPIO to run continuously so that we get pulse count correct.can someone help on this.
Hello! I am continuing my journey to Zigbee on WB55 and facing new strange behaviorIf i select Temperature measurement server or Pressure measurement server or whatever server, the code hangs on zigbee_app_info.temperature_meas_server_1 = ZbZclTempMeasServerAlloc(zigbee_app_info.zb, SW1_ENDPOINT, TEMP_MIN_1, TEMP_MAX_1, TEMP_TOLERANCE_1); If I choose a client, the process of joining has successfully started. If I choose something where i should not choose MIN/MAX of measurement, the process of joining successfully startedI use MIN/MAX params what I've found in the TemperatureMeasServerCoord example#define TEMP_MIN_1 (int16_t)0xf060 /* -40C */#define TEMP_MAX_1 (int16_t)0x30d4 /* 125C */#define TEMP_TOLERANCE_1 (int16_t)0x0032 /* +-0.5C */But, i cant set `TEMP_MIN_1 ` in the CubeMX - it just drops my attempts to set HEX and returns to it's initial negative value.This values are unsuccessful too #define TEMP_MIN_1 -4000#define TEMP_MAX_1 0x30d4#define TEMP_TOLERANCE_1
Hello,I am planning to design a system using the STM32WB55CGU7 microcontroller with a supply voltage of 1.8V. As per the datasheet, this microcontroller operates within a voltage range of 1.7V to 3.6V. I would like to confirm if designing for 1.8V is appropriate and if there are any specific considerations or recommendations for this voltage level.For reference, I have attached an image of the power section of my design. I would greatly appreciate any guidance or suggestions from STM32WB experts.Thank you in advance for your support!
I am developing a Matter device (Thread) using the STM32WB5MM-DK and NUCLEO-WB55RG.When commissioning the device using the Google Home app on a Google Nest Hub:The first STM32WB5MM-DK was successfully commissioned.However, the second STM32WB5MM-DK failed to join the Thread Network.I encountered the same issue when using NUCLEO-WB55RG.I have attached the error logs for reference.To troubleshoot the issue, I modified the Device Attestation Certificate (DAC) in the firmware and tested commissioning again:NUCLEO-WB55RG was successfully commissioned with the modified DAC.However, STM32WB5MM-DK still failed, even with the modified DAC.Questions:Is it expected behavior that the ability to join the Thread Network depends on the DAC when commissioning with a Google Nest Hub?Why does changing the DAC allow NUCLEO-WB55RG to join the Thread Network, but not STM32WB5MM-DK?Could there be differences in how the Google Home app or Google Nest Hub handles DAC validation for different hardware?What spec
Hello,I have a project where I work with BLE from the STM32WB55 series. I did this project using both FreeRTOS and Seqeuncer. The code content is exactly the same. However, after I put the Sequencer firmware on the processor, when I put the FreeRTOS project, BLE does not start broadcasting. However, if I load the Sequencer project, it works. This happens especially when I load the Sequencer project and then load the FreeRTOS project.Both projects normally work without problems.I wanted to do a full memory erase to solve this problem, but it was not enough. If I reload the BLE firmware on CPU1 and load the FreeRTOS project on the processor, it works without problems.Do you have any information about this issue? Is this problem normal?I would be glad if you could help.
Hi, I'm working with STM32_WPAN package (attached), on STM32CubeIDE (gcc compiler). MCU: STM32WB55 There's a Compilation Warning that I don't know how to deal: converting a packed 'TL_EvtPacket_t' pointer (alignment 1) to a 'tListNode' {aka 'struct _tListNode'} pointer (alignment 4) may result in an unaligned pointer value [-Waddress-of-packed-member]. Can you please help me fixing this Warning? Thanks, Aviv
Hello,I have changed the program based on p2p_client, app_ble.c to a program in which it is only an OBSERVER or BEACON SCANNER Until now I have been able to run the scan function but I don't know how to get or display what device I am scanning.I have an example with a program from another IDEI need the parameters which are MAC address, device name, manufacturer data, and RSSIIs there anyone who can help me? cc @STTwo-32 Best Regards,Aboyh
Hello,Based on p2p_client, I want to create an observer program where the device scans the broadcaster/ beaconI set the scan parameters first, then I enable scanand an error occursi used wireless stack = stm32wb5x_BLE_Stack_full_fw.bin----------------------------------------------------------------------------------Error: Set scan parameters failed (Status = 0x01)----------------------------------------------------------------------------------Is the way I did it not right?If the community has an example of a pure ble observer/ scanner program without connecting to another device, can you give it to me?I have attached my program code belowThank you for cooperation. Regards
Hi,I am working on a LoRa point-to-point communication project using the STM32WLE5CCU6 chipset, referring to the SubGHz_Phy_PingPong example code. The communication works fine with SF7, but I’m encountering issues when transmitting on SF12 with a bandwidth of 125 kHz. Rx errors occur at the receiver, and only one packet is received in 5 tries.The distance between the transmitter and receiver is less than 3 meters."Setup Details:Chipset: STM32WLE5CCU6SDK Version: STM32Cube_FW_WL_V1.3.0Communication Type: Point-to-point LoRa Project: I started by importing the SubGHz_Phy_PingPong.ioc file and generated code with MX. I then copied the necessary lines of code for the SubghzApp_Init() function from the SubGHz_Phy_PingPong example project.Configured LoRa parameters are given below. /* MODEM type: one shall be 1 the other shall be 0 */ #define USE_MODEM_LORA 1 #define USE_MODEM_FSK 0 #define RF_FREQUENCY 866000000 /* Hz */ #ifndef TX_OUTPUT_POWER /* please, to change this va
Hello, everybody! As you can see from the name of the subject, I am currently working on a bluetooth communication between an stm32-nucleo-l476rg and an extension board x-nucleo-wb05kn1. To this day, I have a code that seems quite coherent and functional. However the problem lies in the configuration of my boards, indeed, the configuration in CubeMX is more idfficile than expected between this board and the extension. I’m looking to use USART and I wanted to learn about the configuration of my TX and RX (pin PA2 and PA3) but I think missing parameters because the connection is still not done. In addition, I have the impression that my wb05kn1 is in 'sleep' mode and I don’t know how to reactivate it. Every attempt to verify connection is a failure and I have no feedback from my module. Do you have solutions for the software settings and module focus? Thank you in advance!
Hi, I made a custom board with the STM32WB5MMG module. The custom board contains just the STM32WB5MMG module with pins connected to some of the GPIOs of the module. I tried to interface this custom board with AD5940 potentiostat via SPI in order to get readings. I tested my code with the STM32WB5MMG-DK and the AD5940 board and it is working fine and I am getting the expected readings. But when I try to implement the same code with the custom board, the SPI communication fails. I am using the same pins I use in the DK board (PA1 as SPI1_SCK, PB4 as SPI1_MISO, PA7 as SPI1_MOSI and PA4 as SPI1_CS). I also tried changing the pins but the result is the same. I connected the custom board via USART pin to the computer and I get the following error in the terminal while trying SPI communication. Just to check if I2C communication also fails, I tried I2C communication with the board and an NFC module (NTAG I2C PLUS) and it is also not working. It cannot read or write via I2C.I h
Hi all, Just a question, I have one stm32wl RAK3172 chip, on this chip I have a stm32f4 connected via UART like thatSTM32F4 UART2 RAK3172 UART1 PD6 ----> PB6. PD5 -----> PB7 I'm trying to communicate with ST UART bootloader without success. I've put my RAK in bootloader mode (I'm sure because I'm able to detect it with stm32cubeprogrammer mode uart connected to PA2PA3) My question is can I use PB6 and PB7 on my RAK to use uart bootloader or should I write custom bootloader to use it because basiclly stm seems to only use PA2 and PA3
Hello all, I am trying to use the time sync service from openThread, using a P-NUCLEO-WB55. For that purpose, I am using the sample Thread_FTD_Coap_Multicast that is working properly. I am using the latest stm32wb5x_Thread_FTD_fw.bin image for the wireless co-processor. To test the time sync, I call otNetworkTimeSetSyncPeriod on the current thread instance before enabling the thread service: error = otNetworkTimeSetSyncPeriod(instance, 30); if (error != OT_ERROR_NONE) { APP_THREAD_Error(ERR_THREAD_START, error); } error = otIp6SetEnabled(NULL, true); if (error != OT_ERROR_NONE) { APP_THREAD_Error(ERR_THREAD_IPV6_ENABLE, error); } error = otThreadSetEnabled(NULL, true); if (error != OT_ERROR_NONE) { APP_THREAD_Error(ERR_THREAD_START, error); The issue is that otNetworkTimeSetSyncPeriod is returning 126, that is not even a known otError. Also the device does not seem to be sending any sync packets as a router. Is there any known issue with the time sync implem
Hi,Currently, we are working on the IO-EXPANDER (PCA9505DGGY) via I2C communication. We are using Standard mode (100 kHz).Whenever we try to communicate with the slave device, the SDA line remains idle, and I can only see three clock pulses on the SCL line at all times. Please refer to the attached image for the SCL reference.Note: In the image, the line markup name is incorrect—it is labeled as SDA, but it is actually SCL.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.