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 nucleo board connected to the STLINK-V3PWR via JP2 and ground connections. Flashed onto the device I have a mioty evaluation stack from LZE. I am taking readings of the current drawn and getting a consistent value of 3mA. I was trying to evaluate the deepstop current so wanted to know if the fact is that I have got my measurements/ connections wrong or that the firmware is preventing me from entering the mode.
I previously got CDC via USBX and FreeRTOS working on a custom C542 design, using the examples since CubeMX2 did not support the USBX middleware at that time.I am now trying to port that code to the C562 since I need more memory. This does not work at the moment since I used CubeMX2 for the USBX configuration and setup.So I thought, lets have a look into the examples and see what I am doing wrong.Unfortunately that did not work, or rather the USBX-CDC-FreeRTOS example for the Nucleo-C562RE board using the CMake toolchain does not work.I got "example_usbx_device_cdc_acm_uart_freertos" from "https://dev.st.com/stm32-example-library" for the CMake toolchain.I extracted the ZIP and imported the project in the latest CubeIDE (version 2.2.0; Silicon MAC) and build the project in "release" and "debug" config without errors.However, both version do not setup the USB stack correctly. The user-LED stays on, so everything should run without errors.If I look at the USB communication with a Total P
Dear Team,Could you please provide the internal RTC accuracy for the STM32H7 microcontroller?Additionally, I clarify the following point: 'Digital calibration circuit with 0.95 ppm resolution, to compensate for quartz crystal inaccuracy. Regards,TEMC - Efftronics systems Pvt Ltd
Hi everyone,I am currently facing a persistent issue with the STM32U385RGT6Q where the MCU becomes undetectable after the first successful programming cycle.Setup OverviewMCU: STM32U385RGT6Q Programmer: STLINK-V3MINIE IDE: STM32CubeProgrammer OS used: Windows (initial attempts also on macOS) External protection: ESDALC6V1W5 on data linesSchematics: MCUProgramming COnnector for ST LinkObserved BehaviorInitially, the STM32 was not detected by STM32CubeProgrammer → Root cause: faulty USB cable + macOS security restrictions After switching to a proper data USB cable and Windows: → MCU detected and programmed successfully → Firmware runs (RGB LED turns green) After reinstalling the ESD protection diode (ESDALC6V1W5): → MCU can still be programmed once successfully After first programming cycle: MCU becomes undetectable by ST-Link RGB LED no longer functions No signal observed on LED data line Reprogramming is no longer possible Replacing the MCU: → Same behavior repeats exactly → Works
When adding the VectU2F function to a processing list, it defaults to creating three buffers: pDst (float32_t), pSrc (float32_t), and pSrcuint32_t (uint32_t), instead of just pDst and pSrcuint32_t.There seems to be no way to select a different uint32_t input in the GUI. There is a field pSrcuint32_t, but this only allows me to select a float32_t buffer. I believe the type checking in the GUI for this buffer is incorrectly set to float32_t instead of uint32_t, and as a result it both creates the extra unused float32_t buffer (pSrc), and won’t let me change the actual pSrcuint32_t buffer it uses. This is supported by the VectItoF function which correctly checks that pSrcInt32_t is an Int32_t, and creates only two buffers. This results in extra memory used in the BRAM section, and means I can only ever have one buffer that converts uint32_t into float32_t. I suspect I will be forced to bypass the GUI to create this processing list as a result. (As an aside, the function naming in the Vect
This covers two separate problems.unsafe relocation. This is coupled with a “cannot find routine xxx”. The cannot find xxx is explained by a changed #ifdef that did not include a routine. The problem that also cropped up was an “unsafe relocation” which doesn’t seem to mean all that much (I know the explanation) in the way of solving the problem. This is “fixed” by going back to 13.3.rel1. and changing the #ifdef. Interrupts not working FreeRTOS latest primask register goes to 0x80 when default task is created. taskEXIT_CRITICAL() does not change that mask Timer, systick, and any other interrupts remain disabled after the first task. If no tasks are created, then primask may or may not be properly set, but the interrupts do not work FREERTOS insists that interrupts should be disabled (read the documents!) and will be re-enabled when the scheduler runs. with 14.3.rel1 interrupts are not enabled. resetting GNU tools to 13.3.rel1 seems to make it all work (and it had been wo
Hello ST team, I am trying to run an ONNX model on a NUCLEO-U545RE-Q board using STM32Cube AI Studio I first tried with a model of about 281.75 KiB weights, and the generated project failed at build/link stage with an undefined UART symbol. To check whether the issue was related to memory size, I also tried a smaller model: - Model: model_seqlen20.onnx- Input: f32(1x20x25)- Output: f32(1x1)- Parameters: 32,129- Weights: 128,516 B / 125.50 KiB- Activations: 2,256 B / 2.20 KiB- Total AI flash reported: 130,190 B- Target: stm32u5- Board: NUCLEO-U545RE-Q- Firmware package: STM32Cube_FW_U5_V1.9.0- ST Edge AI Core: v4.0.1-20581- Toolchain: STM32CubeIDE The model generation step completes successfully. The reported memory footprint is small enough for the board. However, during the Run flow, STM32Cube AI Studio the build fails with: undefined reference to `UartHandle` The errors are: Middlewares/ST/AI/Misc/Src/aiTestUtility.c:- _put_c_driver: undefined reference to `UartHandle`- ioRawWriteBuf
When using the ISP IQTune application to generate ISP parameters for the STM32N6 DCMIPP, the Auto White Balance expresses an error that I believe is incorrect. The error claims that AWB cannot start becase the R/B ratios for white balance must decrease, as the color temperature increases. The ratio IS decreasing, as shown in the image below.When the temperature is 5100K, the R/B ratio is 2.1/1.9 = 1.105When the temperature is 3800K, the R/B ratio is 2.3/1.9 = 1.210Thus, as the temperature increases, the R/B ratio decreases. Either this is wrong, or I’m missing a key component of this calibration process.
Hello,I would like to evaluate IIS2MDC mounted on MKI185V1 evaluation board using MEMS Studio. in the “Save to File” section I can choose Timestamp, Magnetometer, Magnetometer [LSB}, and Interrupt 1, but not Temperature, although the device has an internal temperature sensor. my setup:STEVAL-MKI185V1 on STEVAL-MKI109V3, FW: 3.79.1. MEMS Studio ver. 2.4.0 on Windows 11.Please advise,Shmulik
Hello,I am looking for a camera module for the NUCLEO-H7S3L8 board, using the STM32H7S3L8 MCU.My project requirements are: Field of view: at least 120° horizontal FOV Preferably RGB or YCbCr output I would prefer a module that is reasonably easy to connect, with a breakout board or pin header I would like to avoid MIPI CSI-2 cameras because the NUCLEO-H7S3L8 does not have a CSI-2 camera receiver or a 22-pin camera connector The STM32H7S3L8 datasheet, Section 3.26, states that its DCMIPP supports an 8- to 16-bit parallel camera interface, including RGB565, YCbCr 4:2:2 and compressed data such as JPEG. However, the NUCLEO-H7S3L8 board does not appear to have a dedicated camera FPC connector.I found an ST Community table listing OV2640, OV5640 and OV5642 as examples of sensors supported by STM32 DCMI. I am therefore considering an OV5640 module with a 120° lens, such as this module:https://www.eleparts.co.kr/goods/view?no=6210776&utm_ I also considered an Arducam Mega SPI camera
Hello, we are planning to use LSM6DSO in Mode 1, but PCB is fixed and pins 10 and 11 are connected to GND. This conflicts with LSM6DSO datasheet but I was wondering if it is still OK to connect them to GND. Can you clarify on this?
Is it possible to install STM32CubeIDE and STM32CubeIDE for VS Code on one PC (Windows)? If so, can I run both versions simultaneously? If so, can I program two microcontrollers simultaneously with two programmers?
Following this issue, and the advice from @Didier HERROUIN, we have implemented the SYN and SCS initialisation,(see schematic) , and are still finding that our STPM32 chips are resetting their UART config during operation.For context, the firmware first pulses SYN 3 times, then SCK, and configures the STPM32 UART to 115200 baud. This runs fine for a few minutes, and then we detect a failure because the chip resets to 9600 baud for no reason, leading to a timeout on the microcontroller.The voltage supply to this device is perfectly stable at 3.3V.We have followed all advice regarding isolation and ground planes, as you can see in the attached PCB design.I desperately require assistance with this problem. My only solution now is to re-configure the STPM32 every time it resets, but this will definitely lead to inaccuracies as some energy measurements will be lost during configuration and timeout detection. The only common thread I can piece together is a hint from one Mark Germagian, who
We are experiencing issues on STM32MP13 when using TF-A with OP-TEE due to an "Undefined instruction" exception during low-power entry.When TF-A is built with a standard arm-*-gnueabihf toolchain, the compiler is allowed to generate NEON instructions because the STM32MP1 platform enables:ARM_WITH_NEON := yesIn our case, GCC generates NEON instructions when compiling lib/compiler-rt/builtins/udivmoddi4.c, which is reached from udelay() during the low-power sequence. At that point, however, the VFP/NEON unit is disabled, so execution aborts with an "Undefined instruction" exception.Relevant TF-A build settings:ARM_CORTEX_A7 := yes (from STM32MP1 platform settings) ARM_WITH_NEON := yes (from STM32MP1 platform settings) AARCH32_SP := optee CTX_INCLUDE_FPREGS=0Relevant compiler options:-mcpu=cortex-a7 (generated by TF-A from ARM_CORTEX_A7 := yes) -mfpu=neon (generated by TF-A from ARM_WITH_NEON := yes) -ffreestanding -fno-builtin -OsWe have verified that replacing udelay() with a simple
Even when running stm32cubemx2-1.0.1-X64-Windows-installer.exe as Admin: Failed to add cube-wrapper to PATH: Could not create / read registry 'HKEY_LOCAL_MACHINE\Environment': The parameter is incorrect. (0x80070057) On Windows 11 Pro Installing to C:\Program Files\STMicroelectronics\STM32Cube\MX2\1.0.1
Helloi’m using USBX 6.4.0 with CUBEMX to make a custom id device on a stm32H5 everything work fine BUT my report descriptor have four report ID i wanto to use :hid_event.ux_device_class_hid_event_report_id = 3;// some data in the bufferux_device_class_hid_event_set(hid_custom, &hid_event); and in order to do that i have to change custom_hid_parameter.ux_device_class_hid_parameter_report_id = UX_FALSE;to custom_hid_parameter.ux_device_class_hid_parameter_report_id = UX_TRUE;in the function: UINT MX_USBX_Device_Stack_Init(void) i can’t find in cube MX the property to change.. where is it?? thank you in advancebest reguards
Dear all, I want to evaluate a STM32H5 (NUCLEO-H653ZI) via the built in STLink (ST-LINK FW: V3J16M7). I use VS Code with STM32CubeCLT_1.18.0 as IDE and control the flashing and debugging with a .json. Checking the STLink connection to the board by executing “<Path>\STM32_Programmer_CLI.exe –list” works fine. Also, flashing the board and running a simple LED toggle application by executing “<Path>\STM32_Programmer_CLI.exe --connect port=swd --download <Path>\H563ZI_Test.elf -hardRst” works just fine. When trying to start the GDB server for debugging by executing “<Path>\ ST-LINK_gdbserver.exe -p 50000 -cp <Path>\STM32CubeProgrammer\bin --swd –halt” an error occurs and the debug process is terminated:STMicroelectronics ST-LINK GDB server. Version 7.10.0Copyright (c) 2025, STMicroelectronics. All rights reserved.Starting server with the following options: Persistent Mode : Disabled Logging Level : 1 Listen Port Numbe
I am using SPI6 on an STM32H562 to write data to a WS2812 LED strip. The following code is called once per second to write the data: LOGIF ("bytes left=%d", GPDMA1_Channel2->CBR1); LOGIF ("TXC %d", (WS2812_SPI.Instance->SR & SPI_SR_TXC) != 0); LOGIF ("ready=%d", HAL_SPI_GetState(&WS2812_SPI)== HAL_SPI_STATE_READY); if (HAL_SPI_GetState(&WS2812_SPI) != HAL_SPI_STATE_READY) { LOGIF ("error=%d", HAL_SPI_GetError(&WS2812_SPI)); HAL_SPI_Abort (&WS2812_SPI); } HAL_SPI_Transmit_DMA (&WS2812_SPI, spi_bytes, RESET_BYTES + nvalues * BYTES_PER_FRAME); Here is the log output for the first two calls:[101] ws2812 75: bytes left=0[101] ws2812 76: TXC 1[101] ws2812 77: ready=1[201] ws2812 75: bytes left=0[201] ws2812 76: TXC 1[201] ws2812 77: ready=0[201] ws2812 79: error=0The first time, GetState reports READY, but the second time it does not, even though bytes_left is zero and TXC is 1, so an Abort is required before the next transmit. Unfortunat
https://github.com/STMicroelectronics/meta-st-stm32mp/blob/scarthgap/recipes-bsp/trusted-firmware-m/tf-m-stm32mp.inc#L263 and the following cp commands preserve the ownership of the file which is a problem for yocto.When I build the sdk, I am getting the following error:Exception: Exception: KeyError: 'getpwuid(): uid not found: <my-uid-here>'Path <path-to-build-folder>/tmp/work/x86_64-nativesdk-<distro-sdk-name>-linux/nativesdk-tf-m-stm32mp-scripts/v2.1.4-stm32mp-r2.1/sstate-build-package/package/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-<distro-sdk-name>-linux/usr/share/tf-m/scripts/wrapper/imgtool/__init__.py is owned by uid <my-uid-here>, gid <my-gid-here>, which doesn't match any user/group on target. This may be due to host contamination.The fix is quite easy, any instance of “cp -a” needs to be replaced by “cp -a --no-preserve=ownership”. So you copy every other attribute but the ownership.I fixed it in a .bbappend but that would be
I tried to use the Build analyzer in VSCode, but there are some important allocations missing:VSCode:STM32CubeIDE (using *.elf file produced by VSCode):This is probably because the VSCode plugin is using the *.map file while the STM32CubeIDE uses the *.elf file.Is there any chance to have the same Analyzer in VSCode?
As reported in the following image the gauge reports a wrong value for FLASH free space
Hi everyone,I found a solution for a common issue when using the official STM32Cube for VS Code extension. If you disable the Microsoft C/C++ (ms-vscode.cpptools) extension to avoid IntelliSense conflicts, you might notice that "Format Document" stops working completely.The reason is that the STM32 extension's built-in clangd has its formatting engine disabled by default.To fix this:Go to VS Code Settings (Ctrl + ,).Search for: stm32cube-ide-clangd.enableFormatting.Check the box to enable it.If prompted, set "STM32Cube for VS Code" as your Default Formatter.This allows you to have working formatting and precise IntelliSense without any conflicts from the Microsoft extension. Hope this helps!
I currently have two boards equipped with different specific models of N6, namely STM32N647X0H3Q and STM32N657X0H3Q. I have an IDE project for testing the memory-mapped functions of each of these two chips.The problem lies in that this project can be implemented on the STM32N647X0H3Q in a manner similar to: data = *(volatile uint8_t *)0x70100000;Such code reads the content from the external FLASH. However, on the STM32N657X0H3Q, it is impossible to read. The specific manifestation is that when I run this line of code in the debug mode, the program directly jumps tovoid SysTick_Handler(void)and the debugging connection is disconnected, as shown in the following figure. I have wondered whether it was an issue with the external FLASH soldering, or a problem with the PCB traces (my two circuit boards were not produced on the same PCB. The circuit board with STM32N647X0H3Q was purchased from the internet, while the one with STM32N657X0H3Q was designed based on the schematic diagram of the
Hi , he system operates in timing mode with lower limit detection at 1.1-second intervals and a measurement duration of 33 ms; the status code is read to verify accuracy, though misjudgments may occur—for instance, when no object is present, measured values may fall below the lower limit, requiring correction. Parameters: long-distance reference Spad count = 7; aperture Spads = 1; HV settings = 32; Phase calibration = 1; Offset micrometer = 7000 (for 100 mm); myXTalk compensation rate (Mega CPS) = 66 (for 600 mm).Why is the refSpadCount value obtained by our school less than 10?Increasing the measurement time reduces the likelihood of misjudgment, as I use a battery-powered device and cannot extend the measurement duration.
Hi all,I'm reusing the STM32H7S78-DK's Octo-SPI flash (MX66UW1G45G) and Hexadeca-SPI PSRAM (APS256) sub-circuits on a custom board and want to match the DK's signal integrity. I can't find the fabrication stackup or impedance spec in the docs. Could ST share, for the DK (please confirm board rev):Full layer stackup — copper weights and each dielectric thickness/material. Target impedance (single-ended + any diff) and tolerance for the Octo-SPI / Hexa-SPI nets. Trace width/spacing for those buses, and their routing layer + reference plane. Any length-matching constraints on those groups.For reference, the published Altium reference-design project ships with an unconfigured stackup (single 1.5 mm dielectric, all layers typed Signal), so it doesn't reflect the real fabricated stack — which is why I'm asking for the actual values.Thanks!
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.