Get ready for the STM32 Summit 2026 | Online, November 3
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
Please go and visit our wiki pages where you can find a lot of information on our wireless product families (WB, WBA, WL) and the supported protocols: BLE, Zigbee, Thread, Matter, Lora, ... To begin your technical journey, please start from this top page: https://wiki.st.com/stm32mcu/wiki/Category:Connectivity This top page will guide you to the first steps to develop a wireless application using connectivity protocols on ST wireless microcontrollers. For BLE protocol, please visit: https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_BLE_with_STM32https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Bluetooth_LE_Audio You can find information on BLE Certification, BLE Features, BLE Mesh, BLE Audio, … For Zigbee protocol, please visit: https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Zigbee You can find information on Zigbee certification, Zigbee Features, BLE-Zigbee concurrent mode, … For Tread protocol, please visit: https://wiki
Dear all, The X-CUBE-MATTER Expansion Package is now available on our official website following this link MATTER - Matter software expansion for STM32Cube - STMicroelectronics It is a reference implementation for the demonstration of Matter on STM32. It is ready for prototyping a Matter end-device on a reference development platform. Refer to STMicroelectronics Matter wiki articles at https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Matter to get started with matter for the supported STM32 platforms. Kind regards, Ouadi
Configuration NMEA command with QZSS 1.GPS $PSTMCFGCONST,2,0,0,0,0 $PSTMCFGCONST,2,0,0,2,0 1.Glonass $PSTMCFGCONST,0,2,0,0,0 $PSTMCFGCONST,0,2,0,2,0 1.Galileo $PSTMCFGCONST,0,0,2,0,0 $PSTMCFGCONST,0,0,2,2,0 1.BeiDou $PSTMCFGCONST,0,0,0,0,2 $PSTMCFGCONST,0,0,0,2,2 1.GPS & Galileo $PSTMCFGCONST,2,0,2,0,0 $PSTMCFGCONST,2,0,2,2,0 1.GPS & Glonass $PSTMCFGCONST,2,2,0,0,0 $PSTMCFGCONST,2,2,0,2,0 1.GPS & BeiDou $PSTMCFGCONST,2,0,0,0,2 $PSTMCFGCONST,2,0,0,2,2 1.Galileo & Glonass $PSTMCFGCONST,0,2,2,0,0 $PSTMCFGCONST,0,2,2,2,0 1.Galileo & BeiDou $PSTMCFGCONST,0,0,2,0,2 $PSTMCFGCONST,0,0,2,2,2 1.GPS & Galileo & Glonass $PSTMCFGCONST,2,2,2,0,0 $PSTMCFGCONST,2,2,2,2,0 1.GPS & Galileo & BeiDou $PSTMCFGCONST,2,0,2,0,2 $PSTMCFGCONST,2,0,2,2,2 2.Save on flash and 3.Reset $PSTMSAVEPAR $PSTMSRR $PSTMSAVEPAR $PSTMSRR
In order to have a quick response to your forum posts, the best way to ask the question is:- Give the version of the MCSDK used. - Say if the problem concerns a tool (MC Workbench, Motor Pilot, Motor Profiler, etc...) - Provide picture of tools interface when is possible.- Attach the STWB6 file of the project or the JSON of the board when possible.Choose a label for the post ( Motor Pilot MC Workbench, etc...), you can select it to the right of where you write the message.Here is a template that you can reuse:[PN]: Part Number of the products used[VERSION]: Version of MCSDK[TOOL]: Name of tool ( Firmware, MC WB,MC PROFILER, etc..)[DETAILS]:symptom observed or request/question details[EXPECTED BEHAVIOR]:if related to performance then what is the target[HOW TO REPRODUCE]:input, output, steps But before entering a new post, please consider to first check our Motor Control documentation available via Work Bench Tool by clicking on About -> Documentations -> Documentation -> i
I am noticing a particular issue while measuring the internal temperature sensor using ADC on an STM32H743. Since my Vref tends to vary with temperature, I am internally sampling the Vref to measure the correct reference to the temperature sensing unit. In the main codeblock that calculates the temperature from the ADC values, I am using the built-in calibrated values for 30C and 110C. Please see below. My ADC is setup in the following way. static void MX_ADC3_Init(void){ hadc3.Instance = ADC3; hadc3.Init.Resolution = ADC_RESOLUTION_16B; hadc3.Init.ScanConvMode = ADC_SCAN_ENABLE; hadc3.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc3.Init.LowPowerAutoWait = DISABLE; hadc3.Init.ContinuousConvMode = DISABLE; hadc3.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV4; // 64 MHz / 4 = 16 MHz // --- CRITICAL POLLING SEQUENCE CORRECTIONS --- hadc3.Init.NbrOfConversion = 2; hadc3.Init.DiscontinuousConvMode = ENABLE/*DISABLE*/; // Pauses sequence after each rank hadc3.Init.ExternalTrigCon
Hello, Our setup uses a VL53L9-based board with an STM32N657 (NUCLEO-N657X0-Q). The sensor streams RAW8 over one data lane at 1 Gbps on VC0. We are using ST’s driver, and 54 × 42 at 100 fps works well.We would like to connect three or four sensors to the N657’s CSI-2 receiver and trigger them through SYNC_IN at staggered times, so their frames do not overlap on the link. Each frame occupies the link for about 0.24 ms of the 10 ms period.We checked the receiver’s lane-state flags between frames. The clock lane remains in high-speed mode throughout streaming, while the data lane returns to the stop state (LP-11). This suggests that the sensors keep driving both lanes, which would prevent them from sharing the same lanes without a MIPI switch or bridge.Could you please clarify the following?Clock-lane mode: Can the VL53L9CX use non-continuous clock mode and return its clock lane to LP-11 between frames? If so, which register or firmware patch enables this? Pin states: Can the MIPI clock a
Hello ST Support Team,We are developing a custom evaluation board using the STM32C5A3REG6 MCU and ISM330DHCX IMU.We would like to connect our board directly to MEMS Studio via USB without using the STEVAL-MKI109D motherboard.We have reviewed UM3420 and UM3233, but would like to clarify the following: Can MEMS Studio recognize a custom STM32-based board? Is implementing the ProfiMEMS serial command protocol sufficient? Does MEMS Studio require specific USB VID/PID values, board identification commands, or firmware version responses? Is the complete communication protocol or compatible firmware source code available? Can the MLC configuration, training workflow, and sensor data visualization functions be used with custom hardware? Thank you.
Hello, I mistakenly programmed the HSM enable record into the host core DCF area at address 0x29F81A10. Could this introduce any risk of incorrect configuration? I found that I can overwrite the incorrect DCF record by programming all 0xFF. However, I am concerned that the programmed 0xFF may differ from the 0xFF of an unprogrammed blank device. Could you advise whether this operation is valid?
Hello,I am attempting to run the OpenAMP_TTY_echo_CM33_NonSecure example following this guide Modify, rebuild and reload the firmware but run into the following error when attempting to run the example.IDE ErrorError in final launch sequence: Failed pre launchFailed pre launchFirmware remoteproc load failed, please: 1. make sure that /lib/firmware on your target has space 2. make sure that /lib/firmware has write access > you can open a Console View for this..Serial Terminal Logs[ 82.376063] remoteproc remoteproc0: powering up m33[ 82.378336] remoteproc remoteproc0: Image is corrupted (bad magic)[ 82.381610] remoteproc remoteproc0: Boot failed: -22Run configuration I have attempted to use the .elf file as suggested here https://community.st.com/t5/stm32-mpus-software-development/error-using-cubeide-ro-run-an-example-application-for-the/m-p/721825 but get the a similar IDE error with the followin
Hello everyone! I am following the tutorial on st wiki on how to work with STM32MP257F-DK board. Everything was going pretty good, until the “Develop on Arm® Cortex®-M33” part. This is a really important part for me, because the main reason I chose this MPU is because of the additional low-power cortex M33 and M0 co-processors. The part where I am stuck is “Modify, rebuild and reload the firmware for A35-TD flavor”. I have successfully built the “*_sign.bin” file and populated the board with it by using the “Run_Configuration” button. However past 78% the process stops and shows an error that states:“Error in final launch sequence:Failed pre launchFailed pre launchFirmware remoteproc load failed, please: 1. make sure that /lib/firmware on your target has space 2. make sure that /lib/firmware has write access > you can open a Console View for this..”In the STM32MP2 system a log of these messages are displayed:“[ 2321.306087] remoteproc remoteproc0: powering up m0 [ 2321.307
1. Executive SummaryDuring evaluation of the vienna_stm32g474 reference project, a data-rate decoupling effect was identified in the main PFC voltage control loop. The physical DC-link voltage feedback structure (VOLTAGE_ADC_DC_IN_PHY) is calculated inside a 2 kHz telemetry task (TIM7), but it is consumed by the main cascaded controller (DPC_LCT_PFC_Ctrl) operating within the 20 kHz interrupt loop (TIM2).Although the raw ADC data is sampled at 20 kHz (TIM2) and is immediately available in the Data Layer via DPC_CDT_DcVoltageRead(), the conversion to physical units is delayed by the low-frequency task. This feedback latency was previously masked by a 16-bit register truncation error in TIM7, which forced its real execution frequency up to ~8.7 kHz. Testing confirms that relocating the physical voltage scale conversion (DPC_ADC_VoltageDCAdc2PhyProcessData) to the 8 kHz voltage loop task (TIM6) resolves this constraint, optimizing PI controller responsiveness and improving grid current w
I have an IIS3DWB10IS connected to ESP32 host MCU via four-wire SPI.It answers the WHO_AM_I correctly and lets me read out accelerometer values successfully.However, when I want to init it to ODR larger than 20 kHz what corresponds to values 0x6 (40kHz) or 0x7 (80kHz) the read back value is 0x05 (20 kHz)What only could I be doing wrong?Do I need to configure anything beforehands setting the ODR?This is the output of my initialization function:[MINI2] R WHO_AM_I(0x0F)=0x50 expected=0x50[MINI2] BDU enable: R/W CTRL3_C(0x12), wrote=0x44 readback=0x44[MINI2] Self-test positive: configure ODR=80 kHz, FS=50 g, INT1_DRDY_XL=1[MINI2] setup readback CTRL1_XL=0x05 CTRL2_XL=0x00 INT1_CTRL=0x01
Title: STM32L431 debug launch fails every other time depending on odd/even number of Flash pagesHello,I would like to report a reproducible issue with STM32CubeIDE and an STM32L431 device.Environment MCU: STM32L431CBT6 STM32CubeIDE: Version 2.2.0 Build: 29186_20260626_0934 Debugger: ST-LINK / SWD Flash page size: 2 KB SymptomFor a long time, I had an intermittent problem when starting a debug session.Approximately every second debug launch failed.Depending on the failed attempt, I observed one of the following: The program appeared not to be loaded correctly. The CPU ended up somewhere in System Memory, for example at an address around 0x1FFFxxxx. The program started, but did not stop at the configured breakpoint. In some failed sessions, peripheral registers could no longer be read from the debugger. Initially, I suspected BOOT0, reset timing, SWD speed, or hardware noise.However, the same physical PCB worked reliably when I programmed another firmware project into exact
Hello all,I’m building a prototype of simple digital clock that shows the current time in 24 hour format with 29 LEDs. The schematic also shows a 10-LED bar, but it is not implemented at the moment. The LEDs are divided into four banks: minutes, tens of minutes, hours and tens of hours. LED cathodes are controlled via two 8-bit shift registers driven via SPI2 & two GPIO pins.I’m prototyping with a Nucleo-F410RB board which uses the STM32F410 chip. I’m using the STM32Cube and STM32CubeIDE for development.I would like to know if it’s possible/feasible to use a 4-channel timer (such as TIM1) in PWM mode for driving the four multiplex signals (MPX0..3 in the schematic below)? Or is GPIO pins with software control the best choice for this application?Thank you for your advice!LED display schematicSTM32 I/O pinsMy messy prototype setup showing the time “07:18” and one bi-LED showing the status “green”.
RefMan RM0522 version 1.0 seems to conflict with the datasheet DS15137 - Rev 3 and DS15136 - Rev 1.RM0522 Table 23 says that all three calibration values (Vrefint, TS_CAL1 and TS_CAL2) are stored as 32-bit words.Both Datasheets’ sections 5.3.5 specify the Vrefint calibration value as 24-bit. (?! - looks like a mistake)Both Datasheets’ sections 5.3.20 show the TS_CALx values as 16-bit, as in most of other STM32 models.
We used to define STM32 pinout in STM32CubeMx since it's aware of all the possiblilities of the MCU.Then we manually need to transfer the pnout into Altium Designer Schematic. And to keep those in sync when design changes.So we want to automate that step if possible.Thus the question: How can I Import pinout generated from STM32CubeMx into Altium Designer Schematic.
Hii’m triyng to use USBX audio class on nucleo-h563zi. i have succed to make PC to recognise the board like a controller audio but windows have problem to start the device (error code 10), problem 0xA status: 0xC0440027i’m stuck at this fase unfortunately also i think there are some missing files in the middleware directory, in the example provided by ST UX_Device_Audio2.0_Playback (not sure is related to the error to start device)there is this code: VOID USBD_AUDIO_PlaybackStreamChange(UX_DEVICE_CLASS_AUDIO_STREAM *audio_play_stream, ULONG alternate_setting){ /* USER CODE BEGIN USBD_AUDIO_PlaybackStreamChange */ /* Do nothing if alternate setting is 0 (stream closed). */ if (alternate_setting == 0) { return; } BufferCtl.state = PLAY_BUFFER_OFFSET_UNKNOWN; /* Start reception (stream opened). */ ux_device_class_audio_reception_start(audio_play_stream); /* USER CODE END USBD_AUDIO_PlaybackStreamChange */ return;}the function ux_device_c
Page 47 Figure 15. GND Plane: GND plan instead of GND planeGuidelines for oscillator design on STM8AF/AL/S and STM32 MCUs/MPUs - Application note Can’t attach a screenshot for some reason
I have many timers working on out H743VIT6 board, so only have Tim2, 5, 12 and above available.I have many forms of of timer triggered DMA working, but in this case as the system is near to max capacity, I need a DMA event scheduled for 52uS in the future WITHOUT using IRQs which are not time-stable enough for the purpose.So I found that timer 16 in table 98 of the RM0433 manual is show connecting to timer 2, but in CubeMX timer 15 shows no trigger source!So I though I would set up timer 5 to count down 52uS and trigger its DMA stream to write a half word to CR1 of Timer 15, that was setup to pace its own DMA stream. Now I can get tier 15 triggering and DMA transfering it I enable it via the end of event cllback for timer 5, but DMAing to CR1 of an diabled timer doesn’t seem to work.It’s a very complicated problem! // Arm one amplitude bank, started by a TIM5 countdown delay to trigger DMA write to enable a target timer with DMA streamHAL_StatusTypeDef ArmOneBank(uint32_t *pwm_values,
Are the 4 MSbits of the M24M04E-F slave address completely fixed at 1010? So incompatible with another I2C peripheral on the same bus sharing the same 4 MSbits slave address, yes? Is there a clever way around this? (I know it can be changed on the M24M02E-F.)
Device: STM32H523xxReference Manual: RM0481Description of Issue:We are observing an apparent discrepancy between the documented initialization behavior of the Epoch programming registers and the actual silicon behavior.According to RM0481 Table 90 (Option byte loading description), both FLASH_SECEPOCHR_PRG and FLASH_NSEPOCHR_PRG are specified to be loaded from option bytes during a system reset / option byte reload sequence. This implies that after a successful boot or reload cycle, the _PRG registers should mirror the current active values found in their respective _CUR registers (FLASH_SECEPOCHR_CUR and FLASH_NSEPOCHR_CUR).However, during live register readbacks in our firmware (running at HDPL1), both FLASH_SECEPOCHR_PRG and FLASH_NSEPOCHR_PRG consistently read back as 0x00000000, even when the corresponding _CUR registers contain non-zero, successfully committed epoch values.Per §7.11.21 and §7.11.22, both _CUR registers allow Secure/Non-Secure reads and are behaving exactly as exp
Hello I’m planning to try using the ToF sensor (VL53L5CX) on the B-CAMS-IMX (MB1854B) with OpenSTLinux on the STM32MP257F.Looking at the kernelconfig,> Device Drivers > Industrial I/O support > Proximity and distance sensorslists “STMicroelectronics VL53L0X ToF ranger sensor (I2C)”; can I use the VL53L5CX with this driver? Or would it be better to use this driver instead?Linux driver for VL53L5CX multi-zone sensor For now, before I set up a device driver,I’m planning to try accessing it via the I2C driver using Ultra Lite Driver (ULD) for VL53L5CX multi-zone sensor Best Regards,--okn
MCU: STM32MP215DAN3 (custom board, STM32MP2 series)STM32CubeMX versions tested: 6.17.0 and 6.18.1 — identical crash in bothSTM32Cube FW_MP2: V1.3.1Steps to reproduce:Open a working project where SDMMC1 is the boot device (A35 ROM + A35S(TF-A_BL2) runtime context checked) In SDMMC1 Mode and Configuration: uncheck A35 ROM and A35S(TF-A_BL2) In SDMMC2 Mode and Configuration: check A35 ROM and A35S(TF-A_BL2) (making SDMMC2/eMMC the new boot device instead of the SD card) Save project, click Generate CodeResult: Code generation crashes with the following exception, reproducible 100% of the time with this exact configuration: java.lang.NullPointerException: Cannot invoke "javax.swing.table.TableModel.getRowCount()" because "RifIPExtraTableModel" is null at com.st.microxplorer.mcu.rif.RIFService.getExtraTableModel(RIFService.java:341) at com.st.microxplorer.codegenerator.McuDataModel.getRIFInfo(McuDataModel.java:824) at com.st.microxplorer.codegenerator.McuDataModel.initMcuData(McuDa
I received VND5160JTR-65-E instead of VND5160JTR-E. Which are the differences between them? What do the additional characters ‘-65’ mean?
Subject: STM32F373CCT6 SDADC: Wrong Readings with VDDA Reference on One Board After Environmental TestingHello ST Support Team,We use the STM32F373CCT6 to read four analog inputs with SDADC1 and SDADC2. One of our boards developed a problem during environmental testing (temperature change, dry heat, cold, damp heat cyclic and steady state), where it ran in full-function mode throughout.What happenedThe board worked correctly until day 2 of the damp heat steady-state test (40 °C). Then all four channels read with an offset (for example, a 100 V input read as 50 V). After a power cycle it worked for 2 to 3 hours, then read full scale (3.3 V) even with no input. Reflashing the firmware did not help.A couple of days later we debugged it with the same firmware (internal VDDA reference). With no input, each channel should read 1.65 V (confirmed with a multimeter at the MCU pin), but the firmware reads 1.85 V on all four channels. With the reference set to internal 1.8 V, the readings are cor
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.