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 am trying to pair STM32WB55 (slave) with windows (master) on a custom setup. While pairing, I am getting this error. The STM32WB55 must have no IO capabilities, and hence configured as No Input No Output. This seems to show that authentication requirements were not met on one of the devices. Where can I find the minimum authentication requirements? Also, what does Pairing KO mean?I am also capturing the BLE traffic on wireshark. The windows sends a pairing request to the WB55 but instead of a pairing response, a pairing failed message is sent. Any help navigating this problem will be appreciated.
Hi, For a project I need 12 ADCs. STM32WL55JCU6 has all the necessary ADCs but two of them are shared with SWDIO and SWCLK pins. Is there any good suggestion for being able to use both these functions at the same time?
Hello,I have been developing a program on the NUCLEO-WL55JC1 development board, and I found a bug in the IRTIM module. The reference manual says that, when enabled, the IRTIM module will NAND the outputs of TIM16 and TIM17 and output the signal on a pin. The bug I found is that if TIM17_BDTR.MOE is set before TIM16_BDTR.MOE is set, the IRTIM module outputs a high signal until TIM17 counts to TIM17_CCR1 for the first time. If TIM17_CCR1 is greater than TIM17_ARR, the output stays high forever.I have attached a simple program that demonstrates the issue. It uses STM32 Low Level Drivers and is designed to run on a NUCLEO-WL55JC1. On this development board, the IR_OUT pin is connected to LED2, so you can see the IRTIM output signal. Both TIM16 and TIM17 are configured to always be high, and since IRTIM NANDs the signals together, LED2 should never turn on. However, when the program is initially run, LED2 is on until the first time TIM17 counts to CCR1.I did not see this issue listed in the
Hi.Can someone confirm that the I-CUBE-LRWAN software supports any SX1262 or SX1276 modules? That's what I understood from reading the details of the software package.I'm looking to create a custom PCB with a STM32L4 mcu and I was wondering if anyone could recommend an SX1262/1276 module.Thanks
Hi everyone,I am working on an STM32WL-based device and have successfully operated downlink in LoRaWAN communication when using the following JSON payload format: { "devEui": "0102030405060708", "confirmed": true, "fPort": 10, "data": "ESIzRFU=" } In this case, I sent a base64-encoded data string, and the downlink was successfully received by the device. Here's the relevant log output from the device: [16:16:14:337] 1735817707s657:RX_C on freq 869525000 Hz at DR 0␍␊ [16:17:20:696] 1735817774s061:MAC rxDone␍␊ [16:17:40:846] +EVT:RX_C, PORT 10, DR 0, RSSI -32, SNR 5␍␊ [16:17:40:890] +EVT:12:1122334455␍␊ However, when I attempt to send the following JSON payload, where I pass individual parameters in the object field instead of a base64-encoded string, the payload is successfully sent from the server, but the STM32WL device only receives the fport value. The data and datasize fields are both zero on the device. { "de
Hello,Apologize for the long post/question…Using the NUCLEO-WL55JC1 board, I am trying to get SWV to redirect printf() output to the IDE console, with no luck.I added the below code to syscalls.c and modified the _write() function to call this function. I also set the IDE to monitor port 0, and start. //Debug Exception and Monitor Control Register base address #define DEMCR *((volatile uint32_t*) 0xE000EDFCU ) // ITM register addresses #define ITM_STIMULUS_PORT0 *((volatile uint32_t*) 0xE0000000 ) #define ITM_TRACE_EN *((volatile uint32_t*) 0xE0000E00 ) void ITM_SendChar(uint8_t ch) { //Enable TRCENA DEMCR |= (1 << 24); //enable stimulus port 0 ITM_TRACE_EN |= (1 << 0); // read FIFO status in bit [0]: While (!(ITM_STIMULUS_PORT0 & 1)); //Write to ITM stimulus port0 ITM_STIMULUS_PORT0 = ch; } In addition,- I verified that \n is at the end of the printed string.- I checked the board and there are jumpers on the T_SWDIO,
I have an STM32WLE5JC motherboard. I work on this board. I want to access the information of the chip used in my card and see it in live watch during debug. In other words, I want to see the information of the chip used on my motherboard live in debug mode. How can I do this?
I'm new to emended system and PCB design. This will be my first PCB design.Before moving to PCB design just want to confirm that my circuit will work. Kindly review schematics. Any Feedback is appreciated.Im getting this error and warning in ERC.Error: Input Power pin not driven by any output power pinsPIN 43 VLXSPMSError: Input Power pin not driven by any output Power pinsPin 14 VDDAWarning:VDDA & VREF+ are attached to same items; VDDA will be used in netlistVDD and VDDSMPS are attached to same items; VDD will be used in netlistI have used AN5165 Application note Hardware guide from ST ,VFQFPN68 reference boarddownload Kicad file : KICAD FILE
Has anybody successfully attached one of the above sensors to this LORA device?I tried many times with different sources from GitHub but without success.
I used a MB2032-WB09-B02 on MB1801D for several times, flash in CubeIDE was always OK, though debug prompted error read data every time, then the next day when I used it again, it didn't work, I couldn't flash image into neither in IDE nor Prog, the prompt: my question is: how to discovery using Debug Authentication?
Hello, I have an existing STM32_WPAN configuration with 3 BLE services and I want to completely remove Service 2. Is there any way to do that? I've already reduced the number of services to 2, but it ends up removing Service 3 which I want to keep. Is it possible to swap Service 2 and 3 and then reduce to 2 services. thank you in advance
Using STM32CubeIDE 1.17.0, STM32CubeMX 6.13.0, MCU is STM32WB09KEV6TR.ioc file attachedHello,I am trying to write code for a PCB with an STM32WB09KEV6TR. I am very new to STM development. Before going any further in our project, I am simply trying to drive a GPIO high / low through code and observe the changes on a multimeter to ensure that there are no issues. However, it doesn't seem like my code is executing. I am programming the chip through STM32CubeProgrammer and I have verified that the flash memory matches the hex file I am flashing, but nothing is happening. I am driving the pin low in my while loop and I cannot observe the drop on a multimeter. I have tried many troubleshooting options such as using other STlink programmers, cords, restarting the MCU, etc. Any help here would be really helpful. It is also worth noting that I am not able to debug through the CubeIDE, as I get this error: "Error message from debugger back end: Error finishing flash operation Failed to execute M
Hi,i am using the BLE_p2pServer_ota example with NUCLEOWBA55 and i want transmitt a 20 Byte package over USART2 with DMA in circular mode (19200 Baud). Here as an example, i send 20 bytes every second via HTerm to USART2. BLE advertising (every 2s) is working (but i am not connected to the cellphone app). The Rx Callback function is inside p2p_server_app.c and here i want to toggle the blue LED:/* USER CODE BEGIN FD_LOCAL_FUNCTIONS*/ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart->Instance == USART2) // Rx Callback for USART2 { BSP_LED_Toggle(LED_BLUE); } /* USER CODE END FD_LOCAL_FUNCTIONS*/But after several transmissions (between 50 and 150) the callback function is no longer called.Does anyone have an idea what is going wrong?
I am working on a low power mode in a freeRTOS ble application. On a user request the device is to go into low power mode Stop2. In order to achieve the lowest power consumption ~2µA (stm32wb55) the ble activity has to be deactivated and the cpu1 & cpu2 has to go into lp-mode. In order to deactivate the ble antenna hci_reset is used. The low power mode implemented with hci_reset() works when tested on a Nucleo-STM32wb55 board based on the BLE_HeartRateFreeRTOS example. When I set it up on another project the hci_reset deletes all threads BLE threads (expected), but also deletes the working thread which means it doesn't excecute the the rest of the LP sequence. Here is the setup so far: void LowPowerThread(void *argument) { HAL_EnableDBGStopMode(); for (;;) { osDelay(5000); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET); /* Turn off DEBUG LED */ hci_reset(); /* resets the Link Layer on an LE Controller (ble_hci_le.h) */ LL_C2_PWR_S
Moved from MPUs forum.Hi, I looking to use the Nucleo WB55RG board to prototype some BLE firmware.I was looking through the examples in Cube MX but that particular board wasn't listed but there were a few similar choices, (see below). I was thinking the NUCLEO-WBAA55CG or the P-NUCLEO-WB55-NUCLEO?
I am working with STM32WB55RG microcontroller. The application that I am working on needs to enter BLE mode when requested by user. I am able to start the BLE application and it starts advertising.After a set time of 1 minute the application has to come back to normal operating conditions and enter stop2 mode. For this I am trying to de-initialize Bluetooth and stop CPU2 completely. I am calling hci_reset followed by HAL_IPCC_DeInit and disabling HSEM clock. After this I am calling LL_C2_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN). Then i am setting CPU1 to stop2 mode.The STOP2 mode current is around 3 mA compared to the 4 uA i am getting before the initialization of Bluetooth. When I call the Bluetooth function for the 2nd time the sequencer is always idle. Every time I am doing the same initialization process, but only the first time Bluetooth is initializing properly. Is there a better way to de-initialize and reinitialize BLE properly?
Hi,When the device is first added to Apple HomePod, pressing button 2 can trigger automation, and it is always effective no matter how many times it is triggered. But once the device restarts, pressing button 2 again is almost always ineffective. Guess the problem is related to device restart. I pressed button 1 according to the instructions before restarting the device, but it still had no effect.I have provided the log of the development board in the attachment. Development board: STM32WB5MM-DKFirmware: STM32CubeExpansion_MATTER_V1.1.0\Projects\STM32WB5MM-DK\Applications\Matter\Generic-Switch-AppTest environment: One iPhone, one Apple HomePodTest process: 1. After the device is turned on, add accessories on the iPhone and select "Matter". 2. Enter the device pairing code and complete the device addition on iPhone. 3. Press button 2 and confirm that it can trigger automation on the iPhone. 4. Press button 1, wait for the save to complete, and then restart the device. 5. Wait for
Hello,I'm using the B-WL5M-SUB1G, using Visual Studio as my programming environment, attempting to get LoRa TX working without using the middleware.The code is below. The project serial output is below the code block. Referencing RM0453 Rev 6 (STM32WL5x reference manual), on page 204, there is the "Basic sequence for LoRa... transmit operation", and I believe I'm following all the steps, yet, get a command failure option when putting the radio into TX mode. Here are the steps I'm performing:Put radio into sleepPut radio into standbyGet radio status - The return is 0xA2 - suggesting it is in RC13 standby modePut the the radio into LoRa mode using RADIO_SET_PACKETTYPEGet the packet type - here is my first misunderstanding, isn't RADIO_GET_PACKETTYPE supposed to return the status and the packet type? The return is 0x01 0x00, which at face value suggests the status byte is 0x01 and the packet type is FSK Generic? Am I initializing something wrong already?Set the radio parameters with RADIO
Hi,I have the problem, that my MCU seems to loose its connection to the network quite often (after some minutes or hours usually) and is therefore not usuable.I would like to detect this in my Application and then trigger either a rejoin (if possible) or a normal join process and handle the rest on my coordinator.I found this https://community.st.com/t5/stm32-mcus-wireless/stm32wb55-zigbee-network-connection-status/m-p/748031#M22281 as similar topic, but it did not work in my case. I tried the solution, but when I kick out my STM32 from the network from teh Coorinator side, the detect function does not register a network loss.My other approach would be to use ZbZclAttrIntegerRead in a cyclic function and hope, that I can get an error code, if the Coordinator cannot be reached. Is there an example, of how to read a coordinator data or anything arbitrary with this function, and if there is an error report, when coordinator cannot be reached?How would the call of a rejoin look l
Hello, I have an STM32WB55 processor. I use BLE. I use FreeRTOS.I call the functions HAL_PWREx_EnterSTOP1Mode or HAL_PWR_EnterSLEEPMode.Before that I call the HAL_SuspendTick function.But somehow I exit WFI. Somehow an interrupt comes but I couldn't find where it comes from. Do I need to stop FreeRTOS to run sleep or stop mode?Also, could BLE have caused me to exit sleep or stop mode?https://www.youtube.com/watch?v=B1cUWRpXrPUI watched the video in this link but it didn't help.Can you help me with the subject?
Hi, I'm using the LoRaWAN end node example from the stm32cubewl v1.3.0. The board im using is the RAK3172 based on the stm32wle5ccu6 chip. The application i want to build reads data from a modbus using UART and sends it through lorawan. I have assigned UART1 in the platform settings for debugging in lorawan and UART2 for reading from modbus. When I tested both separately the work perfectly. However when I integrate both together, Lorawan still works and uart 1 works properly, however uart2 stops working. I connected a USB to ttl converted to uart2 to see the if it was sending data, it sends data till Lorawan process starts running after that it doesnt send any data. I am mostly using the code that is in STM32Cube_FW_WL_V1.3.0\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\LoRaWAN_End_Node. The only changes that I have made are to write a function to read from modbus in main.c and call that function in lora_app.c just below the line EnvSensors_Read(&sensor_data); Yet UA
Hi everyone,I am using the LoRaWAN_AT_Slave example code on an STM32WL-based device, and I am operating in OTAA mode with the ChirpStack server to monitor the data. I am successfully sending sensor data to the server at the specified intervals.I have checked the ChirpStack server, and I can confirm that both uplink and downlink data are being successfully received and transmitted. Now, I want to send a downlink from the ChirpStack server. There are two options for sending the downlink: either in base64 format or in JSON format.When I send the downlink in base64 format, I am successfully receiving the downlink. I am attaching a picture below for reference; please check it out. Below is the logs printed on the serial monitor. Now I am trying to send the downlink in JSON Object. Below is the picture of sending the JSON Object:This JSON Object is successfully transmitted from chirpstack server to my device. But, on my device I am not getting the data which i have sent from t
Hello, I am planning to develop a 915 MHz LoRaWAN end node using the STM32WLE5C8U6. My goal is to send data from several sensors—such as GNSS, temperature, and accelerometer—directly to a gateway without employing an external MCU. 1- Could you please advise if the integrated MCU in the STM32WLE5C8U6 is sufficient for handling these tasks? 2- I intend to use a chip antenna (0915AT43A0026001E) and would like to know if it is feasible to achieve a 10 km range in a rural open area with this setup. 3- would you recommend a 4-layer or 6-layer PCB for this application? Thank you in advance for your assistance. Best regards,
Hello,I would like to use the BLE_p2pServer_ota example with the STM32WBA55CG as a template for a project. Since I do not have an LSE available here, I would like to use the LSI. Which settings (defines) do I have to change?If I use the LSI with 32,000kHz, the advertising works, but I cannot establish a connection.
Hi, I'm testing a custom STM32WB09TEF7TR board. To communicate with the analog front end, I need to use SPI.However, SPI communication requires 17 us setting time, which means around 60 kHz.This speed is very slow.So, the Initiation of SPI becomes the bottleneck of the speed of the overall system. So, I wonder if there is anything I missed.Below is the oscilloscope result for the SCLK (yellow) MOSI (green) and MISO (blue) CS (pink) pins, respectively.After the CS pin reset, around 17 us are required to start SPI transmission. My code for this function is below. void spi_read_write(void){GPIOA->BSRR = GPIO_BSRR_BR9; // Reset CS_pinHAL_SPI_TransmitReceive_DMA(&hspi3, SPI_tx_DMA, SPI_rx_DMA, 5);HAL_Delay(1);GPIOA->BSRR = GPIO_BSRR_BS9; // Set CS_pin}
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.