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 have the timing budget set to 56ms. Have histogram merge turned off, and histogram max size set to 1.I also have an IMU on board. I have also enabled Phase cal patch power. The following is the setup.I am having trouble getting returns above 1.2metres, and is there any way of estimating the timestamp with higher fidelity. At the moment I am just taking the mid-point from when it starts ranging to when we can load the sensor. Its not using a GPIO pin, its using the blocking getMeasurementData function, we have instrumented that poll and have included that into the timing measurement. Just want to know if theres any tricks we can do to get it comfortable returning 2+ metres, there are 16 sensors pointing radially outward. The sensor has slow and fast dynamic motion that it undergoes.
Trying to build a NUCLEO-C562RE project under IAR 9.60.4. Included with the output is an folder, IDEs_patches/EWARM and a readme,md outlining how to add support for the new MPU. But the patch file referenced in it is no where to be found. Searched my local drives, ST’s site, ST’s Community, ST’s github but can’t find “STMicroelectronics.stm32c5xx.2.1.0.iar.zip”I’m glad ST has decide to distribute a patch so I don’t have to upgrade to the latest IAR every time a new CPU comes out (my company tries to use a consistent version across projects) but without the patch file, IAR does not recognize the C564 as a target.
Hello ST Community,I would appreciate your guidance on the logic for BLE data transfer. I've created custom GATT services to transmit sensor data to mobile application via BLE. Currently, the data is sent in HEX format. Is there any method to send the raw read values from the sensor instead of HEX format so that it would be easily read and not prone to parsing errors. I've searched online for resources but haven't found a suitable one, so I'm posting here.Thanks in advance
I am working on a project on a STM32H563 with trustzone enabled. Our firmware update strategy relies on using the dual bank flash and swapping when needed. I was wondering if you can set the SWAP_BANK option byte and trigger a bank swap from non-secure code with SECBOOT_LOCK not set?. I am asking because do not I want a hacked non-secure application to be able to trigger a bank swap to potentially untrusted code on the other bank. I could not find a clear answer in the reference manual.
Hello, I have a kind of general question about the usage of interruptions and memory barriers.Because of the pipeline architecture of the processor, it is recommanded by ARM (https://support.arm.com/documentation/dai0321/a/ ) to use DSB / ISB instruction when enabling disabling instruction. The guide focuses (amongst othr cases) on the NVIC operations. The CMSIS functions __NVIC_DisableIRQ and __NVIC_EnableIRQ look to respect the guidelines.However, I’m wondering if such practices should be applied when enabling/disabling the peripheral interrupt (typically via the enable interrupt register) ? Same with the RegisterCallback functions avaialble in the HAl libraries. Regards.
I am working with an STM32H723ZG Nucleo-144 board and a small GA12-type encoder DC gear motor connected through a motor driver.My connections are:Motor driver PWM → D15 / PD15, configured as TIM4 Channel 4 PWM Motor driver DIR → Arduino A2 / PC3, configured as GPIO Output Encoder C1 → D6 / PE9, configured as TIM1 Channel 1 Encoder C2 → D5 / PE11, configured as TIM1 Channel 2 Encoder is configured in TIM1 Encoder Mode TI12PWM is working and the motor rotates, but I cannot make the motor rotate in the opposite direction. I have tried setting the DIR pin both HIGH and LOW: HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3, GPIO_PIN_SET);HAL_Delay(3000); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3, GPIO_PIN_RESET);HAL_Delay(3000);However, the motor continues rotating in the same direction.I have confirmed in STM32CubeMX that A2 corresponds to PC3 and PC3 is configured as GPIO output. I am using TIM4 CH4 for PWM and TIM1 CH1/CH2 for the encoder.What could be causing the DIR signal not to reverse the motor direct
Erase sector operation is failing for more than 2 sectorsI have attached the code baseignore trace functionality added for debugging0x20 function code, (Not clear if the call to erase sector are separate or single call)write enable, erase command, wait for Busy bit to be clearedCan someone help to spot the issue
Does STEVAL-ESC001V1 evaluation board support 6 step ?.it already supports FOCif so any idea how to implement 6 step in steval esc001v1
Hi,I am working with an STM32H573 and would like to reliably detect when the device is running in the built-in ST System Bootloader.Is there any supported mechanism to determine that the MCU has entered the System Bootloader?For example, is there any status information, register, persistent flag, GPIO behavior, or other mechanism that can be used to distinguish the System Bootloader from the normal user application?The goal is to provide an external indication when the device is in this state. A status LED would be one possible example, but I am mainly interested in whether there is a general and reliable way to detect the System Bootloader state.In our setup, Secure Manager is enabled, so entering the System Bootloader may also happen as part of the secure boot / recovery flow.Is there any recommended approach for this on STM32H573 devices?Thanks!
STM32CubeProgrammer V2.21.0 displays an update avaliable icon and when I click it it offers to update to V2.23.0, but when I let it try to update it appears to download something then some windows flash up for a moment then STM32CubeProgrammer restarts but is still V2.21.0.I am on Windows 11
Hello everyone,I'm using STM32CubeIDE 2.1.0 and STM32CubeProgrammer on Ubuntu 24.04.4 LTS.Yesterday I was able to flash my firmware to an module based on the STM32H755 MCU via ST-LINK using the following settings:Port: SWDMode: NormalReset mode: Software resetEverything worked fine. Today I made some modifications to the firmware, but when I tried to connect again, I got this error:Error: No STM32 target found! If your product embeds Debug Authentication, please perform a discovery using Debug AuthenticationThings I have already tried (none worked):Changing Mode to "Under Reset"Changing Reset Mode to "Hardware reset" and "Core reset"Holding the reset button while clicking connectTesting with a different ST-LINK programmerTesting with a different board (same MCU)Here is what st-info --probe returns:Failed to enter SWD mode Found 1 stlink programmers version: V3J15 serial: 004100223235511237333439 flash: 0 (pagesize: 0) sram: 0 chipid: 0x000 dev-type: unknownThe ST-LINK i
After updating to STM32CubeProgrammer v2.22.0, I get the following error when connecting with JLINK:Error: ST-LINK interface not availableMy commands still work, but they just print this error message everytime. Is this a known issue, and are there any ways of suppressing this particular error?Full trace of a simple command below:STM32_Programmer_CLI -c port=JLINK sn=xxxxxxxx mode=HOTPLUG -score ------------------------------------------------------------------- STM32CubeProgrammer v2.22.0 -------------------------------------------------------------------Connecting to J-Link/Flasher ProbeDevice=Cortex-M33Device ID : 0x484Voltage : 1.81VFrequency : 4000 KHzError: ST-LINK interface not availableNVM size : 2 MBytesCore is halted Using:STM32CubeProgrammer: v2.22.0 STM32H573II SEGGER J-Link PLUS: SEGGER J-Link Commander V8.10c
Hi all,I know there is a newer version of this (v2.2) but I'm still on the old one. I can click the ok button on the "Download has failed, some data may be not updated. Please retry later" window and the target selector shows up but the project I make (TestH7A3VIT6) for STM32H7A3VIT6 has an exclamation point on a triangle in it.BTW I'm using this in my windows 11 laptop and there is no crdb.zip in the repository folder.So is STM32CubeIDE 1.19.0 too old and not supported anymore? I'm trying to avoid some of the early bugs in STM32CubeIDE v 2.x.Thanks
Hello,I have a project that uses I3C to connect a Nucleo-C562RE with an STM32C542CCT6 MCU. The setup was working fine with HAL 2.0.0 but it does not work in 2.1.0. I generated the code with MX2 and I observed that it is identical to the code in the private_it_controller example code. I stepped through the mx_i3c1_init function and I noticed that the moment the GPIO for SDA and SCL are enabled, the I3C clock (SCL) is turned on (visible on the oscilloscope) and does not stop. I don’t see how this could be correct. When I try to start DAA it fails instantly (the error callback is invoked) and the SDA line never changes state (it stays HIGH after reset).Can someone help with this issue?Thank you,Gil
Hi ,I'm currently working with a BlueNRG-332AC and am unable to establish an SWD connection for programming/debugging.Hardware Checks Verified the SWD header continuity – all connections are OK. Tried swapping SWDIO and SWCLK to rule out wiring issues, but it made no difference. The target board is powered. Voltage Measurements on SWD HeaderPin Measured Voltage Pin 1 (VCC) 3.3 V Pin 2 3.3 V Pin 3 (SWDIO) 3.3 V Pin 4 (SWCLK) 0 V GND 0 v Software Tried BlueNRG ST-Link Utility RF Flasher Utility BlueNRG ST-Link Utility Log18:29:21 : Can not connect to target! If you're trying to connect to a low frequency application, please select a lower SWD Frequency mode from Target->Settings menu.18:29:22 : No target connected18:29:32 : Can not connect to target! Please select "Connect with Pre-Reset" mode from Target->Settings menu and try again. If you're trying to connect to a low frequency application, please select a lower SWD Frequency
Hello,i ‘m using the library with FOC mode using a custom board with a STM32G474RE microcontroller, Hall sensor and 3 shunts for the phase current measurements. The maximum phase current will be about 28A. The shunts resistors are 1mohm. The voltage value is amplified by a INA with gain 20 and the voltage offset for zero current is 1.65V. Since the microcontroller VREF+ is very unstable and ADCs sometimes go crazy i decided to switch to the internal reference voltage set to 2.5V with successful results. The problem is that the motor control library uses a indecent constant, defined in the file mc_config.c without a define, set to 32767 as the offset for currente measurements. But 1.65/2.5*65536 is not equal to 32767. The workbench does not allow to set any offset. By changing manually that value it works! But changing values manually in a huge, chaotic and disorganized code is risky and error-prone. Is there any way to change these values safely? Leonardo
When building in STM32CubeIDE 2.1.1, and targeting an STM32F303K8,Project properties C/C++ Build Settings MCU GCC Compiler Miscellaneous Near the bottom, observe a checkbox for -mtune=cortex-a35.This option really does have effect in the gcc command line, and that really does significantly alter the compiled machine code.But… why is this allowed in the UI? Why would this tuning option appear specifically for the A35, when the STM32F303K8 is an M4? By default, the makefile does correctly add -mcpu=cortex-m4.
Hi, everyone,Would it be possible to disable the boot pin on the STM32H5E4VJTX using STM32Cube Programmer?I haven't been able to figure out if there's a setting in the Option Bytes to do this. Thanks for your help.
I am working with the official X-CUBE-SBSFU package and I need to port the example that is provided for NUCLEO-H753ZI (STM32H753ZI) to my custom board based on STM32H733ZGTX.This is the closest official example available for my MCU. There is no .ioc file and the whole project structure (SECoreBin + SBSFU + UserApp) is built specifically for the H753ZI.I have already read AN5056 (Integration guide for the X-CUBE-SBSFU). It explains the hardware adaptations and especially the memory mapping changes (mapping_sbsfu / mapping_fwimg), but it does not give a clear step-by-step procedure for changing the target MCU itself (startup files, linker scripts, CMSIS device headers, project settings, etc.).Could someone from ST or the community please advise on the recommended and proper way to perform this port?Specifically I would like to know:The correct sequence of steps to change the target device from STM32H753ZI to STM32H733ZGTX in the three projects (SECoreBin, SBSFU, UserApp). How to properly
Hello,I want to know what is the latest Chromium version supported by OpenST Linux on Scarthgap.Do we have GPU acceleration on it?Thank you in advance,Hiba @PPAGE.13@Billy OWEN @Gregory PLANCHON
Dear all,We are using the LIS2DW12TR on a custom PCB and have observed significant offset errors on the Z-axis, reaching up to ±20% of full scale.The sensitivity appears to be correct; however, instead of measuring the expected values of +1 g and −1 g, we obtain readings such as +1.17 g and −0.83 g. This suggests a substantial offset while the sensitivity remains largely unaffected.The X- and Y-axes do not exhibit this behavior and remain within specification.The most unusual aspect is, that the offset is not stable. It changes very slowly over time, typically over a period of several days, without any intentional modification of the hardware or software configuration.Has anyone experienced similar behavior with the LIS2DW12TR or identified possible causes such as PCB stress, assembly process effects, flux contamination, humidity, temperature exposure, or aging effects?Any recommendations for further investigation would be greatly appreciated.Best regards,Reto
Hi,Do enabling BDU also protect temperature data registers from getting refreshed while reading the data? Or is it just for accelerometer data registers? BR,KJ
Hello everyone,I am working on a cosmic muon detector project using two SiPM detectors and an STM32F446RE Nucleo board.My circuit holds the fast SiPM pulse for 20 µs. The two analog signals are connected to ADC Channel 0 (PA0) and ADC Channel 1 (PA1).What I want to do: Time Difference ($\Delta t$): Measure the exact arrival time between both detector pulses to check if it is a real muon (coincidence window). ADC Measurement: Read both peak voltages at the same time and convert them to mV. Serial Output: Print the time difference ($\Delta t$), raw ADC values, and mV values to the Serial Monitor via UART. My questions: What is the best way to configure the STM32 timer (Input Capture) to measure the small time difference between the two pulses? Should I use Dual Simultaneous ADC mode to sample both channels at the exact same time? How should I set up the code in STM32CubeIDE so the serial output does not miss fast events? Any simple example code or setup advice would be very helpf
Hello!I would like to generate a single HEX file containing both the application firmware and the Option Bytes required to change the device from RDP Level 0 to Level 1. The goal is to have a single file that can be used during production programming.To do this, I exported the Option Bytes using the Export MCU Memory Map feature and appended the exported HEX content to the end of the application HEX file::020000044002B8:20204000DCF8EF1F7F0000087F00F90B000000000000000000000000FFFF00FFFFFF00FF9A:102060000000000000000000FFFF00FFFFFF00FF76:020000044002B8:08207000000000000000000068:020000044002B8:08207800000000000000000060:00000001FF Then I programmed the resulting file using:STM32_Programmer_CLI.exe" -c port=swd mode=UR reset=HWrst -d zephyr.hexThe programming reaches 100%, but the CLI output does not display the usual "File download complete" message:Memory Programming ... File : zephyr.hex Size : 29.21 KB Address : 0x08000000Erasing memory corresponding to segm
I tried to build the GPIO Toggle project for the NUCLEO-C542RC board, but I encountered the following build error.Could you help me to solve this issue? **** CMake Configure of configuration release_GCC_NUCLEO-C542RC for project NUCLEOC542RC_LedBlink ****C:\ST\STM32CubeIDE_1.14.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cmake.win32_1.1.200.202605190741\tools\bin\cmake.exe -S D:\Project\Gen3\InterfaceController\STM32CubeC5\examples\hal\gpio\toggle\NUCLEO-C542RC\cmake --preset release_GCC_NUCLEO-C542RCCMake Warning:Ignoring empty string ("") provided on the command line. CMake Error at cmake/components.cmake:70 (add_subdirectory):The source directory D:/Project/Gen3/InterfaceController/STM32CubeC5/arch/cmsis does not contain a CMakeLists.txt file.Call Stack (most recent call first):CMakeLists.txt:15 (include) CMake Error at cmake/components.cmake:71 (add_subdirectory):The source directory D:/Project/Gen3/InterfaceController/STM32CubeC5/stm32c5xx_dfp does not contain
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.