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
I want to make a speedometer with a STM32 MCU. What is the best solution. Do stm32 have any products wich works as a plug and play speedometer.
Hello Engineers,I have recently started developing a product based on the STM32F446RET6 MCU integrated with the RFM95W (SX1276) LoRa module. My goal is to transmit sensor data to a LoRaWAN network server such as TTN or ChirpStack.I am using STM32CubeIDE for firmware development. However, I have not been able to find clear documentation or structured examples explaining how to implement LoRaWAN (end-device) communication using this MCU and radio combination.What I am Looking For:A stable and recommended LoRaWAN library compatible with STM32CubeIDEGuidance on integrating the SX1276 (RFM95W) with STM32 HAL driversA basic bare-minimum example that sends dummy payload data to a LoRaWAN server (preferably OTAA)Any reference projects, repositories, or step-by-step guidanceTarget Setup:MCU: STM32F446RET6Radio: RFM95W (SX1276)IDE: STM32CubeIDELoRaWAN Server: TTN / ChirpStackRegion: (EU868 / IN865 — depending on deployment)Even a minimal working example that performs:Radio initializationLoRaWAN
Hi,I’m experiencing issues configuring a display using a custom PCB with the STM32H747BIT MCU and LVGL for the UI. Currently, the project runs a minimal setup with only one loop calling lv_timer_handler();. At this point, my main goal is to get the screen working correctly.I’m using LVGL in direct mode for the display buffers.The issue I’m facing is that the screen occasionally shows horizontal glitches. I’ve created a simple spinner using the following code: /* Create a spinner */ lv_obj_t * spinner = lv_spinner_create(lv_screen_active()); lv_obj_set_size(spinner, 64, 64); lv_obj_align(spinner, LV_ALIGN_BOTTOM_MID, 0, 0);You can see the glitch in the attached video.As you can see, the glitching is more noticeable in Video_1 than in Video_2. These are the display timing configurations used for each:Video_1:Video_2: Please note that the configuration in Video_1 follows the manufacturer’s recommended settings. In Video_2, I performed some tests and observed that increasing either
Hi, Does anyone know the default voltage level of an LPUART output as I am trying to interface with a device with a UART logic level of 1.8V so might need a level converter? Couldn't see anything about LPUART voltage on the datasheet?
Dear Community Members, Please be informed that the Server Update Pack will be temporarily unavailable on February 26 due to scheduled maintenance. Date: February 26 Time: From 7:00 AM (for approximately 1 hour) Central European Time (CET) During this maintenance window, you will not be able to access the server or download packs and bundles. other services are expected to operate normally. We apologize for any inconvenience this may cause and appreciate your understanding and patience.
Hi all,I’m using STM32H755 on a Nucleo board with FreeRTOS, the socket-API and CubeMX-generated LWIP. Sending a UDP packet immediately after network init works fine, but if I wait ~10 seconds before calling sendto(), it returns successfully, DMA descriptors OWN=0, ETH IRQs are triggered, yet no packet reaches the wire. Calling sys_check_timeouts() before sendto() does not help. The tcpip_thread has high priority, while the sender task runs at IDLE priority. In my tests, I disabled the Cache.It seems the issue is not PHY or DMA. It seems that sendto() copies data to the LWIP buffer, but the tcpip_thread does not process it after a long idle. How can UDP packets be reliably sent after idle without changing the network stack or manually triggering anything?Thanks for any insights!
I'm encountering a persistent issue when setting up an STM32Cube project in VS Code. Even when reverting to a previously working commit or starting a fresh setup from scratch (using the "Setup as an STM32Cube project" button), the process fails.The following error message appears:"Cube project discovery CMake configure step failed. Setup might be incomplete. Please check output logs"I have tested this on two different machines running both Linux and Windows, but the result is the same. Here are the relevant logs: 2026-02-20 08:41:11.309 [Info] Adding cube-cmake path to environment: /home/user/.vscode/extensions/stmicroelectronics.stm32cube-ide-build-cmake-1.43.0/resources/cube-cmake/linux2026-02-20 08:41:19.016 [Info] Running STM32Cube commands 'cube pack sync + cube pack install STMicroelectronics.stm32f4xx_dfp.1.1.0'2026-02-20 08:41:19.665 [Error] /home/user/Downloads/project needs to be configured first2026-02-20 08:41:22.979 [Info] Activating STM32Cube configurations for the c
Generating code for the STM32WLE5CBU.In timer_if.c:extern RTC_HandleTypeDef h;but in rtc.c:RTC_HandleTypeDef hrtc; It happened in CubeMx 6.16.1 and STM32Cube_FW_WL_V1.4.0 and is still happening using CubeMX6.17.0 and STM32Cube_FW_WL_V1.5.0
Hello!Please tell me how to create a basic C/C++ BareMetal project in CubeIDE for the A35 core of the STM32MP257F-DK board?When I create a project for STM32MP1 I have a choice to create a "BareMetal" project or a Linux project.Unfortunately, when I create a project for STM32MP257F-DK, I did not find such an opportunity for the A35 core. Only a Linux project.Considering that I need LVDS on the board, I cannot switch to the STM32MP1 series and the Linux boot time does not suit the customer.My CubeIDE Version: 1.18.0Build: 24413_20250227_1633 (UTC)
I have a problem with disabling gfxmmu. I don't have a rounded display so that actually I do not need GFXMMU.I created a project by using Touchgfx Designer Templates (STM32H7S78 DK BPP). GFXMMU is activated in default. I would like to disable it. So, I disable it in cubemx then exclude instrumantation files. Then I updated TouchgfxHal.cpp and frame buffer adresses as 0x9000 0000 - 0x9020 0000.Then I could succesfully build the project. When I run it, it is working particularly but the frame/image is broken down. I am adding the image here!Could you explain me how to enable or disable gfxmmu properly from project?
Hi I have downloaded some face detection sample code from the following repository. My doubt is that how can i replace the models in this project opened in cube IDE. which are the files need to be replaced and what are the steps need to be performed. GitHub - STMicroelectronics/STM32N6-GettingStarted-FaceDetection: AI software application package demonstrating simple implementation of face detection use case on STM32N6 products. Best Regards Ranjith Remasan
I'm attempting to modify STM32DDRFW-UTIL to test my DDR on a custom board, but when I try to connect via putty I get a continuous loop of error codes "Unknown command" without ever typing anything into the console. I noticed that the console header seems to be appearing on the input line (see attached photo). I can't figure out if this issue is caused by an incorrect DDR setup on my side or something more on the hardware side (i.e. something I don't know). Any input would be appreciated, thanks!
HiI am trying to generate anomal detection library by neai_studio v 5.1 and get library successfly.But the _studio_emulator.py shows "Error -NEAI_LEARNING_IN_PROGRESS".Please someone help me to do next?
Hello, I read somewhere that I can use the ST-LINK built into my H563ZI to program my custom cards with STM32F401.Could someone help me figure out how to do this?Thanks in advance.
Hi,I have setup three channels in Timer_2 on an 32F429 MCU and have come across a seemingly inconsistent behaviour with regards to the alternate functions mentioned on the datasheet.More specifically, I have setup pins PA0, PA1, PA2 for Output_Compare, Input_Capture and PWM against channels 1, 2 and 3 of Timer_2 respectively and although the behaviour I observe on pins PA0 and PA1 is the expected one (well nearly the expected one but will ask a new question a bit later as that's probably a separate issue), pin PA2 is entirely dead as I don't get any pulsation happening whatsoever.I checked my configuration again and again in order to make sure it's setup correctly and verified the alternate functions I've setup for the gpio pins match the datasheet but that all looked fine:I then scrolled a bit further down on the datasheet and noticed that there's an alternative alternate-function pin for Timer_2 channel 3, namely PB10:So, I tried configuring that for the PWM pin and voila, it al
I used to work with Nucleo board STM32G474 and programm them. Recently I can not open the file to programm my devices. I looks a window problem.I installed again all the ST Tools but the problem remain.I can not open files.
Hi, I have made a custom board with stm32mp135fand I tried to boot using yocto for stm32mp135f-dk and got an error in the tf-a part(fsbl) because i do not have a pmic in my board,every change that i am doing for the dts file i get an error when i "bitbake tf-a-stm32mp",each time is a different error.Can someone help me with how to change the dts file for it to work?
Hi, I'm following the "Programming guidelines for IEEE 1588 timestamping" from page 2792 of the RM0481. I've been working on this specifically for quite a while and I cannot even get the timestamp nanosecond or second registers to move. It feels to me like a clock issue, but unless I'm mistaken, the PTP clock (clk_ptp_ref_i from the manual(p.456)) is the same as the ETH clock (PLL1Q), which I've verified is running because I'm successfully using NetXDuo to negotiate DHCP and send/receive UDP packets successfully. I've also tried initializing the PTP Timestamp without NetXDuo just in case there was some conflict there, but that was also unsuccessful. Here is my initialization code: /*1. Mask the Timestamp Trigger interrupt by clearing bit 12 of Interrupt enable register(ETH_MACIER).*/ ETH->MACIER &= ~(ETH_MACIER_TSIE); PRINT_U32_BINARY(ETH->MACIER); // 2. Set bit 0 of Timestamp control Register (ETH_MACTSCR) to enable // timestamping. ETH->MACTSCR |= ETH_MACT
Hello everyone, I'm facing a very frustrating issue with USART2 on my Nucleo-L475VGT6 board using the built-in ST-LINK Virtual COM Port. What works: - ST-LINK is detected (COM3 appears, Windows sound plays on connect) - Code downloads successfully (no error in CubeIDE console) - LED blinks (proof that main() is reached and while(1) is running) - HAL_UART_Transmit is called What does NOT work: - Nothing appears in any terminal: MobaXterm, PuTTY, PowerShell serial reader - No garbage, no partial characters, just black screen - Same behavior in Run mode (no breakpoint) and after physical Reset button MY code: /* USER CODE BEGIN 0 */ uint8_t tx_buff[]={0,1,2,3,4,5,6,7,8,9}; /* USER CODE END 0 */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_UART_Transmit(&huart2, tx_buff, 10, 1000); HAL_Delay(10000); } What am I missing? Is there a jumper / solder bridge I forgot on Nucleo-L475VGT6 for VCP? Or is there a known bug with USART2 VCP on L4 series? Tha
/* * ledfunc.c * * Created on: Jan 16, 2026 * Author: roman */ #include "main.h" #include <string.h> #include <stdio.h> #include "ledfunc.h" uint8_t flag = 0; uint8_t blue_but_click_number = 0; char pressedKey='\0'; char readChar='\0'; //UART_HandleTypeDef huart2; void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { flag = !flag; char main_str[50] = "Button clicked: "; char num_str[45]; // Buffer to hold the string representation of the integer // Convert the integer to a string snprintf(num_str, sizeof(num_str), "%d times\r\n", ++blue_but_click_number); // Concatenate the new string to the main string // You must ensure main_str has enough allocated space for both parts strncat(main_str, num_str, sizeof(main_str) - strlen(main_str) - 1); HAL_UART_Transmit(&huart2, (uint8_t*)main_str, strlen(main_str), HAL_MAX_DELAY); char msg[20]; sprintf(msg, "PRESSED: %c\r\n", pressedKey); // Formats string + char HAL_UART_Transmit(&huart2, (uint8_t*)msg, str
Hi. ST There is an error in the code that is generated by CubeMx when you use 16bit in SPI DMA transfer. Can be solved in the stm32h5xx_hal_msp.c file: /* USER CODE BEGIN SPI4_MspInit 1 */ memcpy(&handle_GPDMA1_Channel1.Init,&NodeConfig.Init, sizeof(NodeConfig.Init)); /* USER CODE END SPI4_MspInit 1 */ maybe ST will look into it? Using: STM32Cube FW_H5 V1.3.0 STM32CubeMX: 6.12.1 MCU: STM32H573IIKxQ Best regards.
Hello,I want to generate four 50% duty cycle frequencies up to ~12kHz. It should be possible to enable/disable single outputs. Currently no special high requirements about accuracy, etc. Using a STM32U0 device (56MHz max).My first thought was to use an upcounting timer with four output compare channels where the timer itself is free running (ARR set to max. value). The compare channels are set to toggle on match and on each OC interrupt, the corresponding CCR register value is set to the next equivalent ARR value to toggle again. For example, if the timer is running at 1MHz and 1kHz frequency is needed, 1000 will be added to the CCR. To start/stop the output, I'd modify the corresponding OCxM value between toggle and frozen mode.However, I'm not sure if this is the most efficient way, especially regarding overhead and complexity. Another solution which came to my mind was to use a DDS approach with a (low power) timer, constantly firing interrupts at the needed resolution. On each
iam attatching a pdf of my ki cad , let me know the what prevents to flash my code . this is the below error message coming while iam trying to flash " Starting server with the following options: Persistent Mode : Disabled Logging Level : 1 Listen Port Number : 61234 Status Refresh Delay : 15s Verbose Mode : Disabled SWD Debug : Enabled InitWhile : Enabled Target no device found Error in initializing ST-LINK device. Reason: No device found on target." could you please verify the circuit
I try to start working sdMMC with DMA. When D-Cache is not active work well. But when turn it on stop work. Probably need to create MPU region , but where is located used RAM from sdMMC. And if need, how to change .ld file?
Currently designing a PCB that has a USB-C 16 pin connector. For maximum flexibility the PCB can take either a H723 or a F723 MCU. (The H723 has USB FS pins only, whereas the F723 also has USB HS pins available). This design allows it to operate in either USB in FS or HS modes but with only a single USB C port. 1 - What is best practice for wiring up the STM32 USB ID pin (FS or HS) in a USB-C scenario? Do I leave it floating, grounded, or does it need to be connected to one or both of CC1\2 ? 2 - Regarding USB connectivity, can I connect in parallel the following MCU pins (since both sets are inputs to the STM MCU) pin 69 (FS_ID) to pin 51 (HS_ID)? pin 68 (FS_VBUS) to pin 52 (HS_VBUS)? 3 - For question 2, when using a H723 MCU, pins 51 & 52 would be configured as GPIO inputs. When using a F723 either USB mode could be used, so its possible pins 68 & 69 would be configured as GPIO inputs instead. Would this parallel connectivity idea adversely affect FS_ID a
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.