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
LL_ATON_LIB_Concat falls back to 4× memcpy when the concat axis is not leftmost — 32% of a 4 ms real-time budget on STM32N6Hardware: NUCLEO-N657X0-Q (STM32N657X0H3Q), Cortex-M55 @ 800 MHz, Neural-ART. Tools: ST Edge AI Core 4.0, STM32Cube_FW_N6 V1.4.0, STM32CubeIDE 2.1.1. Application: real-time audio, hop = 192 samples @ 48 kHz = 4 ms = 3.2 M cycles, hard deadline, underrun must stay 0.1. Concat falls back to a byte loop, and it is one third of the budgetOur graph is a streaming TCN (int8, L=12, C=88, T=48) run per audio hop with two voices, so the tensor layout has the voice axis leftmost: [C][V][T]. The graph contains 12 Concat blocks (channel-wise taps).Epoch profiling (LL_ATON_EB_DBG_INFO, DWT cycle counter on the M55) showed those 12 blocks costing 1 019 501 cycles per inference — 32% of our entire 4 ms budget. No compiler option changed the number.The cause is in the runtime source: LL_ATON_LIB_Concat takes its fast DMA path only when the concatenation axis is the leftmost signif
CubeMX 6.18 does not persist two critical STM32U5A5 USBX and FileX settings when their values are entered as multiplication expressions in the form N*1024. This results in incorrect macros being generated in the app_azure_rtos_config.h header. The correct minimum values are provided below.UX_APP_MEM_POOL_SIZE 40*1024FX_APP_MEM_POOL_SIZE 2*1024USBX_MEMORY_STACK_SIZE 24*1024In the case of the STM32U5G9, CubeMX does not persist the USBX System Stack Size setting. The minimum required value is 24 KB.
Hi everyone, I am facing an long-standing issue with a STM32L476RE-powered device loosing UART frames when waking up from UART3 from Stop Mode (will be analyzed on another issue).Prompted by this, I have a generic question for clock configuration after Stop1-2 mode.The device uses HSI & LSE for all of its peripherals, in a bare-metal CubeMX project.Q1: The function __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_HSI);is called 1 time before while(1){} loop. Should it be called just once or should it be called every time before calling HAL_SuspendTick();HAL_PWREx_EnterSTOP1Mode(PWR_STOPENTRY_WFI);?Q2: Should we call SystemClock_Config();every time after waking up from Stop mode, despite the fact that the clock selection ( HSI & LSE ) remains the same and no PLL or MSI is used ?Q3: Could calling SystemClock_Config();HAL_ResumeTick();disrupt an ongoing UART-RX ( running on Idle-line callback ) , despite the fact that clock selection is not changing ? Thank you in advance
After i finish my setups according to STM32U0 Bare-Metal USB workshop video. When i compile and load he program to my PCB adn then connect my pcb to PC via USB cable; at the device manager connection seems undefined like the picture below. It says that Unknow USB Device. Does anybody face like this kind of problem?
Could you please provide information on the DMIPS/MHz performance of the A35 core in the STM32MP23? Is this specified in any documentation?
I'm using Stm32CubeMx 6.18.0 on whole clean new Windows system. When I try to open New Project from Board It is downloading some file initially and when search for HTTP server it fails with error I typed at Title. I follow other releated topics suggestions to change directory and proxy server but its still fails. What should I doCurrently New Project from a Board UI opened, but still when I select a board or click tabs there, it is giving following error: `Error during Data Refresh - Download has failed, some data may be not updated. Please retry later`
I want to get the scroll position of a ScrollList widget in the view, and also set the scroll position in the view.However, the `setOffset` and `getOffset` functions of `ScrollBase` are protected.How can I get and set the scroll position of a scrolllist?
I was finding non-deterministic behavior entering standby -- small code changes unrelated to the standby code or devices seemed to prevent standby. Many hours of debugging later using a joulescope and claude automation, the following fixed the problem -- declare the standby code as noinline (by default, my builds inline small funcitons) void __attribute__((noinline)) enter_standby_mode(void) Also, an attribute to not optimize works as well. It did not appear that the generated assembly for the standby code changed, but what did change, due to inlining, is the code alignment. This suggests, but doesn’t confirm, that the fetch pipeline can impact the ability to enter standby on this part. This was never an issue on the stm32l432.
I have encountered a specific issue using the STM32F411RE NUCLEO Board and I2C peripherals:The problem:When i plug in the board with I2C devices (DFROBOT BMM150, MPU6050, ADAFRUIT ICM20948) already connected to the board my PC (LINUX) cannot find the device.when trying to flash CUBEIDE says something along the lines of ‘STLINK not found’ and PROBE-RS says:ERROR nusb::error: interface not found (errno 2) WARN probe_rs::probe::list::linux: Make sure you have reloaded udev rules after setting everything up WARN probe_rs::probe::list::linux: Read more under https://probe.rs/docs/getting-started/probe-setup/ Error: Failed to open probe: Failed to open the debug probe. Caused by: 0: The debug probe could not be created. 1: A USB error occurred. 2: interface not found (errno 2)The fix:1) UNPLUG BOARD2) DISCONNECT I2C peripherals3) PLUG in BOARD4) RECONNECT I2C peripherals5) the STLINK is found again and I can flash code like normalWill this be an issue if I design a PCB with permanently conne
I'm testing the VL53L9CX sensor with the X-NUCLEO-53L9A1 board. I'm conducting my tests with the Nucleo H561ZI board and the X-CUBE-53L9A1.zip software stack.The sensor works correctly indoors. However, outdoors, when moving from shade to full sun, the sensor malfunctions.The software returns the error: VL53L9_ERROR_INVALID_STATE. why?In the datasheet, this isn’t a description of all registers? So I cannot clear this error without resetting the device!Can have a complet datasheet of the product?
I’m looking for data related to peak pulse Power Rating of this TVS, that includes pulse width (tp) of up to 10ms. Also, I wanted to know if there is any reliability data that is available for this component.
Hello, I am using VL53L9CX with adapted drivers for ESP32 / Arduino environment. I am able to read values and play with the settings but I am a bit worried with the precision I get. I run the sensor in precision mode, 4ms exposure time. My bench is indoor. Sensor facing the ground ( 1 m ish, wood) or the roof (1.6m ish, white ceiling). Resolution is 8 x 6 (Binning 12). I have radial to perpendicular conversion enabled so I am expecting to see all distances being equal +/- precision across the cells of the frame (excluding corner cells maybe). According to table 34: Precision for “ambient mode 24x20” profile from the sensor datasheet: (results are better for 24*20 then they are for 54*42, so I assume it is the same or better for 8*6 compared to 24*20)I am expecting less than 0.8 mm difference between the values but instead I get 50 mm - 100 mm or more of difference. So I was wondering, is there some specific settings to enable to achieve such precision / accuracy ? PCB is of my own (not
I am looking for the STEVAL-VL53L9 evaluation board for vl53l9cx, but it is out of stock at all distributors I checked.could you please let me know the expected availability / ETA, where i can buy it or, if there is any similar alternative board with same specs.
We have been evaluating the pre-trained model yamnet_e1024_64x96_tl_qdq_int8.onnx from the STM32 Model Zoo (ESC-10 variant) and noticed a potential discrepancy between the class label order in the provided YAML configuration and the actual output behaviour observed on target.While the model itself appears to perform well, the mapping between output indices and class names does not seem to match the order documented in the YAML file. Observed behaviour:The YAML file lists the classes as:0: dog1: chainsaw2: crackling_fire3: helicopter4: rain5: crying_baby6: clock_tick7: sneezing8: rooster9: sea_waves However, on our target, the outputs appear to correspond to the following order:0: chainsaw1: clock_tick2: crackling_fire3: crying_baby4: dog5: helicopter6: rain7: rooster8: sea_waves9: sneezing This is consistent across multiple input samples, which makes us suspect a systematic label remapping rather than random misclassification. Preliminary hypothesis:We suspect that this could be caused
Hello, I am using an STM32H750I-DK Discovery board with LAN8742 PHY, MII mode, FreeRTOS and LwIP.Ethernet works initially: the STM32 IP appears in arp -a and I can ping it. After some time, the ARP entry disappears and ping gives Request timed out or Destination host unreachable.I have already checked the IP configuration, MII configuration, PHY link, DMA, MPU/cache, and tried disabling RTP traffic, but the issue still occurs.What could cause the STM32H750 Ethernet connection to stop responding to ARP and ping after working normally for some time? What should I check next?
Hello, I am currently developing a test environment based on the NUCLEO-F411RE evaluation board (MB1136C).As part of this project, I am designing a mechanical enclosure with modular plastic components, which I plan to 3D print. While several enclosure designs are available on Thingiverse, none of them meet the specific requirements of my project. Could you please provide, if available, the official CAD files (STL or STEP format) for the MB1136C?This would allow me to integrate the board's exact dimensions into my assembly and ensure proper tolerances with my existing parts. Thank you for your time and assistance. I look forward to your response. Best regards,Alexandre
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
Hello Team,I am using the STM32N657x0-Q Nucleo board with the STEVAL-66GYMAI1 (VD66GY) camera board connected via FFC. Both CN8 and CN10 are connected to the PC, and I am viewing the camera stream through UVC.I tested the official precompiled HEX files from: X-CUBE-N6 Camera Capture STM32N6 Getting Started Object Detection In all cases, the image is heavily blurred. Objects appear relatively clear only at approximately 1–2 cm from the lens, while anything beyond that distance becomes significantly out of focus.I attempted to adjust the M12 lens focus across its full rotation range, but no noticeable improvement was observed. The same behavior occurs with multiple example projects and unmodified hardware.Could you please advise which of the following areas is most relevant to investigate? Camera board compatibility with STM32N657x0-Q Sensor/lens configuration in the example firmware Lens focus or alignment issue Defective lens or hardware issue Recommended reference project/co
Hello, I am experiencing a reproducible issue with STM32CubeMX when generating a project for the first time on our U: drive. Our environment is part of an Active Directory domain, and each user has a U: drive mapped to their personal network home folder. Error in STM32CubeMX.logDuring generation, CubeMX successfully creates several temporary files in: U:\FreeRTOS_M2\testv10\MXTmpFiles\ For example: 17:02:54.994 oldGeneratedFile ...\rtos_kernelStart.tmp_save17:02:55.076 Generated code: ...\rtos_kernelStart.tmp However, during the next generation pass, CubeMX tries to access the .tmp_save file again: 17:02:56.195 oldGeneratedFile ...\rtos_kernelStart.tmp_save17:02:56.200 ERROR ProjectBuilderjava.io.FileNotFoundException:U:\FreeRTOS_M2\testv10\MXTmpFiles\rtos_kernelStart.tmp_save(The system cannot find the file specified) 2026-09-03 17:02:55,707 [INFO] CodeEngine:297 - oldGeneratedFile, U:\FreeRTOS_M2\testv10\MXTmpFiles\rtos_threads.tmp_save2026-09-03 17:02:55,774 [INFO] CodeEngine:321
I am using STM32CubeIde, No RTOS, USART1, RX DMA (Circular), TX DMA in normal mode with DMA_IT_HT disabled.I’ve got main loop periodically outputting a simple message on the USART. System appears to hang when commanded to change baud. I’ve tried perhaps dozens of variations that have been recommended by “STM32 Sidekick” and Google AI. Most work with the debugger connected. None work without the debugger which is making this difficult to troubleshoot. Sidekick example shown below. // 1. Wait for any ongoing transmissions to finish safely // This prevents splitting a character mid-air. while (__HAL_UART_GET_FLAG(huart, UART_FLAG_TC) == RESET) { // Optional: Implement a timeout mechanism here } // 2. Temporarily de-initialize the UART peripheral // This turns off the UART but keeps your GPIO and DMA settings intact. if (HAL_UART_DeInit(huart) != HAL_OK) { return; //H
Hi all, I’ve seen in other manufacturers MCUs( sometimes) calibration values that may get lost if I wipe out the whole chip. It was long long ago.I’m new to this STM32U5 series. I’m working with the STM32U5G9J-DK2 kit. I’m porting the LCD stuff to my empty program. But I’m debugging and sometimes I need to go back and program the BSP example. Then I go back to my program and the thing is it keeps showing the demo screen (from the BSP example) even though I don’t have it in my program. It goes away if I unplug the USB cable. I was wondering if instead I can use the STM32cubeprogrammer and use the erase full chip button instead? Am I gonna lose anything important? Thanks
Hello,I am working on a custom application with BLE OTA on the Nucleo WB55RG. The OTA loader is placed at 0x08000000. My main application is linked to start at 0x08007000.In normal mode, the main application runs an ADC test and continuously prints ADC values. I added a hardware OTA trigger on pin PC2. When PC2 is driven high, the application prepares the BLE OTA request and then calls NVIC_SystemReset(). The OTA request is passed to the loader at the start of SRAM.After this, the OTA loader starts correctly. The loader detects the OTA request from SRAM. The loader erases the application flash area starting from sector 7, corresponding to address 0x08007000. The loader then attempts to initialize the BLE stack and start advertising.The issue is that BLE advertising does not start when entering OTA mode after the NVIC_SystemReset(). Pressing the on-board reset button also does not make BLE advertising start. However, if I completely power cycle the board by removing USB power and reconn
In my application on an STM32H7S3 I’ll have to often read option byte keys, and I want to limit the possibility of accidentally writing to option byte keys.According to the reference manual, that’s where the PG_OPT bit of FLASH_OPTCR comes in:PG_OPT: Program options0: Update operations to user option bytes and option byte keys do not start1: Write operation to user option bytes and option byte keys is enabledPerfect, so I just need to be sure this bit is not set when I don’t want writes.To double check this bit is not needed to be set during the configuration of FLASH_OBKCR to initiate read operations, the description of the KEYPROG bit - when set to 0 - seems to hint the PG_OPT bit doesn’t need to be set according to the reference manual:KEYPROG: Key programThis bit must be set to write option byte keys (keys are read otherwise).0: Read key. Result of the operation is stored in FLASH_OBKDRx registers, if applicable.1: Program key if PG_OPT is set in FLASH_OPTCR register, and KDREF fla
Hi everbody,we are using an STM32H573 with ST Secure Manager and would like to perform the final Product State transition from TZ-CLOSED to CLOSED at the end of production.At this point, the device is already assembled and SWD/JTAG is no longer accessible. Therefore, we would like to trigger the transition through an authenticated internal command from the Non-Secure application.From the documentation, we understand that:PRODUCT_STATE is controlled via Flash Option Bytes. The Non-Secure application cannot directly modify the relevant Secure Flash registers. We could not find a documented Secure Manager runtime API for changing the Product State.Could you please clarify:Is there an existing Secure Manager API to perform TZ-CLOSED → CLOSED at runtime without SWD/JTAG? If not, can this be implemented via an OEM Secure Module? Is an OEM Secure Module allowed to modify the PRODUCT_STATE Option Byte?Thanks and best regardsMario
Hello, I have a problem after updating the system to Android 16. Before, everything was great. I have a custom application to work with ST25DV04KC. Now, the NFC service crashes before connection, and the system app opens NDEEF. Only on the first "tap," after turning NFC on/off, the connection is correct. Is there any workaround before they change it in Android? Thanks for any help.
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.