Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.[PN]:NUCLEO G071RBX-NUCLEO-IHM08M1Own Motor (4mR, 250uH, 1200rpm, 30Apk, 5pp, inertia known, friction guessed)[VERSION]: Version of MCSDK 6.4.2, STM32 FW 1.6.3[TOOL]: CubeMX 6.17.0, Motor Control Workbench Version: 6.4.2 Build: 260313.082202[DETAILS]:Settings: 20kHz, 100us regulator (2PWM), ADC Sampling 7.5adcclk (234ns), Sensing config see attached.After startup, fails with "Speed Feedback". Plotted graphs show good BEMF response, proper angle and reasonable speed signals (see graphs attached), angle of PLL are somewhat behind OpenLoop. Arround start-up exit speed of 432rpm, the calculated speed of the PLL rises quickly while currents are being reduced, shortly after motor stops.The set target speed in the Motor Pilot is 510 rpm. I tried to switch off UART interface to check if it is linked to MCU load, no success. Debug says "bemfConsistent
Hi, I am using an STM32F767ZI which is connected to a server via Ethernet. It is also connected to other STM32F767ZI devices that are part of the same system, and these devices communicate with each other over CAN. So far, everything is working correctly: the STM32F767ZI with Ethernet communicates with the server using TCP/IP and forwards the information to the other devices connected to the CAN bus. The problem is that I am now being asked to support firmware updates for all the devices connected to the CAN network, including the STM32F767ZI that has the Ethernet connection. I am not sure what the most optimal way to do this would be. I have also never programmed a bootloader before, although I think I should be able to do it. Is there a way to program all the STM32 devices connected to the CAN bus from a server that is connected to the system via an Ethernet cable? Should I change the design so that all devices are connected via Ethernet using TCP/IP and remove the CAN network altoge
Hello, I am working with this guide:How to integrate TouchGFX and camera middleware on an STM32N6570-DK And was wondering if there was an easy way to capture snapshots instead of running the camera continuously. I tried setting the mode to CMW_MODE_SNAPSHOT with no luck. I was able to get snapshot mode to work in the DCMIPP_SnapshotDecimationMode example, but it seems that example interacts with the ISP a little differently from the link above. The end goal is to store snapshots in different locations on PSRAM (multiple cameras muxed to the MCU's CSI port)
Hello, We are using STM32F469 and STM32F412 in our design. Regarding the BOOT0 pin, we understand that a pull-down resistor is required to ensure boot from Flash. However, we could not find a clearly specified resistor value in the datasheet or application notes. In many reference designs, a 10k ohm resistor is used. In some cases, lower values such as 510 ohm are used. Could you please clarify the design criteria for selecting the BOOT0 pull-down resistor value? Is there a recommended range? What factors should be considered, for example noise or leakage current? Why are lower values such as 510 ohm sometimes used? We would like to have a clear technical justification for our design. Thank you. Hiroshi Yamada
Hi, I want to use my F072's DACs to output a sin and cos signal. to save on memory I want to have only one buffer holding the values of a SIN function, COS values should be taken from the same buffer. Basically, I need the DMA for channel 1 to start from the beginning of the buffer and for channel 2 to start at an offset. Of course, I can't just do something like HAL_DAC_Start_DMA(&hdac1, DAC_CHANNEL_1, lut, no_samples, DAC_ALIGN_12B_R);HAL_DAC_Start_DMA(&hdac1, DAC_CHANNEL_2, lut + no_amples / 4, no_samples, DAC_ALIGN_12B_R);because that would make the dma access elements outside the buffer. in the reference manual I found the register DMA_CNDTRx register, is this the way to go?
Hi all , Im facing a issue in TCP/IP - Ethernet using LWIP on STM32H723ZGT6 [NUCLEO - H723ZG] , that i gave completed ethernet configuration , ping is good , wrote a tcp_echoserver and modified with my desired outputs , everything was a woking upto a certain level, and i cant RX and Tx and fall into hard fault (Added a Video of the output). I'll add the code file as a zip. Kindly help me to resolve ii. Thank You!!!.....
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.Hi everybody,I have an application, where my device should go every record_interval into the stop2 mode. Then Wakes up then measure some sensor values, then goes into the sleep. Same goes over and over.The issue is, I am using the LSI2 as a clock source for my RTC. I am then using that RTC clock to wake my MCU up from the STOP2 mode. But the issue is: that RTC time (based on the LSI2) is drifting (roughly 10s less than the real time). I am then using the real sleep time to advance the ticks of my freeRTOS, because the ticks are being paused during the STOP2 mode.Advancing the ticks manually then causes my freeRTOS task to run with some delays.Now my questions are:- Is there any way on my PCB, ith the STM32WB55RG on it to make the LSI2 or even the LSI1 more precise? PS: I am planning to buy an LSE oscillator. In the mean time, I try to compens
Hi, I am creating a project CubeMX that uses both Secure and NonSecure. I using USART1 for debugging, and my application only runs on SecureApp and cannot run NonSecureApp. I tried implementing the same as Template Isolation XIP but it still didn't work.
Hi, I have a question regarding the STM32N6 BootROM flash boot process. My understanding is that the BootROM loads the FSBL from an external XSPI flash device. However, it is not clear to me whether the BootROM: Uses a fixed XSPI/XSPIM configuration (for example, a specific XSPIM port), or Automatically probes and detects the flash location across available XSPI/XSPIM ports. For a custom STM32N6 board, the external NOR flash is connected through XSPIM Port1. I would like to understand whether the BootROM is capable of automatically discovering and booting from a flash connected to Port1, or whether Flash Boot is restricted to a specific XSPI/XSPIM port configuration. Could you please clarify: Does the STM32N6 BootROM scan multiple XSPI/XSPIM ports during Flash Boot? Is the boot source port fixed in ROM or configurable through OTP settings? If the flash is connected only to XSPIM Port1, can the BootROM still load the FSBL from it? Is there any documentation describ
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.Hello,I am using a STM32L431 microcontroller. Bare-metal application in C using STM32CubeIDE and HAL library. I am trying to transmit an 8-byte CAN Message at 1Mbps baud rate every 1ms. The best I can do right now is successfully transmit one CAN message every 3ms (with every 13th or 14th message going out at 4ms interval.). Any transmission rate >3ms I do not have any issues. The system Clock is set to 80Mhz, using external 8Mhz crystal. Every 1ms (based on 500us timer), I add a CAN message to a queue (size 128). I check for any available TxMailbox and try to transmit using HAL_CAN_AddTxMessage. I also have a CANTransmit function that calls HAL_CAN_AddTxMessage in the HAL_CAN_TxMailboxEmptyCallback in case all 3 mailboxes were full. At present, there are no other devices trying to send any CAN messages on the bus expect the STM32 microcon
I have a scroll list lightSoundSelectorScroll made by several items from the container lightSoundItem. In the view I call lightSoundSelectorScroll.setVisible(false); or lightSoundSelectorScroll.setVisible(true); but, when calling this->isVisible() inside void lightSoundItem::handleTickEvent() I always have true even if I called lightSoundSelectorScroll.setVisible(false); before Why is that?
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.Is there a function to get the currently set ID in the SVGImage widget?
Hello Team, I want to connect a USB camera to an STM32H7 board. My STM32H7 supports USB OTG/Host. Is it possible to interface a USB camera with STM32H7? Does STM32H7 support USB Video Class (UVC), or is it better to use a DCMI parallel camera instead? Please suggest the required driver/middleware and recommended approach. Thank You, Vijaya
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.HI am a firmware engineer working on industrial power supply products. Our device needs to comply with IEC 62443 industrial cybersecurity standards (target SL2/SL3).We plan to adopt a dual-MCU architecture for this project:STM32G4: Responsible for real-time power control, protection logic and analog front-end processing. This series fully meets our requirements for power-related functions, but lacks sufficient native security features to satisfy IEC 62443 independently. STM32U5 or STM32H5: Dedicated to network communication, secure boot, TLS/IPSec encryption, secure data storage, firmware encryption and remote update, undertaking all cybersecurity functions required by IEC 62443.Both STM32U5 and STM32H5 are based on Cortex-M33 core. There are clear positioning differences between them. I would appreciate your advice on the following questions
Hi,I'm using a STM32H743II.The product will communicate to server using the LwIP (TCP Layer) + MbedTLS (SSL/TLS Layer), running over FreeRTOS environment.We want to use the latest TLS protocol standard (TLS Version 1.3).We are currently using MbedTLS version 3.6.1 which supports TLS1.3, but we can only get TLS 1.2 to work.Are there any example projects where TLS 1.3 is used that we can use?BRJonas
Hello STM32 Community,I am encountering an issue on an STM32WL project using the ST LoRaWAN Middleware stack. When I enable and call MX_LoRaWAN_Init(), the MCU gets stuck or enters an infinite loop inside modem_supervisor_init() in modem_supervisor_light.c.Environment DetailsMCU: STM32WLE5CCU6Board: RAK3172 ModuleCubeMX / Firmware Package: STM32CubeWL v1.6.0Problem DescriptionWhen calling MX_LoRaWAN_Init(), execution fails inside modem_supervisor_init(). Debugging shows execution stuck in the for loop below : void modem_supervisor_init( void ){ memset( &task_manager, 0, sizeof( stask_manager ) ); for( uint8_t i = 0; i < NUMBER_OF_TASKS * NUMBER_OF_STACKS; i++ ) { task_manager.modem_task[i].priority = TASK_FINISH; task_manager.modem_task[i].id = ( task_id_t ) i; task_manager.modem_task[i].stack_id = 0; task_manager.modem_task[i].updated_locked = false; } ........}What I Have Checked / ObservedClock & Periphera
Hi,I bought the STEVAL-DRONE02 and STEVALFCU001V2 last week. But I couldn’t download the Android app ST BLE Drone on my smart phone which has Android version 14. Which Android version does ST_BLE_DRONE support?I checked with Google and it say:The ST BLE Drone application supports Android 4.4 and higher. It acts as a Bluetooth Low Energy (BLE) remote controller designed to work with evaluation boards like the STEVAL-FCU001V1.
Hello, I'm experiencing a flashing issue with an STM32G071G8U6: STM32CubeProgrammer (ST-LINK, SWD, Normal mode) returns "Unable to get core ID" / "No STM32 target found", even though the measured target voltage is correct (~2.93–2.97V, see attached screenshot). I'm also attaching the MCU pinout and SWD connector schematics for reference. I'd like to know what possible causes could explain a total loss of SWD communication despite the correct current voltage, and whether there's a test that could confirm an internal MCU failure before concluding the component needs to be replaced. Best regards
I’ve been working on a small TMC2209 driver for STM32F4 using bare-metal/CMSIS, without HAL.The driver currently supports: UART half-duplex through function pointers TMC2209 register read/write CRC calculation GCONF configuration IHOLD/IRUN current control CHOPCONF configuration Microstep configuration Direction control Enable/disable VACTUAL for testing Current calculation from mA to the TMC2209 CS value The motor is working correctly, and I’m now mostly interested in feedback on the driver architecture, API design, abstraction and code quality.This is a learning project, so I’d really appreciate honest criticism and suggestions from more experienced embedded developers.What would you improve or change in this driver?https://github.com/embeddedrafo/tmc2209_driver
Hello,I'm trying to write an application with TrustZone enabled that uses the LTDC peripheral.My application:boots into secure worldconfigures the LTDC peripheral and its interrupt, as well as the relevant GPIO pins, as non-secureswitches to the non-secure world.In the non-secure world, I configure the LTDC, passing a buffer placed in non-secure SRAM and start drawing. However, the screen stays black.I'm able to access the LTDC registers from the non-secure world, so it seems that the permission settings for the MCU are correct. My guess is that for some reason the LTDC peripheral itself does not have permission to access the SRAM, am I missing some other settings?
I’m trying to set an alarm occurring on the 5 minute marks. However, after I set the alarm and try to read it back I always get 0 minutes and no interrupts. My code without the error handling is as follows. Status = HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN); Status = HAL_RTC_DeactivateAlarm(&hrtc, RTC_ALARM_A); // Deactivate before setting /** Enable the Alarm A */ sAlarm.AlarmTime.Minutes = 5 * (((sTime.Minutes + 5) % 60) / 5); sAlarm.AlarmMask = RTC_ALARMMASK_DATEWEEKDAY | RTC_ALARMMASK_HOURS | RTC_ALARMMASK_SECONDS; sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_ALL; sAlarm.Alarm = RTC_ALARM_A; Status = HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, RTC_FORMAT_BIN);What am I missing?Thanks
I am attempting to setup a new Hello World project on the STM32N6 using the following: FreeRTOS running two tasks, a timer, and a semaphore A couple of hardware timers A USART The PSSI doing 16 bit bi-directional transfers The BSP packageRunning the debugger I getfollowed by a Hard Fault:The code is running on a Nucleo-N657XO-Q development board. My development tools are: STMCube 6.18.1 STM32Cube_FW_N6_V1.4.0 IAR 9.60.4Something not correctly setup or a bad board?
Hi, I am developing an I3C target application that responds to I3C private messages from the controller. The application starts by registering the Tx callback.static void I3C_TxCompleteCallback(hal_i3c_handle_t *hi3c); // The callback is registered during initialization hal_status_t status = HAL_I3C_TGT_RegisterTxCpltCallback(hI3C, I3C_TxCompleteCallback); if (status != HAL_OK) { SWD_printf("HAL_I3C_TGT_RegisterTxCpltCallback failed.\n"); return status; }The target responds to the controller: hal_status_t status; hal_i3c_handle_t *hI3C = mx_i3c1_gethandle(); status = HAL_I3C_TGT_Transmit_IT(hI3C, I3C_TxBuffer, 8); if (status != HAL_OK) { SWD_printf("HAL_I3C_TGT_Transmit_IT: %lx\n", status); return status; }The controller receives 8 bytes of data and the data is correct but the TxComplete callback does not trigger on the target side.I placed a breakpoint inside the HAL I3C_Tgt_ISR show below./** * @brief Interrupt Sub-Routine which han
Hi, We're hitting intermittent Ethernet RX corruption on the STM32N657 in RMII mode with a LAN8742 PHY. On some cold boots the receive path is broken for the whole session: the MAC flags incoming frames with the dribble bit (RDES3.DE) and error summary (ES), or drops them entirely, and the MMC alignment-error counter climbs while the CRC-error counter stays at zero. TX is fine. It never recovers on its own, and how severe it is varies from board to board. It's not tied to auto-negotiation, link state or speed — it's set the moment the MAC comes out of reset. The key point: we can reproduce it with the PHY in internal digital loopback, so there's no cable and no link partner involved. Frames leave the MAC on the RMII TX pins, loop back inside the PHY, and come back on the RMII RX pins. Since it still corrupts there, the problem is in the MAC↔PHY RMII digital interface and the shared 50 MHz REF_CLK, not in the cable/magnetics/analog side. What fixes it is a MAC-only reset (RCC
Hey I came across this thread: Rotate text at any angle, where @Romain DIELEMAN mentioned a custom widget called TextArc (TextArc.cpp/hpp) demonstrating arbitrary text rotation.Unfortunately, the original demo files/links seem to be missing or broken. Does anyone still have a copy of this TextArc widget, or can ST re-upload the sample project?If this demo is no longer available or compatible with recent TouchGFX versions, what is the recommended approach to render/rotate text at arbitrary angles today?Thanks in advance!
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.