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
Hi Champs,the D/S of both LSM6DSV and LSM6DSV32X gives the same WHO_AM_I defaul value (01110000b = 0x70).is there a way to differentiate both IMUs?thanks in advance.Warm regards,Agnès
I have an application that I must rotate motor for 3000 radian every 10 seconds, is it possible to use TC_SetCtrlPositonAngle function to set theta to 0 after every movement so that it does not overflow.
I am developing a device based on an STM32F746VET6 with two Ethernet ports. To implement this, I chose the KSZ8863RLL, as it provides two external Ethernet PHY ports and an RMII interface to the STM32.At the moment, Port 1 and Port 2 are both working correctly at 100 Mbps full duplex. I can successfully transmit and receive data through both ports. However, I cannot get Port 3 (the RMII CPU port) to establish a link.I'm a bit confused about the correct RMII interface connections. I am using Clock Mode 5, and my understanding is that the external 25 MHz crystal is internally multiplied to 50 MHz, with REFCLKO_3 providing the 50 MHz reference clock to the STM32. Is that interpretation correct?This is how I originally routed the RMII signals: After reading through the datasheet and application notes, I also came across the following information:Based on that, I bodged my PCB to match the recommended connections, but I still cannot get a link on Port 3.Has anyone successfully used the KSZ8
Hi everyone,I'm trying to program an STM32F0 MCU using an ST-Link/V2 through a TXB0108 voltage level translator module.My setup is as follows:ST-Link/V2 SWCLK, SWDIO, and nRST connected to the A-side of the TXB0108 STM32F0 SWCLK, SWDIO, and NRST connected to the B-side Both sides are powered appropriately according to the voltage translator requirementsHowever, when I connect the translator module, I observe that the nRST pin from the ST-Link/V2 drops to 0V. If I disconnect the TXB0108 and connect the ST-Link directly to the MCU, the nRST line remains at the expected VTref level (3.3V).I'm trying to understand what could be causing this behavior. Some questions I have:Is the TXB0108 suitable for SWD programming signals, especially the nRST line? Could the auto-direction sensing of the TXB0108 be interfering with the ST-Link reset signal? Are there any known issues with using TXB/TXS translators on SWD interfaces? What measurements or checks would you recommend helping isolate the probl
Hello,I am evaluating sensorless FOC on a NUCLEO-G474RE combined with the EVLDRIVE102BH power board using the STM32 Motor Control SDK (MCSDK).While configuring the project in MC Workbench, I noticed that the HSO (High Sensitivity Observer) option is disabled/unavailable for this hardware combination.From my understanding, HSO requires both current sensing and phase-voltage measurements. The STM32G474RE appears to have sufficient ADC resources, and the EVLDRIVE102BH includes phase-voltage sensing circuitry. Because of this, I am trying to understand what prevents HSO from being available for this setup.Could anyone familiar with HSO support help clarify the following?Why is the HSO option disabled when selecting NUCLEO-G474RE + EVLDRIVE102BH in MCSDK? Is the restriction due to: Hardware limitations of the NUCLEO-G474RE or EVLDRIVE102BH? ADC/channel allocation requirements? Phase-voltage sensing implementation requirements? MCSDK board support restrictions? ST validation/support pol
Hi Team,I'm designing a custom board around the STM32N657X0H3Q and evaluating whether I can replace the reference MX66UW1G45GXDI00 (Macronix, used on the STM32N6570-DK) with the ISSI IS25WX01G-JILE (24-ball LFBGA, 1Gb, 1.7–2.0V Octal DDR NOR flash 166MHZ) as the external boot flash.My questions:Does the STM32N6 stage-0 (ROM) bootloader have hard-coded protocol/timing parameters tied specifically to the Macronix MX66UW1G45G, or is there a way to configure it for a different vendor/command set (e.g., via OTP, option bytes, or FSBL configuration)? Is JEDEC manufacturer ID checked/enforced anywhere in the boot chain (ROM bootloader, FSBL, or STM32CubeProgrammer external loader) in a way that would reject a non-Macronix part? Has anyone successfully booted an STM32N6 from a non-Macronix Octal DDR/OPI flash (e.g., ISSI, Winbond) by writing a custom BSP/XSPI driver, or is the boot ROM's dependency on the Macronix command set a hard blocker regardless of driver customization? Has the IS25WX01G
Hi, I have designed a board with a total antenna width of 10 mm and 7 turns, and a rectangular antenna.But it doesn’t read by smartphone (NFC-enabled) or Readers. Can you please help me with the problems?
Hello,The StellarStudio 9.1.0 release notes state that StellarStudio is available for Windows, Linux and macOS.However, the download page only provides:StellarStudio-FULL-SR5-9.1.0.exeI am trying to install StellarStudio natively on macOS (Intel).I installed Eclipse 2026-06 and added the update siteshttps://common.srxstudio.org https://contrib.srxstudio.org https://sr5.srxstudio.orgEclipse finds the StellarStudio features, but installation fails because required bundles such asorg.eclipse.emf.ecp.core org.eclipse.nebula.widgets.pgroupcannot be resolved.Could you please clarify:Is there a native macOS installer (.dmg or .pkg) for StellarStudio 9.1.0? If StellarStudio is intended to be installed into a standard Eclipse installation, which Eclipse package and prerequisite repositories are required? If not, where can the official macOS installation package be downloaded?
Hello ST community,Is there a way to find information about how many bytes I've written to the flash memory of a certain memory area at some memory address (not starting at 0x0800000, but at 0x0802000)?When I first power up, the byte counter is initialized to 0, and as I write bytes from address 0x0802000, I count the number of bytes, and at that point, I get the information about the number of bytes written.But my goal is to know how many bytes I've previously written when I power cycle the STM32H7 MCU. Is there an option that counts the number of bytes written to the flash memory and automatically stores that information somewhere in the memory?If so, which memory and at what address?Thanks to anyone who can help me.Regards
Hi ST team,We are using STM32L071 for the system bootup application. We are observing that for few of the boards - NRST was asserting due to which ST MCU fails to boot. Our initial suspect was on 3.3V Power rail. We did an experiment as below:- When the injected residual voltage reaches approximately 0.25V on the 3.3V rail, the U1501 fails to start up.- When the residual voltage is below 0.20V or above 0.30V, the U1501 starts up normally.What might be the possible reason for NRST pin getting low? Please find the schematics and probed NRST pin.
Hello, I connected an ILI9488 480x320 display on a STM32U5 using FMC in 16-bit mode.I transfer the framebuffer to the display using GPDMA in 2D mode, and all works fine.But only as long as I transfer the entire framebuffer or a rectangular region that takes the full width of the screent, where rect_y >= 0 and rect_height < =DISPLAY_SIZE_Y and rect_x = 0 and rect_width = DISPLAY_SIZE_X. This way one line in the frambuffer follows the next line, an easy task for the GPDMA, where 2D mode is inrelevant.Things don’t work out well when I want rect_x > 0 and rect_width < DISPLAY_SIZE_X, so a random rectangle somewhere from the framebuffer. This way for each new line the GPDMA needs to skip (DISPLAY_SIZE_X - rect_width) pixels to arrive at the next data in the framebuffer. I haven’t been able to configure that. The output image gets extremely slanted and extremely resduced in vertical size if if I make the rectangle 4 pixels more narrow than the display horizontal resolution.I hope
I have a working RLT8211F at my STM32MP257F board.I wonder why only the hardware reset is working PYRSTB (pin 12), but the software reset won't work?Should they not do the exactly the same thing?My Ethernet PHY is working, but it seems it requires as hardware reset GPIO from the MPU.I have tried to modify the code in realtek.c and phy_device.c by adding the function genphy_soft_reset to the struct in realtek.c. }, { PHY_ID_MATCH_EXACT(0x001cc916), .name = "RTL8211F Gigabit Ethernet", .probe = rtl8211f_probe, .soft_reset = genphy_soft_reset, /* <------- this */ .config_init = &rtl8211f_config_init, .read_status = rtlgen_read_status, .config_intr = &rtl8211f_config_intr, .handle_interrupt = rtl8211f_handle_interrupt, .set_wol = rtl8211f_set_wol, .get_wol = rtl8211f_get_wol, .suspend = rtl8211f_suspend, .resume = rtl8211f_resume, .read_page = rtl821x_read_page, .write_page = rtl821x_write_page, .flags = PHY_ALWAYS_CALL_SUSPEND, .led_hw_is_supported
Using the latest CubeMXIDE, CubeIDE, and drivers.Custom hardware driving an ILI9341 through SPI1 Driver (attached) writes column and page registers, writes RAMWRITE command, and then transfers in one of three methods: blocking, IRQ, and DMA.blocking works fine, so the hardware and commands are proper.IRQ and DMA do not work. Working specifically on DMA at the moment.Software for the driver next: case ROTATE_180:{// checked valid// new design driver, landscape mode, draws left to right// note: DISPLAY IS IN native landscape MODE// range is 0-319 and 0-239// reverse X if not commented out// data.x0 = 319-data.x0;// data.x1 = 319-data.x1;// reverse Y if not commented out// data.y0 = 239-data.y0;// data.y1 = 239-data.y1;minmax (data.x0, 0, 319);minmax (data.x1, 0, 319);minmax (data.y0, 0, 239);minmax (data.y1, 0, 239);if (data.x1 < data.x0) swap(data.x0,data.x1);if (data.y1 < data.y0) swap(data.y0,data.y1);#ifdef _LVGL// com_addr[0] = ILI9341_PASET;// com_data[0] = (319-data.x1) &
Hello,I am trying to extend DTCM to 256K. I followed FLEXMEM Configurations example but I get HardFault as soon as I try to access DTCM in 0x30020000 - 0x30040000 address range. Could someone please provide working example of how to extend DTCM to 256K?
is their official library for the BNO085 whil using with stm i found the one to used with ardiuno but not one for stm https://github.com/adafruit/Adafruit_BNO08x/blob/master/src/Adafruit_BNO08x.cpp
I’m starting to work with the STM32F411E‑Discovery board and I’d like to use it for real‑time audio filtering. I’m using the onboard MEMS microphone together with the mini‑jack audio output.I’m currently struggling with configuring the clock settings correctly — I’m observing a variable timing drift between the microphone input and the audio output.Could you advise on the proper clock configuration for this setup, or point me to an existing project or example that demonstrates real‑time audio processing on the STM32F411E‑Discovery?
MCU: STM32H753IITxPeripherals: FDCAN1 and FDCAN2Baud: Nominal 1 Mbps, Data 2 Mbps (FDCAN_FRAME_FD_BRS) Question:Can FDCAN RX/TX use DMA on STM32H7 (like UART/SPI), or is Message RAM + interrupt/polling the only supported path?What I understand so far:- FDCAN stores frames in shared Message RAM (RX FIFO0/FIFO1 / TX FIFO)- CPU reads with HAL_FDCAN_GetRxMessage() after interrupt or by polling- I do not see HAL_FDCAN_Receive_DMA() / Transmit_DMA() in the H7 HAL What I need:1) Official confirmation: DMA for FDCAN frame RX/TX on H753 — supported or not?2) If not supported, recommended approach for higher load (40 slaves, periodic SCAN):- interrupt + FreeRTOS queue, or- polling in a task, or- something else?3) If any DMA/MDMA trick is possible for Message RAM copy, is it recommended by ST? Thank you.
Hi, I have a bldc motor with encoder, the output current waveform is not sinusoidal. i have used motor profiler to measure rs=0.2mOhm and ls = 0.6mH. what should I do. I also cant tune the pid so that the rpm of motor will be constant under load.
Greetings! A custom H523-based board has a 4-header connector [3.3V, SWDIO, SWCLK, GND] that I used with an external STLINK-V2 dongle connected to my laptop. Is it possible to debug this board using STLINK-V3 on my NUCLEO-U545RE-Q? Section 7.3 of the manual, Embedded STLINK-V3EC, does not mention this. Thanks.
Hello,if you are using macOS and STM32CubeIDE and need it productively you should currently refrain updating your macOS. Due to a bug in Eclipse (https://github.com/eclipse-platform/eclipse.platform.swt/issues/2621) text selection does no more work via dragging your mouse or using shift+arrows.There is already a fix but STM32CubeIDE does not provide the fix as update as of now.I already filed a case.
Hello,We are currently designing a board using an STM32H563VI and an ADIN1200 Ethernet PHY. The design is still at an early stage, and no prototype hardware has been built yet, so we can still change the interface from RMII to MII if necessary.The planned RMII conditions are as follows:* RMII reference clock: 50 MHz* I/O voltage: 3.3 V* STM32 GPIO speed: OSPEEDR = 10 (High speed)* I/O compensation cell: Enabled* ADIN1200 minimum setup time: 4 ns* ADIN1200 minimum hold time: 2 ns* Application ambient temperature range: −20°C to +50°CAccording to the STM32H563 datasheet, the maximum delay from the RMII_REF_CLK rising edge to TXD[1:0]/TX_EN valid is 15.5 ns. Therefore, the worst-case setup margin appears to be:20 ns − 15.5 ns − 4 ns = 0.5 nsThis calculation leaves only 0.5 ns of margin before considering PCB trace skew, capacitive loading, and the difference between the STM32 timing measurement threshold of 0.5 × VDD and the RMII/ADIN1200 timing thresholds.This is my first time designing
I am using STM32L431RCT6 controller, configured RTC with external LSE (32.768 KHz), for which my controller is not working, not booting up for normal process, everything is stopped. But when i switch from LSE to LSI, everything works fine. Why does this happen? Also changed the LSE low drive capability to high, still having the same issue.
We have recently updated to the latest STM32CubeMX 6.17 and then STMCubeMX 6.18 and noticed in both versions that the internal temperature sensor is mis-reading (by something like 100x).Previously the project was reading the temperature correctly (STMCubeMX 6.14 or 6.15 not sure exactly).I have checked that all the ADC3 settings are the same and there are no changes causing by migrating the .IOC project.I’ve also checked the TSEN and VREFEN are enabled in ADC3_CCR. The value is 0x00C00000.Before I invest a lot of time rolling back to the old STM32CubeMX version and investigating what changed that broke the ADC3 internal temperature reading I’m hoping that this is known issue with the latest STM32CubeMX?STM32CubeMX generated code: /** Common config */ hadc3.Instance = ADC3; hadc3.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1; hadc3.Init.Resolution = ADC_RESOLUTION_12B; hadc3.Init.ScanConvMode = ADC_SCAN_ENABLE; hadc3.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc3.Init.LowPowerAutoW
Dear ST Support Team,I am developing a custom bootloader for the STM32L071CBY6TR (128 Kbyte, dual-bank Flash) and I have a question regarding the exact behavior of the Flash controller that I could not fully clarify from RM0367.Context:- My bootloader occupies the first 32 Kbytes (0x08000000 - 0x08007FFF), entirely within Bank 1.- My application occupies 96 Kbytes starting at 0x08008000, which means it spans across the Bank1/Bank2 boundary at 0x08010000: the last 32 Kbytes of Bank 1, and roughly 64 Kbytes of Bank 2.RM0367 states that read operations from one bank can be performed while write or erase operations are performed on the other bank (cross-bank read-while-write). However, I could not find documentation describing the behavior when a write/erase operation is performed on one bank while code execution (instruction fetch) continues from a *different page within the same bank* — which is exactly my bootloader's situation when it needs to erase/program the tail portion of Bank 1 t
Hello wonderful ST Community!Before I get into the question, a bit of background on this project. I'm creating a button panel HID gaming device for the space sim Elite Dangerous. Using its somewhat limited API I'm hoping to feed info about the game state back to a 9 inch screen on the HID device through USB CDC running composite with HID. Before I start getting into hardware dev I want to create a sim of the GUI to test two things:- size of display needed to show what I want to show- getting data out of the game (will be done with a USB CDC app/driver/python (I have not quite got this far) running on the host computer)It would be amazing to test these two aspects using the GFX simulator. I known it's theoretically possible to send data through some medium such as sockets but how does this work in practice?Is there some good documentation around how the simulator works and how I can feed data into my sims?I've been investigating using VSCode since GFX already has compatibility, but how
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.