Get ready for the STM32 Summit 2026 | Online, November 3
Join conversations with your peers and ST experts. Explore the full potential of STM32 microprocessors for your embedded design.
Most recent activity
Hello everbody!I came across this issue while making a custom Yocto Scarthgap BSP image working with kernel version 6.10 for a custom STM32MP157 board, although I have come across the same issue on all 6.x versions between 6.0 and 6.10 and in even more severe format on kernel 6.12 (where SPI NAND and SPi NOR flash read ID bytes all 0's and don't work at all). Here are the major points while updating the Yocto BSP from Kirkstone to Scarthgap:Kernel version jumped from 5.10 to 6.10 (this fork), and device trees were updated per available device trees in the fork, as well as mainline, and per STM32Wiki guidelines for device tree board files. TF-A jumped from 2.4 to 2.12 (this fork) and U-Boot jumped from 2020.10 to 2024.01 (this fork), also device trees and board files for U-Boot updated per available files.BSP still uses the old trusted boot flow (TF-A BL2 -> TF-A minimal secure payload (SP_MIN) as BL32-> U-Boot proper), as there was no adequate support for OP-TEE to
Hi, everyone. FYI:I have a board STM32MP257F-DK-C01. I flashed the latest release according to https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP2_boards/STM32MP257x-DK/Let%27s_start/Populate_the_target_and_boot_the_imageIt starts and everything looks ok, but the ethernet is absent. etho is absent if I run "ifconfig", "if up", etc. LEDs are not flashing when cable is plugged.I tried to flash it second time, no changes. I tried to use same sdcard on another STM32MP257F-DK-C01 board, but had no luck.After reverting to v24.12.05 everything works fine.Some facts that might help from v25.06.11:1) U-Boot prints message: Net: No ethernet found2) At the tenth second kernel writes a message[ 10.843936] Board is not a valid BOARD (stm32mp257f-dk, stm32mp257f-ev1)3) After console is loaded the username looks like this:
hai everyone,i’m working with the sgtl5000 codec on my stm32mp13-disco board but i get no sound from the headphone jack or line-out. here are my alsa mixer settings after amixer -c 0. root@stm32mp13-disco:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: stm32mp1sgtl500 [stm32mp1-sgtl5000], device 0: 4400a004.audio-controller-sgtl5000 sgtl5000-0 [4400a004.audio-controller-sgtl5000 sgtl5000-0] Subdevices: 1/1 Subdevice #0: subdevice #0 Subdevice #0: subdevice #0 root@stm32mp13-disco:~# amixer -c 0 Simple mixer control 'Headphone',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 127 Mono: Front Left: Playback 127 [100%] [12.00dB] [on] Front Right: Playback 127 [100%] [12.00dB] [on] Simple mixer control 'Headphone Mux',0 Capabilities: enum Items: 'DAC' 'LINE_IN' Item0: 'DAC' Simple mixer control 'Headphone Playback ZC',0 Capabilities: pswitch pswitch-joined Playback channels: Mo
Hello,I'm following the Getting started wiki for Developing on Arm® Cortex®-M33. I already installed the IDE and the MP2 Packages. Now I'm in the section "Modify, rebuild and reload the firmware" but I'm stuck in Step 2. Software Prerequisites. Because I don't know how to install the build environment as explained in the wiki. It seems like it is for linux development, but I am using Windows, so I don't have the "sudo" and "export" options.Can someone help me to execute these lines in windows? or is there another alternative?1-Install dependencies:sudo apt-get install -y git curl wget build-essential libssl-dev python3 \ python3-pip cmake make libncurses52-Add CMake path into environment:export PATH=<CMake path>/bin:$PATH Thanks in advance,David
Hello everyone,I’m working on configuring the STM32MP1 SAI interface with the SGTL5000 codec using a device tree setup on the STM32MP13-Disco board. I’m running into an error when the SAI driver probes the audio-controller node. The kernel log shows: [ 3.432693] st,stm32-sai-sub 4400a004.audio-controller: Unsupported direction [ 3.438601] st,stm32-sai-sub: probe of 4400a004.audio-controller failed with error -22Device Tree snippets:Pin Control:&pinctrl { sai1_pins_a: sai1-0 { pins { pinmux = <STM32_PINMUX('A', 4, AF12)>, /* SAI1_SCK_A */ <STM32_PINMUX('A', 0, AF6)>, /* SAI1_SD_B */ <STM32_PINMUX('A', 5, AF6)>, /* SAI1_SD_A */ <STM32_PINMUX('F', 11, AF6)>; /* SAI1_FS_A */ slew-rate = <0>; drive-push-pull; bias-disable; }; }; sai1_mclk_pin: sai1-mclk { pins { pinmux = <STM32_PINMUX('D', 13, AF6)>; /* SAI1_MCKA */ slew-rate = <0>; drive-push-pull; bias-disable; }; }; sai1_sleep_pins_a: sai1-sleep-0 { pins { pinmux
Hello everyone.I'm developing a bare metal project on STM32mp135F-DK using Keil RTX5 operating system.Actually I'm using the default "stm32mp13xx_a7_ddr.ld" finded in SDK, but in it no RTX related section are indicated. I'm working with:STM32CubeIDEVersion: 1.19.0Build: 25607_20250703_0907 (UTC) Can anyone help me with an example of loader file to use?How indicate the 8 byte aligned section necessary to RTX for stack and heap threads?It's necessary particular settings for MMU and CACHE? Thanks in advance.
Is NPU of STM32MP257F capable of running inference of Transformers models like Small VLMs on this device using its NPU? what frameworks are supported like execuTorch or onnxruntime ?
After successfully RDP to my boardNow i want to make fake HDMI information, to make it auto output. So i no need to plug in HDMI display, but still can connect through freeRDP from PC.Can someone here ever did this, or have any ideas about how to do it under yocto build. Here is something i try refer this thread of arch linux : https://discuss.kde.org/t/how-to-create-a-virtual-monitor-display/2725/10root@stm32mp1:/sys/class/drm# ls -al drwxr-xr-x 2 root root 0 May 29 18:48 . drwxr-xr-x 63 root root 0 May 29 18:48 .. lrwxrwxrwx 1 root root 0 May 29 18:48 card0 -> ../../devices/platform/soc/5a001000.display-controller/drm/card0 lrwxrwxrwx 1 root root 0 May 29 18:48 card0-HDMI-A-1 -> ../../devices/platform/soc/5a001000.display-controller/drm/card0/card0-HDMI-A-1 lrwxrwxrwx 1 root root 0 May 29 19:13 card1 -> ../../devices/platform/etnaviv/drm/card1 lrwxrwxrwx 1 root root 0 May 29 19:14 renderD128 -> ../../devices/platform/etnaviv/drm/renderD128 -r--r--r-- 1 roo
Hello everyone, I'm currently exploring the STM32MP257F-DK. As recommended in the "MOOC - STM32MP2 demo workshop", I'm diving deep into the wiki. I have also watched the "MOOC - STM32MP1 workshop". Of course, I have reviewed the getting started guide before doing anything. However, I want to know how this amazing community tackles the challenges of developing a new application on this platform. Do you recommend any specific development flow (Start with the examples, port STM32MP1 lab examples to the new platform, start with the template, use STMCubeMX and generate a new device tree, etc.)? Is there any tutorial that helped you a lot? I will also try to update the post with any resources I highlight. Thank you in advance. Note: I'm new to this community, if this post is not what should be here let me know. Of course, any feedback is well received. ---ROUDMAP [LIVE]For anyone interested, I'm following the current roadmap:STM32MP257F-DK User Manual [Doc]&nb
Hello ST team,I came across issue here.The force_mode of boot_ctx is always set to 3, which force the MPU to boot over USB, rather than MMC. I tried to set TAMP_BKP20R(BOOT MODE) to 0, but the behavior is the same after reset.Aslo, I have another board (hardware is slightly different, but boot pin configuration is the same), which works well.I know it can be fixed by changing UBOOT code. My questions are:1. Is the value of this register boot_ctx set by ROM code?2. The MPU model and version of the above two board are the same, STM32MP151FAD Rev.Z. Why is their behavoir different?
Hi! I am simulating the DDR4 memory interface with the STM32MP251. Same stack-up as the reference design. Only one memory connected (point to point).I have used a Micron model for the memory but I think all the memory models are similar.I am using 53 ohm for driver and 48 ohm for receivers and 48 ohm for ODT also. 1600 MT/s simulation is pretty fine but for 2400 MT/s there are FAILS on SETUP time for readings (see image attached).I am not sure if the package delays are being considered by the Hyperlynx. On Altium all the delays are included but I don't know if this info is exported in the HYP file.Anyone with experience can confirm if the package info is included or not?Any ideas about the SETUP time FAILS?Thanks!
Hi,I am referring to the STM32MP157D-DK1 EVB (STM32MP157DAC1), specifically the "mb1272-bdp" design file, and would like to clarify the correct method for measuring DDR3L to Microprocessor (MP) trace lengths on the PCB.My question is regarding the Clock P/N signals:Should the PCB trace length be measured from the MP pin to the DDR3L chip clock pin (CK_P/N), or from the MP pin to the 100 Ω termination resistor? The reason for the question is that the termination is placed after the DDR3L chip, which adds additional trace length.After reviewing the EVB design (mb1272-bdp design file) and analyzing the trace lengths using the ST-provided length equalization Excel file, I have the following observations:When measuring trace length from the MP pin to the DDR3L chip pin:The address group signals are mostly within acceptable limits, except for A16, RAS, and A0.However, the data strobe signals (DQS P/N) are outside the required −15 mm to 0 mm range with respect to the clock signal.Address Grou
Hi,I'm trying to import an ioc file for STM32MP257f-ev1. The original project was build on CubeMx 6.13 for MAC-OS using FW_MP2_V1.0.0 and I'm using CubeMx 6.13 under linux. When I open the .ioc file, It asked me if I want to migrate to FW_MP2_V1.1.0 or continue with the current version. If I choose to migrate everthing goes fine, but I continue with current package version CubeMX stack during the "Render UI" progress bar phase.Could someone help me?Marco.This is got the error log I got on terminal:Spoiler (Highlight to read)[FATAL] ProcessBarDialog:168 - ProcessBarDialog action 4java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "com.st.microxplorer.mcu.IP.getParameterValue(String, String)" is nullat java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]at javax.swing.SwingWorker.get(SwingWorker.java:612) ~[?:?]at com.st.m
I am going to rebuild STM32DDRFW-UTIL Firmware to do DDR Test on my custom hardware. I looked at this document: https://github.com/STMicroelectronics/STM32DDRFW-UTIL/blob/main/README.mdin section 1.2.3.3 Customization, it mentions about using STM32CubeMX to generate the DDR Templete (stm32mp2xx-ddr4-2x16Gbits-2x16bits-template.h). Unfortunately, I tried the device tree generation function from STM32CubeMx; there was no DDR templete was generated. Is there any instruction to generate the DDR templete?
Hi everyone, I am trying to reserve a block of RAM using a custom device tree overlay on my STM32MP157F-DK2 running Linux. Here's what I have done so far: This is my custom DTS overlay /dts-v1/; /plugin/; / { compatible = "st,stm32mp157f-dk2", "st,stm32mp157"; fragment@0 { target-path = "/reserved-memory"; __overlay__ { sensor_shm: sensor_shm@c8000000 { compatible = "shared-dma-pool"; reg = <0xc8000000 0x00040000>; /* 256KB */ no-map; status = "okay"; }; }; }; }; I compiled this to get custom-overlay.dtbo and placed it under /boot/overlays/. Then, I edited the /boot/mmc0_extlinux/stm32mp157f-dk2_extlinux.conf configuration file to include the overlay during boot by adding this line inside the appropriate boot label: # Generic Distro Configuration file generated by OpenEmbedded menu title Select the boot mode MENU BACKGROUND /splash_portrait.bmp TIMEOUT 20 DEFAULT OpenSTLinux LABEL OpenSTLinux KERNEL /uImage FDTDIR / INITRD /st-image-resize-initrd
I am working with STM32MP257F1-EV1, I want to ask when creating a project with STM32CubeMx, why my project does not have a file in Secure like other boards? Thank you.
Hi ST,i wanted to use only single GPIO toggling from ther M33 processor , how can i start with.I am unable to find the examples of M33 processor.
Hi ST community I wanted to ask if I could check if secure boot is on or off. I use STM32MP257F-EV1
I would like to train a face detection model using the WIDER FACE dataset.I have already created the environment with Conda, and the training process ran normally. The training results are as follows:Using object_detection/stm32ai_main.py:python /home/niuke/STM32MP/Github/stm32ai-modelzoo-services/object_detection/stm32ai_main.py Are these results normal? If not, what should I change?Could you share an example of training a face detection model using the STM32 Model Zoo Services?I am using the user_config.yaml file and the UART log file (attached).The prepared WIDER FACE dataset can be found here:https://drive.google.com/file/d/1no40Mn4HTMX0Kvf0kpk8aA6IK-dIYhB8/view?usp=drive_link
Found the cause and solved. what happened was:1. Plugged the host PC only into the STLINK USB-C. with SW1 set to 1, the device booted from EMMC and debug data was shown on USB UART. Assumed based on the MPU running, it would be enough power for the DFU mode.Once the USB connection was shown in ST CueProgrammer but later on it disappeared and USB connection was never detected again.2. Bit ofcourse, DFU is not provided via STLINK hardware but via the DRD , CPU OTG USB interface. Though after connecting the USB DRD into another USB host connector there was still no DFU mode.3. After connecting the STLINK USB-C to an 5V charger and a USB-C cable from DRD to the host DFU mode came up.This particular PC might be too old to provide enough juice. but wonder why this board does need more power than a USB-A 3.0 connector can supply (0.9A) . Perhaps some may run into the same issue.Cant use DFU mode and ST-LINK at the same time, but the board works.
Hi all,STM32CubeIDE 1.19.0I'm debugging the content of a memory area showing the bytes sequence of an uint8_t array.The pointer shown in the Variables pane is correct.If I point the same variable (tmpParameters_Buffer) on Memory pane, the address (and of course, the content) is wrong - see the attached image.Any idea?Thanks, regards
Hi,i want to store some flags, bytes, at the end of my SRAM. This RAM section should preserve the information in case of a Reset e.g. WWDG1 Reset.Before WWDG1 Reset is executed some program states should be stored in RAM and after Reset could be read out to get more information about what happend.I defined the section in RAM as follows:/* Memories definition */ MEMORY { RETRAM_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 32k m_ipc_shm (RW) : ORIGIN = 0x38008000, LENGTH = 32K SRAM1_FLASH (RX) : ORIGIN = 0x10000000, LENGTH = 192K SRAM2_RAM (RWX) : ORIGIN = 0x10030000, LENGTH = (192K - 256) FLAGS (RW) : ORIGIN = 0x1005FF00, LENGTH = 256 } ... .noinit (NOLOAD): { KEEP(*(.FlagSection)) /* keep my variable even if not referenced */ } > FLAGSAccessed by declaring arrayuint8_t flag_buf[256] __attribute__((section (".FlagSection")));I can move the information to flag_buf[] as desired and its there until a WWDG1 reset occurs.After CM4 firmware starts again the FLAGS sections
I have a custom board based on the STM32mp157f and have been battling getting a custom build to boot on it.It is fairly similar the to DK2 so I've been looking a lot at the stm32mp15xx-dkx.dtsi files as reference. I've been able to get it to get past TF-A and OPTEE but in U-Boot it gets stuck and reboots. STM32_Programmer_CLI just loops between the first and seconds lines in my .tsv file. I assume this is because the board isn't showing up correctly over USB.I attached my full device tree files. Here's the boot logs NOTICE: CPU: STM32MP157FAA Rev.Z NOTICE: Model: STMicroelectronics custom STM32CubeMX board - openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11 ERROR: nvmem node board_id not found INFO: PMIC version = 0x21 NOTICE: Reset reason (0x54): INFO: System reset generated by MPU (MPSYSRST) INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000 INFO: FCONF: Reading firmware configuration information for: stm32mp_fuse INFO: FCONF: Reading firmware con
I started a fresh CubeMX project with board selector "STM32MP257F-EV1 board", chose A35 as master, and initialized all peripherals to their defaults.Now, I'm trying to kill PCIE entirely from the board. I removed it from both U-boot and Linux contexts (where it's present by default), and I also reset its corresponding GPIO pins to reset state (PCIE_NRST and PCIe_NWAKE_WKUP2). When I try to put system into low power mode, it does go to sleep as normal:root@stm32mp2-e3-d8-80unknownunknown:~# systemctl suspend root@stm32mp2-e3-d8-80unknownunknown:~# [ 615.683459] PM: suspend entry (deep) [ 615.687390] Filesystems sync: 0.003 seconds [ 615.693558] Freezing user space processes [ 615.695767] Freezing user space processes completed (elapsed 0.002 seconds) [ 615.699929] OOM killer disabled. [ 615.702971] Freezing remaining freezable tasks [ 615.708837] Freezing remaining freezable tasks completed (elapsed 0.001 seconds) [ 615.714911] printk: Suspending console(s) (use no_console_suspend to de
Board/SoC: STM32MP2Android version: AOSP Android 13 (android-13.0.0_r82)WebView: com.android.webview 109.0.5414.123 (prebuilt)Renderer: GLES Display: 1024×600 (landscape‑native) @ ~63 Hz Opening an android webview intermittently causes a blank screen. Logs look like the following:2025-07-30 11:38:13.515 1750-1750 OpenGLRenderer W Surface lost, forcing relayoutThe webview never recovers from this state.Also get the following logs if it is relevant:2025-08-12 16:16:48.810 3475-3504 OpenGLRenderer E Unable to match the desired swap behavior. I've also attached the logcat file Thanks
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.