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
Is it possible to connect 8 PDM microphones to the STM32N6 via MDF?
This is an improvement request post.STM32 HAL on every family has tons of following code constructs:tickstart = HAL_GetTick(); while (!condition) { if ((HAL_GetTick() - tickstart) > TIMEOUT_VALUE) { return HAL_TIMEOUT; } }When using HAL with (Free)RTOS or interrupt based scheduler, then these while loops delay same priority tasks (until time-slicing kicks in), block everything that has lower preemption priority, waste energy (crucial for battery powered devices) and decrease responsiveness.There are multiple ways to improve it. One of the simplest is to supplement non-critical* loops with optional user-definable yield macros.__weak void HAL_Yield(void) { } tickstart = HAL_GetTick(); while (!condition) { if ((HAL_GetTick() - tickstart) > TIMEOUT_VALUE) { return HAL_TIMEOUT; } HAL_Yield(); }Now user can implement something like this when using CMSIS OS v2 API:#include "cmsis_os2.h" void HAL_Yield(void) { /* Kernel running and call not from ISR? */ if ((osKernelG
Is Cosmic license delivery service still working ?I submit the request, but I didn't get any answer!
Hello, I have a STM32 NUCLEO-N657X0-Q development board. I wanted to interface with 8 digital PDM MEMs microphones. In section 68.2 of the STM32N6 reference manual, it states that the N6 supports a "PDM interface, supporting up to 4 microphone pairs". Also in section 2.2.3 of AN5027, it states that if 8 microphone want to be used, the recommended data IO lines are SAI_D1, SAI_D2, SAI_D3, and SAI_D4. Using CubeMX, I see no option for microphone pair 7-8. In addition to this, SAI_D4 doesn't exist when I search for the pin. So how do I interface (if possible), the last microphone pair? Thanks, Christopher
SPC5 Flash ProgrammerSPC5 Flash Programmer 2.8.1 Fail to connect to SPC564 via UART!, when I did some search, I found that SPC5 Flash Programmer v2.7.9 working fine, so please if you can help me to how get this version SPC5 Flash Programmer v2.7.9?
Hi everyone, I am currently developing an image capture project using the STM32N657 (Cortex-M55) and have encountered an extremely bizarre DMA2D write issue (a silent failure). Goal: Use DMA2D (M2M_PFC) to convert an RGB565 buffer to RGB888 and write it to CPUAXI_RAM1 (0x34080000). [Problem Description] I wrote a "minimal isolation test" to bypass all camera/GPDMA variables. I forced the CPU to fill the source buffer with pure white (0xFFFFFFFF), and then manually triggered the DMA2D to transfer it to the destination buffer. The Result: The DMA2D finishes successfully. The DMA2D->ISR register reads 0x00000002 (the TCIF Transfer Complete Interrupt Flag is set, and there are NO Transfer Errors). However, the destination buffer remains completely filled with 0x00000000. [Troubleshooting Done] To isolate the issue, I have verified the following, but the problem persists: CPU Read/Write Test (Pass): Before triggering the DMA2D, I forced the CPU to write 0xDEADBEEF to the destinatio
Hello, I am working with the following setup: Board: B-L4S5I-IOT-01A MCU: STM32L4S5VIT6 BLE Module: BlueNRG-M0+ (in built in the Kit) I am currently facing an issue related to the BLE MTU (Maximum Transmission Unit) size. By default, the payload length is limited to 20 bytes, which is insufficient for my application, as my data length exceeds 180 bytes. I would like to know: Is there a way to increase the MTU size on the BlueNRG-M0+? Can this be achieved without modifying my existing data transmission mechanism (i.e., without manually fragmenting the data into smaller packets)? My goal is to transmit larger data packets in a single operation, if supported. Any guidance or recommended approach would be highly appreciated. Thank you.
Title edited to clarify this is about CMSIS-RTOSHello, everybody!I don't know where to look for information on which CMSIS versions are supported by specific STM32 microcontrollers. I asked one of the ST employees and STM32 Sidekick about this, and I got no definitive answers.STM software tools confuse me further. For example, STM32CubeMX (6.17.0) allows me to choose CMSISv2 the interface for FreeRTOS in my STM32F769I‑DISCO board project, but LwIP in the same project does not see the operating system used unless I change the CMSIS version to v1 (you can find more details about this specific issue in this thread). I couldn't find any document that would say which interfaces are supported by LwIP either.That's why I would like to ask You, where should I look for information about which CMSIS versions are supported by specific STM MCUs and, ideally, middlewares and software packages?
I am working with STM32N6570-DK. My code is building fine , suddenly a hard fault has started coming. I have tried updating firmware, resetting the board, unplugging and reconnecting it, But debugger is getting stopped after sometime.
Hello Team, We are using STM32N657X0H3Q for one of our application, while looking for the voltage level information for pins, we did not get any information for PA0 pin for the controller, specifically i am referring the notes column in pin description section. I hope you are getting my question. RegardsHarsh Bhavsar
Hey. I have recently received STEVAL-MKI109D + STEVAL-MKI238A for evaluating LIS2DUX12 accelerometer.I have opened MEMS Studio, chose my evaluation board and performed FW upgrade as prompted by the MEMS Studio. I have then proceeded to Sensor Evaluation -> Save to File to capture my own data for further processing. Each sample was taken using 5 seconds timeout. So I just click "Start" and proceed with moving the board for 5 seconds. I did the following:1. Capture 3 "flip_down" samples of me flipping down the evaluation board.2. Capture 4 "flip_up" samples of me flipping up the evaluation board.3. Capture 4 "shaking" samples of me shaking the evaluation board.4. Capture 3 "stationary" samples where the device was just sitting on the table. After collecting all samples in .csv format, I have then proceeded to Advanced Features -> MLC and uploaded all collected .CSV data using different class names. See the below: I noticed that STATIONARY and SHAKING samp
So apparently in 2026, creating a basic embedded C project now requires… a login.Tried spinning up a project in STM32CubeIDE and got a nice “half-built” result:Project created ✔Code generation :cross_mark:Explanation :cross_mark:Turns out the IDE now needs to quietly download the HAL/CMSIS packages, which in turn requires a myST account login… but:It doesn’t tell you thatIt doesn’t prompt you (on Linux at least)It just silently fails and leaves you debugging yourselfSo you end up thinking:“Did I misconfigure the clock? The linker script? The .ioc?”Nope. You just weren’t logged into a website.Nothing says robust embedded tooling like a hidden cloud dependency for generating main.c.Bonus points for the UX where the “login” option is buried under:Help → STM32Cube Updates → Connection to mySTBecause obviously that’s the first place you look when your GPIO project won’t build.Anyway—manual firmware download and local install fixes it. Once you discover the secret handshake.Progress :thumbs_
I need to do keyword spotting and for that I'm trying to classify using CSV files, but they end up being very large because there are so many files. Is there another type of file I can put in NanoEdge or another way to do this?
Hi @Ghofrane GSOURI. I just noticed new STM32CubeMX2. It's for STM32C series currently but I downloaded it to check it out. It looks very nice, that's for sure. Yet this topic is about file format. MX2 re-uses .ioc file extension but it's format is strange. It is made of JSON/Python?? multiline strings containing JSON and YAML. I don't understand what format is it exactly. The data inside it is also hard to understand and there is a lot of clutter, like IDs, URIs, URLs, descriptions, etc. Why on earth would somebody put field description text beside field name and value?If I may express may opinion - this is awful. It's even worse than old format. It won't be easy to merge changes in such file. It looks like it's a mash-up of multiple tools/libraries serialized states. CubeMX developers are going to have backward and forward compatibility problems and end users are going to suffer if bugs emerge.I would like to suggest one more file format: TOMLEdit: Moved from New IOC file f
Hey Team, Another day with a different problem.We have reached the point where we have to migrate to either XIP or LRUN in the life cycle of our project.We choose to do XIP and set up the External memories appropriately , For this workflow, we are using the the stm32N6DK, and MX66UW1G45G_STM32N6570-DK.stldr for starters.We have set up the debug session as indicated in the Getting started with STM32N6 MCUs in STM32CubeIDEAttached are theDebug logs from some of the debug sessions.The content of my linker scripts (FSBL) and (APPLI)Screen shoots of debug configurations . Spoiler (Highlight to read)Our debug sessions fail straight from the beginning as shown int the debug logs.Our debug sessions fail straight from the beginning as shown int the debug logs.Note: At some point the debug session worked okay,Every time it worked I had not to have break points inserted in the application project.I am currently inclined to think the issue is with the IDE debu
My USB ECM project on NUCLEO-U575 and NUCLEO-U5A5 - it works now, on all OS platforms.https://github.com/tjaekel/STM32U5xx_USB_ECM This project and demo for a STM32U575I-EV (where I have converted from) needs a vendor driver on Windows.Windows does not support USB ECM (or USBLAN, just RNDIS, but it is different). There is not any driver to use USB ECM on Windows, except: Belcarra USBLAN demo driver.Dear STM Team:please, could you consider to license the Belcarra USBLAN driver for Windows?http://usblan.belcarra.com http://www.belcarra.comIt would be nice, when STM (or AZURE RTOS - Microsoft), providing a demo for USB ECM, that it can be used also on a Windows OS host.Please, license such this driver and provide it together with CubeMX (and demos, HAL drivers). Thank you.Remark:In order to make it really correct working on all OS platforms (esp. Windows OS), a small fix in file "ux_device_descriptors.c" is needed (see the modification in the GitHub projec
I configured a nucleato-L152RE LED program using CubeMX6.17+STM32L1 Firmware Package V1.10.6 and found that the program kept restarting automatically. After adding the following code to the SystemInit() function generated by CubeMX, the problem was solved. What is the reason for this? And my other projects never need to include this line of code, such as F103, F411, G431, L051, and so on.SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;
Are the pin configurations for TSV321RAILT and TSV321RILT exactly the same?I'm having trouble finding this information in the datasheet.
Hi I'm using STM32F411RET6 MCU. I tried to connect using the programmer to download the firmware, but there was an error as shown below, and the data cannot be read. 13:18:34 : UR connection mode is defined with the HWrst reset mode13:18:34 : ST-LINK SN : 54FF7106788056521117016713:18:34 : ST-LINK FW : V2J45S713:18:34 : Board : --13:18:34 : Voltage : 3.22V13:18:34 : SWD freq : 4000 KHz13:18:34 : Connect mode: Normal13:18:34 : Reset mode : Software reset13:18:34 : Device ID : 0x43113:18:34 : Revision ID : Rev A13:18:34 : Debug in Low Power mode is not supported for this device.13:18:34 : UPLOADING OPTION BYTES DATA ...13:18:34 : Bank : 0x0013:18:34 : Address : 0x40023c1413:18:34 : Size : 8 Bytes13:18:34 : UPLOADING ...13:18:34 : Size : 1024 Bytes13:18:34 : Address : 0x800000013:18:34 : Read progress:13:18:34 : Error: Data read failed After that, the firmware will not be downloaded, and the message core is locked up.I checked that it was a problem related to RDP, and it wa
We have successfully tested the ST67W6X Network Driver CLI example on a NUCLEO-U575ZI-Q with X-NUCLEO-67W61M1 development boards.We would like to port the example to an STM32F746.However, this is not simple due to the tight timing constraints required by the ST67W6x - e.g. the examples utilise the advanced SPI DMA available in the STM32U5xx family.Searching the internet shows other developers noticing dropped data on other processors. There are also reports that the following requirements must be met:Respond within ~30us of SPI_RDY going highNo breaks of more than ~2-3us in the DMA while streaming the SPI data.Do you have an example port for the STM32F746? Or at least on a processor with similar limited DMA capabilities?
I am working with the STM32N6-GettingStarted-ObjectDetection demo. I found that doing a full chip erase wipes some bootloader code. I was able to get my project going again by flashing the .hex file that came with the STM32N6-GettingStarted-ObjectDetection demo, the loading my code. Digging around on the net suggested that the prebuilt demo has a bootloader. I have been unable to locate the bootloader.Can you provide me with the bootloader, preferably as a .hex file?
I have connected X-STM32MP-GNSS1 with my STM32MP157F-DK2 board. I have connected it directly to serial COM port on windows to use Teseo-suit. I updated the firmware for TESEO-LIV3FL to STA8090_4_6_15_1_CP_LIV3FL_UPG48 by using Teseo-suit. I still can not see my correct position on map. Can anybody please help?
Hi ST Community,I am working on a project using the SensorTile.box Pro. My goal is to implement a highly accurate step counter using the LSM6DSV16X's embedded pedometer.What I have done:I recorded data patterns at 30Hz and successfully ran the Pedometer Regression Tool in MEMS Studio.The tool generated the optimum configuration files (pedometer.json ).I converted these register settings into a .ucf file format.The Problem: I need to apply these "Golden Settings" to the sensor initialization in AlgoBuilder so they persist after a reset. However, I am unable to find a standard method to load this configuration:I checked the Sensor Hub block properties, but I do not see a "Load Configuration/UCF" option.I searched the Library for a "Register Write" block to manually input the values, but this block seems missing or hidden in my version of AlgoBuilder (I only see Acceleration, FSM/MLC, Sensor Hub, etc. under the Sensor Hub folder).My Question: What is the correct way to inject a custom reg
Hi, I am using STM32U385CGU6 with 1.8V supply. My GSM peripheral using the 3.3V Uart port for a dedicated time (2sec) then turn back to 1.8V level of UART. Could you offer 3.3V tolerant pin? I am using PA8 to communicate with GSM module. thank you & best regards, feramuz karşil
Heyho,using L073 at 32MHz, so even I2C transfers "seem" fast, at least in "fast mode plus" at SCL 1 MHz. And I don't want to over-use clock stretching.I'm looking for a way to use I2C slave receive with DMA, but an unknown transfer length.Right now it looks to me as if I could do the following:I2C & DMA prep: all stuff & addresses set, DMA in I2C enabledon I2C ADDR match interrupt:set DMA CNDTR to max buffer lengthenable DMA on I2C STOP match interrupt:disable DMAAny problems with that?Have only 1 device for now...Thanks!
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.