Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and find answers on STM32 microprocessors, including hardware, power, DRAM, flashing, interfacing, device tree, and peripherals.
Most recent activity
We are currently developing a demo product using the STM32MP257F-DK board.We have flashed the firmware using the file .images\stm32mp25-disco\flashlayout_st-image-core\optee\FlashLayout_emmc_stm32mp257f-dk-optee.tsvHowever, we found that the USB DRD port (CN15) is not being recognized.Upon checking the device tree source in the kernel, we observed that the USB3DR functionality appears to be controlled via , suggesting that an MCU may be required for this functionality.i2c_rpmsgWe would like to confirm the following:Is the USB3 Dual Role (USB3DR) OTG feature dependent on the Cortex-M33 MCU for proper operation?Is it possible to enable and test the USB3DR OTG function without involving the MCU, especially if our goal is to minimize power consumption?Can the CC (Control Channel) pins be handled purely on the A7 side, or is MCU intervention mandatory for proper role detection and control?What is the correct way to enable and test USB OTG functionality on the STM32MP257F-DK board
Hi,when I understand the schematics of the STM32MP257-DK-board correct, the MDIO and MDC signals of the Ethernet1 interface are connected to some pins, which do NOT provide the MDIO and MDC functionality by default (AE15 which is PA10_ETH3_RGMII_RXD1 and where MDIO is function #5 at that pin and AF15 which is PA9_ETH3_RGMII_RXD0 and where MDIO is function #6 of that pin).So in order to let STLinux on that DK-board be able to access the Ethernet interface, on an very early boot-stage the pins need to be configured to provide the related functions.My question: when and where is this pinmux-configuration done exactly?Thanks!
I’m using the STM32MP257F-DK and trying to bring up the onboard Bluetooth. Bring up the HCI device and start the Bluetoothctl service. Scanned for nearby devices, paired with the target device(Android phone), and pairing completed successfully. However, when attempting to connect to the device using: connect 60:0F:6B:88:21:96I received the following error: Attempting to connect to 60:0F:6B:88:21:96Failed to connect: org.bluez.Error.Failed br-connection-profile-unavailable Also find dmesg logroot@stm32mp2-e3-d2-9e:~# dmesg | grep Bluetooth[ 8.303247] Bluetooth: Core ver 2.22[ 8.306606] Bluetooth: HCI device and connection manager initialized[ 8.316581] Bluetooth: HCI socket layer initialized[ 8.320858] Bluetooth: L2CAP socket layer initialized[ 8.358922] Bluetooth: SCO socket layer initialized[ 8.448467] Bluetooth: HCI UART driver ver 2.3[ 8.448514] Blueto
I am encountering an issue while analyzing my model with STM32CubeMX using X-CUBE-AI for the STM32MP1 platform. The analysis fails with the following error message:ST Edge AI Core v2.0.0-20049 E102(CliArgumentError): stm32mp2 component is not available, please install this oneI am using STM32CubeMX with the X-CUBE-AI package (v10.0.0).(on windows10 PC host)I am trying to analyze a model (2dcnn.h5) that I want to deploy on the STM32MP1.The error indicates that the stm32mp2 component is not available and requests its installation.My questions are:What is the stm32mp2 component, and how can I install it to resolve this error?Is there any additional configuration required in STM32CubeMX to support STM32MP157 when analyzing models for deployment?Is there a known issue with X-CUBE-AI that might be causing this error?
Hi STM32 Community,I am currently configuring ThreadX on STM32CubeIDE version 1.18.0.I am able to create tasks successfully, but after entering the tasks, I have encountered an issue where the tasks are not being scheduled properly.In brief, I am facing a similar problem as described in this thread:(https://community.st.com/t5/stm32-mpus-embedded-software-and/stm32mp135-dk-test-threadx/m-p/710219).However, when I use the example project from the STM32Cube repository:- Path: \STM32Cube_Repository\STM32Cube_FW_MP13_V1.2.0\Projects\STM32MP135C-DK\Applications\ThreadX\Tx_Thread_Creation- This example runs perfectly fine on my development board.My question is: Is there an incompatibility in STM32CubeIDE V1.18.0 that prevents the creation of properly functioning ThreadX tasks? If so, could you please confirm and provide any insights?Thank you for your help!
I have a new STM32MP157D-DK1. I have booted the board using the enclosed SD card and all appears to be working. The green LED next to CN6 is on, blue LED8 starts flashing a few seconds after power on. One of the block of 4 red LEDs next to the ST-LINK connector is flashing. I have connected the ST-LINK CN11 to a USB port on my Windows 11 laptop. I was assuming that the ST-LINK would be detected by Windows and would appear in the list of devices. However, I see nothing at all. No ST-LINK, no virtual COM ports. I have tried different power supplies for the board, different USB cables for the ST-LINK and different USB ports on the laptop.Is there something else I need to do to see the ST-LINK or does this indicate the board might have a fault?My aim was to run a very simple program on the CM4 processor using Cube IDE but so far all it says is No ST-LINK detected. I have various other STM32 dev boards and the ST-LINK and COM ports
Hey, I'm designing an stm32mpu1 board and I have the Discovery Kit (DK) as a reference design.In the DK I see the following schematic for the USB-C power supply (CN7): I am not quite sure what the point of the MOSFETS is.For the other USB-C (CN6) I see MOSFETS AND Bipolar transistors:Can someone explain what they are for? I'm trying to decide weather I need them in my design or not. Until now I always just connected the power supply to my PMIC and all I ever needed was some ESDs for protection and decoupling/bulk caps.
I've been trying to build compatible Android modules (.ko) for my STM32MP25F7-EV1 running OpenSTDroid Distribution. I've successfully built these modules, but I cannot enable them with the `insmod` command because they're incompatible.insmod: ERROR: could not insert module btusb.ko: Exec format error I ran `strings btusb.ko | grep vermagic` and it looks like the `btusb.ko` is using a slightly different kernel version than the target's kernel version (6.1.78-00024-ge4076639eb90 for module v.s. 6.1.78-00024-gf31b8a21afa8 for kernel).vermagic=6.1.78-00024-ge4076639eb90 SMP preempt mod_unload aarch64 __UNIQUE_ID_vermagic330 __UNIQUE_ID_vermagic330I don't understand where I'm going wrongly. Here's my module build process so farDownload OpenSTDroid Distribution (following the wiki linked here).Build OpenSTDroid using the wiki linked here.Set the following environment variablesexport BUILD_TOP=$(pwd) /* AOSP root/top directory */ export ARCH=arm64 export CROSS_COMPILE=aarch64-
hello, i have a stm32mp257f-dk ( new version replace stm32mp157f). it works fine with the openstlinux delivered with the kiit. i have added a 7" screen. demo is ok. but there is no web browser installed or available in the linux package. is someone has already succeeded to install a web browser.? regards gerard
Hi ST:I am devloping the STM32MP131c with yocto packageEverytime after i modify the dts using devtool, i need tobitbake st-image-coreand flash all image with stm32cubeprogramming tool There is a ethernet on my boardIs there any faster way to help me verify my dts modificationMaybe compile the dtb only and scp into DUT or compile bootfs only and i can only flash the bootfs partition Thank you
Hello,I have a problem with the PDF tutorial (attached) for installing the GNSS1 module on the STM32MP257F-EV1. It says:Step 1. Modify the device tree or copy it from the folder provided.Step 2. Download the kernel sources as described in Section 4.3.Step 3. Copy the dts file from the directory: x-linux-gnss1-app\linux-kernel\patch\5.15\kernel to the kernelsource directory at <KERNEL SOURCE PATH>/ arch/arm/boot/dts/. So I followed the tutorial Modify Rebuild and Reload the Linux Kernel:https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP135x-DK/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Modify,_rebuild_and_reload_the_Linux%C2%AE_kernel I copied the patch and applied them with this line: ```for p in `ls -1 *.patch`; do patch -p1 < $p; done``` Then I tried to compile the device tree (after starting the SDK) Here are the errors: make[2]: *** No rule to make target “debian/canonical-certs.pem”, needed by “certs/x509_certificate_lis
I am working on a design using the STM32MP257DAI3 and LPDDR4 memory. During the layout phase I was reviewing the routing guidelines from an5724. Section 6.3 recommends the following controlled impedances are required for the LPDDR4 interfaces:for single-ended signals: 55 Ω ±10%.for differential signals: 100 Ω differential ±10%Can ST help me understand why they recommend 55 and 100 specifically for STM32MP257DAI3 with LPDDR4 and not 45 ohm single-ended and 85 ohm differential, which is what many 3rd parties seem to be proposing?
Hi there,I'm using STM32MP257F-DK and bringing up by FlashLayout_emmc_stm32mp257f-dk-ca35tdcid-ostl-optee.tsv.I found there is no wifi/bt device by command ifconfig. It's only showing below. root@stm32mp2:/etc# ifconfigend0 Link encap:Ethernet HWaddr 10:E7:7A:E3:AA:F4inet6 addr: fe80::12e7:7aff:fee3:aaf4/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:102 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 (0.0 B) TX bytes:28558 (27.8 KiB)Interrupt:58lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:130 errors:0 dropped:0 overruns:0 frame:0TX packets:130 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:9985 (9.7 KiB) TX bytes:9985 (9.7 KiB)usb0 Link encap:Ethernet HWaddr DA:74:68:4A:DE:B0UP BROADCAST MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns
We have changed our ecosystem from kirkstone to mickledore, everything is working fine but the SPI6, is malfunctioning,It fails with the logs in kernel that `clock not found`If you can help me with this?thanks,Umer
I'm doing board bringup on my board with a stm32mp135dae.I've succesfully gotten through TF-A and OP-TEE OS and on to UBOOT, however I'm stuck in uboot with no clear way forward.Device trees are based on those generated by STMCubeMX. TF-A DTS worked as is, OP-TEE DTS needed board data added (mostly regulators).The STMCubeMX generated u-boot DTS needed these changes (so far):* add optee range to reserved-memory* add an aliases main section defining serial0 = &uart4;* add a chosen main section defining stdout-path = "serial0:115200n8";uboot defconfig is in-tree "stm32mp13_defconfig", no changes The DTS for uart4 is as defined in stm32mp131.dtsi has the standard:clocks = <&rcc UART4_K>;&rcc is enabled with a status = "okay"; and is using &scmi_clk as this is in uboot and uboot must go through optee via SCMI interface to get clock information. On startup of uboot,clk_get_by_index() fails with -ENODEV from stm32_serial_probe().call into stm32_serial_pro
Hi all,I'm working with the STM32MP135D-FK board and have created a custom machine for Yocto, using the openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06 release. I generated the base Device Tree using STM32CubeMX, and I'm trying to enable SPI5 with spidev interface.Here's the relevant section of my Device Tree (in stm32mp135d-myboard.dts): &spi5 {pinctrl-names = "default", "sleep";pinctrl-0 = <&spi5_pins_mx>;pinctrl-1 = <&spi5_sleep_pins_mx>;status = "okay";cs-gpios = <&gpiof 10 GPIO_ACTIVE_LOW>;spidev@0 {compatible = "linux,spidev";reg = <0>; /* CS #0 */spi-max-frequency = <10000000>;status = "okay";};};/* Active (default) state */spi5_pins_mx: spi5-0 {pins1 {pinmux = <STM32_PINMUX('F', 7, AF5)>, /* SPI5_SCK */<STM32_PINMUX('F', 9, AF5)>; /* SPI5_MOSI */bias-disable;drive-push-pull;slew-rate = <1>;};pins2 {pinmux = <STM32_PINMUX('F', 8, AF5)>; /* SPI5_MISO */bias-disable;};};/* Sleep state */spi5_sleep_pins_mx: sp
Dear ST team, I trained a face detection model.On https://stedgeai-dc.st.com/, Select a platform->Quantize->Optimize->BenchmarkI found that GPU occupies 93.69% and NPU occupies 6.31%. How to improve npu utilization?According to the official website documentation, it should be per-channel now. How to convert it to per-tensor? The attachment below is my model file.Thanks.
Hello,I currently upgraded to Scarthgap, and noticed that weston-touch-calibrator does not work anymore. I have tried it on a custom board and a stm32mp135-disco board, and they exhibit the same behavior. It first loads just fine, but once you touch the cross no check-mark or cross appears on the screen. If you do root@stm32mp13-disco:~# weston-touch-calibrator --debug "/sys/devices/platform/soc/5c007000.bus/4c006000.i2c/i2c-1/1-005d/input/input0/event0"could not load cursor 'dnd-move'could not load cursor 'dnd-copy'could not load cursor 'dnd-none'Configure calibrator window to size 480x272Down[0] (0.183333, 0.106618)Finish[0]Conv[0] (0.150000, 0.099265)Down[1] (0.166667, 0.139706)Finish[1]Conv[1] (0.850000, 0.128676)Down[2] (0.172917, 0.202206)Finish[2]Conv[2] (0.200000, 0.801471)Down[3] (0.154167, 0.091912)Finish[3]got all touchesConv[3] (0.700000, 0.750000)calibration test error: 1.050614, -1.262112weston-touch-calibrator error: Calibration verification failed, too large e
Hello ST Team,We are planning to use STM32MP23X in one of our design. Could you please also provide the list of DRAM and eMMC validated with the STM32MP235 MPU?Your Prompt response would be appreciate.Regards,Parth
Hello We are working on booting BareMetal application using SD Card in STM32mp257F-DK we have referred the following link to create header for binary filehttps://wiki.st.com/stm32mpu/wiki/STM32_header_for_binary_fileswe have few doubts regarding the above image:1) In optional flags, can we disable authentication and decryption 2) In binary type, what are the other formats other than FSBLM. In tf-a-stm32mp257f_dk_usb.stm32 file the binary type is mentioned as 0x10 is used, what binary type is it? In STM32MP157A we have set the value of binary type as 0x00 but it still boots our application. kindly help us resolving the above issue Thanks and RegardsAkshitha
Moved from MCUs forum.I met this error and can not continue flashing the board. Could any one help me? All configurations are same with https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32MP25_Evaluation_boards_-_Starter_Package#Downloading_the_image_and_flashing_it_on_the_boardMy board is STM32MP257F-ev1, I just followed the sequence to flash my board, but failed.ld5, ld6 and ld11 are lighted when I start with usb/uart boot.PS: the system is Ubuntu 20.04 on a VirtualBox VM, And I can use Windows to flash the board, and I still can use this VM to flash the SD card with raw image. But the image will no be flashed via Ubuntu on normal flashing with this EVB 20250519:I use windows to flash this board without any problems. But seem I can not use virtualbox based ubuntu 20.04 to flash.
Hi , i am using the stm32mp157DAC processor , where in custom board i added the emmc with SDMMC2, in my hardware there is 3 bootpin, boot0 boot1 boot2 .i did changes in u-boot DTSi did changes in Linux DTS only in u-boot DTS i added this line in SDMMC2.&sdmmc2 {pinctrl-names = "default", "opendrain", "sleep";pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;non-removable;no-sd;no-sdio;st,neg-edge;bus-width = <8>;vmmc-supply = <&v3v3>;vqmmc-supply = <&vdd>;mmc-ddr-3_3v;status = "okay";};---------------Pinctrl pinmux---------------------------------------------sdmmc2_b4_pins_a: sdmmc2-b4-0 {pins1 {pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */<STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */<STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */<STM32_PINMUX('B', 4, AF9)&g
Hi,I'm trying to implement external inference models on the STM32MP257-DK for an object detection project. Currently, I'm using the base project provided by ST in the SDK and modifying a few files, such as:stai_mpu_object_detection.ccssd_mobilenet_pp.hppTwo generic implementation files for the YOLOv8n modelThe base structure remains mostly the same, with only the model being switched by updating the reference in stai_mpu_object_detection.cc — choosing between SSD MobileNet and YOLOv8n.After creating this “generic” module, I cross-compiled and transferred the binaries to the board. When selecting SSD MobileNet, everything works perfectly. However, when switching to YOLOv8n, no successful inference occurs.Does anyone have any documentation or guidance on how to implement external models on this board? I also implemented a debug printer that logs the total number of inferences. Here's what I get: SSD Mobilenetraw detections: 1idx = 0 class = 1 score = 0.969(
Hello,I'm debugging a user space application for stm32mp257f-ev1 (Core A35) using cubeIDE 1.17.0. After launching application debug the SFRs tab is empty. In project properties I can't find CMSIS-SVD Settings as for an M33 project for the same board.How can I change project's configuration to get peripheral's registers values in SFRs?Marco
Hi,I'm encountering an issue during the optimization process using Edge Cloud AI. Sometimes, even when using the same model architecture but with different file sizes, the optimization results vary significantly. In some cases, especially with smaller models, the NPU on the STM32MP257-DK is barely utilized (as shown in the benchmark below). Paradoxically, I’ve observed worse optimization performance with lighter models.In the images below, I show an example: from left to right, the models progressively increase in resolution, yet the optimization results behave inconsistently. Any suggestions on how to address this? TINY_YOLO_V2_192_INT8.TFLITE: Inference time: 87.52 msGPU: 95.85%NPU: 4.15% TINY_YOLO_V2_224_INT8.TFLITE: Inference time: 5.920 msGPU: 3.54%NPU: 96.46% TINY_YOLO_V2_416_INT8.TFLITE: Inference time: 12.13 msGPU: 4.50%NPU: 95.50%
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.