Find out more about STM32 implementations with external components, discuss use cases, and discover how to use new tools and ST components.
Most recent activity
Hi STM Team,We are currently using the 25 MHz crystal configuration based on the NUCLEO-H723ZG reference design for our STM32H723 + LAN8742 Ethernet implementation.The original/reference crystal used is:NX2016SA 25 MHz – EXS00A-CS11321 (NDK)Frequency: 25 MHz Load capacitance (CL): 6 pF ESR: 80 Ω Reference design uses approximately 5.1/5.6 pF load capacitors.However, the above crystal is currently not readily available in the market, so we evaluated the following alternatives:ECS-250-6-37-JTN-TR – 25 MHz, 6 pF, 80 Ω X2C025000DZ1H-U XRCGB25M000F1SBAR0With the above replacement crystals, we are observing significant data loss during Ethernet communication through the LAN8742.We have already tried the recommended/reference crystal configuration and compared the Ethernet behavior with the replacement crystals, but the issue is still observed with the alternate parts.Could you please help us identify a suitable 25 MHz crystal for the STM32H723 + LAN8742 configuration, preferably a currently
Hi all,I’m configuring a GitHub Actions CI pipeline for an STM32 project with auto-generated CMake files (STM32CubeIDE/CubeMX).I already created a custom Debian container including the dedicated ARM toolchain (arm-none-eabi) version 14.3.rel1 for reproducible builds.What is the best practice: how do I have to configure the CmakeList? Is there a template?How can I keep custom flags/include paths/post-build steps without editing generated files directly?Do you have a minimal working example for STM32 + CMake on GitHub Actions (including .elf/.bin/.hex artifacts)?Thanks in advance for any recommendations.
I try to do power wirign for the STM32N645 but unfortunately the AN and the User Guide are not perfectly clear and somewhat incomplete.When I understand it correct, the STM32N6 generates the VDDCORE voltage of 0,89V internally, so all I have to do with the VDDCORE-pins is to connect them with each other and to couple each of them with 100 nF to ground, right? For this I need a specific SMPS configuration which lets the MCU generate this voltage. Here I have a description in the AN and the User Guide which shows some wiring scheme named “Configuration when using SMPS (option 1)” that consists of two inductances and a capacitor and external 1.8V feed into VDDSMPS input.My problem here: the wiring scheme of the development board of that MCU is completely different to what the documentations say. And: neither in the AN nor in the User Guide there are any values for these components. So the question is: what wiring should i use with which component values to let the MCU generate the VDDCORE
Hello,I am looking for an existing implementation of the SAE J2716 SENT (Single Edge Nibble Transmission) protocol for an STM32L4xx device.My goal is to interface with sensors that use the SENT protocol and decode the incoming data stream on the MCU.At the moment, my idea is to use:A timer channel configured in Input Capture mode to measure pulse widths. DMA to transfer captured timer values with minimal CPU overhead. Some form of interrupt or callback to process a complete 32-bit SENT message (24-bit payload + CRC + Status nibble).Since this requires coordinating several hardware peripherals (timer, input capture, DMA, interrupts, and frame decoding), I would like to know whether ST already provides any of the following:Application notes related to SENT reception. Example projects demonstrating SENT decoding. STM32Cube examples, Middleware, libraries, or reusable classes implementing the SENT protocol.If anyone has experience implementing SENT on STM32L4 devices, I would appreciate an
Hi,I have read about the capabilities of the STM32G030P6T6 microcontroller, and they are truly excellent. Is it possible to implement any desired effect for WS2812 LEDs using this microcontroller without an HSE crystal?Are there any limitations?
hi We are using the STM32F103CBT6 as the ST-Link controller in our new gateway board.In the first version of the board, the ST-Link did not work as expected. We have made some changes, and this is the second version of the board.Could you please review the ST-Link schematic section and let us know if there are any issues or recommended changes? Your feedback would be very helpful in ensuring that the ST-Link works correctly in this version.Thank you in advance for your support.
Hi, As mentioned in the other post that the drone frame is not symmetrical, where the propeller guards have fins with certain inclination and orientation (see [1]). I have difficultly to find the correct orientation of the drone02 frame. Since I am not quite sure how the propeller guards fins can affect the downward thrust that produces by the propellers. It would be great if someone can provide suggestion. I enclosed two cases of the drone frame orientations as reference. NOTE: If I use Figure8 in [2] as reference, then Case1 does look correct. But taking the M2 propeller (top right of the propeller) as an example, the M2 propeller rotates counter-clockwise (CCW) direction, then I think the produced thrust will hit the guard fins and get affected? Case 1 Case 2 Case 1: top right (for M2 motor/propeller) Case 2: top right (for M2 motor/propeller) Ref:[1] Steval-FCU001V2 FCU board and Steval-drone02 Drone kit issues[2] ST, How to build your own mini d
STM32F407 CAN1: INAK not set in Keil µVision SimulatorI am implementing a bare-metal, polling-only CAN1 driver on an STM32F407VG in Keil µVision Simulator.During CAN initialization:CAN1->MCR.INRQ = 1;while (CAN1->MSR.INAK == 0){ /* timeout */}MCR.INRQ successfully becomes 1, but MSR.INAK never changes from 0, so the program remains stuck in the loop.I have verified: STM32F407VG is selected and Use Simulator is enabled. CAN1 clock is enabled (RCC->APB1ENR bit 25 = 1). CAN1 register writes work; for example, MCR.INRQ and BTR fields update correctly. Manually setting INRQ=1 in the CAN1 peripheral window also does not cause INAK to become 1. Similarly, setting MCR.SLEEP=1 does not cause MSR.SLAK to become 1. TSR.TME0/TME1/TME2 also remain 0. Is the CAN1 peripheral state-machine behavior (INRQ → INAK, SLEEP → SLAK, mailbox status, etc.) actually supported for the STM32F407VG in the Keil µVision simulator? Or is there a specific configuration required for these hardware
Hi,We are using STM32L496RGT6, VDD voltage is 1.8V, our device is low power device, max current available on 1.8V is 13mA. We are using Segger flasher for flashing .hex file to MCU by SWD and Speed 4000kHz. Now while flashing MCU, it takes around 36mA current. Setting as follows, can we reduce programming power by changing any setting in flasher tool.
Includes support for hardware interrupts and custom config options for the sensor. Code is in fashion of similar drivers already on github but with additional support. It has been tested but I am very new to this so Im sure there are things I missed. Criticism welcome.Repo:https://github.com/mihalamot/STM32-MPU6050-HAL-DriverI am 21yo CS student with a recently found passion for embedded/low level programming. Job market is not the best right now so I am trying to distinguish myself with hobby projects like this one. It would help me a lot if anyone could take the time to check this out and potentially star it. If someone actually used my code I know that it would help my employment chances.Thanks
Hi everyone, I have a schematic using the Realtek RTL8211F-CG Gigabit Ethernet PHY and I want to connect it directly to an STM32H7 microcontroller for Ethernet communication. My questions are: The STM32H7 Ethernet MAC supports MII and RMII only. The RTL8211F-CG is a Gigabit PHY that primarily uses RGMII. Is there any way to make it work with STM32H7 without adding an intermediate chip like LAN8720 or DP83848? The RTL8211F-CG datasheet mentions it can operate at 10/100 Mbps as well but does it support a true RMII mode that the STM32H7 MAC can talk to? Has anyone successfully used the RTL8211F-CG with STM32H7 directly? If so, what interface mode did you configure on the PHY side, and what changes were needed in CubeMX/HAL? If this is not possible at all, what is the simplest/cheapest alternative 10/100 PHY that works reliably with STM32H7 in RMII mode? Any help or experience is appreciated. Thanks!
Hi there, Is there a drop in replacment for the IS42S32800G-6BLI (besides the obselete MT48LC4M32B2B5)? Or one that is recommended with the STM32H757?
I am trying to send GPS data from one B-L072Z-LRWAN1 to another B-L072Z-LRWAN1. There are 3 tasks to do this.1. Get GPS data using a B-L072Z-LRWAN1.2. Send text data from one B-L072Z-LRWAN1 to another B-L072Z-LRWAN1 using PingPong project.3. Combine 1 and 2, send GPS data from one B-L072Z-LRWAN1 to another B-L072Z-LRWAN1.Tasks 1 and 2 were successful, but I cannot do No.3 task. I compared the code that retrieves GPS data with the code that does nothing, and wrote the differences to the PingPong project. I've attached a portion of the code below. Could you give me a suggestion? if (transferComplete) { snprintf(sval , sizeof(sval), "%s\r\n","test"); HAL_UART_Transmit( &huart2, sval, strlen(sval) + 1, 0xFFFF); MX_SubGHz_Phy_Process(); transferComplete = 0; /* Restart DMA reception */ HAL_NVIC_SystemReset(); HAL_UARTEx_ReceiveToIdle_DMA(&huart1, gpsBuffer, GPS_BUFFER_SIZE); __HAL_DMA_DISABLE_IT(&hdma_usart1_rx, DMA_IT_HT); } HAL_Delay(1000);
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 have an 1024x600 resolution 7 inch TFT screen.I will be taking data from my GSM module and storing it in eMMC memory.I want to display videos playing on the 7 inch display.The raw frames even of 10sec becomes huge in size . So we are planning to use MP4 format. The size of the file reduces drastically. We want to decode these files and display the data.If I am correct I should use H.264 decoder for this right?Is there any ST MCU THAT CAN DO THIS?We want the device to start quickly when powered. Is there any crossover series that has H.264 DECODER IN MCU itself will be useful. Any suggestion are welcome.
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've been trying to get an OLED screen to work on my H7S3L8, but I've not been successful. I've followed this tutorial perfectly (as much as I could - there were things I couldn't do such as setting fast mode duty cycle as the option isn't there in CubeMX).So far I've tried:- Using 4.7k resistors between VCC and SDA/SCK (also tried without them)- Only sending the command to turn all pixels on the screen on (0xA5 from the datasheet)- Following different tutorials with example code to no avail- Making sure there are no shorts and that the voltage is correct with my multimeterI haven't yet had success. Does anybody have experience with the H7S3L8 or have an idea why this would not be working? The tutorial I linked at the top explicitly mentions that the code works on H7 families.I only used this part of the above tutorial to display 2 wor
Hi, I am using two STM23F303 Discovery Borads. My application is as follows: The two boards communicate via SPI. Every two seconds the master boards send a uint8 message to the slave. Upon receiving the message, the slave board shall light up some LEDs depending on the sent message. This is a snippet of the code flashed to the slave board:while (FOREVER) { // When you receive a message from if (HAL_SPI_Receive(&hspi1, &u8SpiMsg, U16_NUM_BYTES, HAL_MAX_DELAY) == HAL_OK) { // Set/Reset corresponding LED pins via their control bits in BSRR register GPIOE->BSRR = ...........; } } This is the configuration of the SPI: Mode - Full-Duplex Master/Slave Hardware NSS Signal - Hardware NSS Input Signal Frame Format - Motorola Data Size - 8 bit First Bit - MSB First Prescaler (for Baud Rate) - 8 Clock Polarity - low Clock Phase - 1 Edge CRC Calculation - disable NSSP Mode - Disable The application works, but when I hooked up a logic analyser (saleae logic to inspect
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
I have some custom STM32G43KB boards that don’t always behave. The firmware starts with the UART in receive mode, 9600 baud, 9B (8 + parity) 2 stop bits, TX and RX inverted to interface with the host device. The device UART line idles low (ground) as expected for inverted logic, and sends a 17-byte poll message that my board will reply to. Out of 25 boards that have been programmed with the same firmware, about 60 percent of them work, the other 40% show a frame error and do not decode the first byte of the message properly. I have been using alternate function push pull for PA9 configuration, with a 10K pull down resistor to create the idle low condition when in receive mode. Some boards work, some don’t. The same boards, when programmed with other versions of the firmware for interface to different external systems are working fine with AF Push/Pull, 8N1, not inverted, baud rates of 100K, 115.2K and 250K with no issues. When configured for 9600 baud 8E2 inverted, some of the b
Hello Everyone,I am aiming to integrate a 64mb NOR Flash non-volatile memory to my stm32n6,However, the recommended models were MX66UW1G45GXDI00 and MX25UM51245GXDI00,They are out of stock on every major electronics market in the world,,are there any legit alternatives to these models , that are compaitable with stm32n6 and serves my need,If so please let me know.Thanking you
I am using open bootloader in stm32g0b1kct6 and when i am flashing it and then flashing application code over CAN it is only working while debugging and as soon as i flash application code it stopped working. Both are working fine in debugging but not when hex flashed and also when bootloader is working in debugging and i flash application code it stopped working immediately.
Hello ST Community,I am starting a new project using the NUCLEO-N657X0-Q development board with the STM32N657X0 MCU, and I would like to get some guidance on the correct workflow for programming and developing applications for this board.I have experience working with other STM32 devices and Nucleo boards using STM32CubeMX/CubeIDE, STM32 HAL and ST-LINK, but the STM32N6 architecture and boot/programming flow seem to be different from the STM32 families I have worked with before.I would like to clarify the following points:What is the recommended procedure to create, compile, program and debug a basic application on the NUCLEO-N657X0-Q? What software versions are currently recommended? For example, STM32CubeMX, STM32CubeIDE, STM32CubeProgrammer and the corresponding STM32N6 software packages. What is the correct boot configuration for development? In particular, how should BOOT0/BOOT1 and the relevant jumpers be configured when using ST-LINK for programming and debugging? What is the re
Hello everyone,I am currently developing with the STM32N6570-DK and utilizing the hardware ISP. I am facing an issue with the embedded Auto Exposure (AE) algorithm's convergence time. It currently takes about 20-30 frames (~1 second) for the AE to settle on the correct exposure and gain. For my application, it is critical that the very first frame upon wake-up is perfectly exposed, meaning a 1-second delay is not acceptable.To bypass this feedback loop, I have integrated a Texas Instruments OPT3001 Ambient Light Sensor (I2C) to implement a feed-forward solution. My intended sequence is: Read the absolute ambient lux from the OPT3001 on boot. Map this lux value to a pre-calibrated Lookup Table (LUT) to determine the ideal Exposure Time and Sensor Gain. Force the STM32 ISP into manual exposure mode and inject these values directly. Start the camera stream to achieve a zero-delay, perfectly exposed first frame. I have a few questions regarding the best way to implement this within t
I am using the starm-clang with cmake.I need to use multithreading lock. I understand that in standard PICOLIBC the locking functions are included but just as stubs and "weak" defined and you need to override the functions and define new implementations to use them.I tried to do this but I get all kinds of "duplicate symbols" errors when I link.Are you doing something special with the STARM_PICOLIBC library?Is the locking functions already implemented and functional in you version of PICOLIBC?
Hello STM Community,I am trying to achieve live camera streaming using STM32H723VGT6, but I am unable to get the result for USB_UVC, Ethernet, using esp32 wifi, if there is any help available, please share it. Also, do share any GitHub link if available. I am using the Weact mini STM32H723VGT6 board, and I have connected a camera module OV2640 to it.I have referred to the GitHub link below, which is for the H743 controller, but it hasn't shown any expected results. https://github.com/WeActStudio/MiniSTM32H7xx Any guidance from ST engineers or Community members would be very helpful.Thank you in advance.
Hi everyone,I am working on a project using BNO085 IMU sensor and STM32H7A3ZIT6Q. I have a single sensor working but stuck at 44Hz. The same sensor with SparkFun library on ESP32 achieves 1.2ms read time. I need help understanding why and how to match ESP32 performance on STM32.Hardware:NUCLEO-H7A3ZI-Q (STM32H7A3ZIT6Q, Cortex-M7 @ 280MHz)Adafruit BNO085 breakout boardI2C on PB8 (SCL), PB9 (SDA), PC0 (INT pin)P0 and P1 tied to GND (I2C mode, address 0x4A)Software:STM32CubeIDE with HALOfficial CEVA SH2 library from github.com/ceva-dsp/sh2REPORT_INTERVAL_US = 2500 (targeting 400Hz)SH2_ROTATION_VECTOR (9-axis full quaternion)STM32 performance achieved so far:I2C 400kHz polling: 28Hz, read_ms = 32msI2C 1MHz Fast Mode Plus: 44Hz, read_ms = 19msINT pin wait inside sh2_hal_read(): still 44Hz, read_ms = 19msESP32 performance with same sensor and SparkFun SH2 library:read time: 1.2msData rate: close to 400HzThis is a huge difference. 19ms on STM32 vs 1.2ms on ESP32 with the same SH2 library unde
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.