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
Since I upgraded to version 3.6.4 of STM32CubeIDE for Visual Studio Code, the style used for automatic code formatting has changed. For example, curly braces are now inlined, not wrapped as they were before.How can I revert to the old style?
Dear Community,I think I have encountered an uncommon problem. The SW_RESET bit in CTRL3 on the lsm6dsv16x does not change to 0 again. In https://www.st.com/resource/en/datasheet/lsm6dsv16x.pdf it states that after the software reset this bit is automatically cleared. Even after disconnecting the power and doing a reboot, also of the chip itself this bit wont change back to 0. I use https://github.com/STMicroelectronics/lsm6dsv16x-pid to communicate with the chip, and other things like reading who_am_i and so on work normally. But otherwise, I only get meaningless readings from the sensor. What can be done about this, especially the reset bit?Thanks and greetings
Hello,I am trying to implement the Mifare Classic protocol with ST25R3916 and RFAL.For that CRC and parity bits processing need to be disabled, which ST25R3916 support, so I tried to experiment with disabling CRC and parity framing on a message sent by the tag to see how it is encoded.I am having a hard time figuring out exactly what's the encoding, and the datasheet of ST25R3916 doesn't say exactly what's in the FIFO.I set up X-CUBE-NFC6 with STM32CubeMX and simply modified the polling demo to send the command 6000 + CRC to the tag, which should respond with a 4-bytes nonce with standard ISO-14443-3A parity and no CRC.This is the only part of the code I added, after selecting the ISO-14443-3A tag:uint32_t flags = // CRC stuff RFAL_TXRX_FLAGS_CRC_TX_AUTO | RFAL_TXRX_FLAGS_CRC_RX_MANUAL | RFAL_TXRX_FLAGS_CRC_RX_KEEP | // parity bits RFAL_TXRX_FLAGS_PAR_RX_KEEP | RFAL_TXRX_FLAGS_PAR_TX_AUTO | // analog RFAL_TXRX_FLAGS_AGC_ON; uint8_t tx_buf[8] = {0x60, 0x00}; // use key A on blo
I just downloaded the Cube IDE (v2.0) and none of the tutorials will play in it, none of the tutorials online match this IDE and I do not have the MX tool because ST said it was included in the Cube IDE. I'm ready to delete all of this mess or can anyone point me to current (as of today, 2/2026) methods to start from scratch. BTW, yes, I have seen how to import 'older' projects, I've read several other posts, but if ST is serious then the tools ought to work properly or I'd have to consider them (ST and their tools) to uncared-for; i.e. is ST disinterested in selling us some MCUs even if we can't get started with THEIR tools. Either the tools should work and the site's info should be correct or we will have no choice but to look elsewhere. There are plenty of MCUs around these days.
Typo fixed in title - was "Helliun" I'm developing a project that will heavily utilize DSP for audio processing, including neural networks. However, I'm having difficulties with the DSP; I haven't finished reading all the documentation yet. I even consulted Claude Opus on the process and other AI resources, but they all point to a non-existent path, which would be to install CMSIS-DSP via CubeMX in the ARM software tree. Is anything else needed for DSP use? Taking advantage of this post, how should I access the board's internal microphone? Are there any code examples besides STM32N6-GettingStarted-Audio, or is that the best example to learn how to handle the microphone that comes with the board? Thank you for your help.
Hi all,I m trying to enter DFU mode for my SensrTile.box PRO using my USB.the problem is STM32cubeProgrammer couldn't connect to my board.However, when i try to use another PC it works perfectly.therefore i suspect the problem might be related to a driver issue on my laptop.Could someone help me resolve this issue?Thank youFor reference, my laptop is an Asus TUF Gaming A15. I'm not sure if this information is relevant, but I thought I'd mention it.
I'm implementing a children's game board with 6 spaces to place nfc tags with 6 antennae multiplexed as described in AN6121 - which is a great application note and ideal for what I'm doing! I've done rf and speed layout before but not anything for NFC and I'm a bit confused by a couple of things:- looking at the photos of the board in AN6121 there seems to be a thick and thin trace going to each antenna, and also a thick trace on the back of the board, none of these look like a differential trace to me, is it just not that critical in this application or am I missing something here? I wondered if the thick traces on opposite sides of the boards were matched to each other?- secondly I'm reading this "As shown in Figure 14, each antenna has its switching system close to the ports. This matching network is located directly on these ports." to mean the switching should next to the loop antenna, but this would leave 5 pairs of traces to nowhere and
I have an XCore407I board with an Ethernet port installed. I'm trying to create a simple UDP server in Stm32CubeIDE. Compilation and uploading to the board is OK. But the board doesn't respond to ping and isn't visible in the router's device list.Here are my settings in IDE.Spoiler (Highlight to read)Here is the main code.int main(void) { HAL_Init(); SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_LWIP_Init(); // Udp init function udpServer_init(); while (1) { MX_LWIP_Process(); } }Unfortunately, I can't attach the entire project here. But I can add code from other modules upon request.Can you tell me how to set this up correctly so it works? Thank you.
Dear Gfx Team, 1. Could you please consider adding project setting to automatically delete ./touchgfx folder when Designer exits or project closed (Ctrl+Q) ? The folder's size is nearing 300Mb. I have tried many Designer Examples and they consume a lot of disk space because of ./touchgfx folder. This would mirror auto copy of the "./touchgfx" folder into project if not present. Something like this: 2. Idealy, option to set to auto delete "./simulator/msvs/.vs" folder as well would great as it is often even bigger than ./touchgfx. Thank you.
I've got a custom board with an STM32MP135AAE3 talking to an eMMC (THGBMTG5D1LBAIL if it makes a difference). I've discovered that if I write from SYSTEM to the eMMC using DMA (HAL_MMC_WriteBlocks_DMA) it works fine, but if I use anything in RAM (SRAM1, SRAM2, or SRAM3) as the source, the DMA fails immediately.If it helps, the SDMMC2 registers inside SDMMC2_IRQHandler() are: STA=0x8001010; DCOUNT=0x200; DCTRL=0x90; IDMACTRL=0x1; MASK=0x11AIs this a known limitation of the IDMA? If not, is it something I'm somehow initializing incorrectly?
We have both a very RAM constrained and space constrained board. So the OctoFlash chips are larger then i would like. So being able to XIP off a spi flash that only has 4 SPI lanes would be very helpful. I just don't know the ramifications of something like this. If we have like 200 Mhz chip flash Chip, in spi 1-4-4. Will this cause a significant delay? I'm guessing all these instructions get loaded directly into the instruction cache which is only a few KB of storage. If you think this is a valid option. Does ST have any parts for this? If I use a different Flashchip. Will i have a hard time programming it with the standard ST? Related question * Limitations of flash
There are STM32 models, where the suffix denotes a dramatic difference in the chip's pinout - either because of the USB-C PD -related variants, or because of SMPS variants. As the suffix is beyond the "lesser" parts of marking such as temperature range, sometimes distributors and vendors neglect/omit it, resulting in non-functioning products and frustration.For these models, CubeProgrammer should display the suffix along with the model number; it even should display something like "no suffix" for the variant without suffix, to be explicitly clear about this.This requirement stems from experiences like in this thread.JW
Hello ST Team,I am working with the X‑NUCLEO‑67W61M1 Wi‑Fi 6 & BLE NCP expansion board and I need to flash the Mission Profile T01 firmware to the ST67W611M1 module.The official X‑CUBE‑ST67W61 package supports flashing only through the following Nucleo boards:NUCLEO‑U575ZI‑QNUCLEO‑H7S3L8NUCLEO‑H563ZINUCLEO‑N657X0‑QI currently do not have these boards.Instead, I have:NUCLEO‑U545RE‑QMy goal is to flash X‑NUCLEO‑67W61M1 using NUCLEO‑U545RE‑Q as the host board.According to the ST Nucleo documentation, the NUCLEO‑U545RE‑Q and NUCLEO‑U575ZI‑Q boards are nearly identical in terms of Arduino pinout and electrical compatibility, so the Wi‑Fi shield connection is valid.However, X‑CUBE‑ST67W61 does not provide any ready‑made binaries for NUCLEO‑U545RE‑Q.When running the official script:Projects\ST67W6X_Scripts\Binaries\NCP_update_mission_profile_t01.batthe process stops at:Board ID NUCLEO-U545RE-Q not recognizedThis happens because the package does not include:NUCLEO-U545RE-Q_Binaries\
I'm trying to generate code using CubeMX for the Nucleo-U031R8 demo board to output a clock signal to the MCO2 pin. But the generated MX_GPIO_Init function makes the following assignment:GPIO_InitStruct.Alternate = GPIO_AF0_TRACE;Naturally, the compiler throws an error: "GPIO_AF0_TRACE undeclared".If I manually change the code to the following:GPIO_InitStruct.Alternate = GPIO_AF0_MCO2;...the code compiles without errors.Is it possible to fix this bug in the next CubeMX release?
Hello,We completed a test of bi-driectional communication of the Proprietary Packet feature (PP) for a mass market client using the STWLC38 (RX) and STWBC86 (TX).We're able to consistently receive the data of 5 bytes reliability from the RX to the TX. In the other direction though, we haven't gotten it to work as the existing bi-directional communication PDF is well, not very specific. On the RX side of things, the message buffer at 0x0190 is always filled with 0's, even though 0x0088 interrupt bit 5 (RX MSG RCVD LTCH) is set to 1. The document states"The difference here is that STWBC86 does not add the checksum automatically, the user must provide it with the message. The checksum is calculated as a XOR of the message bytes, including the header."So we assume the message is then constructed as (first byte sent): 1 byte header, 5 bytes message, 1 byte xorThe header is set to 6f in this case, not 5f (?)0x6f, 0x11, 0x22, 0x33, 0x44, 0x55, 0x7e When the message is insp
I have watched ST's offical YouTube series about bootloder and I found it very clear and helpful.That series: https://www.youtube.com/playlist?list=PLM7yYW7w7MWms-Um-dHxbftXRUFT74u9lI was able to understand the general workflow and main ideas. However, I still feel that I have some missing points, especially the pratical and low-level details.I am a junior embedded software developer and I would like to properly learn bootloder and OTA update concepts from the ground up.That's my questions are here : 1) From which topics should a junior embedded developer start in order to understand bootloader and OTA mechanisms correctly ?2) What fundemental topics should I focus on first ?3) I have several discovery and nucleo boards, and my goal is to implement a very simple bootloader or OTA demo on one of them. Any guidance, recommended learning path or simple example project suggestions would be greatly appreciated.Thank you in advance.
Hi everyone, I’m asking for your help with accessing my SD card. I’m running into an issue with the STM32N6DK750 Discovery Kit and would really appreciate some advice. I’m trying to write data to an SD card using FileX and ThreadX. Everything compiles and debugs fine, but nothing actually gets written to the card. I also tried the FX_MultipleAccess example provided by ST, but it doesn’t compile. I’ve tried fixing several compilation errors, but some declarations are missing, like byte_pool in app_filex.c. I’m not sure what’s causing the issue, and I’m wondering if I might have missed an important step or misconfigured something.
Hi! I am working on creating a new build system for my for a software platform using CMake to help with management of different targets and toolchains. I have an .ioc file that is currently in use with the existing build system based on CubeIDE that contains all middleware (FreeRTOS, LwIP, TouchGFX) additions and configurations, so I am not changing anything. I am trying to make the build as modular as possible so I am trying to link the stm32cubemx and touchgfx CMake targets directly. I am using build presets to manage configuration. Creating the build system works fine, but when I try to run the build I get compilation errors because the TouchGFX related files can't find the user constants defined in CubeMX for TouchGFX, as shown below: This can be expected because these symbols are created in defines on main.h and the TouchGFX file being referred there does not include main.h. I could add it manually, but I'd like to try to get the system to work directly from autogen
Hi everyone,I'm working on a power conversion project using the STEVAL-7BIDIRCB reference design.The firmware uses a specific static library: DPC_AverageCurrentCtrl_IAR.a. As the name suggests, it was compiled with IAR EWARM. However, I would like to use VS Code and CMake for my development environment instead of the IAR IDE.A few questions:Is this specific library compatible with the arm-none-eabi-gcc linker in a CMake setup, or will I face ABI/runtime issues (especially regarding FPU and math functions)?If I use the IAR Build Tools (compiler/linker) through CMake in VS Code, will it work seamlessly with this .a file?Is there a GCC version of this library available for the STEVAL-7BIDIRCB, or are the sources available somewhere to recompile it for GCC?The control loop is obviously critical for this board, so I want to make sure I don't introduce any instability by mixing toolchains.Thanks for your help!
Hello ST community,I am working with LSM6DSOX and using the Machine Learning Core (MLC) configured through UNICO GUI. My goal is to use the sensor as a low-power wake-up source for my system.System overview:MCU: nRF52840 (goes to deep sleep / system OFF)Sensor: LSM6DSOXInterface: I²CInterrupt: INT1 used as hardware wake-up sourceMCU is sleeping, so no software filtering is possible before wake-upWhat I want to achieveI want the MCU to wake up ONLY when one specific gesture occurs (for example a “wave” gesture).INT1 should assert only for this one gestureINT1 should NOT trigger for:static staterandom shakeother trained gesturesnoise or motion not matching the target gestureWhat I have already doneI successfully trained multiple gestures in UNICO GUI using MLC.I can export and load the UCF correctly.INT1 triggers when any gesture is detected.I can read MLC status (Get_MLC_Status) after MCU wakes, but this does not help because:The MCU must already be awake to do software filtering.I need
Hi,When opening a CubeMX-generated project in VS Code for the first time, a popup appears that—according to ST’s tutorial—you’re supposed to confirm by selecting “Yes”.Unfortunately, the popup disappeared after a few seconds before I could click it. I’ve tried reopening both VS Code and the project, but it hasn’t appeared again.How can I bring this popup back, or trigger the same setup manually?Thank you
[VERSION]: 6.2.1[TOOL]: Motor Profiler in Motor Pilot V1.2.5[DETAILS]:Motor Profiler gets stuck while profiling at "Profiling % 28".Hardware used is the inverter-board B-G431B-ESC1.[EXPECTED BEHAVIOR]: I expect the motor profiler to either finish the process or abort with an error so that I can fix any existing issues.[HOW TO REPRODUCE]: Motor is soldered to the inverter-board, power supply connected and set up to deliver the correct voltage and enough current (12V, 30A). Motor Profiler is started and connects successfully. The required motor parameters are entered accordingly. The profiling is started. At 7%, the motor twitches once, and at 21% the motor hums for half a second. Maximum observed current is around 2.5A until then. Then the process gets stuck at 28% until the notification pops up that the measurement takes too long. The board pulls standby current.
Hi,I'm developing a camera interfacing application. I've used GPDMA in linear-circular mode. But, now I have to handle larger resolution(640x480). Is there any application example from where I can start configuring DMA in CubeMx?
Hello,I had windows 10 and the CubeProgrammer was without problems.Now, on this PC with new windows 11 when I try to open file (hex, srec) in Erase & Programming with Browse then a new windows is opening and after I can't choice my file and STM32CubeProgrmmer is closed.I tryed in administrator excecution but the problem is always.I looked this problem on all the windows with open file. Could you help me , please?Best regards
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.