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
Is there an official docker image for stm32cubeide - we are building our firmware in an azure devops pipeline, and downloading the latest stm32cubeide deb package and installing it is time-consuming for the build. Looking on docker hub there are a number of stm32cubeide images, but none seem to be official from ST?(we have the headless build command working etc)
I am using LPTIM for pulse counting in ultra low power (stop 2) mode for STM32wl55jc. Now, the problem is on the pin if I connect any pull up/ pull down with 10k-50k range, it draws significant amount of current. Can anyone please suggest a circuit to use for the pin input such that power consumption stays minimal in stop 2 mode? Should I use pull up with higher values? What about EMI/EMC issues?
Hi experts:I'm working on STM32U575 evk, using ADC1 including two channels enabe interrupt, attached file is my test project, only one interrupt in the callback function, I don't know why, if I changed the end of conversion selection to end of sequence of conversion, no interrupt triggered, please help to check if anything missing in my project, thanks.Bill
My goal is to use the STM32_Programmer_CLI.exe from an application, but, for the moment, I just write down command lines in the Command Prompt (cmd.exe).However, the commands of writting the flash ( -w yourbinfile.bin )and erasing it completely (-e all) does not return any kinf of results. I just delivers a "STM32CubeProgrammer v2.21.0" response. Why?
Hi,I'm probably doing wrong as a newbie in STM32 programmation:I try to generate this configuration code for dma but I can't see any dma.c file in the project folder.(I did refresh the project after generating the code)Thanks for help
Hello,converting a runnig project from IDE to VisualStudioCode, I have a strange problem:all global variables are not initialized...example:uint32_t TestTemp1=0x1234;When running after the main(), if i check the TestTemp1 value I don't found the expected value (0x1234), but a random value.... After checking I Found that the problem was in linker file:This NOT INITIALIZE !/* Specify the memory areas */ MEMORY { FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 2048K DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 512K RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K } /* Initialized data sections goes into RAM, load LMA copy after code */ .data : { . = ALIGN(4); _sdata = .; /* create a global symbol at data start */ *(.data) /* .data sections */ *(.data*) /* .data* sections */ *(.RamFunc) /* .RamFunc sections */ *(.RamFunc*) /
I have a project that I've been working on for some time, but I stopped using it for a month and when I turn it on, the display only shows pixels of various colors, and I can't load the gfx onto the board. Everything was working fine before.If I start a new project, I can load the image.What could it be?
Hello. I am currently attempting to execute a MatMul operation on an NPU. I have implemented a simple TFLite file with a MatMul operation, as shown in the image below.When converting the model using ST Edge AI, I observed that Matmul operator is mapped to the MCU instead of the NPU, and the operation is converted into a Convolution. Furthermore, checking the network.c file reveals that it is being converted into a convolution layer with an extremely large stride. https://stm32ai-cs.st.com/assets/embedded-docs/stneuralart_operator_support.html states that the matmul(batch matmul) operator is supported on the ST Neural art Accelerator.How can I resolve this issue? Thank you.
Pls cross TI part number TMP75AIDGKR (Temperature Sensor With I2C and SMBus Interface) Previously there's a Cross Reference tool in ST website but it's gone. I use it regularly. I hope it can be reinstated.
Hi there!I start to work with this sensor and i want use this functionHAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress,uint16_t MemAddSize, uint8_t *pData, uint16_t Size)so the pointer address register of the sensor is 8 bit but the data are 16bit is correct if i do that example: data[0] = MSB; data[1]=LSB; HAL_I2C_Mem_Write_IT(&hi2c1, INA226_Addr , 0x00, I2C_MEMADD_SIZE_8BIT, data, 2); and i do the same when i want read data from register.Sorry if i ask a silly question thank you Sergio
I have the NUCLEO-H753ZI example running on my board. All works fine without the security features. When I enable both the SFU_MPU_PROTECT_ENABLE and SFU_IWDG_PROTECT_ENABLE. I keep having a watchdog when it tries to execute the firmware. I commented the #define SFU_IWDG_PROTECT_ENABLE and enable the SFU_VERBOSE_DEBUG_MODE. It gets stuck at verifying the user FW as shown below.= [SBOOT] SECURE ENGINE INITIALIZATION SUCCESSFUL= [SBOOT] STATE: CHECK STATUS ON RESETINFO: A Reboot has been triggered by a Hardware reset!= [SBOOT] STATE: CHECK NEW FIRMWARE TO DOWNLOAD= [SBOOT] STATE: CHECK USER FW STATUSA FW is detected in the slot SLOT_ACTIVE_1= [SBOOT] STATE: VERIFY USER FW SIGNATUREWhen I breakpoint I can see that it is stuck at this as USB stops running after the first SFU_LL_SECU_SetProtectionMPU call which is the SFU_INITIAL_CONFIGURATION.TRACE(" @%d:%x size:%x sub:%x perm:%x exec:%x\r\n",MPU_InitStruct.Number, MPU_InitStruct.BaseAddress, MPU_InitStr
Hey Devs, I migrated my V2 extension to V3 (3.6.4) on Dec 11 2025 (just before the v3.7.0 release), updated my debug workflow / launch.json etc, my STM32H745I discovery board was running my TouchGFX application (basically stock TouchGFX Designer generated app w/ CMake) fine with Dual Core debugging (new shared debugger / simplified Launch/Tasks.json is a massive improvement on my old/convoluted tasks/launcher workflow, my sincere thanks).Just tried to re-run the same code stack with my code with the new 3.7.0 extensions, hit a launch error relating to my launch.json:Extension seems to have lost context of my ide.store.json files in the project subfolders:{ // 'CM4/.settings/ide.store.json' - This line not in actual file "device": "STM32H745XIH3", "core": "Cortex-M4", "order": 0, "toolchain": "GCC" }(Similar for the CM7 version targeting the M7 core)Re-running the STM32Cube Project setup configuration didn't seem to fix it, so I just added 'deviceName' and 'deviceCore' manuall
Hi,I'm trying to write custom firmware for the MKI109D. I am currently using an MKI251A adapter board with it for evaluation. How do I set VDD_DUT and VDDIO_DUT to 3.3V on the MKI109D board without using MEMS Studio?
I'm using the STM32H747 DCMI peripheral to capture video from an OV5640 camera, and I've encountered a confusing situation regarding synchronization signal polarity.Development EnvironmentBoard: STM32H747I-DISCOCamera Module: B-CAMS-OMV (OV5640)Firmware: Official example projectSTM32CubeH7/Projects/STM32H747I-DISCO/Examples/DCMI/DCMI_CaptureMode/CM7/Src/main.cOV5640 ConfigurationIn the OV5640 register 0x4740 (POLARITY CTRL00), I configure:{OV5640_POLARITY_CTRL, 0x22}According to the datasheet, this means:Bit[5] = 1 → PCLK polarity: Active highBit[1] = 1 → HREF polarity: Active highBit[0] = 0 → VSYNC polarity: Active lowSo the camera outputs:HREF high during valid line dataVSYNC low during valid frame dataPCLK rising edge for pixel samplingSTM32 DCMI ConfigurationIn the STM32H747 DCMI_CR register, I configure:DCMI->CR |= (1 << 7) | (1 << 6); // VSPOL = 1, HSPOL = 1According to the STM32 reference manual:VSPOL = 1 → VSYNC high = invalid f
Can you help with new research on secure boot? I am a cyber security researcher at the University of Bristol in the UK. I would like to your views on Secure boot. My area of interest is developer-centred security, specifically in the issues that developers face when trying to build secure IoT devices. If you have ever looked at implementing secure boot, or used it in your current development, or maybe think it to complicated, then I would really like to hear from you. Please take just 8 to 10 minutes to do this short survey on secure boot. https://universityofbristol.eu.qualtrics.com/jfe/form/SV_06xKUNve9ioJ5T8 If you have any questions, you can contact the researchers directly at fe23957@bristol.ac.uk
I have a problem, where there's simply no error, but the output, is not showing on the screen. The system has detected the board, and all the correct steps are followed, even though, my hello world code is not been printed. I am using stm32cubeide version 2.0.0 and im using a nucleo-h723zg. Also, the board is first showing a static red light when plugegd in to the laptop, and then a patternt that repeats ----> red, green red,green and then green for 1 second and then it keeps on going. I even flashed my whole baord and erased everything, despite that, it is showing the same behaviour. So far, I haven't recieved any error, the only thing is that i am not able to see the output on the screen of the ide that im using. Here's a link for the led problem(chatgpt says its a firware issue evn though i downlaoded the correct firmware) Video link: https://youtube.com/shorts/vETuGu5Kbfg?feature=share
Hello,We are currently working with the NUCLEO-WL55JC1 board for LoRa communication and have a few technical queries. 1. STM32WL as Gateway / P2P ReceiverWe are planning to use two NUCLEO-WL55JC1 boards, where: One board will act as a LoRa end node The other board will act as a gateway or P2P receiver Is there any gateway or P2P receiver firmware example available in the STM32WL SDK for the NUCLEO-WL55JC1 board? 2. LoRaWAN Gateway Capacity We would also like to understand the theoretical number of end nodes that can be supported by a single LoRaWAN gateway under the following conditions: Payload size: 16 bytes Spreading Factor: SF10 Uplink transmission interval: 1 hour per nodeAny calculation method, reference document, or guideline from your side would be very helpful.
Hi,This might be a bit of a noobish question but despite my best efforts at searching I could not find a suitable answer. This forum may also be the wrong place for this question but since it is related to the new "cube" Swiss knife tool I thought this might be the right place to start. Feel free to move this question elsewhere if appropriate.I have a VS Code project that uses STM's extensions and bundles, and thus I can use "cube programmer" to invoke the STM32CubeProgrammer binary. In VS Code side I have a launch.json which allows me to build, flash and start debugging the application I've built on an STM32F0 series microcontroller. It works completely fine. Device appears in Windows, enumerates as a USB device, and everything just works as expected.What I want to do now is execute the build and flash steps, and then instruct the MCU to begin executing the program. I tried to do this by invoking the "cube programmer" with the following litany: cube programmer -c port=SWD mode=UR
HelloIm developing a CAN Bus node and with space constrains, so i ve looked in stm32 products and a qnf32 packages looked perfect for example stm32G0B1 has FDCAN. The problem...These QFN32 dont expose HSE pins. I just can use HSI with 16 MHz +- 1% wich is not reliable for FDCAN, especially for industrial applications with many nodes. I dont understand why the mcu hás 2 FDCAN peripherals if theres no reliable clock to Run them.Im i missing some thing here? At are my alternatives? I now that QFN48 hás HSE, but i dont need só much io and the packages is bigger.Help here
I normally use the CMake Tools extension (by Microsoft) for compiling cmake projects in visual studio code. After installing the STM32CubeIDE extension, the CMake Tools extension stopped working. Presumably to do with the stm extension changing to using cube-cmake. After uninstalling all STM32CubeIDE extensions, reinstalling CMake Tools, restaring VS code, the CMake Tools extension is still still broken. Trying to configure a project through the IDE gives the following output:[cmakeExecutable] CMake executable not found in cache. Checking again.[proc] Executing command: cube-cmake --version[proc] The command: cube-cmake --version failed with error: Error: spawn cube-cmake ENOENT[proc] Executing command: cube-cmake -E capabilities[proc] The command: cube-cmake -E capabilities failed with error: Error: spawn cube-cmake ENOENT[main] Building folder: core2-firmware [cmakeExecutable] CMake executable not found in cache. Checking again.[proc] Executing command: cube-c
Hello, I am getting really frustrated with this issue for almost a week.I am trying to read PA1 and PA4 in DMA but I get only the reading of one channel and not the other one! I tried everything and I also looked at all the example online. Please help.
Hi, In the datasheet of the gyroscope I3G4250D, page 21:CS: 0: SPI communication mode / I2C disabledMy question is: I have to configure the CS pin PE3 as Low at the beginning to make the gyroscope understands that I wants to use SPI? (PE3 is CS in the KIT STM32F411 Discovery) Wating for your response,Thank you very much.
Greetings,Being rather new to designing/connecting electronics components, I got some questions regarding battery monitoring.Setup:NUCLEO-L432KC, driven by regular AA NiMH batteries in 3S configuration. Voltage is regulated by a small board based on a TI TPS63802 buck-boost-converter, which ensures a stable 3.3V output for the Nucleo board. The MCU is running stable with this power supply, everythings works out so far.Task:Now there's monitoring of the individual battery cells on the table. With three cells, three ADC inputs are required (if you don't do some switching outside of the MCU). The NiMH cells in question are rated at 1.2V nominal, with close to 1.4V when at full charge. Thus, if you measure the voltage after each cell, it would result to 1.2V, 2.4V and 3.6V nominal (or 1.4V, 2.8V and 4.2V max).Gathered intel:I understand that the ADC can only measure voltages between 0 and VREF, which equals to the 3.3V input voltage.Regarding the measurement of <3.3V battery pack nodes,
Hi, I found a small bug in STM32CubeMX for STM32WL55:Enabling the option "MSI Auto Calibration" for section "RCC" does nothing, i.e. generated code doesn't change.I think it should add a call to HAL_RCCEx_EnableMSIPLLMode() or LL_RCC_MSI_EnablePLLMode () in SystemClock_Config() - same as it does for STM32U0. This enables RCC_CR_MSIPLLEN.
Hi,I wonder how the motor control unit should behave if a speed ramp is programmed right after a torque ramp?Following code snippet shows this setup:// Set Torque/Iq limit MC_ProgramTorqueRampMotor1(iqLimit, 0); // Programm speed ramp MC_ProgramSpeedRampMotor1(speed, 500); // Start motor MC_StartMotor1();Do I understand correctly that this code should lead to the following behavior?the motor starts in speed modeif the load driven by the motor increases the speed will decreaseif the load increases further the motor will run with decreasing speed until it reaches the torque/iq limit set by the MC_ProgramTorqueRampMotor1() functionthe motor will stop and deliver a constant torque - the torque programmed with MC_ProgramTorqueRampMotor1() Best regardsB0bbyR4y
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.