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
Is it possible to use the STMCUBE expansion for IOTA on STM32MP157DK-2 or is there anyway to use IOTA client libraries.I tried installing the Python library but it would not install.I have the STM32CubeExpansion_IOTA1_V2.0.0 but do not know how to run it on STM32MP157DK-2 or cross compile it for this kit.
Hi!I am following the instructions of this wiki page:https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Let%27s_start/Populate_the_target_and_boot_the_imageI have the DK2 connected to my system using the USB OTG port.The boards dip switches are in the correct position.I copied the udev rules to /etc/udev/rules.d/.Pressing "Connect" results in following error: 16:44:36 : STM32CubeProgrammer API v2.8.0 16:50:03 : USB speed : High Speed (480MBit/s) 16:50:03 : Manuf. ID : STMicroelectronics 16:50:03 : Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 16:50:03 : SN : 003300293030510D32313933 16:50:03 : FW version : 0x0110 16:50:03 : Device ID : 0x0500 16:50:03 : Error: CUBEPROGRAMMER_ERROR_NOT_SUPPORTEDWhat am I doing wrong? Thank you in advance,Gunther
Details:HW: Phytec Sargas Board, which is similar to the STM32MP1-DK2.Build environment: Cross compiling with SDK generated by Yocto.Linux: Yocto build, based on st-image weston.Device Tree configuration: As far as I understood not needed to access single GPIOs.Any help is appreciated :)Code (only partially):#define MEM_DEV "/dev/mem" #define GPIOF_START_ADDR 0x50007000 #define GPIOF_END_ADDR 0x500073FF #define GPIOF_MAP_SIZE (GPIOF_END_ADDR - GPIOF_START_ADDR) #define GPIO_REG_MODER 0x00 /**< GPIO port mode register */ #define GPIO_REG_OTYPER 0x04 /**< GPIO port output type register */ #define GPIO_REG_BSRR 0x18 /**< GPIO port bit set/reset register */ #define GPIO_PIN_4 ((uint16_t)0x0010U) #define GPIO_PIN_OUTPUT_DIRECTION 0x01 /**< Output */ #define GPIO_PIN_OUTPUT_PUSHPULL 0x00 /**< Output Push Pull Mode */ int main(int argc, char **argv) { int ret = EXIT_SUCCESS; static void *mmapBase = NULL; /* Virtual base address */ signal(SIGINT, intHandl
As above, the Altium components point to a library source called "MCD_PARTS_database.DbLib" however I don't have access to this. Is there any way to get the footprints? ThanksDave
Hi all,I am working with a STM32MP157F-DK2 board, and I am trying to implement a Node-Red web application. I use the Openstlinux Developer package on the board and thanks to the package repository given by ST, I was able to install the NodeJS LTS version and npm. Node-Red works well, I can see all my flows in the web browser. In my application, I would like to use the node-red-node-sqlite node to access a database hosted in the STM32MP157F-DK2. Here is my problem: During the installation process, node-pre-gyp is trying to reach an URL where are stored pre-built binaries. However, this URL returns a "Forbidden access" (see image attached), and so node-pre-gyp calls the compiler of the board to build the necessary files. Thus, I cannot install the SQLite node because it requires a compiler during the installation process, compiler that does not exist on the STM32 board. According to the internet, this error from node-pre-gyp seems to be quite common and I did not find a solution that wor
Hi, I'm working on a project based on the STM32mp153 MPU with linux OS.I have configured the TF-A module to manage the tamper with timestamp.When the tamper event occurs, it is reported in stdout.I would like to propagate to the kernel and user space the event detected by the TF-A and the possibility of storing the event itself in a system log.Possibly avoiding polling the deletion of the backup registers.Do you have an Application note where a standard Tamper management procedure is described?RegardsRenato Borromeo
Hi everyone,I'm new to using MPUs.For an application, I need to transfer data from the SRAM (data obtained with the M4) to a DDR buffer in order to communicate with the A7. I based my application on the example here : How to exchange large data buffers with the coprocessor - example - stm32mpuBut in this code, the address of the buffer where to transfer the data by DMA is not given explicitly.So I'm trying to find these addresses to develop my application.I am using STM32MP157C-DK2 board.I hope my question is not too confusing.Thanks,PComb.1
Hi,I have a firmware doing permanent acquisition and processing of a signal coming from SPI on the M4 side - consider it an audio stream.On-demand I would like to save the processed buffer (say ~10 consecutive buffers once in a while, e.g. 1s every 10s) from the SRAM to a permanent file accessible from the A7 Linux userspace.What would be the best way to do this with the least impact on the M4 load ?My first guess was DMA from SRAM to DDR and then have Linux write from DDR to eMMC/SD but isn't there a more direct way ? Thanks a lotYann
Hello STM-Team,I am working with STM32MP157F-Eval board. The SD card and NAND booting are working fine. But, getting issues while booting with eMMC.I have tried a workaround which seems to be working and I want to make sure if it is the right way of doing.Please see below error. ------------------------------------------------------------------------Boot over mmc1!Saving Environment to MMC... Writing to redundant MMC(1)... OKswitch to partitions #0, OKmmc1(part 0) is current deviceScanning mmc 1:5...Found U-Boot script /boot.scr.uimg2943 bytes read in 29 ms (98.6 KiB/s)## Executing script at c4100000Executing SCRIPT on target=mmc1Saving Environment to MMC... Writing to MMC(1)... OKswitch to partitions #0, OKmmc1(part 0) is current deviceScanning mmc 1:5...77087 bytes read in 30 ms (2.4 MiB/s)SCRIPT FAILED... /mmc1_extlinux/extlinux.conf not found !Saving Environment to MMC... Writing to redundant MMC(1)... OKSCRIPT FAILED: continuing...77087 bytes read in 31 ms (2.4 MiB/s)STM32MP&
Hi,I want to play a video from mounted USB stick. Once USB plugged the host, I mount it with "mount /dev/sda1 /mnt" and than quit the psplash screen with "psplash-drm-quit" on target. After that, trying to play a video with "gst-launch-1.0 playbin uri=file:///media/aaa.mp4" but there is nothing screen on TFT. Also, I have tried this "gst-launch-1.0 v4l2src ! "video/x-raw, width=1280, Height=720, framerate=(fraction)15/1" ! queue ! autovideosink -e" command but there is nothing again. Console Output;Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0: Could not open DRM module (NULL) Additional debug info: ../../../gst-plugins-bad-1.14.2/sys/kms/gstkmssink.c(709): gst_kms_sink_start (): /GstKMSSink:autovideosink0-actual-sink-kms: reason: No such file or directory (2) Setting pipeline to PLAYING ... New clock: GstSystemClockFurthermore, I have tried camera examples
Hi,We want to use a KSZ8851SNL SPI ethernet phy as second eth interface on a custom board. The implementation was according to https://www.kernel.org/doc/Documentation/devicetree/bindings/net/micrel%2Cks8851.yamlThe eth0 interface is initialised with success, but while loading the driver, the kernel is complaining about the interrupt pin, which is not configurable::~# dmesg | grep irq [ 7.495488] genirq: Setting trigger mode 8 for irq 78 failed (gic_set_type+0x0/0x4c) [ 7.516176] ks8851 spi1.0 eth0: failed to get irqAlso the pin is not shown usingcat /proc/interruptsI attached the device tree section and another dmesg log showing the interface initialization. I tried different configurations following ST suggestions.Does anyone know, why Pin PE1 is not configurable as interrupt using the device tree? When using Sysfs in userspace the pin gets configured as interrupt.Or is the problem a different one?Thanks in Advance!Kai
Hi AllI have disabled the second core to validate one of old product, which runs on single core,and same application cpu usage i have seen is 90-95 %and same application runs and does the same spi transaction, i am seeing the cpu usage is 57%all constraint are same except the corefollowing is the top of stm32mp1top - 04:18:53 up 37 min, 1 user, load average: 1.70, 1.65, 1.51Tasks: 107 total, 4 running, 103 sleeping, 0 stopped, 0 zombie%Cpu(s): 4.5 us, 93.4 sy, 0.0 ni, 1.5 id, 0.3 wa, 0.0 hi, 0.3 si, 0.0 st 9 root 20 0 0 0 0 S 2.3 0.0 0:05.56 ksoftirqd/0
I want to use part of the SRAM3 shared memory for data transfer between the A7 cores and the M4 core. On the A7 core I used mmap on /dev/mem to remap the sram to user space and copy the data to/from the SRAM3 buffers. The result is however not stable.When reading the data at the M4 side the data sometimes seems to be changed.On the M4 side I did add an extra memory area (RAM3_ipc_shm):MEMORY{ RETRAM_interrupts (xrw) : ORIGIN = 0x00000000, LENGTH = 0x00000298 FLASH_text (rx) : ORIGIN = 0x10000000, LENGTH = 128K RAM1_data (xrw) : ORIGIN = 0x10020000, LENGTH = 128K RAM2_ipc_shm (xrw) : ORIGIN = 0x10040000, LENGTH = 0x00008000 RAM3_ipc_shm (xrw) : ORIGIN = 0x10048000, LENGTH = 0x00004000}And just read /write to this area like: volatile uint16_t *data_in = 0x10048000; volatile uint16_t *data_out = 0x1004A000;nof_write_bits = 16 * data_in[0];// set output datafor (int i = 0; .....{ // DO0-DO3 & clear data clock & clear la
Hello STM-Team,We are developing a custom board based on STM32MP157C-Eval board.In that, we are planning to have MLC NAND Part number #MT29F16G08CBACAWP:C instead of SLC NAND.For Software point of view, I want to understand that if the existing NAND drivers will work for MLC NAND devices or any changes/support required in exiting kernel driver?Thank you.Regards,Pratik Manvar
Is it possible to use AI frameworks like ONNX and / or Openvino (and related accelerators like movidius, GPU) on STM32MP1? I took a look but I found only examples with tensorflow lite and Coral devices (i.e. https://github.com/STMicroelectronics/meta-st-stm32mpu-ai)
Hi,My evaluation kit is stm32mp157c-ev1, I can flash code to eMMC or SD via STM32CubeProgrammer successfully, and it can work expectedly.We need to running program on eMMC without SD card. Flash the eMMC code via STM32CubeProgrammer is very slow and is not suitable for mass production.Please support a script that flash eMMC code "stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31" via SD card.Thanks,QiZhang
I have a problem. My application should use port 8888. I wrote an application in Python 3.5 that uses the address and port 8888 that I need. But Linux issues a diagnosis that port 8888 is already occupied by another task. How to release port 8888.? The Netstat program gives a diagnosis that port 8888 is busy application. Sincerely, Alexander.
On azure-iot-sdk-c github there are two examples on how to crosscompile:1) https://github.com/Azure/azure-iot-sdk-c/blob/master/doc/SDK_cross_compile_example.md2) https://github.com/Azure/azure-iot-sdk-c/blob/master/doc/Docker_SDK_Cross_Compile.mdUnfortunately, i cannot set the proper variables so I can't crosscompile.Any Help?thank you
Hi all,How can I create swap partition in STM32MP1?Previously I did get an answer to how to increase the rootfs size. Any guidance on this will be highly appreciated.TIA
Hi all,Our team was brainstorming around a feature which we want to provide in our product.However to achieve the same we would like to understand if we can perform the video capture via camera and stream the same over the network to some node. Or do some kind of screen share and stream the screen capture over the network. Is it possible to achieve this capability on STM32MP1?
Hello, I don't know what happened but suddenly on putting the board in boot mode( boot switches ON) , I cant detect the board on the stm32cube programmer and I see a green led ( PWR_IN) continuously blinking!attached is the image.Please assist.Br,D
I'm build an image for Azure IOT on STM32MP157C-DK2, following this tutorial: https://wiki.st.com/stm32mpu/wiki/How_to_integrate_Azure_IoT_Edge_on_OpenSTLinuxbut I have follow error:| error: attributes are not yet allowed on `if` expressions| --> /usr/src/debug/iotedge-daemon/1.1.6-r0/iotedge-1.1.6/vendor/sysinfo/src/utils.rs:27:5| || 27 | #[allow(clippy::identity_conversion)]| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^| | error: aborting due to previous error| | error: could not compile `sysinfo`.There is a possible solution?Looking a similar issues, it seem a problem of version of Rust: https://github.com/Frederick888/git-credential-keepassxc/issues/12There is a way to udate the Rust version used for build?
I created an image of openstlinux using this tutorial:https://wiki.st.com/stm32mpu/wiki/How_to_integrate_Azure_IoT_Edge_on_OpenSTLinuxthe virtualitation install correctly the docker, but not docker-compose. Is it possible to add it?
Hi everyone, hope you are having a good day/night. We are planning to have the STM32MP157-DK1 board with a battery working. If there is an unexpected shutdown or forced one on this board, the memory could be corrupted? or damaged? or is better to implement an external circuit to make a "soft" shutdown, like, turn off the switch and it continues working until the shutdown is complete.Thank you.
Hello.I'm making custom board with stm32mp157AAA.lcd works nomally, but i want rotate this to 90.Please help me.thanks
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.