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
I'm trying to start working with Evaluation board based on VL53L9CX Time of Flight sensorIn I2C, I'm having a problem with identifying the component addressI find address 55 and not 29The connection looks like thisGND to GNDSDA to SDASCL to SCLXSHOUT to 3V33V3 to 3V3I removed resistor 25 for internal clockAccording to the datasheets, it seems that 55 is the EEPROM ID
Hello, I am designing a custom 3-phase brushless DC motor controller based on the STSPIN32G4 integrated driver. The target application operates at 24V DC with a continuous output power of 350W (approximately 15A RMS continuous current). The hardware is designed to support evaluation of both sensorless FOC algorithms and sensored Hall effect positioning. Could you please verify the following parameters in my attached KiCad schematic:1. Operational Amplifier Configuration: Are the internal op-amp pins configured correctly for 3-shunt low-side current sensing matching the STSPIN32G4 internal matrix rules?2. Sensored/Sensorless Support: Are the analog filtering assets for BEMF decoding and the digital lines for the Hall sensor interfaces correctly assigned to the internal MCU pins?3. Power Stage Safety: Given a 350W load profile, are the bootstrap capacitor selections and gate drive configurations adequate to handle the current switching transients safely? Target Specifications:- Controlle
Hello,I am facing a connection issue with SPC5 Flash Programmer version 2.8.1 when using UART communication with SPC560B64.Setup:Target MCU: SPC560B64External crystal: 8 MHzInterface: UCUART::HybridCom/7/UARTSame hardware setup as previously used successfullySPC5 Flash Programmer v2.7.9 works correctly on an older PC, v2.8.1 (and newer) fails to connect.The software stays in “Connection phase starting” and continuously retries, the UART interface LED does not blink. No connection is established.Same SPC560B64 device, same UART interface and wiringAre there any required driver updates, configuration changes, or compatibility notes for newer versions?
On the STM32MP257F-EV1 evaluation board, configuring SPI3 in slave mode (spi-slave;) works correctly for the SCK, MOSI, and MISO signals, but the NSS (chip select) pin — PB1, using the documented-correct AF1 alternate function — silently fails to be claimed by the pin controller. No error or warning is logged anywhere. All three other SPI3 pins on the same bus, using the same AF1 value, claim successfully.
Hello,I'm experiencing a strange debugging issue with an STM32L431 and would like to know whether anyone has seen a similar problem.Environment MCU: STM32L431 IDE: STM32CubeIDE v2.1.1 Debugger: ST-LINK/V2, used SWD (SWJTAG) Boot0 pin is connected and used for System Bootloader update. IssueWhen starting a debug session from STM32CubeIDE, the debugger connects successfully and downloads the binary to the target Flash. However, about 50% of the time, after entering the debug session, the program counter (PC) is set to an incorrect start address and the SRAM contents appear to be corrupted. As a result, debugging cannot proceed normally.Typically: 1 out of 2 debug-attempts works normally. On the failed attempts, the target reset/debug state appears to be abnormal. CubeIDE cannot start debugging correctly until I retry. ObservationIf I program the Option Bytes with: ( uisng CubeProgrammer)nSWBOOT0 = 0the problem seems to completely disappear.Debugging becomes stable and succeed
We’ve been using the Nucleo-F446RE + IHM09M2 + IPMM15B hardware setup. We’ve tested voltages of 50V, 80V, and 100V using transformer modules connected to a GPS-2303 DC power supply. We’ve also tried 167V with a different power supply.However, only the 50V setup worked properly with the Motor Profiler. The only issue with 50V is that the motor could not reach a sufficient speed to “start profiler” and got stuck at 28%. The other voltages failed to even complete “Offset Detection”, getting stuck at 7% while displaying a “Driver Protection” error simultaneously. What factors could be causing this issue?
Hi ST community,We are currently evaluating STM32WB05 vs STM32WB09 for an application involving continuous BLE data streaming from multiple sensors, and would appreciate guidance from experts who have worked with STM32WB0 series.The reason we choosing the STMWB05 over STM32WB09 MCU, STM32WB05 MCU comes at a lower cost.In brief our application sensor are2x IMU LSM6DSO sensors (high-frequency sampling)1x magnetometer1x analog force sensorA single BLE connection (no mesh or multi-node), with frequent sync occurring approximately every three minutes.Key Questions1. WB05 vs WB09 for continuous BLE streamingBoth MCUs seem to have similar BLE capabilities (Bluetooth 5.4, 2 Mbps PHY), but:Does WB09 (larger RAM/Flash) provide significant advantage for:Continuous streamingBufferingReducing packet drops?Has anyone faced RAM bottlenecks or BLE throughput instability on WB05, WB09 in such use cases?2. Single-core architecture suitabilityBoth WB05 and WB09 are single-core Cortex-M0+ with radio
I get the following error If i take the code from github shared by ST for Nucleo Lora it compiles. But when i am trying to do some changes by mixing the code from Cube Mx i get the above error. Can anyone please help to resolve the above issue.
Hello, Our IT setup requires us to install STM32CubeIDE through an administrator account and then set the privileges to all users. However, when I try to run STM32CubeIDE.exe on my standard account, I get a message “Blocked by System Administrator”. I am sure the privileges and security settings through windows has the .exe permitted for standard accounts. Thank you.
I'm implementing I2C communication using an STM32WBA2 as the Master and an STM32U0 as the Slave.I've implemented a process to send one byte of data (0x75) from the Master to the Slave, with the Slave Address set to 0x68. However, when I check the SCL/SDA waveforms, it appears there's no ACK from the Slave.On the other hand, the Slave receives an event in HAL_I2C_AddrCallback() when it receives 0x68, but the value read by HAL_I2C_Slave_Receive() is empty. How can I receive 0x75 from the Master?I've attached the main.c files for both the Master and Slave.The CubeMX configuration is as follows:
I tried building and flashing the sample project BLE_TransparentMode to verify Direct Test Mode on the Nucleo-WBA25CE1, but it doesn't work properly.When I connect using STM32CubeMonitor-RF, an error pops up and the application terminates.Sending 0x93, 0x94 (TX, 2440 MHz, PRBS9) from the terminal yields no response.Two COM ports appear, but connecting to either one results in the same outcome.How can I enable Direct Test Mode?
Hi ST team,We are using the LSM6DSV80X SFLP quaternion output for a smart racket project. The quaternion is used by the mobile APP to control the game character posture.During our test, we found that when the racket is powered on in a flat/horizontal position, the SFLP Yaw output can stay close to 0°, which is expected. However, when the racket is powered on or reset in a tilted position, the Yaw value is affected by the current Pitch/Roll posture and cannot remain at 0°.For example, when the racket is powered on in a tilted position, the output is:Roll = -0.58°Pitch = -37.61°Yaw = -9.40°For our racket game application, the expected behavior is:When the game starts or when the user performs posture reset, the current racket facing direction should be defined as the game coordinate system Yaw = 0°. At the same time, Roll and Pitch should still reflect the real physical tilt of the racket.So the requirement is not a full orientation reset. We only need a Yaw-only reset:Yaw should be rese
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.
I’m trying to build a device that detects shaking using a LIS3DH, and then interrupts a Seeed XIAO RP2040 so that it can tell an OLED display to show numbers. I am using an LIS3DH in I²C mode. I want INT1 on the LIS3DH to wake a Seeed XIAO RP2040 from sleep when motion exceeds a threshold. Do I need to use INT1, SDA, and SCL, or could I just use INT1 to make this work? I’ve attached an electrical schematic of what I have right now, but I’m not quite sure if the connections between the LIS3DH and Seeed XIAO RP2040 are correct.
Hi Is TouchGFX supported on MP1 or MP2 boards ?I found this article : https://wiki.st.com/stm32mpu/wiki/How_to_install_X-TouchGFX_MPU_AddonBut it looks like its only 1 board
My device uses an STM32H743VITx MCU.I need to use ADC3 at the beginning of my program to verify that three voltages are indeed at the correct values. Then I want to disable it completely before initializing ADC1 and ADC2 to avoid pin conflicts.Does the function HAL_ADC_DeInit(&hadc3) allow me to do this?
Everytime CubeMx downloads files but in the end shows the below error every time. Please tell me how do i resolve.
RM0486 describes CSI_PFCR bit 16 (DLD) as follows: Bit 16 DLD: Data lane direction of lane 00: Rx1: TxPer this description, configuring the CSI-2 host to receive from a camera sensor (i.e. lane 0 in RX mode) should require DLD = 0.However, in the shipped HAL, HAL_DCMIPP_CSI_SetConfig() explicitly sets DLD = 1 (via CSI_PFCR_DLD) when configuring the PHY for CSI-2 RX capture from a camera sensor:WRITE_REG(csi_instance->PFCR, (0x28U << CSI_PFCR_CCFR_Pos) |(SNPS_Freqs[pCSI_Config->PHYBitrate].hsfreqrange << CSI_PFCR_HSFR_Pos) | CSI_PFCR_DLD);The HAL source even contains a comment acknowledging the discrepancy:/* set basedir_0 to RX DLD 0 RX, 1 TX. Synopsys 1 RX 0 TX + freq range */This strongly suggests that the underlying Synopsys D-PHY basedir signal has the opposite polarity (1 = Rx, 0 = Tx) from what's documented for the DLD bit in RM0486, and that the HAL was written/validated against the actual behavior rather than the RM's bit description.Is this a mistake of myse
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
I'm working on a dual-core project (Cortex-M7 + M4) for the NUCLEO-H755ZI-Q board in CubeMX/CubeIDE.I created the project using Board Selector (searched "NUCLEO-H755ZI-Q", selected the board, accepted the default LED/Button/Virtual Com Port options popup). Despite this, USART3's Mode dropdown is stuck on "Disable" and greyed out/unselectable in the peripheral configuration panel.Pins PD8/PD9 initially showed as "under BSP control". I right-clicked on PD8/PD9 in the pinout view and manually assigned them as USART3_TX and USART3_RX. The pins now show these labels correctly on the diagram — but the USART3 Mode dropdown is still stuck on "Disable" and I still cannot select Asynchronous mode, set baud rate, or configure anything.I also tried:Toggling the M7 core-assignment checkbox off/on for USART3 Creating a brand new project from scratch via Board Selector (same issue every time) What to do ?
I have noticed several recommendations on internet, that recommend providing a low high frequency impedance driving the ADC input for the MCU. For instance, you could add an RC-filter with the capacitance directly between the input pin and analog ground. This is one of the recommendations: https://community.st.com/stm32-mcus-products-25/many-people-have-complained-about-noise-on-adc-inputs-maybe-to-do-with-impedance-has-this-be-rectified-on-any-version-or-family-of-the-stm32-42573?tid=42573&fid=25 Well, I am not sure of such a recommendation anymore… Perhaps I should just state that I am a novice regarding the use of STM32 processors, but I am old regarding general electronics design and electrical noise. I have just tried this circuit with a Nucleo STM32G474RE board with 100 nF decoupling capacitor and a series resistor that I vary on the input pin: The preconditions are that I make an AD-conversion every second and with a 170 MHz sysclock and a 42.5 MHz ADC clock. The sample ti
After I flashed stack into wrong address,NUCLEO-STM32WB55 connected successfully to stm32CubeProgrammer but warned “Data read failed”.I tried to erase or progarm app & stack,both failed.The OB RDP=0xAA,how to solve it? 15:24:49 : Disconnected from device.15:24:50 : UR connection mode is defined with the SWrst reset mode15:24:50 : ST-LINK SN : 0667FF50565580668708221415:24:50 : ST-LINK FW : V2J43M2815:24:50 : Board : P-NUCLEO-WB5515:24:50 : Voltage : 3.26V15:24:50 : SWD freq : 4000 KHz15:24:50 : Connect mode: Normal15:24:50 : Reset mode : Software reset15:24:50 : Device ID : 0x49515:24:50 : Revision ID : Rev Y15:24:50 : Debug in Low Power mode enabled.15:24:50 : UPLOADING OPTION BYTES DATA ...15:24:50 : Bank : 0x0015:24:50 : Address : 0x58004020 15:24:50 : Size : 96 Bytes15:24:50 : Bank : 0x0115:24:50 : Address : 0x58004080 15:24:50 : Size : 8 Bytes15:24:50 : UPLOADING ...15:24:50 : Size : 4 Byt
I’d like to create a mac address using the STM32U5’s 96-bit UID. since first byte I’ll use as constant, i need 40 bits to create a unique mac for my devices.i wonder what’s the best way to create a mac with the least change of collision.if i use 32 bit wafer coordinates, and 8 bit wafer number for example, how likely am i to get a collision, opposed to other methods?thank you
Hello, does anybody know if its possible to get the VIPER06XSTR onto ST eDSIM. I thought this would be available but its not.
Hello ST Community,I am working with the STM32G4 ADC and am experiencing a conflict between my understanding of the internal digital processing pipeline and the behavior I am observing when combining Offset Correction and Gain Compensation at a reduced resolution (10-bit).According to the reference manual (RM0440), the digital processing back-end handles data in a specific sequence. However, I need absolute clarification on the mathematical interaction between ADC_OFRx and ADC_GCOMP.My Setup: MCU: STM32G4 Series ADC Resolution: 10-Bit (ADC_RESOLUTION_10B) Gain Compensation Factor: 16383 (Maximum 14-bit value, which equals a ~4x multiplier) Offset Sign: Negative (ADC_OFFSET_SIGN_NEGATIVE) My Configuration Code:// Resolution configurationADC_Head->Init.Resolution = ADC_RESOLUTION_10B;ADC_Head->Init.DataAlign = ADC_DATAALIGN_RIGHT;// ... standard HAL init ...// Apply maximum gain compensation (~4x)LL_ADC_SetGainCompensation(ADC_Head->Instance, 16383);My offset setting code:
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.