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
We recently had a batch of equipment assembled with the Teseo-LIV4F instead of LIV3, and I'm running into some real strange behaviour.Whenever I try to disable the GPGSV frame the whole NMEA output breaks. It is not a problem with the receiving host as I have verified with an oscilloscope that the broken NMEA is really outputted by the LIV4F.Commands I send:$PSTMSETPAR,1201,0x4,2*7B $PSTMSAVEPAR*58 $PSTMSRR*49And the output starts to be like: (See concatinated GBS and GSV, the checksum and new line on GBS is missing)$GNGBS,,,,,,,,,,,,,,,$GNRMC,,V,,,,,,,,,,N,V*37 $GNGGA,,,,,,0,00,0.0,,M,,M,,*56 $GNVTG,,T,,M,,N,,K,N*32 $GNGST,,,,,,,,*49 $GNGBS,,,1,01,25,,,39$BDGSV,1,1,01,25,,,39,,,,,,,,,,,,,1*79 $GNRMC,,V,,,,,,,,,,N,V*37 $GNGGA,,,,,,0,00,0.0,,M,,M,,*56 $GNVTG,,T,,M,,N,,K,N*32 $GNGST,,,,,,,,*49 $GNGBS,,,1,01,25,,,37$BDGSV,1,1,01,25,,,37,,,,,,,,,,,,,1*77 $GNRMC,,V,,,,,,,,,,N,V*37 $GNGGA,,,,,,0,00,0.0,,M,,M,,*56 $GNVTG,,T,,M,,N,,K,N*32 $GNGST,,,,,,,,*49Enabling / Disabling different frames
I have an X-NUCLEO-IKS4A1 mounted on top of a NUCLEO-L476RG and I am trying to connect that to Mems Studio. I get one of the two errors in the attached screenshots. Either "Board not identified" or "Some device is already connected".
Currently I am working on STM32H7S78-DK board, In that I am trying to save some data in External flash which will be read over every boot up but while trying to write in specific memory location it will hit to hard fault. I would like to seek clarification regarding write and erase operations on external NOR flash while operating in XIP (memory-mapped) mode on the STM32H7S78-DK.Current Setup:The application is executed directly from external NOR flash (mapped at 0x70000000 via XSPI).Memory-mapped (XIP) mode is enabled for instruction execution.Read operations from external flash are working as expected.Observed Issue:During erase/write operations, the system encounters hangs and eventually enters a Hard Fault condition.Understanding of the Issue:Erase/program operations require switching the XSPI interface from memory-mapped mode to indirect/command mode.During this transition:External flash is not available for instruction fetch.The CPU continues attempting to execute code from the sa
Dear people, I use these little square pins and headers (see image), to obtain access to the contacts of CN11 / CN12 of Nucleo Boards, e.g. H723ZG, or F756ZG?. However these are impractical, because movement or vibration might lead to interruptions. And I want to avoid soldering, for specific reasons. Ideally would be some sort of connector that makes good electrical contact and can be coupled/decoupled easily. Can someone suggest an efficient and ergonomic solution? Thank you
Dear all,I'm unable to connect via SWD to my STM32F103C8T6. What ever I try I get no target found with STM32CubeProgrammer or ST-LINK Utility (I have tried all combinations at slow and high speeds). - device is virgin- BOOT0 is low- NRST unconnected (shows 3V3) and connected/removed while testing- Connections go through from ST-Link to STM32 pins- 30 Ohm and 0 Ohm tested for SWCLK and SWDIO (GND and 3V3 connection to ST-Link with no resistor)- Correct mapping of ST-LINK pins to STM32 checked multiple times- There are no obvious shorts between any of the paths- 3V3 is stable and GND closed- The ST-Link was tested with a "blue pill" board with the same STM32 on it and it worked flawlessly I have also tried:- Cutting the path to the esternal 16MHz crystal curcuit- Connecting/Disconnecting VCC- Soldered a new STM32 onto the board I am currently running out of ideas, I think there is either a fault in the PCB design that damages the MCU or prevents booting or maybe some confi
Hi there,I've been using the STM32H7R7 device (BGA225), but I ran into an issue. I used the TochGFX (4.26) to generate the gfx_task, and after that, I configured the cubemx (6.17), but somehow the linker was not good. Even my code could not be built since the external PSRAM was not set up automatically. I fixed it, but I ran out of ideas. I would highly appreciate it if the demo were to be available to move forward. Thank you very much!Geri
Is it okay to use the following connection for eMMC memory on the STM32MP157AAB3?Also, is it possible to set the eMMC memory to boot mode with this connection?PB14:SDMMC2_D0PB15:SDMMC2_D1PB3:SDMMC2_D2PB4:SDMMC2_D3PB8:SDMMC2_D4PB9:SDMMC2_D5PC6:SDMMC2_D6PC7:SDMMC2_D7PC1:SDMMC2_CKPG6:SDMMC2_CMD
Hello,after setup SPI1 and setting CSTART=1, I expected that SPI is send immidiatly on bus.(I toogled PE00 with CSTART=1)I couldn't find some that explains that behaviour. It behave the same, if I use DMA or writing directly to TXDR.Do you have an idea ?My testcode. SPI1->IFCR = 0xFFFF; // Clear all flags MODIFY_REG(SPI1->CR2, SPI_CR2_TSIZE, BufferSize); SPI1->CR1 |= (SPI_CR1_SPE); SPI1->CR1 |= SPI_CR1_CSTART; GPIOE->ODR &= ~(1 << 0); for (u32 i = 0; i < BufferSize; i++) { LL_SPI_TransmitData8(SPI1, pBuffer[i]); }CPU is set to 160Mhz and SPI Prescaler is 256
Hello,I am trying to setup the BLE stack on my custom board without LSE using a STM32WB55CEU6. I have multiple boards on hand, on the first one, appe_Tl_init(); worked fine and I got to the BLE stack initialization code. However BLE never worked due to using a 16Mhz crystal. Before I had the chance to change out the crystal, the MCU bricked due to unrelated flash mistake.Now on the second board, I switched out the crystal to a proper 32Mhz one, unfortunately, despite flashing the wireless stack the same way, the wireless stack seems to instantly hard fault. Everything else, including USB (which relies on tight clock) work on the new 32Mhz crystal, I even soldered back the 16Mhz crystal temporarily, and it did not fix the hard fault. I flashed the most recent FUS and wireless stack, v2.2.0.0 and v1.24.0.3 respectively. I tried with ble_light, ble_full and ble_full_extended, all hard fault CPU2.So, within MX_APPE_Init(), during the call TL_Enable(), CPU2 hard faults. The contents of SRAM
Setup: STM32F411RE + STM32CubeIDE + X-CUBE-AZRTOS-F4 v1.1.0 + TIM4 as HALtimebase Problem: Thread runs once, toggles LED, then hangs inside tx_thread_sleep(50) and never wakes up. Debugger shows:System Timer thread → State: SUSPENDED, Run Count: 0Thread 1 → State: SLEEP, Run Count: 1 System Timer never runs, so sleeping threads never wake up.Question: Why is the System Timer thread never getting scheduled? Any known issues with X-CUBE-AZRTOS-F4 v1.1.0?
After I generated a complete project using STM32CUBE AI studio, I noticed that the code for calling the model in the main function was named STM32CubeAI_Studio_AI_Process.After I found its definition, I discovered that it was defined in the file app_x_cube_ai.c. When I examined its implementation, I found that there was no implementation inside the functions acquire_and_process_data() and post_process().Furthermore, I discovered that it did not utilize the so-called latest stai library. Instead, it directly used a more fundamental implementation. However, I am unsure of how to implement the above two functions. I haven't found any relevant examples or tutorials either. Is there any relevant link or document that can help me resolve my confusion?Additionally, I would like to know if it is possible for me to use the STAI library to implement the functions of the aforementioned two procedures.
I've been using this part from NXP (originally Freescale, I think) for a while now.I've just noticed that it now has an ST Product Page:https://www.st.com/en/mems-and-sensors/fxls8967af.htmland the datasheet says:The ST Accelerometers portfolio page also lists a few other NXP part numbers: Is this a 2nd-source arrangement, or have these products fully transferred from NXP to ST ?
Hi,We are running a crypto key generation library on both an STM32G474 (170MHz) and an STM32H563 (240MHz).Over about 80 runs, the average generation time is around 12 seconds for the H5 and 38 seconds for the G4.These times are fine for our application (although faster would be better) but I am curious why the G4 is over 3 times slower as I would have expected something more like 40% longer generation times.The arithmetic part of the library uses some assembler functions for long multiplications and, for both processors, these seem to have picked a section for "Armv6-M (or later) with DSP Instruction Set Extensions."The compiler flags being used are listed here. The repeated sections are because I still haven't really figured out how cmake is generating them but I believe the relevant differences are:-mcpu= cortex-m4 or cortex-m33-mfpu= fpv4-sp-d16 or fpv5-sp-d16compile C with /usr/bin/arm-none-eabi-gcc__VERSION__ "14.2.1 20241119"G4 Flags:C_FLAGS = -mcpu=cortex-m4 -mfloat-abi=hard -mf
Hello everyone, I’m facing an issue while trying to debug my project custom_for_stm32f103c8t6 in STM32CubeIDE. When I launch the debug session, I get the following error message: Error in final launch sequence:Failed to start GDB server What I’ve tried so far: Installed ST-LINK driver (STSW-LINK009). Changed USB cable and port. Reset the STM32F103C8T6 board. Interestingly, I can still flash the firmware successfully using STM32CubeProgrammer, but debugging through STM32CubeIDE fails with the error above. Unfortunately, the error still persists. Has anyone encountered this problem before and found a solution? Any guidance would be greatly appreciated. Thank you in advance!
We have an issue with a scroll list widget, on the hardware when you touch and scroll to a point, stop then lift your finger of the display the list accelerates in the direction it was dragged in initially. This behaviour is not seen the simulator. In the designer, we have scrollable container with a scroll list inside it. Setting animation has no effect, easing option = In, Swipe Acc = 0, Drag Acc = 0, Overshoot % = 0. we have tried adjusting the both Acc without any effect.The list has up to 50 entries.scroll list void listMenuView::setupScreen() { menuItems = presenter->getListItermParams(); scrollList1.setItemSelectedCallback(scrollListItemSelectedCallback); params = static_cast<CONTROL_VERTICAL_MENU_T *>(presenter->getWidgetParams()); menuHeader1.params = &params->menuHeader; menuHeader1.updateConfigs(); menuHeader1.setEventListener(this); messageBox1.setEventListener(this); // set the size of the scroll list based on the number of items
We have several custom boards with ST67W61 modules. If we flash the device with t02, per instructions on wiki, we are able to successfully communicate with these devices and also re-flash them if need be. So far so good.However if the device is flashed with t01 it is no longer flashable or even usable unless you do a full chip erase. I'm mentioning this here in case other people run into this problem.QConn_Flash\QConn_Flash_Cmd.exe --port COMxx --erase --whole_chip Note that this issue only occurs with t01 binaries and not with t02. D:\temp\x-cube-st67w61-main\Projects\ST67W6X_Scripts\Binaries>QConn_Flash\QConn_Flash_Cmd.exe --port COM38 --config NCP_Binaries\mission_t02_flash_prog_cfg.ini --efuse=NCP_Binaries\efusedata.bin [08:14:13.300] - Serial port is COM38 [08:14:13.300] - ================================================== [08:14:13.300] - FW get address from partiton file D:\temp\x-cube-st67w61-main\Projects\ST67W6X_Scripts\Binaries\NCP_Binaries\./partitio
I have a news that ST REMOVED SHORT CIRCUIT PROTECTION FROM TDA7294 IC, please confirm is enews real? Or not?
I am working on a custom board with STM32F103CBT6TR. Initially, flashing the code resulted in a Hard Fault error, but now it consistently enters a SIGTRAP even after removing all breakpoints. Additionally, the GPIO pins are not toggling as expected. The code is attached as notepad file for reference. Can someone give a solution to this, thank you.
My development board is STM32MP257F-DK, and I want to use ST Edge AI Developer Cloud to convert. onnx models to. nb models. However, during the interface conversion of 'Optimize your model with STM32AI MPU Tool', an error message 'Error while generating optimized file. Generation does not contain any output' was reported. Afterwards, I will use the model provided by ST Model ZOO: st_yoloxn_d033w_025-416_qdq_int8_ort_detection_CCO_2017_Serson. onnx. I also encountered an error while optimizing. What is the reason behind it? A few days ago, I was able to successfully convert ssd_mobilenetv1_pt_coco_300_qdq_int8_ort_detection_CCO_2 The error message is as follows:
Whenever I am starting to make project from scratch in STM32Cube AI studio, It gives complete structure with .ioc files as well as AI files, but as soon as I make changes in .ioc file and generate code after loading in CubeIDE, it changes the middlewares and build error comes . What is the solution for that? 1. Should I first make the .ioc project and then make project in STM32Cube AI studio ( Import the existing project from STM32CubeMX or STM32Cube AI studio)2. Another doubt is if I make project from preexisting .ioc, Do I need project in application mode for that as AI changes will work in application mode only ( but STM32N6 doesnt work without FSBL), what is your suggestion for Edge AI project building? The error was :Description Resource Path Location Type make: *** No rule to make target 'C:/Users/hp/.stm32cubeaistudio/workspace/Modified_STM32/Middlewares/ST/AI/Npu/ecloader.c', needed by 'Middlewares/ST/AI/Npu/ecloader.o'. Stop. Modified_STM32_Appli C/C++ Problem&
I've got some trouble with the CRC unit in an STM32L475.At first, I got wrong CRC results, but then it dawned on me that the compiled code didn't force only 8 bits at a time into CRC->DR. So I added what I've used elsewhere, to force the compiler to store only 8 bits in a 32-bit register.*(__IO uint8_t *)(CRC->DR) = Temp;Temp is a uint8_t variable. Below, it certainly looks like a single byte is transferred to CRC-DR (strb instruction). *(__IO uint8_t *)(CRC->DR) = Temp; 80013ea: 683b ldr r3, [r7, #0] 80013ec: 7018 strb r0, [r3, #0]However, after I modified my code that way, it would seem that nothing is calculated at all. No matter how many (non-zero) bytes I throw into CRC->DR, the output just stays at 0.If I revert back toCRC->DR = Temp;at least I get something, albeit an incorrect value as soon as I enter more than one byte.I initialise the CRC unit like this: CRC->POL = 0x04C11DB7; CRC->INIT = 0; CRC->CR = CRC_CR_RESET;Is there something blatantly obv
I’m choosing a microcontroller for a new STM32 design and I’d appreciate some recommendations.I don’t have particular requirements for compute performance, memory size, or ultra‑low power — just solid peripheral support and a Nucleo board available for development. Required peripherals: 1 × FDCAN (CAN FD) 3 × SPI (in practice only 1 SPI with multiple CS likely) 3 × I2C Constraints: Prefer MCU in LQFP / QFN (no BGA) Compact (48 pins) Development on a Nucleo board I’ve looked at parts like STM32C552VET6 and STM32L552CCT6 as potential targets, but I can’t find a dedicated Nucleo board for them. Any suggestion? thank you, best regards, Gianluca
Hi,I am using a STM32WB5MMGH6 BLE module and for some reason HAL_IncTick() is not being called. It is baffling because it was working perfectly well when I was recently working on it before switching to another project for a week.I stripped the project down to almost nothing and placed a HAL_Delay() right after the CubeMX-generated initialization code in main(). So no custom code could do anything to affect that behavior (like turning off interrupts etc). However, the delay never completes.The code is stuck inside the while loop in HAL_Delay() because HAL_IncTick() is never being called (i.e. the system tick is not incrementing) so the HAL_GetTick() always returns 0. __weak void HAL_Delay(uint32_t Delay) { uint32_t tickstart = HAL_GetTick(); uint32_t wait = Delay; /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) { wait += (uint32_t)(uwTickFreq); } while ((HAL_GetTick() - tickstart) < wait) { } } The Timebase Source is set to SysTick
I've implemeted a vision transformer for STM32N6 NPU.Repository: https://github.com/minchoCoin/stm32n6-transformerBatchMatmul operator is not yet supported on NPU and run on the CPU, but it is much faster than STM32H7(inference time was reduced by about 90% than STM32H7) because fully connected layer and convolutions is executed on NPU.Vision Transformer for STM32N6 NPU has three differences from the original ViT(A. Dosovitskiy et al., 2020)1. Patch Embedding (PE) is configured to be performed in the pre-processing process before model input: Because if the model has PE and self attention, it is not possible to interpret the model structure using STEdgeAI (I don't know why yet...)2. Remove bias parameter from Fully Connected layer or change fully connected layer to 1x1 Conv2D: fully connected layer of onnx should have 2-dimensional input. however, fully connected layer of ViT has 3 dimensional input(batch,patch,embedding), so compiler removed the batch axis, and ma
Hi,Observed ProblemHAL_ADC_Start_DMA() returns HAL_OK, TIM2 starts, ADC begins converting (confirmed via ADC_ISR in debugger), but HPDMA1 Channel 0 immediately raises a DTE (Data Transfer Error), triggering the error callback. EnvironmentMCU: STM32N657X0HXQBoot mode: Two-stage boot — FSBL + XIP Application (external flash via XSPI2, mapped at 0x70100400)Toolchain: STM32CubeIDE / GCCHAL: STM32CubeN6 (latest)Security mode: Full Secure — all code runs in Secure Privileged mode, no NonSecure worldProject DescriptionThis is a minimal reproduction project containing only:ADC1 — single channel (PA8 / INP5), triggered by TIM2 TRGO, DMA circular modeHPDMA1 Channel 0 — linked-list circular mode, PERIPH_TO_MEMORY, ADC1 → AXISRAM2TIM2 — provides ADC trigger at fixed rate (Period=799, no prescaler)No ETH, no LwIP, no NPU — deliberately stripped down to isolate the DMA issue.Memory Layout (Linker Script) ROM (XIP) : 0x70100400, 511K — code in external flashRAM (FLEXRAM) : 0x34000000,
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.