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
Hello teachers, I am a developer of the STM32MP157F chip and would like to ask you a question about device tree configuration. Please help me. The version I am currently using is as follows: optee 4.10 uboot 2023.10 linux 6.6 At present, the system startup is stuck in the kernel stage. I have attached the device tree and system startup log. Can you help me analyze the specific reasons? Thank you very much. I've been stuck on this problem for many days。NOTICE: CPU: STM32MP157FAD Rev.ZNOTICE: Model: STMicroelectronics STM32MP157F eval OSTL daughter on eval motherINFO: PMIC version = 0x21NOTICE: Reset reason (0x15):INFO: Power-on Reset (rst_por)INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe1000INFO: FCONF: Reading firmware configuration information for: stm32mp_fuseINFO: FCONF: Reading firmware configuration information for: stm32mp_ioINFO: Using SDMMCINFO: Instance 1INFO: Boot used partition fsbl1NOTICE: BL2: v2.10-stm32mp1-r2.0(debug):()NOTI
Hi there! First of all, thank you for taking the time to read this!!! Any input is welcome. I'm working on a project with a Nucleo-H563ZI board, and did something quite dumb: went and set the PRODUCT_STATE to CLOSED from within some dummy FW, and now I'm stuck. I can see the FW is running (LED task is blinking), but now I can't seem to access the device through Debug Authentication to bring it back to OPEN. When I click on Full Regression STM32CubeProgrammer complains about "Password file not found" Which is more than logical because I did not provide one (you can see on the first image). Since I didn't set any password, I tried passing in an empty file created by running: touch empty.bin And then, it complains with: Is there some way to run a regression? Or do I now have a pretty brick? Thanks in advance!!
How is it with availability, are we updating what was once part of CubeMX? namely STemWin, i.e. the Segger enWIN version that was offered for free for the STM32 processor?I didn't find anything about ST, except that it's not part of newer versions of CubeMX.You can find STemWIN on Segger's website, but they're basically just trying to sell emWIN at a discount.Alternatively, where can I download the latest version of this library?Thank you for the information.
STM32H523CET6 stuck in PRODUCT_STATE=0x17 (PROVISIONING)TZEN=0xC3 (disabled), DA not configured, BOOT_UBE=0xB4CubeProgrammer v2.22, all regression attempts faildebugauth=2 returns: "unable to boot on RSS_DA or is in OPEN mode"After this function it bricked:void LockCode(void) { FLASH_OBProgramInitTypeDef OBInit = {0}; HAL_FLASH_Unlock(); HAL_FLASH_OB_Unlock(); HAL_FLASHEx_OBGetConfig(&OBInit); if (OBInit.ProductState == OB_PROD_STATE_OPEN) { OBInit.OptionType = OPTIONBYTE_PROD_STATE; OBInit.ProductState = OB_PROD_STATE_PROVISIONING; HAL_FLASHEx_OBProgram(&OBInit); HAL_FLASH_OB_Launch(); } HAL_FLASH_OB_Lock(); HAL_FLASH_Lock(); }Edited to apply source code formatting - please see How to insert source code for future reference.
Hello everyone,I am developing a cellular IoT device using STM32L4 + SIM7600G-H 4G module. The goal is to create a highly reliable driver that can handle every possible disconnection, network drop, MQTT event, and recovery scenario without losing data or getting stuck.Requirements:Heavy use of UART DMA (Circular RX buffer + IDLE line detection)Full finite state machine for modem management (Power on → Network → PDP → MQTT → Operational → Recovery)Robust parsing of all URCs (+CMQTTDISC, +CLOSED, registration changes, etc.)MQTT communication with ThingsBoard (telemetry, client attributes, shared attributes, RPC, firmware OTA/FOTA)Reliable reconnection logic with exponential backoff, message queuing during offline periods, and modem watchdog (power cycle on repeated failures)Questions:What is currently the best recommended way in 2026 to implement such a driver on STM32L4?Has anyone successfully used X-CUBE-CELLULAR with SIM7600 series? Is it worth porting, or is it too LPWAN-oriented for
Hello,I would like to request an enhancement to the search functionality in STM32CubeMX's pinout view.Currently, the search works well for exact or partial matches — for example, typing "usart1_rx" highlights the relevant pins. However, it would be very useful to support wildcard characters, allowing searches such as:- usart?_rx — match RX pins across all USART peripherals (USART1, USART2, etc.)- usart1_?x — match both RX and TX on USART1- *art*_?x — match all RX and TX signals on LPUART, UART, USARTThis would be especially helpful on larger packages with many peripherals, where you want to quickly visualize all pins serving a particular role across multiple instances of the same peripheral.The implementation complexity should be low — this is essentially replacing the existing string match with a simple wildcard pattern matcher against the same search index.Thank you for considering this improvement!
Hello, ST experts It is found that USB_D+&USB_D- pins(PA12&PA11) of STM32U595 in our own design are very sensitive to ESD strike. When USBPHY power is not on as reference manual said, I think it is only 3.3V tolerant in this case, but not 5V tolerant, am I right?And in 3.3V tolerant case, what ESD protection way should do? e.g. USBLC6 can be effective? Best RegardsYang
Hello, I have recently received a shipment of STM32F446RCT6 microcontrollers and I need verification of the ST label for quality assurance and production clearance. Could you please assist in confirming if the attached label and packaging details conform to official STMicroelectronics standards? [Photo removed to prevent bulk ID abuse]
I would like to use the board's built-in microphone to display audio data visualization on an LCD screen. I want to add more display modes later, but at the moment I only have basic waveform time domain display.I use the built-in microphone to record audio, which I then convert to PCM using PDM2PCM middleware. However, there seem to be no correlation between the sound and the pcm values. Whether I speak, turn the music on, or do nothing at all - pcm values are about the same.Moreover, every position in the PCM buffer hovers around the same value. For example, some positions are about ~-11000 no matter what, and the other are about ~20k no matter what. So, the audio visualization is almost flat with some random noise.I assume that there is something wrong with how I use the mic or pdm2pcm. The I2S and middleware settingsExample PCM values The code/* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ /* USE
Hardware: STM32 NUCLEO-WB15CC (STM32WB15CCUX) RTOS: FreeRTOS BLE stack: STM32WB WPAN / BLE via CPU2 (M0+) Hi, When writing a small configuration block (~48 bytes) to the internal Flash from CPU1 (M4 FreeRTOS task), the BLE connection drops immediately. The disconnect event is received on the host side with no prior warning, and the firmware logs a HCI_DISCONNECTION_COMPLETE_EVT shortly after the Flash erase/write sequence begins. The Flash region used is a dedicated 2 KB NVM page at address 0x0801B000 (defined in the linker script as FLASH_NVM): FLASH_NVM (rx) : ORIGIN = 0x0801B000, LENGTH = 2K --- Data Written --- The payload written is 48 bytes (already 8-byte aligned), structured as: [magic: uint32_t (4 B)] [Config_t (40 B)] [checksum: uint32_t (4 B)] The Config_t struct: typedef struct { uint16_t volume_shown; uint16_t client_timeout_ms; uint16_t cup_detection_threshold; uint16_t flow_timeout_forward_ms; uint16_t flow_timeout_backward_ms; uin
Hi Team,I am working on board design using STM32H745 (LQFP176 package), and I would like to confirm the correct external memory selection for my smart kitchen application.Application details:- MCU: STM32H745 (dual core)- Package: LQFP176- USB OTG FS used as HOST to interface a USB camera- Camera usage: Snapshot (JPEG only, no continuous video streaming)- Current: 2MP- Future plan: up to 5MP snapshot- Additional peripherals:- I2S (audio codec interface)- 4× I2C buses- UART / RS485- 2× SPI For external memory, can I use QSPI PSRAM (APS6404L 8MB), or should I use SDRAM via FMC? Please advise which memory type is recommended. Any guidance or recommended reference designs would be helpful. ThanksSathiya
Hi everyone, I’m using MotorControl Workbench with X-NUCLEO-IHM08M1 and NUCLEO-G474RE and browsing through the user manual: file:///C:/Program%20Files%20(x86)/STMicroelectronics/MC_SDK_6.4.2/Documentation/html/pages.htmlIn my project (under the various headings in the left-hand section), there are a few settings that I don’t know how to configure, and I can’t find any explanation for them in the manual. I will list the parameters in question, grouping them by category.1) PWM Generation1a) What is PWM Idle state high side? And low?Should I set them according to what is written in the L6398? If it uses active high inputs for the upper side (HIN) and active low inputs for the lower side (LIN), I think I should set them that way, right?1b) How to set Charge boot capacitor duty and Charge boot capacitor time?I will refer to “AN5789 Considerations on bootstrap circuitry for gate drivers",but I ask you for advice on these two parameters (duty and time)2) Current Sensing2a)
Hello, I was able to successfully implement a way to read motor status and various parameters through UART on putty with my B-G431B-ESC1. However, when I tried following tutorials to add a way to also control the motor status (turning it on and off), I keep getting no response from the motor when I type commands in putty. I don't know if something is wrong with my code or with the way I set up putty, but im leaning more towards the code since the TX part works well. Im quite a beginner with this so maybe its something very ***, but i really cant wrap my head around it. Linked to the post is my main.c. thank you.
Hi! I’m working with the STM32N6570-DK board using an object detection AI model, and I would like to manually modify the camera parameters. I believe settings such as exposure, white balance, and similar controls are currently configured automatically, but I want to use fixed/manual values instead.I already tried modifying the cmw_camera.c file, but nothing changed. Which files do I actually need to modify in order to set specific camera parameter values? Do I need to use a dedicated tool for this?I’m using the IMX335 camera module.
Hello, In order to comply in advance with the incoming CRA regulation, we would like to have RDP1 enabled on our U575. In order to do this the fw, in the early stages of the initialization procedure, will have to check if it's in RDP0 by reading the related OBs and, if so, it will set RDP1 using HAL_FLASHEx_OBProgram: HAL_FLASH_Unlock(); HAL_FLASH_OB_Unlock(); HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct); if(OB_RDP_LEVEL_0 == OptionsBytesStruct.RDPLevel) { OptionsBytesStruct.OptionType = OPTIONBYTE_RDP; OptionsBytesStruct.RDPLevel = OB_RDP_LEVEL_1; if(HAL_OK == HAL_FLASHEx_OBProgram(&OptionsBytesStruct)) { HAL_PWR_EnterSTANDBYMode(); //HAL_FLASH_OB_Launch(); } } So far so good, but now it's time to make this changes effective. As far as I understand from other tickets and by practically testing on my board, calling HAL_FLASH_OB_Launch (commented in my code) will enable RDP1 only after a power cycle of the board. I tried to issue a hard reset usi
Hi everyone,I have successfully implemented a USB VCP device on STM32G0C1 microcontroller, and it communicates perfectly with my PC.To meet current product trends, I am migrating the connector to USB Type-C (schematic attached). I am keeping it as a USB 2.0 interface. For reference, here is my current pin configuration based on the schematic:GND (Pins 1 & 12): Grounded.VBUS (Pins 2 & 11): Left floating (my device is self-powered and does not require host power).CC1 / CC2 (Pins 3 & 9): Each independently pulled down to GND via a 5.1kΩ resistor.During testing, I encountered the following issue:Using a Type-A to Type-C cable: The PC successfully recognizes the device and it works perfectly.Using a Type-C to Type-C cable: The PC fails to recognize the device at all.Could you please help me check if there is an error in my schematic? Are there any specific Type-C initialization rules or pin configurations that I must follow for C-to-C connections to work properly?Thanks in
Hello, when I was using the SDIO of F407, I encountered a problem where the SD card could only read but not write. When I enabled "HardwareFlowControl" and set "ClockDiv" to 2, the function was normal. Why is that? When I operate the SDMMC of the H750, it's the same. It must be set to the above Settings.I checked the waveform of the SD card. In terms of waveform quality, it's okay.The waveform of the clock is shown in the following figure
Hello, I am developing a project using the TCPP03 (X-NUCLEO-DRP1M1) and the ST USB-PD stack on an STM32G0 with FreeRTOS. I am concerned about the thread safety of the FLGn interrupt handling. In the standard BSP examples, the EXTI interrupt calls BSP_USBPD_PWR_EventCallback(). I2C Contention: Since BSP_USBPD_PWR_EventCallback() performs blocking I2C reads (ReadFlagRegister), what prevents the PE_Task or CAD_Task from attempting an I2C transaction at the same time? ISR Safety: In an RTOS environment, is it considered safe to perform blocking I2C calls inside the FLGn ISR, given the risk of HAL_BUSY or kernel priority issues? Best Practice: Does ST recommend a Deferred Interrupt pattern (e.g., using USBPD_DPM_CADTaskWakeUp) to move the I2C diagnostic logic out of the ISR and into a thread context?
Hello, I am following this guide:How to integrate TouchGFX and camera middleware on an STM32N6570-DK and seem to be getting an I2C1 undefined reference (below). Is there something I need to change? I have I2C2 enabled in my .ioc, but don't see anything about enabling I2C1C:/TouchGFXProjects/VisionControlboard/STM32CubeIDE/Appli/Debug/../Middlewares/stm32-mw-camera/cmw_camera_customized.c:1951:(.text.CMW_CAMERA_IMX335_Init+0x144): undefined reference to `BSP_I2C1_Init' C:/ST/STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.14.3.rel1.win32_1.0.100.202602081740/tools/bin/../lib/gcc/arm-none-eabi/14.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/TouchGFXProjects/VisionControlboard/STM32CubeIDE/Appli/Debug/../Middlewares/stm32-mw-camera/cmw_camera_customized.c:1951:(.text.CMW_CAMERA_IMX335_Init+0x148): undefined reference to `BSP_I2C1_DeInit' C:/ST/STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltool
If I add a new .c file to my project in core/src it does not get recognized and is not complled. How do I get it into the make list?Thanks
Hi everyone,I'm trying to install the EGit plug‑in on STM32CubeIDE version 1.14.1, but I'm running into persistent issues.During the installation, the dependency calculation phase fails, and CubeIDE proposes alternative solutions. If I continue using the option to keep the original installation and modify only the required components, the process eventually ends with an installation error.The exact same problem also occurs on STM32CubeIDE version 2.0.0, so it doesn’t seem related to a single release.Below is the full error log I receive:An error occurred while collecting items to be installedsession context was:(profile=STM32CubeIDE,phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).No repository found containing: osgi.bundle,javax.annotation,1.3.5.v20230504-0748No repository found containing: osgi.bundle,org.eclipse.emf.common,2.29.0.v20230916-0637No repository found containing: osgi.bundle,org.eclipse.emf.ecore.xmi,2.36.0.v20231002-1156No repository found
To whom it may concern: I am looking at your STEVAL-IPFC12C1 evaluation board schematic and there is a part that doesn't make sense to me. Why would "GND_BRG_SW" be connected to V_INPUT? Are you not connecting low voltage line to a high voltage line?
void HAL_MRSubG_IRQ_Callback(void) { uint32_t irq = __HAL_MRSUBG_GET_RFSEQ_IRQ_STATUS(); if (irq & MR_SUBG_GLOB_STATUS_RFSEQ_IRQ_STATUS_RX_OK_F) { last_rx = HAL_GetTick(); HAL_GPIO_WritePin(LD1_GPIO_Port, LD1_Pin, GPIO_PIN_SET); if (HAL_MRSubG_GetBytesOfTransaction() <= ring_buffer_u8_free(&radio_ring_buffer) && radio_packet_fifo_free(&radio_packet_fifo) != 0) { for (uint8_t i = 0; i < HAL_MRSubG_GetBytesOfTransaction(); i++) { ring_buffer_u8_write(&radio_ring_buffer, radio_rx_buf[i]); } radio_packet_t radio_packet = { .len = HAL_MRSubG_GetBytesOfTransaction(), }; radio_packet_fifo_write(&radio_packet_fifo, radio_packet); } __HAL_MRSUBG_STROBE_CMD(CMD_RX); __HAL_MRSUBG_CLEAR_RFSEQ_IRQ_FLAG( MR_SUBG_GLOB_STATUS_RFSEQ_IRQ_STATUS_RX_OK_F); } if (irq & MR_SUBG_GLOB_STATUS_RFSEQ_IRQ_STATUS_RX_TIMEOUT_F) { __HAL_MRSUBG_STROBE_CMD(CMD_RX); __HAL_MRSUBG_CLEAR_RFSEQ_IRQ_FLAG( MR_SUBG_GLOB_STATUS_RFSEQ_IRQ_STATUS_RX_TIMEOUT_F); } if
Hello, I want to cancel my attendance to one of the online workshops as I won't be able to attend, by I can't find any contact information or procedure to do it.
In AN2606 Rev. 70, Chap 90 Device-dependent bootloader parameters table 226 the RAM area accessible from the bootloader seem inconsistant: - C031xx has a negative RAM range, excluding RAM at bottom and top of full RAM range as accessible from the bootloader- C01xx RAM range declares all RAM as accessible - C031xx excludes RAM at bottom and top of available RAM Please confirm these values. 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.