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, I am using an STM32H755 Nucleo board in a system where the board is plugged into a custom PCB via headers. The system has been working for about two weeks without any issues. Occasionally I remove the Nucleo board to update the firmware and then plug it back into the PCB. Today the system stopped responding to UART commands. When I connected the board to my PC, STM32CubeIDE reported: "No ST-LINK detected! Please connect ST-LINK and restart the debug session." I also tried STM32 ST-LINK Utility and got: "Can not connect to target! Please select 'Connect Under Reset' mode..." However, STLinkUpgrade is able to detect the ST-LINK and perform a firmware upgrade. Another important observation: The ST-LINK MCU on the board (STM32F7) is getting very hot. Additional diagnostics: - The board was completely removed from the external PCB. - Even when powered independently, the ST-LINK MCU still overheats. - The board draws significantly higher current than normal. - I cannot measure proper
Hi,I am using STM32H755 where M7 and M4 runs bare-metal firmware using OpenAMP (RPMsg).Sampling rate is set to 250 SPS. The data is sent from M4 to M7 using OPENAMP_send() function.Observation: Data loss of approximately 10% is observed during transmission from M4 to M7. The loss does not follow a fixed pattern.Questions:- Is this an expected behavior with RPPMsg/OpenAMP at this rate?- How can I ensure reliable transfer without data loss? Thanks & Regards,Bhagyashree Ghosh Roy
Hello!I'm working on a STM32MP257F-EV1 board. So far, I've been modifying the kernel device tree that came with the kernel after building the openstlinux distribution, and have that working. I'd like to move to CubeMX-generated device trees though, to adapt to a future custom design (still on the EV1 board for now though). I'm using CubeMX 6.17.0 on Ubuntu Linux.However, I was surprised to find out that simply doing "Start My Project from ST Board" and selecting the EV1 doesn't actually configure the board with the same functionality as the defaults from the distribution:* In my earlier post, I noted that eMMC booting doesn't work [1] (now works, but after changes)* I have bluetooth connected to USART6, also doesn't work out of the box (and still doesn't)* A SDIO-connected wifi card sits on the sdmmc1 (the SD card slot). Works with my modifications to the kernel device tree, but not with the same modifications to the /* USER CODE BEGIN ... END */ sections in the CubeMX-generated tree.*
I do not know what happened. If I double-click ioc file, it used to open inside CubeIDE. But now it will open inside another separated cubemx window. I may have changed some settings by mistake.How to change the settings back so I can open ioc file inside CubeIDE?
I am currently working with MC Workbench and the ST Motor Pilot tool for motor control development. While setting up and attempting to establish a connection using the latest version of ST Motor Pilot, I am encountering a connection issue that appears to be caused by a bug in the current release.As suggested in the community forums, I also tried using an older version of ST Motor Pilot. However, this introduces dependency conflicts, as other required components and tools in the workflow depend on the latest versions and are not fully compatible with the older Motor Pilot version.Board- STEVAL-ESC001V1
Hello, I am currently working with the NUCLEO-WB05KN1 development board (STM32WB05KN MCU) and I would like to implement FOTA (Firmware Over-The-Air) / OTA update over Bluetooth. However, I could not find any clear reference documentation, application note, or example project related to: Bootloader implementation for OTA Memory partitioning (dual bank / slot usage) BLE-based firmware update flow Any official FOTA example for STM32WB05 series I checked the datasheet and reference manual, but there is no clear explanation of: Whether a built-in/system bootloader supports OTA via BLE How to structure the flash (bootloader + application separation) Any middleware/library support for firmware update Currently, my memory usage is: FLASH: ~34% RAM: ~49% So I still have space to implement a custom bootloader if needed. My questions: Is there any official ST example or application note for OTA/FOTA on STM32WB05KN? Does STM32WB05 series support BLE OTA natively (like STM32WB55)? If not, wh
Hi All,I've this requirement, can someone suggest how do I proceed.I'm using stm32u535 and over usart it's connected to Silicon labs chip. Silicon labs chip has Wi-Fi and I want to update firmware of STM32U535. This silicon labs chip is connected to cloud over Wi-Fi.
Where can I find the Option in the Preferences to set the text of the function Name to “Bold”?
Hi everyone,I'm using an STM32H723 for a project with Hall sensor encoders on two BLDC motors.**Hardware:**- Left motor: PE7, PE8, PE9 (U,V,W)- Right motor: PD3, PD4, PD2 (U,V,W)**Problem:**Right motor encoder works perfectly. Left motor has issues:1. Tick count is much lower than right motor (82 vs 236 ticks for same movement)**Debug Output:*ENC:0,1|DIR:STOP,CW ← Left STOP, Right movingENC:6,11|DIR:CW,CW ← Both OK brieflyENC:8,21|DIR:STOP,CW ← Left STOP againENC:82,236|DIR:CW,CW ← Huge tick difference**What I've Tried:**- Added debouncing- Removed direction reset on invalid transitions- Verified signals on oscilloscope (clean)- External pull-ups (4.7kΩ)**Key Difference:**- Right motor: Dedicated EXTI2, EXTI3, EXTI4 handlers → WORKS- Left motor: Shared EXTI9_5_IRQHandler for all 3 pins → PROBLEMS**Questions:**1. Can shared EXTI9_5_IRQHandler cause missed transitions when two pins change simultaneously?2. Should I move left motor to pins with dedicated EXTI lines (0-4)?3. Is there any w
Hello,We are currently looking for a 2-terminal active (ideal) bypass diode that can be directly soldered to the ribbons inside our solar modules. Please note that the component must be able to withstand the lamination process.We previously evaluated the SM74611KTTR; however, our new module design requires a higher current rating of approximately 25A or more.Could you please recommend any alternative products that meet the following specifications?Forward Current: 25A – 30AReverse Voltage: 20V – 40VMaximum Thickness: 2.0 mm or lessRequirement: Must be an active/MOSFET-based (smart bypass) diode to minimize heat generation.Thank you for your time and review. We look forward to your recommendation
We are currently working with a custom PCB using an STM32N6 chip and an MX25UM512G flash chip. The flash is connected identically to the Nucleo development board.When powering up the board in Dev Boot mode, it is not possible to read the flash chip using CubeProgrammer. The MCU crashes, which we assume based on the reduced power consumption observed afterward.If we first load a firmware image into SRAM using CubeIDE (which successfully connects to and reads the flash memory), then reading and writing the flash via CubeProgrammer works as expected.However, after a power cycle without reloading the firmware into SRAM, the flash becomes inaccessible again.Additionally, after flashing the firmware using this workaround (i.e., initializing the flash via our own firmware and then booting in Flash mode), the software is not executed from flash and the system does not boot.Our assumption is that the flash is not correctly initialized by the boot ROM. Any help or suggestions would be highly app
I got a panic message from drivers/st/clk/clk-stm32-core.c at Trusted Firmware. My question is: What is clock ID 5? Is that MSI clock or LSE clock?Is there any information I could read about this ID?int clk_stm32_enable_call_ops(struct stm32_clk_priv *priv, uint16_t id) { const struct stm32_clk_ops *ops = _clk_get_ops(priv, id); if ((ops->is_enabled != NULL) && ops->is_enabled(priv, id)) { return 0; } if (ops->enable != NULL) { ops->enable(priv, id); } if ((ops->is_enabled != NULL) && !ops->is_enabled(priv, id)) { ERROR("failed to enable clock id: %u\n", id); panic(); } return 0; } The output isNOTICE: Early console setup ERROR: failed to enable clock id: 5 BACKTRACE: START: clk_stm32_enable_call_ops 0: EL3: 0xe017bac 1: EL3: 0xe01be2c 2: EL3: 0xe01beb0 3: EL3: 0xe01bf54 4: EL3: 0xe01c240 5: EL3: 0xe01db28 6: EL3: 0xe029a2c 7: EL3: 0xe0170dc BACKTRACE: END: clk_stm32_enable_call_ops PANIC at PC : 0x000000000e01be
Hello community, I am working with different ibis model of STM32H7, however, this is the only one that's giving me an error in my Altium Designer – could you have a look at it? The file is stm32h723_730_733_lqfp144.ibs Kind regards,Javier.
I am developing a project using the STM32U5G9J. In particular I based our board on the STM32U5G9J-DK2 board. My project includes over the air update for which I am using the external flash that comes on the DK2 board for temporary firmware swapping storage. The external loader MX66LM1G45G_STM32U5G9J-DK2.stldr looks like is not accessing beyond 64MBytes, giving the impression of mirroring the first 64MBytes. I need to be able to have the external loader handle fully the 128 MBytes, as well as my application being able to access the 128 MBytes by code. I am using the STM32CubeIDE 1.19.0. which the IOC file configuration for HSPI is in OCTO SPI mode with the capacity to read 128MBytes. I am using the external loader to manually write certain pieces for debugging purposes. I cannot verify if my code works until the external loader is being able to access the full 128MBytes. Please help me providing the right external loader, as well as the certainty that the IOC file can have the HSPI acce
Hello,I am facing an issue with DFU mode on an STM32MP157C when Secure Boot is enabled (OTP locked) and SCMI is active via OP-TEE, and I would like to confirm whether this is an expected behavior or a known limitation.I am using STM32CubeProgrammer to load FSBL and the FIP image into RAM, then entering U-Boot DFU mode in order to flash the eMMC. This workflow is used for recovery and reprogramming purposes.I am using the same software stack (ATF 2.12, OP-TEE 4.3.0, U-Boot 2025.01, device tree with SCMI configuration) on the two boards (based on stm32mp157c-dk2).The only difference between them is the Secure Boot state: one board is not locked, the other one has Secure Boot enabled.On the non-locked board, DFU works reliably with STM32CubeProgrammer. I can enter DFU mode, send the FlashLayout, and perform multiple DFU transactions without any issue. OP-TEE does print errors related to SCMI TA loading, but DFU continues normally.On the locked board, DFU becomes unstable. T
Hi ST community,We are bringing up a brand-new custom board based on STM32MP131C (Rev.Y) and are facing an issue while flashing SPI-NAND over USB DFU.Boot statusTF-A (BL2/BL31) boots correctlyOP-TEE OS boots and hands off to normal worldU-Boot starts normally and detects SPI-NANDSo the full boot chain up to U-Boot looks healthy.SPI-NAND detailsPart: GigaDevice GD5F4GM8UExxGSize: 512 MiBBlock size: 128 KiBPage size: 2048OOB: 128Detected correctly by U-Boot.Issue descriptionWhen flashing over USB DFU from U-Boot, erase/write operations fail due to many bad blocks at very low addresses, including block 0.Example output:Marking bad block at 0x00000000 (-5)Skipping bad block at 0x00020000Skipping bad block at 0x00040000Skipping bad block at 0x00060000Limit reached 0x80000 while erasing at offset 0x80000Error: DFU write errorBecause of this, DFU flashing fails consistently.Are there specific U-Boot or TF-A configurations recommended for SPI-NAND on STM32MP13?Please find the attached patches
Title edited to clarify that this refers to a NUCLEO-WBA65RI board.Hello, I am currently using STM32WBA65RI with Standby mode. According to datasheet, this mode should be able to reach 120nA current consumption with the 16 GPIO wake-up pins (RTC disabled). However running the Standby example and shutting down the RTC I am still getting 3uA of current consumption. What can I do to decrease the current consumption up to the nanoA?Best regards.
Section 2 of this page shows how to setup python for building firmware. It seems the rest of the tutorials assume you are building on a modern Ubuntu, so I would suggest changing the following lines:pip install pyelftoolspip install pycryptodomexto:sudo apt install python3-pyelftoolssudo apt install python3-pycryptodomeI would also suggest adding:sudo apt install python-is-python3 My reasons are that you can not/should not install the above packages to the global python environment with pip. Also, the makefiles for M33 firmware call 'python' which does not exist on a new ubuntu install (well, it didn't on mine). Installing python-is-python3 is the recommended way to resolve this. Alternately use a virtual environment, but the firmware build system seems to assume use of the global python.
As shown on the website below, the Arc Fault Circuit Interrupter (AFCI) solution is introduced as an Edge AI use case.https://www.st.com/content/st_com/en/st-edge-ai-suite/case-studies/direct-current-arc-faults-detection.htmlFor hardware development reference, would it be possible to purchase the development board shown on the page?It would also be helpful if you could share the schematic and BOM of the PCB.
I am running the pre-compiled "object Detection" files on the STM32N6570-DK and am in the process of trying to generate my own STM32CubeMX setup project for the fsbl.I am having difficulty setting up the numerous options for the DCMIPP for this project and have read a lot of the recommended documentation but there does not seem to be any specific details for interfacing to the MB1854 camera module on this kit.From what I can figure out the "Object Detection" demo uses pipe1 for the display and pipe2 for the NPU processing but I am lost as to what settings to use for DCMIPP in STM32CubeMX.I need to know what pipe formats, data types etc are needed for each of the pipe1 and pipe2 settingsCan anyone please help me with this?
Was trying to figure out an issue I was having with the SWDCLK pin, and realized there was a difference between the STLink V3-MINIE and the V3-SET.When idle (either just plugged into a computer, or after programming), the SWDCLK idles high on the MINIE, while on the SET it idles low.Is this an intentional difference? Is there any way to make the SWDCLK idle low on the MINIE as well?
Dear All,I generated the code after configuring the STM32MP257F on CubeMX, however, after opening the generated project on STMCubeIDE and building it yield errors. I don't get why. Please Help.Here is the complete error report shown on IDE:16:38:45 **** Incremental Build of configuration Debug for project hrt-mc-stm32mp2_CM33 ****make -j8 all arm-none-eabi-gcc "../OPENAMP/mbox_ipcc.c" -mcpu=cortex-m33 -std=gnu11 -g3 -DDEBUG -DUSE_FULL_LL_DRIVER -DNO_ATOMIC_64_SUPPORT -DMETAL_INTERNAL -DMETAL_MAX_DEVICE_REGIONS=2 -DVIRTIO_SLAVE_ONLY -DCORE_CM33 -DUSE_HAL_DRIVER -DSTM32MP257Fxx -c -I../Core/Inc -I"C:/Users/Foto/Battery Dynamics GmbH/80 Students - Documents/83 Data/2025-05 MA Swain/17_WS/STM32MP/IOC/Middlewares/Third_Party/OpenAMP/open-amp/lib/include" -I../OPENAMP -I../../Drivers/STM32MP2xx_HAL_Driver/Inc -I../../Drivers/STM32MP2xx_HAL_Driver/Inc/Legacy -I../../Utilities/ResourcesManager -I../../Drivers/CMSIS/Device/ST/STM32MP2xx/Include -I../../Middlewares/Third_Party/OpenAMP/virtual_dr
Hi everyone,I am a beginner working with the VL53L1X sensor on an STM32F103C8T6 using the STSW-IMG009 (Ultra Lite Driver). I am trying to implement a calibration routine, but I am encountering two specific compilation errors inside my VL53L1X_calibration.c file:The errors:1. 'VL53L1X_ERROR_TIMEOUT' undeclared (first use in this function); did you mean 'HAL_DMA_ERROR_TIMEOUT'?2. implicit declaration of function 'VL53L1_WaitMs' [-Wimplicit-function-declaration]I have checked the driver files but cannot find their declarations.I have not changed any of the driver files. Am I missing something? Any help is appreciated. Thank you!
I'm stuck at trying to make motion_fx call MotionFX_LoadMagCalFromNVM and MotionFX_SaveMagCalInNVM - a problem which is mentioned already in link1 and link2 but to which actually there is no working solution (the rest of the motion_fx seems to work without any issue). I implemented the functions as below, but already when compiling, they get optimised out and end up being discarded - hence the motion_fx library never calls them, in contrary to what UM2220 suggests. My code does actively call MotionFX_MagCal_init(MFX_MAGCAL_SAMPLE_PERIOD_MS, 1); and MotionFX_MagCal_init(MFX_MAGCAL_SAMPLE_PERIOD_MS, 0); which as per UM2220 should trigger the call of the NVM functions. Here is my implementation:volatile int deb_load_nvm_called = 0; volatile int deb_save_nvm_called = 0; char MotionFX_LoadMagCalFromNVM(unsigned short int dataSize, unsigned int *data) { Message_Logger("hi from save %i", deb_load_nvm_called); deb_load_nvm_called++; nvm_status_t s = NVM
Hello,I have a custom PCB that uses an STM32L4R9 controller and runs two applications. One is a bootloader and other is the actual app. The files are called boot.hex and app.hex.The boards are made via a vendor and programmed with these files during ICT. We use ST Link programmer and SWD connection to program the devices.I use the ST Link V2 Utility CLI to do this.A batch file is made that runs all the commands that program the option bytes, erase chip, and programs the above files.The problem I am facing is, the batch file fails to execute the first time. It fails after the option bytes step. The second time however, it always executes and programs the applications successfully.I did wonder whether this is because the Read Out protection for STM32L4R is set to 1 from the factory? But again, I tried to revert the option bytes to factory after which I cannot read the flash memory again before setting it back to Level 0.But if I connect a new and unprogrammed board to the ST Link V2 Util
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.