Join discussions in the Product Forums. Ask questions, learn from your peers, and share insights on ST solutions to accelerate your design journey.
Most recent activity
I am using STM32CubeIde, No RTOS, USART1, RX DMA (Circular), TX DMA in normal mode with DMA_IT_HT disabled.I’ve got main loop periodically outputting a simple message on the USART. System appears to hang when commanded to change baud. I’ve tried perhaps dozens of variations that have been recommended by “STM32 Sidekick” and Google AI. Most work with the debugger connected. None work without the debugger which is making this difficult to troubleshoot. Sidekick example shown below. // 1. Wait for any ongoing transmissions to finish safely // This prevents splitting a character mid-air. while (__HAL_UART_GET_FLAG(huart, UART_FLAG_TC) == RESET) { // Optional: Implement a timeout mechanism here } // 2. Temporarily de-initialize the UART peripheral // This turns off the UART but keeps your GPIO and DMA settings intact. if (HAL_UART_DeInit(huart) != HAL_OK) { return; //H
Hi all, I’ve seen in other manufacturers MCUs( sometimes) calibration values that may get lost if I wipe out the whole chip. It was long long ago.I’m new to this STM32U5 series. I’m working with the STM32U5G9J-DK2 kit. I’m porting the LCD stuff to my empty program. But I’m debugging and sometimes I need to go back and program the BSP example. Then I go back to my program and the thing is it keeps showing the demo screen (from the BSP example) even though I don’t have it in my program. It goes away if I unplug the USB cable. I was wondering if instead I can use the STM32cubeprogrammer and use the erase full chip button instead? Am I gonna lose anything important? Thanks
Hello,I am working on a custom application with BLE OTA on the Nucleo WB55RG. The OTA loader is placed at 0x08000000. My main application is linked to start at 0x08007000.In normal mode, the main application runs an ADC test and continuously prints ADC values. I added a hardware OTA trigger on pin PC2. When PC2 is driven high, the application prepares the BLE OTA request and then calls NVIC_SystemReset(). The OTA request is passed to the loader at the start of SRAM.After this, the OTA loader starts correctly. The loader detects the OTA request from SRAM. The loader erases the application flash area starting from sector 7, corresponding to address 0x08007000. The loader then attempts to initialize the BLE stack and start advertising.The issue is that BLE advertising does not start when entering OTA mode after the NVIC_SystemReset(). Pressing the on-board reset button also does not make BLE advertising start. However, if I completely power cycle the board by removing USB power and reconn
In my application on an STM32H7S3 I’ll have to often read option byte keys, and I want to limit the possibility of accidentally writing to option byte keys.According to the reference manual, that’s where the PG_OPT bit of FLASH_OPTCR comes in:PG_OPT: Program options0: Update operations to user option bytes and option byte keys do not start1: Write operation to user option bytes and option byte keys is enabledPerfect, so I just need to be sure this bit is not set when I don’t want writes.To double check this bit is not needed to be set during the configuration of FLASH_OBKCR to initiate read operations, the description of the KEYPROG bit - when set to 0 - seems to hint the PG_OPT bit doesn’t need to be set according to the reference manual:KEYPROG: Key programThis bit must be set to write option byte keys (keys are read otherwise).0: Read key. Result of the operation is stored in FLASH_OBKDRx registers, if applicable.1: Program key if PG_OPT is set in FLASH_OPTCR register, and KDREF fla
Hi everbody,we are using an STM32H573 with ST Secure Manager and would like to perform the final Product State transition from TZ-CLOSED to CLOSED at the end of production.At this point, the device is already assembled and SWD/JTAG is no longer accessible. Therefore, we would like to trigger the transition through an authenticated internal command from the Non-Secure application.From the documentation, we understand that:PRODUCT_STATE is controlled via Flash Option Bytes. The Non-Secure application cannot directly modify the relevant Secure Flash registers. We could not find a documented Secure Manager runtime API for changing the Product State.Could you please clarify:Is there an existing Secure Manager API to perform TZ-CLOSED → CLOSED at runtime without SWD/JTAG? If not, can this be implemented via an OEM Secure Module? Is an OEM Secure Module allowed to modify the PRODUCT_STATE Option Byte?Thanks and best regardsMario
Hello, I have a problem after updating the system to Android 16. Before, everything was great. I have a custom application to work with ST25DV04KC. Now, the NFC service crashes before connection, and the system app opens NDEEF. Only on the first "tap," after turning NFC on/off, the connection is correct. Is there any workaround before they change it in Android? Thanks for any help.
Hi again,Since the new version of ST Community I can't find my previous post, so I'm creating a new topic to follow up on the old one. The replies from @AScha.3 and @Brian TIDAL on that thread helped me a lot before it disappeared.As I mentioned, I'm a beginner in this field. The full context is in my earlier post:I have just one more question. You mentioned that building an external antenna is easy, but is it really doable for a beginner? I'd like to know whether I can realistically do it myself if I buy the right equipment to measure inductance, or whether I need an expert to guide me.Also, in addition to AN6065, I found AN2866, which is more readable in my opinion and provides a step-by-step procedure. I don't understand everything yet, but I'll work through it.Thanks!
Hello Team,We are currently developing a custom board based on the STM32MP255 and have encountered a routing challenge.According to the STM32MP255 DDR routing guidelines, the single-ended trace impedance should be 55 Ω. However, after optimizing the PCB stack-up and routing, the closest value we have been able to achieve using the Saturn PCB Toolkit is 70 Ω.Could you please confirm whether this deviation from the recommended impedance is acceptable? Specifically, we would like to understand:Will this impact DDR functionality, signal integrity, or overall system reliability? Is 70 Ω within an acceptable tolerance for the STM32MP255 DDR interface, or would you recommend modifying the PCB stack-up to achieve the target 55 Ω?Your confirmation and guidance will help us proceed with confidence before finalizing the board design.DDR Routing imageMeasuring toolLayer Stack-up
How can stm32f407 reset and run in vscodeide ?
Hello,I would like to test the VL53L9CX using the GUI interface compatible with the X-NUCLEO-53L9A1 board. This software appears to be the STSW-IMG052. The ST webpage for this software returns a 404 error. Were there issues with using this software that led to the download being suspended, or is it simply a broken link on ST's servers?Thanks for your answers,Christophe
Hello,I understand that ToF sensors inherently have limited performance under daylight conditions. However, I would like to know which ST ToF sensor family currently offers the best performance in daylight, regardless of whether it is a single-point or multi-zone sensor.The VL53L9 series looks very promising for our application, but unfortunately, its cost is above our target budget. Therefore, I am looking for a more cost-effective alternative that still provides good performance under daylight conditions.A wider FOV would be preferable for our application.Would it be reasonable to select a sensor based primarily on its maximum specified detection range? If so, the VL53L1 series seems to be a good candidate. However, I am not sure whether the maximum specified range is the best parameter to use when comparing sensors for real-world daylight performance.I also assume that a wider FOV reduces the number of photons received per unit area, which could potentially reduce the sensor's perfo
Hello Team,I am working with an STM32C552RET6 and an NVIDIA Jetson Orin Nano EVK. I would like to flash the STM32C552RET6 firmware over the UART interface directly from the Jetson using a Linux utility.I have the following questions: 1. UART flashing from Jetson Linux:What is the recommended method/utility to flash an STM32C552RET6 over UART from a Linux-based system such as the NVIDIA Jetson Orin Nano? Is STM32CubeProgrammer CLI supported for this use case, or is there another recommended Linux utility for the STM32C5 UART bootloader? 2. STM32C552RET6 bootloader connections:What physical connections/signals are required between the Jetson and STM32C552RET6 to enter the system bootloader and perform firmware flashing over UART?3. BOOT configuration:Which STM32C552RET6 boot-related pin(s) need to be controlled to select the system-memory bootloader? Can these be controlled directly from the Jetson GPIOs? 4. NRST control:Is it necessary to control the NRST pin from the Jetson to reliably
Hey,I am having a big issue with ESD discharges and the STUSB4500. Essentially, I auto negotiate to 20V, and on ESD discharge, the STUSB shuts off VBUS_EN_SINK, while the supply continues to supply 20V. My thought is that on ESD discharge, the chip for some reason thinks it has had a disconnect event, waits for the supply to recover to 5V, but the cable has not been disconnected so continues to supply VBUS with 20V, and the STUSB then is in a hard stuck state until actual unplug and re-plug. There is no error seen, as GPIO does not pull low and is configured to show error states.I cannot find a document that exposes all of the register values, but after every shut down, the chip register state reads the same failure state. The dump is as below. # Before dischargeSTUSB4500 @ 0x28, registers 0x00..0xff 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f00: 00 00 00 00 00 00 12 00 11 20 00 63 fb 01 41 0a10: 0a 13 00 40 00 02 0c 2c 00 00 00 21 01 80 00 0020: 10 c8 5f 00 00 9c 00 02
Hello,I am currently evaluating the STM32 G4 platform for motor control. I would like to control 3 motors with one MCU, and I was planning to order: 1 * B-G473E-ZEST1S3 * STEVAL-LVLP011 * B-ZEST-ADAPT13 motorsI have installed x-cube-mcsdk-6.4.2 and tried to create this setup, but I cannot see how to add 3 motors, and how to interface many power boards to 1 control board : The file supporting B-ZEST-ADAPT1 needs to be imported ?The support for 3 instead of 2 motors needs to be done manually (by editing the code) ?The 3 motors will be using biss or ssi so I will have to create those drivers. Are there any other points to check for compatibility ?Thanks for your support
Hello!on our project that use the SPV1050, we need to charge a small LiPo battery that have a 20mA maximum charging current. Could someone help me find a good solutions for regulate the current from BATT Pin?thanks in advance,Andrea
I'm working on an STM32G0B1RE and have a question regarding PWM generation and timer limitations. Current Hardware ConfigurationThe hardware design is already fixed, so changing pins is difficult. Current PWM signals are routed as follows: PA8 -> TIM1_CH1 PA9 -> TIM1_CH2 PC11 -> TIM1_CH4 PC9 -> TIM3_CH4From CubeMX I confirmed that: PA8 -> TIM1_CH1 only PA9 -> TIM1_CH2, TIM15_BKIN PC11 -> TIM1_CH4 only PC9 -> TIM3_CH4, TIM1_CH2My software currently uses TIM1_CH1, TIM1_CH2, and TIM1_CH4 simultaneously. What I ObservedI have a PWM abstraction layer that allows setting frequency per logical PWM device. However, after reviewing the implementation and STM32 timer architecture, I realized that changing the frequency of one TIM1 channel modifies the timer ARR value, which affects all channels on TIM1. DeviceA -> TIM1_CH1 DeviceB -> TIM1_CH2 DeviceC -> TIM1_CH4If I execute: setFrequency(DeviceA, 1000);and later: setFrequen
For the BLUENRG-M0A Bluetooth module, what is its normal shelf life when stored in a warehouse? We plan to purchase 1000 units at one time, but it will take several years to use them up. Will long-term storage affect the product lifespan? How can we achieve long-term proper storage, and what are the environmental requirements for the warehouse?
Hi. I want to implement position control, I dont know where to write codes to start motor and write move commands. Please send an example.
I am using Motor Control v6.4.2 to run the motor with the custom board with STM32G4 Series controller with Currents + HALL feedbacks for BLDC hub motors. Currently we are using Main Sensor "Observer+PLL" and auxiliary sensor "Hall Sensor" during STARTUP and Swap these sensors in RUN state.We could see motor is running at a constant speed all the time and not reacting to any change in parameters even after change the requested torq parameters to the torq PI controllers.Questions1 PLL and HALL electrical angles are not in Sync during motor running phase. How can we make the Electrical angle phase shift between HALL and PLL to 0?2 Motor Controller is not responding to the update current commands as expected, What Would be the Possible root cause for this kind of behavior?any Help on these is greatly appreciated. Thanks:)-Himavanth
Wondering if VL53L9CX generates per-pixel histograms?It looks like there is no relevant information either in the datasheets or the released firmware. Many thanks,Z
In Section 5.1 of datasheet for VL53L9CX, it says “Refer to the postprocessing technical note (TN1596) for more details of the data formatting, processing, andfilter functions.”But I cant seem to find the TN1596 document. I am looking for information on the distortion correction on the raw depth output.
Hello, I would like some help with starting up the STEVAL CTM 015A1. I use an external power supply on terminal CN6. I supply a constant power supply from 0 to 32V on terminal CN5, but the fault diode D10 is constantly on when it is compressed with the STM32CubeProgrammer, then it goes out. I also have Hall sensors connected for the position of the rotor of the SRM.
Device: STM32WB55Hi Community,We are receiving HCI_HARDWARE_ERROR_EVENT with code 0x04 from bluetooth full stack (version 1.18 up to 1.24 tested), while advertising and C1 enters STOP1. It happens randomly, and the device becomes sometimes unconnectable after this unless we reset the stack.We are NOT using STM32CubeWB, but followed recommandations found in AN5289 regarding PLL management and entering/leaving STOP1 mode.Any insight on what can cause this and how to fix it properly ?Thanks,
Hi ST Community team,Our STM32F103‑based project uses FreeRTOS integrated by STM32CubeMX, currently kernel version is V10.3.1.Questions:1. Does ST have any official roadmap / plan to update the bundled FreeRTOS kernel inside CubeMX STM32F1 software pack to a newer FreeRTOS kernel release (e.g. V10.6.x)?2. What is ST’s official recommended solution for users who want a newer FreeRTOS kernel, given CubeMX will overwrite custom‑replaced kernel sources on code regeneration?3. Are there any known compatibility constraints when manually replacing underlying FreeRTOS kernel while keeping ST’s CMSIS‑RTOS v1 wrapper unchanged?Our context:‑ Application uses almost exclusively CMSIS‑RTOS v2 APIs, very few direct native FreeRTOS calls.‑ No FreeRTOS+TCP network stack, no network‑facing interfaces.‑ Concern comes from CRA / component long‑term maintainability requirement.Thanks & best regardsAllen
I can't decipher the silkscreen markings on this chip. Could you please help me confirm?This chip looks like it's from ST, but I didn't see the ST logo. I suspect it's an abbreviation for STM32G473ME, but I can't confirm it, and the chip's datasheet doesn't provide detailed information on device markings.
ST Community highlights – April to June 2026
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.