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
Part Number: STM32F427VIT6Environment: Custom PCB (not an eval/dev board), native SDIO/SDMMC1 peripheral, 4-bit bus, FatFs (ChaN's ff.c) on top of ST's HAL (stm32f4xx_hal_sd.c). STM32CubeIDE 2.2.0, GNU Arm Embedded toolchain 14.3.rel1 (arm-none-eabi-gcc), STM32CubeProgrammer for flashing/SWD debug, bare-metal HAL (no RTOS). SDIO clock tested from 400kHz up to ~24MHz; same result throughout.Schematics / hardware note: This is a custom PCB, so a board-level cause can't be fully excluded, a scope check on the 3.3V rail during a write burst is still pending, and I'm happy to attach the relevant SDMMC1/power schematic on request. That said, a pure PCB signal-integrity/trace defect looks unlikely specifically: DAT0-3 are bidirectional and reads over those same physical traces are 100% reliable, every write's CRC check passes cleanly, the failure is fully deterministic rather than marginal/intermittent, and it's unchanged across the full 400kHz-24MHz clock range tested, none of that fits a ti
I’ve trawled through several CRC-related threads without finding an explanation of this: How to properly set up bit reversal.Normally, I use CRC-16 XMODEM, which uses the 0x1021 polynomial and no bit reversal. This works perfectly fine when I use this code:void xmodemCalcCRC (uint8_t Data, uint16_t *CRCVal){ CRC->POL = 0x1021; // CRC polynomial CRC->INIT = *CRCVal; // Previous CRC result CRC->CR = CRC_CR_POLYSIZE_0; // 16-bit polynomial *(__IO uint8_t*)(&CRC->DR) = Data; // Feed an 8-bit value into the algorithm *CRCVal = CRC->DR; // Read the result}The reason I set the polynomial, the initial value and configuration every time is to accommodate different CRC methods in the same application.Now, in a current project (using an STM32L433 microcontroller) I need to use CRC-16 Kermit as well. According to crccalc.com, Kermit CRC uses bit reversal on input and output. This is where my trouble begins: When bit revers
Dear ST Team,I am following the STM32 wiki guide:https://wiki.st.com/stm32mcu/wiki/Security:How_to_start_with_STM32CubeMX_STiRoT_Boot_path_on_STM32H57While working through the steps, I encountered an issue with STM32CubeMX.The Boot Path and Debug Authentication configuration pages are blank and do not display the expected options shown in the tutorial. Because of this, I am unable to continue.STM32CubeMX Version: 6.18.1 Could you please advise how to resolve this issue?Thank you for your support.Best regardsRJ
I would like to move the project from:C:\ST\STM32Cube_FW_WB_V1.24.0\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_HeartRateFreeRTOSto:C:\Projects\Myprojectso that I can make modifications at will and not worry about corrupting the original code. At the same time, I want all the libraries, etc. to fall under the same directory as the new code will eventually be submitted to version control.How can I do this?Note: All my other projects under the C:\Projects directory were started with CubeMX and all seem to do as I want.
This is a feature request.In HAL2, we can configure an STM32CubeMX2 project to use User Data pointers (pointers managed only by the application, not the HAL2 library). E.g. setting USE_HAL_UART_USER_DATA to 1 will add the field `const void *p_user_data;` to hal_uart_handle_t.This pointer can be added to other handles: timers, SPI, I2C, FLASH, …I would the pointer to be a pointer-to-mutable, or in other words to remove the “const” from p_user_data. If this is not possible/wanted by ST, please let me know why it was designed like this. I am personally using this pointer to keep track of the amount of successful read/write and errors for UART communication, so it points to a custom-defined structure that is non-const.
In STM32CubeMX2 1.1.1, for the STM32C542RC MCU, enable the IWDG.In “Applicative services”, enable “Start function generation”. In the subfolder “Calculator”, you have the possibility to change the “Time unit”. Set it to “Seconds”. The only change is the unit used in comments, e.g.: /* Start the Independent Watchdog (IWDG) with the following parameters: - Maximum time before watchdog reset : 132 seconds - Minimum time before refresh (window) : 0 seconds - Early Wakeup Interrupt (EWI) time : 0 seconds*/hal_status_t mx_iwdg_start(void){ return HAL_IWDG_Start(&hIWDG, 0UL, 132UL, 0UL);}The arguments given to HAL_IWDG_Start() are not updated by this unit change. So the configuration of the time unit in this window is useless and does not touch any part of actual code. This is a problem and should be fixed.For the unit change to effectively take effect, it is currently done in “Project settings” → “HAL common definitions” → “HAL IWDG” → “Use HAL IWDG time unit”. We can now sel
EnvironmentSTM32CubeProgrammer: 2.23.0 (latest version at the time of writing) The same issue was also present in the previous release and is still reproducible after updating to 2.23.0, which is why I am reporting it now. Platform: macOS Tahoe 26.5.1 Architecture: Apple Silicon (M4 Pro, arm64) System proxy: Enabled Proxy software: Clash Verge Rev (running continuously in the background) TUN mode: Enabled The proxy itself works normally for all other applications.Issue DescriptionI noticed that simply leaving STM32CubeProgrammer running causes the file ~/.STM32CubeProgrammer/Updater_Gui_Log.txt to grow continuously at a very high rate. The file increases by hundreds of megabytes within minutes and can easily reach multiple gigabytes if STM32CubeProgrammer is left open. In my case, I have already experienced the log file completely filling my macOS system disk overnight, which caused abnormal system behavior due to the disk running out of free space.Log OutputThe updater repeatedly writ
I have inherited a legacy H bridge motor control hardware and firmware based on L99H01 (I think L99H02 might be drop in replacement). I’m a firmware developer - not a hardware designer, and I’m new to motor control, so I’m familiarizing myself with the hardware and firmware, and I’m having a “how can this have ever worked” moment.The TS/ACT_OFF pin is not connected (floating). The value 0xC4 is written to REG3 by the firmware.EXT_TS-bit = high (thermal sensor interface), and EXTTH[5:0] is set to 000100b (n=7, m=3) , givingVth = 7* (0.31 + 3*0.03) = 2.8V.Vcc is 3.3V.Apparently this design has functioned correctly for over 10 years, but since we will shortly be spinning a new board and porting the firmware to a new (ST) MCU I’d like to understand if there is a fundamental problem with this design. All of the original hardware and firmware developers are long departed (probably retired 😑).Thanks in advance if for any feedback.
Hi.I'm trying out new STM32N6 Nucleo board. It has cmera interfaces, so I wanted to try some examples with the camera.My usual routine for quickstarting some new STM32 product was to download CubeMX package for it, go to Repository folder -> Projects -> [board] -> Applications or Examples, and run an exaple project. But I didn't find any example neather for Nucleo nor other boards.Where can I find camera examples for NUCLEO-N657 board?Thanks.
In Table 7.4, "Low-power mode wake-up timings on LDO" of the datasheet, there is no mention of the FSTEN setting in the conditions for twu(stop3) (wake-up in SRAM2). When waking up in SRAM2, is the wake-up time typ. 22.5 μs at MSI=24MHz regardless of the FSTEN setting?
I am experiencing two separate issues with the generated LPTIM1 configuration in STM32CubeMX2.1. Clock configuration is removed when assigning a label to LPTIM1The first issue occurs when assigning a user label to LPTIM1.As soon as a label is assigned to LPTIM1 and the code is regenerated, the RCC initialization and peripheral clock configuration are removed from mx_system_init().The deleted code looks like this:system_status_t mx_system_init(void){......... LL_ICACHE_Enable(ICACHE);- /*- Clock system section- */-- /* Initialize RCC peripheral */- if (mx_rcc_init() != SYSTEM_OK)- {- return SYSTEM_CLOCK_ERROR;- }-- /* peripherals clock configuration and activation- is centralized: no clock activation/deactivation in pppi_init */-- if (mx_rcc_peripherals_clock_config() != SYSTEM_OK)- {- return SYSTEM_CLOCK_ERROR;- }.........Therefore, the calls tomx_rcc_init();mx_rcc_peripherals_clock_config();are no longer present after assigning the LPTIM1 label.A
Dear ST Community,I am working on an STM32 motor control project using MC Workbench and would like to configure one SPI interface and two UART interfaces in addition to the motor control peripherals.Is it possible to configure SPI and two UARTs while using MC Workbench?I tried configuring these peripherals by modifying the generated .ioc file in STM32CubeMX. However, when I regenerate the project/code, some of the peripheral configurations are overwritten by the MC Workbench-generated configuration.Could you please suggest the recommended approach for this use case? Specifically:Is there a supported way to configure SPI + two UARTs directly through MC Workbench? If not, what is the recommended method to add these peripherals without their configuration being overwritten? Should the peripherals be configured in the .ioc file after MC Workbench code generation, or is there another recommended integration method? Are there any specific USER CODE sections, middleware, or configuration file
I’ve installed the newes STM32CubeProgrammer version on my Apple Silicon Mac. Now when I am running, it directly crashes. Digging a bit deeper via command-line gives: oading PRG Library: /Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/Resources/bin/libCubeProgrammer_API.dylib108 external Loader listException in Application start methodjava.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:382) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:321) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method
I have an application that uses internal flash for logging. Unfortunately, after exiting stop3 subsequent writes to flash fail. Here’s my exit code -- the names of the routines should give a general idea. I don’t really have a clue what changed and the reference manual is notably sparse on details about the various stop/standby/shutdown modes SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); __DSB(); __WFI(); __ISB(); CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk)); PWR->APCR &= ~PWR_APCR_APC; palSetLine(LINE_testpin); chSysLock(); tagPowerRestoreClocksAfterStop3(); tagPowerPostStop3WakeEventI(); chSysUnlock(); // Ensure Flash is awake and not stuck in low-power mode FLASH->ACR &= ~(FLASH_ACR_SLEEP_PD); __DSB();
I am trying to configure the clock for the STM32L496 microcontroller, as shown in the screenshot below.I would like to use MSI in PLL mode with the LSE. When I configure the LSE in CubeMX, the 'MSI Auto Calibration' option disappears. When the LSE is disabled, the option is visible, but it cannot be enabled.Please tell me how to correctly configure MSI in PLL mode with the LSE in CubeMX.
Hi,Could you please share example for using IIS2MDCTR via SAI on STM32U385.Thanks
We are testing the best position for a VL53L5CX sensor in our product. We are observing unusual behavior and are not sure how the sensor should be calibrated in this setup.The sensor is mounted on the wall of a movable square housing and points inward. When the housing is positioned directly above a metal box, it appears that crosstalk affects the measurements in all 64 zones.We do not have the cover glass installed yet, but we will add it to the final product.How should the crosstalk calibration be performed in this situation?The vl53l5cx_plugin_xtalk allows a minimum calibration target distance of 600 mm. Therefore, should we perform the calibration outside the final assembly, using the actual cover glass and a target at 600 mm? Or should the calibration be performed with the sensor in its final mechanical position?There is another interesting observation: when the housing is positioned directly above the metal box, the crosstalk effect affects all 64 zones. However, when we raise th
As the title suggests, I see in debug mode that audio is captured from I2S_RX, but it is not transmitted on the transducer (I cannot hear any audio coming from I2S_RX with my hear). And the problem is that with the same hardware wiring it works on the other boards (including H7S3L8), but not on this specifically. I’ve tried to place dma buffer in RAM D2 and I’ve disabled D cache, ut it does not solve anything. Is the board I’ve ordered broken? I upload the code below
Hi all,Are these available for these samples? I am working on some secure boot devices and would like to try these chips as I am familiar with the STM32 ecosystem. Are you guys have any suggestion which NUCLEO can use for secure-boot purpose?I see there are NUCLEO-H5xx are designed for hardware crypto, sample project and we can build for chain of trust from these family chips?Please let me know, thank you.
Hi there!I'd like to use the STEVAL-CAM-M01 P-board to evaluate the VD55G0 BrightSense image sensor with the Discovery kit for the STM32N6 MCU (STM32N6570-DK). The discovery kit does have a camera connector, however, looking at the schematics it seems that the polarity of the CSI data and clock lines is swapped compared to the P-board. Everything else looks fine.Is it possible to use the P-Board with the Discovery kit without destroying either of the two? ST's marketing material (slide 33) seems to suggest it is possible but the schematics are unclear. Note that a similar question has been asked in the MCU forum, but it was suggested to ask in this forum to be sure. Also note that I'm not asking about software driver support here, only hardware compatibility.Camera connector on STM32N6 discovery kit: Connector on P-board:Thanks a lot!Michael
Hi ST team,I am using the ST VD66GY image sensor connected to a Rockchip RV1106 processor with the Rockchip hardware ISP.I have successfully enabled the camera pipeline and can capture images, but the image quality has a strong greenish color cast and the colors look desaturated, even under a bright indoor room with white LED lighting.Current setup Sensor: ST VD66GY Processor: Rockchip RV1106 ISP: Rockchip RKISP (hardware ISP) Capture: RAW from VD66GY → RKISP → Image output Observed issue Strong green tint across the entire image Skin tones appear gray/green Low color saturation Indoor lighting is much brighter than what the captured image suggests I have attached three sample images captured with the current ISP settings.Questions Does ST provide an IQ tuning file or reference tuning parameters for VD66GY when used with a third-party ISP such as Rockchip RKISP? Are there recommended AWB calibration, Color Correction Matrix (CCM), or Lens Shading Correction (LSC) values
Hi, I have another question regarding the practical installation of the ISM330DHCX for vibration monitoring in industrial machines. If the sensor is mounted directly on a machine, there may be exposure to **oil, grease, dust, coolant, and other contaminants**. I would like to know what is the recommended way to protect the sensor while still obtaining accurate vibration measurements. * Can the ISM330DHCX sensor/PCB be mounted directly on the machine?* Is a **protective enclosure or cover** recommended for industrial environments? * If an enclosure is used, how should it be designed so that it does not significantly affect the vibration measurement? * Is there a recommended **mounting method/material** for vibration monitoring applications? * Are there any recommendations regarding protection from **oil, grease, coolant, dust, and moisture**? I am interested in using the sensor on different types of industrial machines, so I would like to understand the recommended sensor mounting and
Hello,I am evaluating the EVSTDRVG611MC for a high-speed motor control application in Japan.The data brief describes the board as having a “230 V AC mains line input,” but I could not find the supported AC input voltage range for connector J4.Could you please clarify the following?What is the supported AC input voltage range for J4? Can the EVSTDRVG611MC be operated from 100 VAC, 50/60 Hz? If 100 VAC operation is possible, are there any restrictions on output power or motor operating conditions compared with 230 VAC? When supplied from 100 VAC, the rectified DC bus would be approximately 140 VDC at no load. Is this an intended/acceptable operating condition for the inverter?For reference, the target motor is approximately 130 W and rated for a 140 VDC bus, so I would like to understand whether direct 100 VAC input can be used for evaluation, or whether an external DC supply connected to J6 should be used instead.Thank you
Board: STM32N6570-DK Sensor: Sony IMX219 (Raspberry Pi Camera Module 2 / NoIR), custom driver, connected via a 15-pin-to-22-pin adapter cable into the board's camera connector (normally used for the MB1854/IMX335 module)SummaryI've written a from-scratch IMX219 driver (I2C register map transcribed from the Linux kernel's imx219.c) as an additive sensor option alongside the working IMX335 path. I2C control, power sequencing, and CSI-2 D-PHY link all come up healthy. DCMIPP's own status registers report that PIPE1 is continuously and successfully capturing new frames. But the actual pixel data written to memory is frozen — bit-for-bit identical — and does not respond to real scene changes. I'm looking for insight into what could produce this specific disconnect.Configuration2 CSI-2 lanes, D-PHY bitrate bucket DCMIPP_CSI_PHY_BT_900 (900 Mbps bucket, closest available to the computed 912 Mbps for this PLL config) Sensor PLL: VTPXCK_DIV=5, PREPLLCK_VT_DIV=3, PLL_VT_MPY=57, OPSYCK_DIV=1, PRE
Hello ST Community, I am repairing an electronic board (HVAC controller) and trying to confirm the exact part number for an IC in a SOIC-8 package. The top marking on the chip reads: Line 1: 95 Line 2: AVF. Based on ST marking conventions for small footprint ICs, my understanding is that "95" represents the TS952 series (dual rail-to-rail operational amplifier), and "AVF" is the internal trace/lot code. Could someone from the ST team or community please confirm: 1. Is "95" indeed the official package marking code for the TS952IDT (SOIC-8)? 2. Is TS952IDT the direct replacement/equivalent for this component? Thank you in advance for your support!Confirmation of SMD marking "95 AVF" (SOIC-8) located near electrolytic capacitor zoom
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.