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
Hello everyone, I am facing a confusing behavior with USB SOF events on two identical STM32 boards and I would appreciate any insight. Hardware 2 × NUCLEO-H743ZI2 Same MCU revision (checked device ID, revision ID – identical) Same USB connection to the same PC (USB OTG FS, device mode) Software Exactly the same firmware binary programmed on both boards STM32 HAL + CubeMX generated project USB CDC device (USB OTG FS) No conditional compilation, no board-specific code What I want to measure I wanted to check: Whether USB SOF events are really occurring every 1 ms Whether SOF can be considered a reliable timing source So I implemented a very simple counter in the SOF callback: #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) static void PCD_SOFCallback(PCD_HandleTypeDef *hpcd) #else void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) #endif { sof_eventc++; USBD_LL_SOF((USBD_HandleTypeDef*)hpcd->pData); } Additionally: TIM2 is configured as a 1 Hz timer In t
Hardware Details: Custom Hardware based on the B-G431B-ESC1, 3 phase, Hall sensored FOC,MCSDK: 6.4.1The maximum speed of the motor is 3000 RPM. I have run the motor using motor profiler software and the profiler shows the maximum speed is 2500, Rs = 0.1 Ohm; LS=0.0002Pole Pairs = 5I could achieve the speed of 2500 using FOC, Hall sensor i used Over modulation, Modulation index : 93%. PWM frequency 12KHZ. I am unable to go beyond 93% MI.The problem is i need to achieve speed of 3000 as per motor specifications and customer requirement and this speed is achieved with another standard controller. Few comparisons: DC bus current when i run is 2.6A compared to 3.1 A of standard controllerPhase current is 5A, compared to 10-15A. What changes can i do to reach 3000 RPM without flux weakening. Does motor profiler use Over modulation and showed 2500 RPM?
Hi guys,I'm try to use Camera FPC 22 pin cable with UVC mode. But it turn out screen are all black and error in console terminal is below========================================x-cube-n6-camera-capture v2.0.0 (3308d6b)Build date & time: Jan 22 2026 09:34:57 Compiler: GCC 12.3.1HAL: 1.3.0========================================Start streaming YUV2 | 224x224@30fpsassertion "ret == CMW_ERROR_NONE" failed: file "Src/app_cam.c", line 173, function: CAM_Init I used binary from "x-cube-n6-camera-capture-main"I also try to re-compile with github project "STM32N6-GettingStarted-ImageClassification Application"with header with cmw_camera.c USE_VD56G_SENSOR , still not success,(debug then found that driver StartStreaming can ctx->write8 but not response at function about PollReg8(..);Anyone have get experince how to make it work?
I am currently testing motor operation using the EVSPIN32G4-DUAL board.I am using the motor’s Hall sensors for speed feedback.In the Speed Sensing Configuration, under Auxiliary Sensor, should the Speed Sensor Mode be set to Hall Sensor in this case?Could you please confirm whether this setting is required for proper speed sensing when using Hall sensors?Thank you in advance for your support.
How to integrate motor suite and motor pilot for STM32F405RGT6 and run motor. I have custom power board and logic board. i tried making one but STM32F405RGT6 is not available in list and don't have idea what i can choose has alternative which has same spec and pin count has STM32F405RGT6. is there anyone who can help me develop.
Hi, I am using StevalESC001 board and MCSDK latest version to implement FOC on a custom motor. I am facing a few issues while testing it with load. I am unaware of what might be the cause of these issues if anyone could direct me towards what might be happening it would be helpful. First of all, during the startup motor sometimes starts spinning in anticlockwise direction that too at a very high speed. This behavior is random, I haven't yet identified any pattern into it, and it becomes more frequent when testing with load. I also noticed that sometimes Iq value shown in motor pilot is -10A initial which seems wrong, shouldn't it be 0 initially?Another issue is with the Actual RPM and the RPM shown in motor pilot, the RPM shown by motor pilot is 300 to 500 more as compared to actual RPM the motor is spinning at. The difference increases as we increase the throttle. Also, motor seems to reach its capacity at only half throttle. It is producing only 600 g of thrust w
I am working on a project that requires a 320x240 LCD panel (ILI9341). I use a nucleo board with STM32G071RB chip. The SPI communication works fine when I use a blocking HAL_SPI_Transmit() function, but it takes a while to fill the entire screen. When I use a DMA with SPI to speed it up, all colors get distorted. I have tried a HAL_SPI_Transmit_DMA() - transmit only function, and a two way HAL_SPI_TransmitReceive_DMA() function. I tried switching from 8-bit SPI to 16-bit SPI mode for DMA transfer, but always get the same color distortion problem.A detailed analysis revealed the core problem. While transmitting the RGB565 pixel information 'RRRRRGGGGGGBBBBB', the 16-bit data is broken into two bytes 'RRRRRGGG' and 'GGGBBBBB'. In the blocking SPI transmit function both bytes are transferred. With any configuration SPI -DMA, the second bit gets lost. The ILI9341 controller receives a single byte and for some reason reads it, according to
In the STM32MP257F-DK Linux BSP, I believe that the initialization of the USB3DR peripheral devices (TCPP03-M20, CC1_EN, CC2_EN) is performed by the M33 core executing the following program:/usr/local/Cube-M33-examples/STM32MP257F-DK/Demonstrations/USBPD_DRP_UCSI/lib/firmware/USBPD_DRP_UCSI_CM33_NonSecure_stripped.elfWhere can I find the source code of this program?I have created a board using the STM32MP255F with a configuration similar to the STM32MP257F-DK board.The hardware configuration around USB3 is the same, but some pinctrl and I2C bus channels are different.Therefore, I would like to modify and use USBPD_DRP_UCSI_CM33_NonSecure_stripped.elf.
As we are testing this evaluation board we found that the gate pulses are not being released from the IC " STGAP3S6S", wherein we have tried with all the required power signaling to the evaluation board as specified in the datasheet. We would like to connect with you for the support to debug this issue that is hindering our usage of the product.
Hi team,I am working on the STM32U585I-IOT02A board and trying to implement USB dual-role functionality (Host + Device).My goal is:USB Host: MSC class (to read firmware from a USB flash drive)USB Device: CDC class (for communication with a PC)I have enabled both the USB Host stack and USB Device stack in CubeMX, but I am unable to get the dual-role setup working reliably.My main objective is to upgrade firmware using a USB flash drive (MSC Host) while still supporting CDC Device communication.I would like to know:Does STM32U5 support USB dual-role operation (Host + Device) simultaneously or via role switching?Is there any example project or reference implementation for USB dual-role on STM32U5?Are there recommended approaches for implementing firmware upgrade via USB MSC Host on this board?Any guidance or example projects would be very helpful.Thank you.
Hello STMicro Community,I am working with the LIS2DH12 accelerometer, STEVAL-MKI109V3 and MEMS Studio environment. My application is the measurement of vibration on rotating equipment.A vibration signal of 118Hz is being applied to the board and using ODR=400Hz, Scale +/-4g.I am noticing a significant difference in magnitude measurements when switching the filter bit on vs off (FDS). See attached image of the time series data yellow (Z-axis) where:- with FDS=0 I see -500 to -1500 for ~1000mg range- with FDS=1 I see -800 to +800 for ~1600mg rangeI DO expect to see gravity getting removed but NOT an increase in the magnitude. Is there an explanation for this?-Edwin
Hi Community,I’m just finishing off development of a product containing VL53L4CD and need to start to think about approvals etc. ready for product launch. The product as a whole relies on human interaction, so users will be physically close to the product and therefore the beam.Judging by the datasheet for the part, there is no need to perform any testing for eye safety, relying instead on ST’s own certified testing, provided that we use the device in accordance with the datasheet (which of course we do) and there’s no attempt to focus the beam (which there isn’t). This will all be wrapped up in a detailed technical file, along with ST's certs.The artwork on the product carries the Class 1 laser radiation logo and in the instructions the customer is warned never to attempt to focus the beam, nor to stare into it.Is this sufficient due diligence, or have other developers done more and if so, what?TIA.
I have an STM32H7A3ZIT running at 280MHz with 4 SPI buses attempting to “simultaneously” communicate with external ADCs. All 4 SPI are set up as full-duplex masters, 16-bit data size, 8.75 MHz clock speed, and software chip select.I’m using the HAL function HAL_SPI_TransmitReceive_IT to sequentially initiate the data transfer for each SPI bus. I expected each transfer to start quickly one after another, but instead I’m finding large time gaps. The TransmitReceive_IT composite image below shows the chip select line (yellow) and the SPI clock signals (cyan) for each sequential SPI bus. You can see the first 2 buses start clocking quickly, but then there is a time gap before the third and fourth buses start clocking. The code functionally works as the received data is correct, but the end of the transfer for the fourth SPI bus is too close to the next CS transaction, not leaving a lot of time for data processing.TransmitReceive_ITOddly enough, if I change the function to just receivi
Hi,I want to fly the STM32F429I-DISC with the 8 MB SDRAM. I use CubeIDE and selected the right board. All units are set to default. I commented out everything that had to do with os.With help of ChatGPT I hacked together an initialization of the SDRAM and set up a SDRAM Test. That seems to work partly but with weird effects. In the following code: start/end 0x00/0xff or 0x100/0x1ff works fine, but start/end 0x00/0x101 reads out 0x100 at address 0x0. Maybe it is an timing issue with precharged lines.THXCheersDetlef #define SDRAM_BASE_ADDR ((uint32_t)0xD0000000) void SDRAM_Test(void) { volatile uint16_t *p = (volatile uint16_t *)SDRAM_BASE_ADDR; uint32_t i ; uint32_t start = 0x100 ; uint32_t end = 0x302 ; for (i=start; i<end; i++) p[i] = i; sprintf(buf,"start \r\n",i); HAL_UART_Transmit(&huart1, (uint8_t *) buf, strlen(buf), HAL_MAX_DELAY); while(1){ for (i=start; i<end;i++) if (p[i] != i){ sprintf(buf,"no 0x%x 0x%x\r\n",i,p[i]); HAL_UART_Transmit(&
Got a message: " Break at address "0x8001c50" with no debug information available, or outside of program code." and exited. Please help. If you need more info please advise.
Board: STM32H750B-DK (DK32H750B$AT1)IDE: STM32CubeIDE 1.14.1CubeMX: 6.11.1TouchGFX: 4.23.1Firmware: STM32Cube FW_H7 V1.12.1Problem Description:I created a new TouchGFX project for the STM32H750B-DK board. The project builds successfully (0 errors, 1 warning), but I cannot debug it. When starting a debug session, I get the error: "Cannot access memory at address 0x90000000".The project is configured to use external QSPI flash (0x90000000) for code execution (XIP) since the code size (424KB) exceeds the H750's internal flash (128KB).What Works:Project builds successfullySimple non-TouchGFX blinky projects debug successfullyWhat Fails:Debug session fails with memory access errors at 0x90000000Attempts to set SP/PC from external flash vector table failAs found STMicroelectronics ST-LINK GDB server. Version 7.12.0Copyright (c) 2025, STMicroelectronics. All rights reserved. Starting server with the following options:Persistent Mode : DisabledLogging Level : 1Listen Port Number : 61
Hello,I have a PCB with two microphones (IM66D132HV01) with an STM32U575RGT6 (64pin) micro.Both microphones are connected (L+R) to a single input {PC0, PC2} = {MDF1_SDI4, MDF1_CCK1}Firstly I cannot find any example code that produces output samples in the MDF1_Filter3->DFLTDR, MDF1_Filter4->DFLTDR data registers -- they are always zero.I can get the MCU to produce a clock signal and I can see a data bit stream coming to the MCU, from the microphones. As I was a bit stuck, I resorted to using CubeMX to hopefully get some working code --- however -- with CubeMX the common clock was no longer visible.I also notcied that if I set up MDF1_F3, and MDF1_F4, that I cannot tell CUBEMX that actually I only need the 'MDF1_SDI4' input since the two filters share the same MDF1_SDI4 bus (one outputs on low clock, the other on high).Also, I'm looking for some sample code that can give me interrupts for each of the left and right samples, as
I’m running micro-ROS on an STM32G474RE (NUCLEO-G474RE) with FreeRTOS (STM32CubeIDE / CubeMX integration) over UART to the micro-ROS agent.The firmware boots and the executor loop runs (LED heartbeat works), but no subscription callback ever triggers, even for a simple topic like std_msgs/msg/Int32.```export ROS_DOMAIN_ID=<id>ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyACM0 -b 115200 -v6``````export ROS_DOMAIN_ID=<id>ros2 topic pub -r 5 /mcu/test std_msgs/msg/Int32 "{data: 1}"```ros2 topic echo on the host shows messages, but the MCU callback never fires. I also tried different QoS and longer spin_some() timeouts.Question: can this happen if I print debug logs (printf/UART) on the same UART used for micro-ROS transport, or are there other common causes on STM32G4?
Hello,I am currently testing out the model zoo examples, following https://community.st.com/t5/stm32-mcus/how-to-run-ai-models-from-model-zoo-on-stm32n6/ta-p/814254 and the READMES. Programming the .hex files to the STM32N6-DK works and produces a running firmware. However, when I compile the application using the provided makefile and flash it onto the MCU as described in the README, the screen just remains black. I tested this for object-detection, face-detection and pose-estimation.Best,Steve
Hi all,I’m trying to compile an ONNX model that has float32 input and output. When I compile the model using ST Edge AI, the generated output ONNX shows both input and output as INT8 instead of float32. I wanted to understand:- Is this behavior because the model is being compiled specifically as an ONNX model?- Or is there a specific reason STEdgeAI is forcing INT8 input/output during compilation (e.g., quantization settings, optimization constraints, or tool limitations)? Any clarification on how STEdgeAI handles mixed-precision models and I/O types would be really helpful.Thanks in advance!
Hi all,I’m working on an STM32WB55 and trying to run two advertisements “in parallel”:a connectable advertisement (for normal connections / data)a non-connectable advertisement using Additional BeaconI can see both advertisements from an Android device, so the basic setup works.The problem I’m struggling with is synchronising beacon payload updates with the actual beacon transmissions.What I’d ideally like to do is update the beacon payload right before each non-connectable advertising event, so the transmitted packet always contains the latest data, without updating faster than the beacon interval.I looked into using ACI_HAL_END_OF_RADIO_ACTIVITY_EVENT as a pacing mechanism (e.g., update the beacon payload right after an advertising event so the next one carries new data). However, with two advertising roles and other BLE activity (connection events, etc.), this event is generated frequently and not only for the additional beacon advertising. From what I can tell, it also doesn’t clea
Hello,I use a STSAFE-A110 chip on a own board based on STM32 MCU.As I was unable to integrate the STSAFE library provided by ST on my specific fw, I wrote features whom I need as as echo, generate random, retrieve product data, generate host key, retrieve product data partition, read/update NVM.All works fine but when I am unable to read a NVM zone with 'host' access condition. NVV zones with no specific AC are well read. Find below configuration of the NVM of my STSAFE chip.+=======+================+==============+========+==============+========+==============+| Zone | Data segment | Read AC | Read | Update AC | Update | One-way || index | length (bytes) | change right | AC | change right | AC | Counter |+=======+================+==============+========+==============+========+==============+| 0 | 1000 | False | always | True | never | False, 0 || 1 | 700 | True | always | True | always | False, 0 || 2 | 600 | False | host | True | always | False, 0 || 3 | 600 | True | always | True
..
Code is written using stm32CubeMX. Connecting with stmlink V3 Minie. Executing step by step, it appears that debug fails (lose connection) when executing debug_init. In fact debug_init creates the problem when programming pa13.When removing the initialization of PA13 and PA14 in debug init, things seems to work but I have no idea of potential side effect. An recommendation?
Hi,On the SR6P3C4 page (https://www.st.com/en/automotive-microcontrollers/sr6p3c4.html) there's a databrief. But not much about a datasheet, specification, or any deeper information about the modules associated with it. Is there a way to access those?Also (still related to the first question), the data brief does say something about maximum junction temperature of 165C, with a note:Nominal specification up to 150 °C. Delta specification up to 165 °C.I'm not sure to understand what does the delta specification means.Thank You
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.