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
Hi,I wanted to use an external voltage reference of +2.048V on the Nucleo Board. To do so I removed SB57 as dictated in UM1724 document: SB57 (VDDA/VREF+)ON VDDA/VREF+ on STM32 is connected to VDD.OFF VDDA/VREF+ on STM32 is not connected to VDD and can be provided frompin 8 of CN5 (Used for external VREF+ provided by ARDUINO® shield) The Absolute Maximum Ratings for STM32F072xB (table 21) give the following:VDD–VDDA Allowed voltage difference for VDD > VDDA - 0.4 V Does this mean I am bound to a 3.3V reference and can not use lower voltages? On Arduino boards these normally accept other voltages.
I would like to ask if there has been any change in the screen printing of STM32L433RCT6 from Taiwan, as the Z next to the ARM in the first line is not close, while the Z next to the ARM in China is close. As shown in the following figure.
Hello, While working with STM32F446RET6, I encountered a problem with I2C1. When using HAL_I2C_Mem_Read_IT(), an error occasionally occurs in the form of sending 0x00 instead of the address with the read bit after Repeated Start. The error seems to only occur with O3 optimization. I2C Configuration: NVIC Configuration: Only TIM1 update interrupt (TIM10 not used), DMA1 stream2 (SPI3_RX) and DMA1 stream5 (SPI3_TX) have higher priority than I2C1. Here is an example of a correct signal: The signal with error and I2C_Flush_DR() looks like this: static void I2C_Flush_DR(I2C_HandleTypeDef *hi2c) { /* Write a dummy data in DR to clear TXE flag */ if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) != RESET) { hi2c->Instance->DR = 0x00U; } } The signal and I2C_Flush_DR() looks li
Hi,Ref.manual (RM0477 Rev 8) in chapter 32.3.3 PSSI clock saysIn case when PSSI transmitting data, then RDY pin is input.Datasheet (DS14360 Rev 2) shows setup and hold time of RDY pin (input) referenced to rising edge as well as data pins (outputs).I think that's a contradiction. So how is it really and to which edge do RDY setup and hold times relate ?Thanks,Michal Dudka
I encountered a bug with STM32Cube IDE 2.0.0 and \stm32ai-modelzoo-services. When I try to deploy my application using the command:python .\stm32ai_main.py --config-path . --config-name .\user_deployment_n6_config.yamlthe board programming seems to complete successfully, but the screen remains black.However, if I use an older version, STM32Cube IDE 1.18.1, the application deployed with the same Python script works perfectly. tools:stedgeai:optimization: balancedon_cloud: Falsepath_to_stedgeai: C:/ST/STEdgeAI/3.0/Utilities/windows/stedgeai.exepath_to_cubeIDE: C:/ST/STM32CubeIDE_1.18.1/STM32CubeIDE/stm32cubeide.exe# path_to_cubeIDE: C:/ST/STM32CubeIDE_2.0.0/STM32CubeIDE/stm32cubeide.exe deployment:c_project_path: ../application_code/image_classification/STM32N6/IDE: GCCverbosity: 1hardware_setup:serie: STM32N6board: STM32N6570-DKstlink_serial_number: "0040003D3234511733353533" (stm32ai-modelzoo-services4) PS C:\Users\papam\PycharmProjects\stm32ai-mod
I am working with an STM32H753ZI board and trying to generate a sine wave to feed into NanoEdge AI Studio, but I am having trouble. I've tried using several built-in examples and compiling them, but I still can't get it to work. Could anyone provide a code sample or some tips on how to correctly stream this data?
I wanted to run ready-made examples for the STM32H753ZI in NanoEdge AI but I couldn't find any. Does anyone have any tips or a ready-made example?
Hi,I am using the following environment and found two bugs.OS : Ubuntu 20.04 LTSSTM32CubeMX : 6.15.0Toolchain / IDE : CMakeBoard : NUCLEO-H563ZIBug 1 : After reconfiguring the memory address and size with Memory Management Tool following code generation, the .ld file does not follow the configuration.This bug can be reproduced by following the steps below:Configure the FLASH region on MMT. Generated code and .ld filesUpdate the FLASH configuration on MMT. (e.g. change the start address of the FLASH region)Re-generated code and .ld files Bug 2 : The vector table offset value is not updated from 0x00U even if the ISR vector checkbox is enabled and the start address of the FLASH region is changed from 0x08000000The VECT_TAB_OFFSET value in system_stm32h5xx.c is not updated after generating code. I think this value should be updated according to FLASH region configuration./************************* Miscellaneous Configuration ************************/ /*!< Uncomment the f
Hi, I'm developing an Edge AI project for a Nucleo N6. After having gernerate c code model files of my neural network and having imported (and included the paths) the necessary libraries into Middlewares (Inc, Lib and Npu) I continue to have as error "../../Middlewares/ST/AI/Npu/ll_aton_config.h:90:2: error: #error "Needed define 'LL_ATON_PLATFORM' undefined" when compiling the Appli project. I've tried to check st edge ai core documentation, but it's poorly explained about the fact on how to integrate C code generated files in a STM32CubeIDE project (or at least I haven't found any section that explains it in detail), please add further details on what precise steps to follow to integrate a model into a project.I upload my project to replicate the error I get
Hello ST Team,I am working on a vision-based AI application (face detection) using the STM32N6570-DK and would like guidance on the recommended STM32CubeMX project configuration.Currently, I could not find any complete CubeMX example or tutorial on the ST website that explains how to configure CubeMX for a camera → AI inference → LCD pipeline on STM32N6 devices.Could you please provide:1) The required STM32CubeMX configuration for a vision-based AI project (camera, SDRAM, LTDC, DMA2D, CACHE, etc.)2) The recommended versions ofSTM32CubeMXSTM32CubeIDEsuitable for STM32N6570-DK AI applications3) Any official tutorial, reference project, or documentation available for setting up a vision-based AI application using X-CUBE-AI on STM32N6.Best RegardsRanjith Remasan
Dear ST Technical Support Team,I am currently developing a voice recognition application on the STEVAL-STWINBX1. I trained a classification model using the notebook:Utilities\AI_Resources\TrainingScripts\UltrasoundClassification\UltrasoundClassification.ipynbIn the notebook/off-target evaluation, the model achieves >90% accuracy, but after deploying to the MCU the recognition accuracy becomes very low.To investigate, I used STM32CubeMX → Validation on Target. However, the validation process fails with the message: “Automatic build and run failed” (Automatic Validation on the target)Thank you for your help. I look forward to your guidance on resolving the validation failure and improving on-MCU accuracy.Best regards,dzf
As the title suggests, I've tried to develop a project with Cube AI Studio for a Nucleo N6 similarly following this tutorial:https://www.youtube.com/watch?v=3zyIpB5o9zQThere are several problems though:1) when I try to upload my .onnx model file and I press the button "Run", I always get "memory overflow error"2) After pressing the button "Generate Code", I get an error on the configuration of clock peripherals. I press "yes" anyway, but it is not what it is showed in the video.3) the project generated is duplicated (I don't know why) and the folder hierarchy does not follow the one shoed in the videoI upload the folder of the project
I have successfully run the USB HS Mass storage on a new project without the use of freertos and touchgfx , But when the touchgfx code for STM32H750B-DK is modified to run the code I am getting hard faultsstatic uint8_t usb_done = 0; extern ApplicationTypeDef Appli_state; extern USBH_HandleTypeDef hUsbHostHS; extern FATFS USBHFatFS; extern char USBHPath[4]; void Debug_Print(char *str) { HAL_UART_Transmit(&huart4, (uint8_t*)str, strlen(str), 100); } static uint8_t file_written = 0; void StartDefaultTask(void *argument) { Debug_Print("Task Started\r\n"); for(;;) { USBH_Process(&hUsbHostHS); if (Appli_state == APPLICATION_READY && file_written == 0) { Debug_Print("USB Detected\r\n"); if (USBH_MSC_IsReady(&hUsbHostHS)) { Debug_Print("MSC Ready\r\n"); FRESULT res; FIL file; UINT bw; /* Mount USB */ Debug_Print("Mounting...\r\n"); res = f_mount(&USBHFatFS, USBHPath, 1); if (res == FR_OK) { Debug_Print("Mount OK\r\n"); /* Create
Dear all, I am currently deploying the image_classification application.So, from stm32ai-modelzoo-services (in my case, it is in the directory stm32ai-modelzoo-services4), I am using the following command with my configuration file:python .\stm32ai_main.py --config-path . --config-name .\user_deployment_n6_config.yamlI added some code in /common/stm32ai_local/build.py to help diagnose the programming of the STM32N6570-DK board.The programming process seems to complete correctly, but when I restart the kit (with BOOT0 and BOOT1 set to the left), the screen remains black.However, if I launch STM32CubeIDE, import my application, perform a build, and then a Run As, the programming works correctly and the application runs perfectly.I believe the original goal is, of course, to be able to program and run my application directly using the script:python .\stm32ai_main.py --config-path . --config-name .\user_deployment_n6_config.yamlPlease find attached the execution log of the script.Many
Hello everyone,I am working with the NUCLEO-H723ZG board and attempting to establish Ethernet communication using TCP/IP. The firmware was built and flashed successfully using STM32CubeIDE version 1.19.0.However, I am facing issues with basic network connectivity. Below are the details of my setup and observations:Setup DetailsBoard: NUCLEO-H723ZGIDE: STM32CubeIDE v1.19.0Ethernet stack: LwIPPHY interface: RMIIFlashing tool: ST-LINK (onboard)Test performed: Ping test from PCObserved BehaviorThe Ethernet port LEDs (orange and green) remain solid ON after connecting the Ethernet cable.Ping requests consistently fail (Request timed out).No response is received from the board.Troubleshooting Already PerformedTested both Static IP and Dynamic IP (DHCP) configurations.Verified IP address, subnet mask, and gateway settings.Tried multiple Ethernet cables to rule out cable-related issues.Rebuilt and reflashed the project multiple times.Verified that the firmware flashes successfully and runs wit
Hi everybody,I'm learning to use the ADC in a STM32F411CEU in Continuous Mode and Single Conversion with Polling. When the code is downloaded to the MCU everything runs ok (I mean, when the MCU runs by itself without any ST-Link connected).The problem appears when I try to execute the code in a debugging session. The first time the function HAL_ADC_PollForConversion() is called, the result is HAL_OK, but in the next iterations the functions doesn't return HAL_OK anymore.I know, I know, with Continuous Mode I should be using DMA. But I'm trying to learn the different operation modes (single conversion, scan mode, polling, DMA, etc.)One thing I've found is that if I set the ADC parameter End Of Conversion Selection = EOC flag at the end of all conversions instead of End Of Conversion Selection = EOC flag at the end of single channel conversion , then the function HAL_ADC_PollForConversion() works ok in all the iterations when debugging. Can anybody explain m
Hi @mƎALLEm @Adam BERLINGER ,Ethernet is currently working on the Nucleo-H755ZI-Q development board. However, I would like to understand Ethernet from the basics, similar to how we understand protocols like I2C and SPI.Could you please suggest any resources or reference links to help me understand the Ethernet protocol and RMII interface in depth? This is my custom board ethernetLED_G+ needs to be pulled down, so I have pulled that pin down. Can I use the same libraries that are used in the Nucleo-H755ZI-Q board for this LAN?If I use the same library and it gets stuck at netif_add() what could be the issue?
I am using a L6470 and everything is working fine with one exception. When I do the initialization of the step mode and configuration registers, if the SW input is low, then the initialization does not work. If the SW input is high, then everything works fine. The signal levels on the SW input are compliant with the Vdd levels (3.3V). Looking for any insight. Tom
Hello everyone,I am currently working on a project using the STM32F030C, and I have a question regarding the GPIO speed configuration (slew rate) for SPI pins.Here is my setup:MCU: STM32F030CInterface: SPI (configured as Slave)SPI Clock Frequency: 13.5 MHzTo keep EMI (Electromagnetic Interference) emissions as low as possible, I was considering setting the GPIO output speed for the SPI pins (specifically MISO, since the MCU is the slave) to GPIO_Speed_Level_Low.However, according to the datasheet (see attached screenshot), the "Low" speed setting is specified for a maximum frequency of 2 MHz.My questions are:Is it practically possible to run a 13.5 MHz SPI signal with the GPIO speed set to Low, despite the datasheet specs?Does this pose a high risk of corrupted/poor communication due to the slew rate being too slow (e.g., degraded signal integrity, failing to meet setup/hold times for the master)?Has anyone here tried this approach to reduce EMI at similar frequencies, or is it strictl
I am trying to create a simple UDP server using the NUCLEO-H743ZI2 board. I will port this to a similar microcontroller in the same family (STM32H750B) once I get it working. I am able to build the example code from this repository: https://github.com/stm32-hotspot/STM32H7-LwIP-Examples/tree/main/STM32H743_Nucleo_ETHIt successfully responds to pings and shows up in my router device list. I used:STM32CubeIDE Version: 1.17.0 STM32Cube FW_H7 Version 1.12.1.Following the instructions in the README, I attempted to build the application from scratch on the NUCLEO board, but I haven't been able to get it to respond to a ping despite a few days of troubleshooting. Can someone tell me if there is something wrong with my configuration file?
Hi, two years ago I posted this thread:Solved: How to set "Don't fragment" flag LWIP short TCP pa... - STMicroelectronics CommunityNow I just was reviewing it for another application that truly needed to send more data and was not allowed to wait 50ms for every sent packet.Final root cause explanationThe 415-byte packets were being ACKed after ~40–50 ms because I was only sending one TCP segment at a time and waiting for it to be acknowledged within my application code, before sending the next one.This behavior is due to the TCP Delayed ACK algorithm implemented by Windows. When Windows receives a single TCP segment smaller than the MSS, it does not immediately send an ACK. Instead, it waits approximately 40–50 ms before acknowledging it.This behavior is described in RFC 1122, section 4.2.3.2 ("When to Send an ACK Segment"), which explains that a TCP implementation may delay sending an ACK in order to reduce protocol overhead.If a second TCP segment is received before the delayed ACK t
When using a STM32H757, with external QSPI, on an STM32H757I-EVAL, I am experiencing some programming issues when programming an .elf file with sections pointing to external QSPI. I am using the ST External Loader for MT25TL01G_STM32H747I-EVAL. Programming does work successfully, but on newer versions of cube programmer, there are warnings about 32 byte alignment, and then verification fails. The addresses mentioned are in AXI SRAM, and are .bss sections, which are marked NOLOAD, so it's confusing why that memory is trying to be programmed and this error is coming up in the first place. Manually setting the ALIGN markers in the linker file to be 32 instead of 4 does seem to get rid of the warning, and fix the issue. I've seen this issue on with versions 2.19 and 2.21 Is this a known issue? I haven't seen this issue with 2.17. Attached are logs files with the warnings and errors. Thanks for the help!
Controller: STM32F303ZEWritten a function to read ROM memory as belowvoid ServiceROMRead(tst_ServiceDataset* ptrService){// Variable holds ROM addressDWORD ROMAdd = DIAG_ZERO;// Flag represents JUP service trigger state.RFJupExeFlag = TRUE;// Address from where the data needs to be readROMAdd = ptrService->DataAddr;//Check for the EEPROM addressif((ROMAdd > ROM_ENDADD)) //ROM_ENDADD is 0x0807AFFF{// wrong addressptrService->State = WRONG_DATA;//Indicator for wrong address passed}else{ptrService->ptrData = (BYTE *) ptrService->DataAddr;}}When I pass ptrService->DataAddr as 0x8000020 or 0x8000080 to the above function ServiceROMRead from my application it is sometimes leads to a system resetApplication is placed at 0x08003000 to 0x0807AFFFBootloader is placed at 0x08000000 to 0x08002FFF1. Why is the controller resetting when I try to read ROM from address 0x8000020 or 0x8000080?2. Will trying to read data from address 0x8000020 or 0x8000080
Hi, I am using a STEVAL-WBC86TX Wireless Qi transmitter. I am going through a code and couldn't figure it out what is the meaning of the code(proprietary packet) received by the transmitter. Can any one help me to understand the meaning of this code.
HelloI have a STM32H7R3V8T6 and want to use a few peripherals and GPIOs. However, I don't manage to see an output with my analyzer. The peripherals themselves seem to work: An XSPI receive for example does receive some dummy bytes and takes exactly the required time for the transfer (measured with the cycle counter), but the pins do not show anything.I reduced my code and came up with this simple demonstration of how I initialize a GPIO:int main(void) { SystemCoreClockUpdate(); HAL_Init(); SystemClock_Config(); __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_12; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); while (1) { HAL_GPIO_TogglePin(GPIOB, 12); HAL_Delay(10); } }The debugger shows that I reach the loop. The registers of the peripheral seem to be correct, but the pin doesn't toggle. This als
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.