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
I created the OTA application by following this YouTube video:https://www.youtube.com/watch?v=mRzZOa3jmuM&list=PLnMKNibPkDnG9JRe2fbOOpVpWY7E4WbJ-&index=14https://www.youtube.com/watch?v=mRzZOa3jmuM&list=PLnMKNibPkDnG9JRe2fbOOpVpWY7E4WbJ-&index=13After performing an OTA update using the OTA application I created, the OTA_ReBoot characteristic does not show the "Upload File" button—only a Write button is visible, as shown in Figure 1.The settings for OTA_REBOOT_REQUEST were configured based on Table 1 in AN5247 (see Figure 2).So my questions are:How should I modify the configuration to make the OTA_ReBoot characteristic appear as shown in Figure 3 (with an "Upload File" button)?Alternatively, if I don't modify the program, can the OTA upgrade still proceed normally in the next update?
Hi, I'm having a problem with the wake-up procces using interruptions. I use three pins, PA0, PA8 and PA9, set the with no pull-up, and in rising mode. then i enable them as wake up pins, in rising mode. i go to sleep in stop mode, using the functions from stm32_lpm.c, inside the UTIL_SEQ handler. When the device goes to sleep after UTIL_LPM_EnterLowPower(); the consumtion reaches 7uA. If i generate a pulse in PA9 pin, the device wakes up and executes a function that is setted as a task to the handler. the function set on a pin with a led, waits for a second and reset the pin. It works just fine. But with the two other pins, PA0 and PA8, the device wakes-up, reaching 3,5 mA in consumption, but does not follow with the perocces neither returns to low power. Any idea why the changes from one pin to another? PA8 and PA0 seem to have wake up capabilities, following datasheet.Thanks for the help!
Hello Team,I am currently working on STM32WLE5 microcontroller and getting issue in HAL_Delay(), it got stuck, ifound that systick interrupt was not generating. In main() function, I start with HAL_Init() and then HAL_Delay(500) and controller get stuck sometimes, the only way out was multiple reset. I have gone through many forums but didn't get exact the solution.Thanks & RegardsRohan
Hi,I was going through the documentation in this link. It mentions that there is a transparent mode. How can I enable this in the example for PBP Source?/* Codec Mode */ typedef uint8_t CODEC_Mode_t; #define CODEC_MODE_DEFAULT (CODEC_MODE_FLOW_CTRL) #define CODEC_MODE_FLOW_CTRL (0x01) #define CODEC_MODE_WAIT_SYNC (0x02)These are the modes available. I do not see an option for transparent mode here. Let's assume that I already have LC3 encoded data that is sent over UART/SPI/USB etc, I do not wish to decode and encode again. In this case, the transparent mode is useful. How can I enable it? Is it even possible? Best regards,Navin
I am implementing a dual-firmware architecture on an STM32 microcontroller that does not natively support dual-bank flash. In this setup, I have partitioned the internal flash memory into two separate blocks:Block 1 (Bootloader + Application) begins at address 0x08000000Block 2 (Bootloader + Application) begins at address 0x08020000Each block contains its own independent bootloader and main application code.Issue:When executing firmware from Block 2 and a system reset occurs, the microcontroller restarts execution from Block 1 (i.e., address 0x08000000), instead of continuing from Block 2 (0x08020000).My Questions:In this type of dual-block configuration, how should the vector table be set for each block to ensure correct interrupt handling and boot behavior?What specific modifications are required in the IAR .icf (linker) file for both Block 1 and Block 2 to support this configuration?How can I ensure that when Block 2 is actively running, a reset will result in restarting Block 2 ins
I've a custom board that going to SHUTDOWN OFF mode I'm using the LPM lib and it use PA0 as WAKEUP PIN it wakes up on a High level signal void PWR_EnterOffMode(void) { /* USER CODE BEGIN PWR_EnterOffMode_1 */ // refer to the following link for more details on how to go to Off Mode // https://community.st.com/t5/stm32-mcus-embedded-software/how-to-enter-standby-or-shutdown-mode-on-stm32/m-p/145849 // https://community.st.com/t5/stm32-mcus-wireless/stm32wb55-shutdown-mode-standby-mode-wake-up-with-syswkup-pin/m-p/67480#M812 /* Enable Backup domain write */ HAL_PWR_EnableBkUpAccess(); /*Disable RTC */ CLEAR_BIT(RCC->BDCR, RCC_BDCR_RTCEN); /* Disable LSE */ CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEON); /* Disabel Backup domain write */ HAL_PWR_DisableBkUpAccess(); /* See : https://community.st.com/t5/stm32-mcus-embedded-software/how-to-enter-standby-or-shutdown-mode-on-stm32/m-p/145849 */ /* USER CODE END PWR_EnterOffMode_1 */ /** * The systick should be d
Hello.I found a problem with Flash. After successfully operating with flash before entering MX_APPE_Process(), the possibility of entering standby mode disappears. I had issues with the visibility of variable values after these operations, but I could say it was successful. I used standard functions to work with Flash. Something similar to what is in the examples for STM32WB.Then I found this thread https://community.st.com/t5/stm32-mcus-wireless/stmwb55-flash-write-access-during-ble-connection/td-p/268121/page/3 where @Remi QUINTIN advised to use the Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE\BLE_RfWithFlash project, where I found a nice flash driver file.I thought this should help to extinguish all conflicts in the sequencer and allow it to go into standby mode after using flash.Below, I attach a project that has a demo of working with Flash and an algorithm for getting into standby, which was provided to me by the esteemed @FilipKremen.I did not repeat all the functiona
Building a product that utilizes BLE communication and since this is a new product, the STM32WB05KN was chosen due to the BlueNRG line being phased out.Unlike the BlueNRG line, they have a UART interface that would be advantageous to use, but seems to lack documentation. Doesn't seem to be found in the Wiki: WB0 Series WikiCan't find it in the um3355 documentation.Looking for basics, like UART parameters (baud, bits, etc), examples, and maybe some guidance on using DMA and Interrupts. What pins are required? Reset, IRQ.......
Hi,I have one board where, depending on PLL configuration, it yields a lot of seed errors on RNGThis is the faulty configuration RCC_OscInitStruct.PLL1.PLLSource = RCC_PLLSOURCE_HSI; RCC_OscInitStruct.PLL1.PLLFractional = 0; RCC_OscInitStruct.PLL1.PLLM = 4; RCC_OscInitStruct.PLL1.PLLN = 50; /* VCO = HSI/M * N = 16 / 4 * 50 = 200 MHz */ RCC_OscInitStruct.PLL1.PLLR = 2; /* PLLSYS = 200 MHz / 2 = 100 MHz */ RCC_OscInitStruct.PLL1.PLLP = 2; RCC_OscInitStruct.PLL1.PLLQ = 8; /* 25 MHz */If I change PLLQ to 7 or 9, issue is gone.fffFrom RM: RNG dedicated clock, asynchronous to rng_hclk- Is it the ratio 100 MHz / 25 MHz just a bad ratio?- Why is it an issue only in one board?
Hello everyone, The LoRaWAN_End_Node from LoRaWAN_FUOTA Project (STM32Cube_FW_WL_V1.3.1) is used with ChirpStack as a network server (supports the FUOTA Package V1). The Multicast session runs and receives the Downlink of all the Fragmented Packets from the server. The issue appears after receiving the last packet. Seems that the Firmware doesn't recognize that the downloaded firmware is complete, and it should begin building it. In AN5554(P10):The V1.0 package, and particularly Fragmented Data Transport specification [TS-004] (see document [3]), doesnot provide a way to inform the server that all data blocks have been properly received in order to rebuild thecurrent download file. Trying to find a way to let the Firmware swaps to the new version rather than flip back(after the expiration of the Fragmention status request) to the old Firmware: Tracing the logs, there is no sign of FRAG_DECODER_IF_OnProgress and FRA
in stm32wb55, After generating p2p configuration, #include "ble_types.h" should add manually in p2p_stm32.h file.
Good morning allIm trying to follow the https://github.com/actility/nucleo-stm32wl55jc-fuotav1?tab=readme-ov-file#readme in order to simulate a firmware update on my STM32WLJC1 nucleo board but i am running into a something strange. All the projects build successfully but the first project to build, namely 1_image_SECoreBin builds with 6 warnings. The rest of the projects , 1_image_BFU and LoRwaWAN_End_Node buid with no warnings. When I try and program this to my board, the old firmware remains on the device even after supposedly being successful. My assumption is that it is due to these warnings. What should i do in order to stop these warnings and allow a successful upload. Attached you will find the outcome of the first build. In function 'determine_block_state', inlined from 'determine_block_state' at C:/GitClones/Actilitity_FUOTA/nucleo-stm32wl55jc-fuotav1/Middlewares/ST/STM32_Key_Management_Services/Modules/kms_nvm_storage.c:721:28, inline
Hello,I am currently using the NUCLEO-WB15CC to test STM32CubeMonitor-RF.I imported the BLE_TransparentMode example to be able to use Monitor RF. Everything works perfectly when using the default USART1 interface.I also tested the communication using an FTDI cable instead of the NUCLEO’s embedded ST-Link virtual COM port (by removing the RX and TX jumpers), and the FTDI connection works fine with USART1.For my project, I would like to use LPUART1 instead of USART1 to communicate with Monitor RF. CubeIDE seems to allow switching between UART instances easily. I configured LPUART1 in the same way as USART1, using DMA and the same settings. The configuration compiles and programs correctly, and I have successfully flashed the firmware.I am using the same FTDI cable, connected to the connect LPUART1 pins (RX: PA3, TX: PB5), but I am unable to establish any connection with CubeMonitor-RF.(Of course, I double-checked the RX/TX wiring and tried swapping them just in case.)If I use (RX: PA3, T
I expect to re4ceive my 67W61M1 expansion board very soon. However, in looking at the CubeMX pack for the device I do not see a driver for STM32F4xx devices. Is this planned or are we on our own porting using the Pack examples?
Dear Sirs, I have been developing an Application that runs in the STM32WB5 for a while, the BLE works fine, and it is integrated with a mobile app fine, but I need to communicate it with a coprocessor (STM32H750). For this mean, I would like to use UART (Asyncronous, 115200, 8 bit, no parity...) with DMA. My implementation looks like:- One task registered in the Sequencer that runs this piece of code:if (HAL_UART_Transmit_DMA(&huart1, &temp.data[0], temp.data_length) != HAL_OK) { restoreElement(((app_context_t*)context)->sm_queue); } else { uart1_tx_busy = 1; }The data and the data_length are correct, and stored in the global structure temp (so those are not flushed after the function finishes).In addition to that, the HAL_UART_Transmit_DMA() returns HAL_OK and so the uart1_tx_busy flag is setted.- The callback is called:void HAL_UART_TxCpltCallback(UART_HandleTypeDef *UartHandle) { if (UartHandle->Instance == USART1) { uart1_tx_busy = 0; } }and the
Hello,On CubeMX v6.14.1 and X-CUBE-AZRTOS-WB v6.2.0, I am not able to add a USB record/playback device. This means that I cannot generate USB Device descriptors using CubeMX. Why is this not possible yet? What are the alternatives?Best regards,Navin
Is the DevEUI ID also provided in the hardware for stm32wle , in datasheet it is mentioned it is DevEUI compliant. Does it also have a UID64 register from where it can be read?
dose st-link v2 is not supported in stm32wl5moch
Hi all,I am new to development with STM32, and I want to connect an external RFID card reader to my STM32WL5MOC, which is on the B-WL5M-SUBG1 board. I tried looking for tutorials on how to do this but nothing useful came up.The user manual (UM3127, https://www.st.com/resource/en/user_manual/um3127-stm32wl5moc-connectivity-expansion-board-stmicroelectronics.pdf), in Section 7.6, outlines which solder bridges should be ON/OFF to configure the board between SPI and UART. Upon inspecting the solder bridges on my board (default configuration), I noticed that it is configured for SPI.My understanding is that even if I connect my RFID card reader to the correct pins of the board, I still will not be able to establish a UART connection because there is physically not an electrical connection. Is this correct?Should I un-solder the solder bridges that are configured for SPI and solder them in the right place for UART? Is there any other way to do it without altering the electrical connection of
Hi,is there any ST Bluetooth BLE module that can stream audio (preferably high quality) and that can be fully operated just by using commands (like AT or other/proprietary commands)?Ideally for it to have a analog output pin/signal we can connect to a low power amplifier, but it can also be an I2C or other.Thank youRick
I am looking for a memory map for the stm32wl5moc. I thought I found one before but cannot find it again. It is not in the datasheet. Any suggestions? Thank you.
Hi everyone,I'm experiencing an issue with multicast group communication in my LoRaWAN setup. I have created a multicast group and am attempting to send downlinks to my end devices (STM32 B-L072Z-LRWAN1). The downlinks are getting queued and sent to the gateway, but they never seem to reach the end devices.Here is the part of my code responsible for sending the multicast downlinks:def send_downlink(): now = datetime.now().strftime('%Y-%m-%d %H:%M:%S') print(f"[{now}] Sending downlink to multicast group (Port: {FPORT}, Payload: {PAYLOAD_HEX})...") try: channel = grpc.insecure_channel(GRPC_SERVER) client = api.MulticastGroupServiceStub(channel) auth_token = [("authorization", f"Bearer {API_TOKEN}")] payload_bytes = bytes.fromhex(PAYLOAD_HEX) req = api.EnqueueMulticastGroupQueueItemRequest() req.queue_item.f_port = FPORT req.queue_item.data = payload_bytes req.queue_item.multicast_group_id = MULTICAST_GROUP_ID # Send request start_time = time.time() resp = client.Enqueue(req, metadata=
Hi everyone,I’m new to LoRa and STM32 development, and I’m trying to set up communication between two devices using the P-NUCLEO-LRWAN3 kit. Here's my setup:Transmitter Node:- NUCLEO-L073RZ- LRWAN_NS1 sensor expansion board (433/470 MHz)Receiver Gateway:- NUCLEO-F746ZG- LRWAN_GS_LF1 gateway expansion board (433/470 MHz)I’ve successfully read sensor values like temperature from the transmitter node. Now, I want to send a simple value like "10" from the transmitter to the receiver using LoRa.I’m using Zephyr RTOS and following the LoRa sample examples, but I’m not sure how to:1. Transmit a custom value (like a string or integer)2. Receive and print/display that value on the receiver sideAdditionally, I’ve received two pairs of antennas with the kit – one pair for 434 MHz and one for 480 MHz. I'm not sure which one I should use for proper transmission. Any guidance on that would also be helpful.Could anyone guide me or share a minimal working example for this?Thanks in advance!
Hello,I've been unable to get the ACI_GATT_SRV_READ_VSEVT_CODE case to trigger on the STM32WB05. Since this chip doesn't seem to support line for line debugging with an STLink to the Serial Wire interface due to Sequencer, I haven't been able to find a solution. The ACI_GATT_SRV_WRITE_VSEVT_CODE triggers fine and I've enabled GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP in CUBEMX. Does anyone know what the issue could be? Kind Regards
Why to use TIM16 to modulate TIM17 instead of start TIM17 and stop TIM17 ?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.