TODAY | STM32 Summit 2026
Ask questions and discuss STM32 wireless solutions and their implementation for running Bluetooth LE, Zigbee, LoRaWAN applications.
Most recent activity
Hello everyone,We are developing a custom board based on the STM32WB55CGU in my company, and I would like to know if the only way to flash the binaries for the CPU2 is by using the USB DFU bootloader ? Can we use a connection handled by a ST-Link ?It is the case for the Development board and for the USB Dongle, so this is why I am asking.
Platform: STM32WB55 discovery board connected to I2S codec.My mission: To receive data from the codec using DMA transfer.Calling to HAL_SAI_Receive function returns the data correctly so I guess that everything is configured correctly.When calling to HAL_SAI_Receive_DMA, hdma->Instance->CNDTR stays on the same initial value.When debugging the code and running the HAL functions in single step - I do get the half full interrupt and the buffer contains the correct values. So again - I guess that everything is configured correctly.The base code is generated with CubeMX.HAL_SAI_Receive_DMA is called from the main loop, so I guess it is not related to interrupt priority issues.Any other ideas?Thanks!
Hi !I got a discovery board B-L072cz-LRWAN1. It go to stop mode and when the Alarm trig it wake up and run the program correctly. But when I use the uart for print or anything else, the program stop. Here is my code. It's based on the cube-LRWAN1 example :int main() { HAL_Init( ); SystemClock_Config( ); DBG_Init( ); HW_Init( ); while(1) { PRINTF("Sleep\r"); SX1276SetSleep(); HAL_Delay(200); stm32l_lowPowerSetup(); stm32l_lowPowerResume(); PRINTF("Wake\r"); } } void stm32l_lowPowerSetup(void) { __HAL_RCC_PWR_CLK_ENABLE(); // Enable Power Control clock HAL_PWREx_EnableUltraLowPower(); // Ultra low power mode HAL_PWREx_EnableFastWakeUp(); // Fast wake-up for ultra low power mode // Disable Unused Gpios _stm32l_disableGpios(); // Disable GPIOs based on configuration HW_RTC_SetAlarm(10000); // Switch to STOPMode HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); } void stm32l_lowPowerResume(void) { &n
Hello , Today I Wrote My Second Article Entitled How To Connect Your First LoRa Device ( STM32L072CZ Microcontroller ) . In This Project i used The B-L072Z-LRWAN1 Development Board From STMicroelectronics and Also the Shield X-NUCLEO-IKS01A2 From STMicroelectronicsLink To The Article : https://abdelazizbassem.blogspot.com/2019/08/how-to-connect-your-first-lora-device.htmlEnjoy My LinkedIn Account :https://www.linkedin.com/in/bassem-abdelaziz-461507177/
Hello,We designed a device with CMWX1ZZABZ-091 LoRa module on I-CUBE-LPWAN (Our FW is based on AT_Slave example).Now we are in the middle of getting FCC certification and our certification lab asked us to provide a command for testing radio.We recommended them to use AT+TTLRA command every time they need to send a packet, but it seems that they are not able to select a specific freq/channel to transmit on.The only option they have is to select 868 or 915 MHz using AT+TCONF command.We also found AT+CERTIF command but do not know what exactly it does. Can you describe it?And maybe there is another AT command we can use for testing radio (transmitting on a specific channel for testing all channels separately)?Thanks in advance!
Hello everyone,I am currently developing a code for my custom board that has BLE communication along with RTC and timer(PWM) initialized. I am currently testing my code first on the PNucleoWB55 development board. The issue is that the normal RTC_Alarm Example from the SDK is working fine and alarm interrupt occurs exactly after 30 seconds. However, when I initialize the RTC in BLE_p2pServer, the RTC interrupt occurs much quicker (approx 5 seconds when programmed to occur after 30 seconds). What could be the issue? If someone can help me, I shall be grateful.
Hi All; I am use I-CUBE-LRWAN version 1.2.1. I am program in class C mode. I send a message downlink from network server and I checked that the data was actually sent out. Why I can't received a message downlink immediately. Could you please advice me? Thank you,Best regards.
I am using STM32l476RG nucleo board and X_Nucleo_IDB051.I want to transfer SAI peripheral data over BLE.I have tried to generate code using CUBEMX but device fails to advertise as well as it is fails to capture data over SAI.Alone SAI example is working fine but BLE example not working.I am not getting what is the mistake. looking for solution on this problem.
Hello, AN5185 (ST firmware upgrade services for STM32WB Series) does not mention STM32_Programmer_CLI. In the context of WB upgrade, I would help to see what can be done via the programmer and what not. Please consider!
I follow steps 1-5 for the Release Notes for STM32WB Copro Wireless Binaries (STM32CubeWB 1.1.1 patch):./STM32_Programmer_CLI -c port=usb1 -fwdelete ------------------------------------------------------------------- STM32CubeProgrammer v2.1.0 ------------------------------------------------------------------- USB speed : Full Speed (12MBit/s) Manuf. ID : STMicroelectronics Product ID : DFU in FS Mode SN : 206B38933036 FW version : 0x011a Device ID : 0x0495 Device name : STM32WBxx Flash size : 1 MBytes Device type : MCU Device CPU : Cortex-M0+/M4 RSS state is RSS_ERROR RSS status is RSS_NOT_RUNNING RSS state is RSS_IDLE RSS status is RSS_NO_ERROR Deleting firmware ... Firmware delete finished fwdelete command execution finishedThen I check the FUS version: ./STM32_Programmer_CLI -c port=usb1 -r32 0x20030030 1 ------------------------------------------------------------------- STM32CubeProgrammer v2.1.0 --------------------
//main.c file /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "usb_device.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "usbd_cdc_if.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ voi
Hi,expert.I am learning to use P-NUCLEO to support development using STM32WB.As the title, I have a question about the wireless stack.I learned in UM2550 that when writing a wireless stack, the current wireless stack needs to be erased and written again.However, I do not know which wireless stack is written to the STM32WB series by default.Also, I do not know how to check the currently written wireless stack.If you have knowledge of these two points, please answer.thank you for your attention.
I have got an STM32WB55 DK and i would like to use it with the CubeMonitor-RF.I flashed the image for the co-processor but i am not sure which firmware for the main processor. I flashed the BLE Transparent Mode Application Firmware but the CubeMonitor-RF can not connect to the UART.Thanks for your support!
Hello! I still have Problems to get ble running on the WB55 nucleo board. What I have done is to generate the code with STMcubemx according the hands-on document.Which mean, I still have modified the clock settings; inserted the IPCC_C1_RX_IRQHandler and IPCC_C1_TX_IRQHandler and started the scheduler in the main while loop. The IPCC ISR were never executed and therefore the function APP_BLE_Init() also not started.I'm using the STM32Cube FW_WB V.1.1.1Did anyone have a solution for my problem?I would be very grateful for a solution to my problem!!!Best regards,Holger
I am having trouble getting the LPUART1 on the STM32WB55 Nucelo Board to transmit. I would like to transmit a character at 9600 bps using LPUART1 on the STM32WB55 Nucelo Board. I read the reference manual on how to calculate the baud rate divisor for LPUART but, I am confused on how to set the baud rate to 9600. I sure it is somethign wrong in my c program. Can someone help me configure LPUART1 at 9600bps. Please see me code below for details:/* Includes */#include <stddef.h>#include <stdint.h>#include <string.h>#include <stddef.h>#include "stm32wbxx.h"#include "stm32wbxx_gpio_driver.h"#define PCLK 32000000U // Peripheral Clock#define BAUD 9600U // Baud rate/* Private macro *//* Private variables *//* Priva
Hello,Stm32CubeProgrammer 2.1.0 for the STM32WB55 in Option Bytes /User Configuration tells for nBOOT1Unchecked : ... system flashChecked: ...embedded SRAMThis seems to be inverted, as with nBOOT1 checked, DFU works, while unchecked DFU does not work.
The MLPF-WB55-01E3 filter is especially for STM32WB55Cx and STM32WB55Rx. Are there differences STM32WB55Cx, STM32WB55Rx and STM32WB55Vx (WLCSP 100L DIE 495 PITCH 0.4 ) of RF pins impedance? Can I use MLPF-WB55-01E3 for STM32WB55Vx?
I have to send data obtained from Ethernet to LoRa cloud. I am using STM32L072CZ microcontroller discovery kit. So is it possible to establish communication using I-NUCLEO-NETX expansion board with STM32L072CZ microcontroller discovery kit ?open for any suggestion to achieve above objective.Thank you in advance.
I'm sure that I don't go out of the loop cause I ask a led to blink if I exit the loop. Here are my fonctions to enter and exit the stop mode.void stm32l_lowPowerSetup(void){ HW_RTC_SetAlarm( 5000 );//5sec __HAL_RCC_PWR_CLK_ENABLE(); // Enable Power Control clock HAL_PWREx_EnableUltraLowPower(); // Ultra low power mode HAL_PWREx_EnableFastWakeUp(); // Fast wake-up for ultra low power mode // Disable Unused Gpios _stm32l_disableGpios(); // Switch to STOPMode HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);}void stm32l_lowPowerResume(void){ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); DBG_Init( ); HW_Init( ); /* Initialize all configured peripherals */ MX_GPIO_Init(); M
SWO seems to put the first few bytes into the TPIU fifo, and then the fifo goes to not ready and stays there.I have the following init code for GPIOB-P3, /* USER CODE BEGIN 2 */ /* configure Port B3 as SWO, this doesn't seem to get done by cube MX ? */ void SWO_GPIO_Init(void) { GPIO_TypeDef *GPIOx = GPIOB; GPIO_InitTypeDef SWO_Init = {0}; SWO_Init.Pin = GPIO_PIN_3; SWO_Init.Mode = GPIO_MODE_AF_PP; SWO_Init.Speed = GPIO_SPEED_FREQ_HIGH; SWO_Init.Pull = GPIO_NOPULL; SWO_Init.Alternate = GPIO_AF0_JTD_TRACE; HAL_GPIO_Init(GPIOx, &SWO_Init); } /* USER CODE END 2 */and am trying to get SWO output at 57600 baud using this configuration.static void SWO_Init(uint32_t portBits) { uint32_t SWOSpeed = 57600; // default 64k baud rate uint32_t SWOPrescaler = (HAL_RCC_GetHCLK4Freq() / SWOSpeed) + 1; // SWOSpeed in Hz, //note that CPU_CORE_FREQUENCY_HZ is expected to be the AHB4 core clock CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; // enable trace in core debug TPI->SP
Hi, I wrote a code using an uart with a circular Rx dma and idle interupt to communicate with a sensor. The config is working fine alone and now i want to include it into the project End Node form the LoRa package. But i cannot figure out why it's not working. I am able to send characters with the UART but i can't recieve anything from the DMA. If i disable my dma and use the uart in polling mode for reception it is working fine but when i add the dma nothing append.I am working with the STM32L073RZ and expension board SX1272MB2DAS.The uart i want to use is the USART4 with rs485 flow control (Tx => PC10, Rx=>PC11, DE=>PA15) . I checked, there is no GPIO conflict with the expension board.Any ideas for a solution? I feel like there could be some conflicts with the DMA since it's use for vcom. Or maybe there is an other file in the loRa stack i need to modify ? Simon
First time using a nucleo board and I am getting started with the stm32cubeide. I have selected the stm32wb55 nucleo board during project creation and used all the defaults for the cubemx autogeneration code which initializes the buttons and leds. I am able to build the project, but when I run the code the mcu enters the hard fault handler after entering the SystemInit function called in the startup assembly code. The below picture shows the disassembly of the SystemInit function. While stepping through the disassembly, I found that I enter the hard fault handler immediately after executing the "add r7, sp, #0" instruction. I've looked at other posts and some of the recommendations were to make sure that you compile with -mthumb option and indeed I am as this is one of the compile options specified for the elf file in the makefile. I'm not sure what could be wrong especially since this is all auto-generated and I have not edited a single line of code. All suggestions are appreciated, t
I am using STM32Cube FW_WB V1.1.1 and built a new project.I have programmed stm32wb5x_BLE_Stack_fw.bin into the memory space for CPU2 (0x80CB000).I have added the following interrupt handlers:void IPCC_C1_TX_IRQHandler(void) { HW_IPCC_Tx_Handler(); return; } void IPCC_C1_RX_IRQHandler(void) { HW_IPCC_Rx_Handler(); return; }I have configured STM32_WPAN as follows:My small application runs fine but I get no indication that the BLE is running at all. I am using ST BLE Sensor to scan but do not see my device.Any pointers on where to look or what to check would be greatly appreciated.-Louis
Hi, does somebody knows, is STM32WB55 support LE Codded or LE 1M or LE 2M?Does this MCU supports Long range connectivity?--best regards,Sergii
Dear all,The following are codes of SAI protocol and dma init.The MCU I using was stm32wb. Then i use HAL_SAI_Receive_DMA(); to receive the microphone senor data in standard i2s protocol,but i the receive data is 0.Did i need to modify in DMA settings or SAI?Thanks.void MX_SAI1_Init(void){ hsai_BlockA1.Instance = SAI1_Block_A; hsai_BlockA1.Init.AudioMode = SAI_MODEMASTER_RX; hsai_BlockA1.Init.Synchro = SAI_ASYNCHRONOUS; hsai_BlockA1.Init.OutputDrive = SAI_OUTPUTDRIVE_DISABLE; hsai_BlockA1.Init.NoDivider = SAI_MASTERDIVIDER_ENABLE; hsai_BlockA1.Init.MckOverSampling = SAI_MCK_OVERSAMPLING_DISABLE; hsai_BlockA1.Init.FIFOThreshold = SAI_FIFOTHRESHOLD_EMPTY; hsai_BlockA1.Init.AudioFrequency = SAI_AUDIO_FREQUENCY_48K; hsai_BlockA1.Init.SynchroExt = SAI_SYNCEXT_DISABLE; hsai_BlockA1.Init.MonoStereoMode = SAI_MONOMODE; hsai_BlockA1.Init.CompandingMode = SAI_NOCOMPANDING; hsai_BlockA1.Init.TriState = SAI_OUTPUT_NOTRELEASED; if (H
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.