Get ready for the STM32 Summit 2026 | Online, November 3
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
Hello there,I made a project using the STM32H7A3 controller. I imported the project into my workspace and everything worked fine. The project got recognized as a CubeIDE project and compiling it was no problem. Now I wanted to switch to the STM32H755 controller which is a dual core controller. Mainly because it has an onboard ethernet connector. I wanted to test my old project on the new controller and configured a new project with CubeMX and generated Code. I set the toolchain to STM32CubeIDE and ticked “generate under root”. It generated the following structure:Now, when I import the project into my workspace, only the sub-projects CM7 and CM4 for the two cores can be separately built but the root project does not get recognized as a CubeIDE Project. Additionally, every #include for HAL driver headers has an unresolved inclusion error: main.hThis is the main.h file that got generated inside the CM7 folder. On default files and other files I copied all the includes work except for tho
When running an LCD display project, the screen fails to turn on after I cut the power and turn it back on.It only comes on when I short the NRST and GND pins.I have a 10k pull-up and a 100nF pull-down connected to the NRST pin; what should I do?
HIHow to create a project for STM32H7 with Ethernet and LwIP stack working | CommunityRx buffers labeled “Zero Copy” and are used by DMA and CPU are not marked by MPU for cacheable? only descriptors are. I couldn’t find any special clean or flush cache operations in code as well. Why is that? Image below shows only descriptors (512B) and TX (LWIP heap) are noncacheable.
Environment: Windows 11, VS Code, STM32CubeCLT 1.22.0, stm32cube-ide-build-cmake 1.46.0, stm32-vscode-extension 3.10.0Symptom: Any CubeMX CMake project fails to configure with:CMake Error: Could not find CMAKE_ROOT !!!CMake has most likely not been installed correctly.Modules directory not found inRoot cause analysis: cube-cmake.exe is a self-contained binary embedding CMake 4.4.2, deployed at <ext>/resources/cube-cmake/win32/x86_64/. CMake's FindCMakeResourcesInInstallTree requires the executable directory to end with bin and <prefix>/share/cmake-4.4/Modules/CMake.cmake to exist. The shipped layout is neither bin-suffixed nor does it include share/cmake-4.4, and the companion cmake.exe is missing — so it fails on every run.Workaround (local): rebuilding bin/ + share/cmake-4.4/ + companion cmake.exe + a junction makes it work.Request: Please ship the full CMake resource tree (Modules/Templates) and companion cmake.exe with the extension, or have cube-cmake delegate to the C
Does the STM32N6 XSPIM permit multiplexed mode with different memory types on the two instances? XSPIM_CR.MUXEN=1, mode = multiplexed to Port 2, with XSPI1 as MTYP=101 (HyperBus) driving a HyperRAM on NCS2, and XSPI2 as Quad SPI driving a NOR on NCS1.CubeMX 6.18 refuses it requiring both modes to be same but RM0486 reference manual makes no such distinction or state no restriction on memory types. Which one is authoritative? Can I mix them ? If mixed types are legal, are there constraints on DQS/RWDS and CLK/NCLK when only one instance uses them (NOR does not connect to NCLK for example)?
Hello,Since updating to 6.18.1, clicking ACCESS TO BOARD SELECTOR on the homescreen freezes STM32CubeMX permanently. The window never opens, one CPU corestays pinned at 100%, nothing is written to STM32CubeMX.log, and the processcannot be closed - it has to be killed with kill -9 / xkill. ENVIRONMENT STM32CubeMX : 6.18.1 (updater.ini: SoftVersion=MX.6.18.1, DbVersion=DB.6.0.181)Update path : 6.17.0 -> 6.18.0 -> 6.18.1OS : Ubuntu 26.04 LTS (Resolute Raccoon), x86_64, kernel 7.0.0-29-genericDesktop : KDE Plasma 6.6.5, Wayland session (app runs under XWayland)JVM : Bundled JRE, OpenJDK 21.0.10+7-LTSInstall path: ~/Documents/STM32CubeMX STEPS TO REPRODUCE 1. Start STM32CubeMX and let startup finish.2. On the home screen, click ACCESS TO BOARD SELECTOR.3. The GUI freezes immediately and never recovers. LOGS"AWT-EventQueue-0" #46 [10722] prio=6 os_prio=0 cpu=72188.54ms elapsed=81.89s runnable java.lang.Thread.State: RUNNABLE at org.sqlite.core.NativeDB.step(Native Method)
I need more PSRAM and so went exploring and found RM0486, which seems to show that I can have two PSRAM on one XSPI port (using EXTENDMEM, §28.4.24), but I cant seem to find more than that.Is EXTENDMEM with two octal DDR PSRAMs a silicon-validated configuration on the N6 XSPI, or is it documented-but-untested territory? RM0486 notes the automatic CS switch when an access "crosses the middle boundary of the external memory". Does this work transparently with DTR memory-mapped writes and MDMA/DMA bursts, or are there alignment/burst-length restrictions at the boundary I should design around?Has anyone run 128 MB total on one N6 XSPI port? The 256 MB address window and DEVSIZE math allow it, but I'd love to hear from someone who has it working on real hardware (or from ST whether an eval/reference design exists with dual PSRAM).Anything to watch on the RIF/RISAF side for the XSPI1 memory region when all masters run secure?Board: custom using the STM32N657X0HxQ.Planned setup:Two identical
On an STM32N657X0HxQ I'm bringing up two APS51208N octal-DDR PSRAMs (512 Mb / 64 MB each, x8) on a single XSPI1 controller, XSPIM Port 1, using EXTENDMEM to get a contiguous 128 MB map. This is configured in the FSBL context.Per RM0486 §28.4.24, one XSPI drives both NCS1/NCS2 autonomously when EXTENDMEM (XSPI_DCR1 bit 21) is set.My CubeMX config (which it accepts without error):- XSPIM: Direct (XSPI1 on Port1)- XSPI1: Octo SPI, Port1 Octo, Memory Type = AP Memory, Memory Mode = Enable- Memory Size = 512 Mbit (one die, per "the size of one external memory must be set in DEVSIZE")- Chip Select Boundary = 64 MB- Memory Select = NCS1I could not find any EXTENDMEM / dual-memory / extended-memory option anywhere in the CubeMX XSPI1 panel, so I'm handling the extended-memory parts in user code. Three things I'd like confirmed:EXTENDMEM has no CubeMX exposure: is setting XSPI1->DCR1 |= (1U << 21) manually after MX_XSPI1_Init() the intended approach, or is there a CubeMX setting I've m
Hello,I have an STM32G474RE Nucleo-64 with an X-NUCLEO-IHM16M1 driving a GB2208 motor with 7 pole pairs. My goal is to use an AS5048A absolute magnetic encoder for sensored FOC and position control.MCSDK already runs the motor correctly in sensorless mode, and I can reliably read the AS5048A. However, integrating it into MCSDK has been much less straightforward than expected.Current implementationI use TIM1 CH4 to trigger TIM2. TIM2 starts the AS5048A SPI transaction approximately 3 µs after the trigger. My assumption was that this provides a relatively quiet switching interval, avoids interfering with current ADC sampling, and reduces MOSFET switching noise. I am not certain whether this assumption is valid or whether encoder acquisition should instead be synchronized with a specific PWM/ADC event.After determining the encoder direction and electrical offset, I calculate the electrical angle as:electrical_angle = (pole_pairs * mechanical_angle + electrical_offset);I then inject the en
It seems like it's been over a year since reports surfaced that the ST-Link interface isn't working on Snapdragons.Are there still no ST-Link interface drivers available for Snapdragon CPUs?
I made a linux kernel driver for VL53L9 with ~ 10 FPS.Tested on Radxa Dragon Q6A with STEVAL-VL53L9https://github.com/momoisgoodforhealth/st-vl53l9-i2c-kernel-driver
Hello everyone,It is more a bug report than a question, but in the last version of X-CUBE-EEPROM, (X-CUBE-EEPROM | Product - STMicroelectronics) I found out that value “EE_NO_PAGE_FOUND” is defined twice.Once in eeprom_emul.h:/* No page define */#define EE_NO_PAGE_FOUND ((uint32_t)0xFFFFFFFFU)And once in eeprom_emul_types.h:/** * @brief EE Status enum definition. *//* Define of the return value */typedef enum { /* External return codes : ok */ EE_OK = 0U,... /* Internal return code */ EE_NO_PAGE_FOUND, -> here, second definition EE_PAGE_NOTERASED,...} EE_Status;Is it made on purpose? Best regards
i have a problem regarding the usage of the jpeg codec on a stm32n657x0h-q to decode images. the project also involves the transfer of such images over eth0 but for the sake of isolation of the problem i have bypassed mongoose. the problem seems to relate only to jpeg interrupts since the hpdma channel0, used to feed the periperal, is working.To develop this project i followed this example for the discovery kit.doing some debugging, i noticed that confr0 is being manipulated (i used a watchpoint), both jpeg_cr and jpeg_sr are being set, but confr1 has a strange behaviour: during Init_process, its registers are properly set, then, when manually halting execution in the cycle in main, the confr1 is set to all zeros. During initialization, registers are as follows:Confr1 has DE and HDR set to 0x1, the others to 0x0;cr has JCEN, EOCIE and HPDIE set to 0x1, the others to 0x0sr has IFTF, IFNFF and COF set to 0x1, the Others to 0x0COF in jpg_cr remains 0x1, as does the JCEN, thus the pheriper
Hi everyone,I am using an STM32H753ZIT6 on our custom PCB. Before this, I was successfully programming the STM32H753ZI on the NUCLEO-H753ZI board using the UART bootloader (system memory boot mode) with STM32CubeProgrammer and a USB-to-UART TTL converter. I have never used an ST-LINK for programming.I followed the same hardware connections and programming procedure on our custom PCB, but STM32CubeProgrammer always returns a timeout error and cannot connect to the MCU.Setup MCU: STM32H753ZIT6 Software: STM32CubeProgrammer Programming interface: UART bootloader (not ST-LINK) USB-to-UART converter connected to USART1 TX of USB-UART → STM32 PB15 (USART1_RX) RX of USB-UART → STM32 PA9 (USART1_TX) Manual boot mode selected (not using RTS/DTR auto boot) Programming Procedure Hold BOOT0 HIGH. Reset or power-cycle the board. Release RESET while keeping BOOT0 HIGH. Click Connect in STM32CubeProgrammer. This exact procedure works on the NUCLEO-H753ZI but fails on our custom PCB.
Hello ST Team,Good morning!I am currently working on integrating the VL53L9 sensor with the STM32N6570-DK development board. I have successfully obtained the STSW-IMG053 software package, which is designed for the STEVAL-VL53L9 evaluation board using the MIPI CSI interface.However, my target hardware configuration is different. My objective is to use the following setup:Software Package: STSW-IMG053 Host Board: STM32N6570-DK Sensor Board: X-NUCLEO-53L9A1 Communication Interface: I3CI would like to port the STSW-IMG053 software package to support the X-NUCLEO-53L9A1 evaluation board while retaining the STM32N6570-DK as the host platform.I would appreciate your guidance on the following points:Is there an official procedure or application note describing how to port STSW-IMG053 from the STEVAL-VL53L9 (MIPI CSI) platform to the X-NUCLEO-53L9A1 (I3C) platform? Are there any reference projects, example applications, or software packages available for the STM32N6570-DK with the X-NUCLEO-53L9
**VL53L8CX ranging stops after a few frames (2-4 typical, up to 28 seen once) clean status, no error on three independently-built boards****Setup:** Custom board, VL53L8CX (I2C mode) + STM32G0B1KBU6 host MCU, ULD driver, 4x4 resolution, 10Hz continuous ranging mode, 30ms integration time. **Symptom:** `vl53l8cx_init()` and `vl53l8cx_start_ranging()` both succeed. Ranging produces good frames (plausible per-zone status/distance data) for a small number of frames usually 2-4, occasionally more (saw 28 once) then `check_data_ready()` starts returning `VL53L8CX_STATUS_OK` with `data_ready` staying false indefinitely. No error code in the common case. I2C bus itself stays healthy throughout (clean ACKs on every transaction, confirmed via logic analyzer).**One-off exception:** on a single occurrence, `check_data_ready()` returned `0x84` instead of `0x00`. I found the earlier thread here (linking below) where a `0x81`/`0xC5`/`0xCA`-style status was identified as a GO2 (internal MCU) error. I
Hello STM team, We are working to interface the NUCLEO-U5A5ZJ-Q and nRF7002-DK using QSPI. We are using vanillas zephyr. We are able to built the code for SPI. But can not be able to built for QSPI. It will be very helpful if you provide a proper support to interface this.
I’m trying to Generate 4 PWM for my rectifier circuit so my right leg is of tim1 ch1 and tim1ch1N and my left leg is of tim1ch2 and tim2ch1N , what i want to achieve is i want 50% duty with phase shift between my leg1 and leg2 i saw many examples with OC mode , with different timers but i need it in the same tim1 only this are my pin outs
I'm trying to start working with Evaluation board based on VL53L9CX Time of Flight sensorIn I2C, I'm having a problem with identifying the component addressI find address 55 and not 29The connection looks like thisGND to GNDSDA to SDASCL to SCLXSHOUT to 3V33V3 to 3V3I removed resistor 25 for internal clockAccording to the datasheets, it seems that 55 is the EEPROM ID
Hello, I am designing a custom 3-phase brushless DC motor controller based on the STSPIN32G4 integrated driver. The target application operates at 24V DC with a continuous output power of 350W (approximately 15A RMS continuous current). The hardware is designed to support evaluation of both sensorless FOC algorithms and sensored Hall effect positioning. Could you please verify the following parameters in my attached KiCad schematic:1. Operational Amplifier Configuration: Are the internal op-amp pins configured correctly for 3-shunt low-side current sensing matching the STSPIN32G4 internal matrix rules?2. Sensored/Sensorless Support: Are the analog filtering assets for BEMF decoding and the digital lines for the Hall sensor interfaces correctly assigned to the internal MCU pins?3. Power Stage Safety: Given a 350W load profile, are the bootstrap capacitor selections and gate drive configurations adequate to handle the current switching transients safely? Target Specifications:- Controlle
Hello,I am facing a connection issue with SPC5 Flash Programmer version 2.8.1 when using UART communication with SPC560B64.Setup:Target MCU: SPC560B64External crystal: 8 MHzInterface: UCUART::HybridCom/7/UARTSame hardware setup as previously used successfullySPC5 Flash Programmer v2.7.9 works correctly on an older PC, v2.8.1 (and newer) fails to connect.The software stays in “Connection phase starting” and continuously retries, the UART interface LED does not blink. No connection is established.Same SPC560B64 device, same UART interface and wiringAre there any required driver updates, configuration changes, or compatibility notes for newer versions?
On the STM32MP257F-EV1 evaluation board, configuring SPI3 in slave mode (spi-slave;) works correctly for the SCK, MOSI, and MISO signals, but the NSS (chip select) pin — PB1, using the documented-correct AF1 alternate function — silently fails to be claimed by the pin controller. No error or warning is logged anywhere. All three other SPI3 pins on the same bus, using the same AF1 value, claim successfully.
Hello,I'm experiencing a strange debugging issue with an STM32L431 and would like to know whether anyone has seen a similar problem.Environment MCU: STM32L431 IDE: STM32CubeIDE v2.1.1 Debugger: ST-LINK/V2, used SWD (SWJTAG) Boot0 pin is connected and used for System Bootloader update. IssueWhen starting a debug session from STM32CubeIDE, the debugger connects successfully and downloads the binary to the target Flash. However, about 50% of the time, after entering the debug session, the program counter (PC) is set to an incorrect start address and the SRAM contents appear to be corrupted. As a result, debugging cannot proceed normally.Typically: 1 out of 2 debug-attempts works normally. On the failed attempts, the target reset/debug state appears to be abnormal. CubeIDE cannot start debugging correctly until I retry. ObservationIf I program the Option Bytes with: ( uisng CubeProgrammer)nSWBOOT0 = 0the problem seems to completely disappear.Debugging becomes stable and succeed
We’ve been using the Nucleo-F446RE + IHM09M2 + IPMM15B hardware setup. We’ve tested voltages of 50V, 80V, and 100V using transformer modules connected to a GPS-2303 DC power supply. We’ve also tried 167V with a different power supply.However, only the 50V setup worked properly with the Motor Profiler. The only issue with 50V is that the motor could not reach a sufficient speed to “start profiler” and got stuck at 28%. The other voltages failed to even complete “Offset Detection”, getting stuck at 7% while displaying a “Driver Protection” error simultaneously. What factors could be causing this issue?
Hi ST community,We are currently evaluating STM32WB05 vs STM32WB09 for an application involving continuous BLE data streaming from multiple sensors, and would appreciate guidance from experts who have worked with STM32WB0 series.The reason we choosing the STMWB05 over STM32WB09 MCU, STM32WB05 MCU comes at a lower cost.In brief our application sensor are2x IMU LSM6DSO sensors (high-frequency sampling)1x magnetometer1x analog force sensorA single BLE connection (no mesh or multi-node), with frequent sync occurring approximately every three minutes.Key Questions1. WB05 vs WB09 for continuous BLE streamingBoth MCUs seem to have similar BLE capabilities (Bluetooth 5.4, 2 Mbps PHY), but:Does WB09 (larger RAM/Flash) provide significant advantage for:Continuous streamingBufferingReducing packet drops?Has anyone faced RAM bottlenecks or BLE throughput instability on WB05, WB09 in such use cases?2. Single-core architecture suitabilityBoth WB05 and WB09 are single-core Cortex-M0+ with radio
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.