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,I am following the blog "Implementing Debug Authentication on STM32H5 using CLI tools" (https://community.st.com/t5/stm32-mcus/implementing-debug-authentication-on-stm32h5-using-cli-tools/ta-p/622308) to provision my STM32H533RE based custom board on which i have configured secure word only(All the peripherals configured as secure) and i have disabled Non Secure Project from "Project Manage" tab of STM32CubeMX, and I am now stuck with the device in CLOSED state with no way to regress.Environment:Board: NUCLEO-H533RE (STM32H533RET6)STM32CubeProgrammer: v2.22.0STM32CubeH5 Firmware: v1.6.0ST-LINK FW: V2J47S7SFSP Version: v1.2.0OS: WindowsWhat I did (step by step):Step 1 — Flashed secure firmware (succeeded with mode=UR):STM32_Programmer_CLI.exe -c port=SWD mode=UR -e all -d C:\H5\Binary\Sec_FP_Sensor_v1_2_Secure.elf -vResult: :white_heavy_check_mark: Download verified successfullyStep 2 — Set product sta
I am coding from the scratch to learn how STM32 works with MIPI-DSI LCD, because I am going to use customized MIPI-DSI LCD. I refer to the official code, but some incorrect content as below:official default code: in main.c , static void MX_LTDC_Init(void):// SETVCOMuint8_t InitParam60[4] = {00, 00, 00, 0xC0};if (HAL_DSI_LongWrite(&hdsi, 0, DSI_DCS_LONG_PKT_WRITE, 4, 0xC7, InitParam60) != HAL_OK){Error_Handler();}BUT, I check HX8379C datasheet (LCD control ), SETVCOM command is (B6h), and there is no 0xC7 command ?so what's this code for? and HX8379C datasheet dosen't mention initial sequence , how do we know that we need to set SETPOWER, SETDISP, Set display cycle timing,.....SET GAMMA,....,then Exit Sleep Mode to let LCD work? I don't use touchgfx now, just want to test if DSIHOST, LTDC work successfully, so I declare a framebuffer[480*480] then in MX_LTDC_Init(), write:pLayerCfg.FBStartAdress = (uint32_t)framebuffer;then using for loop
Split from WiFi or WiFi+BT modules architecture and parts recommendations as that's really a separate question!Thank you @Andrew Neil I didn’t explain myself very clearly. The part I’m mainly interested in is the audio side — specifically, a microcontroller with some kind of audio I/O capability, such as microphone input and speaker output, for recording (and then saving to uSD - perhaps using DMA if it makes sense). I’ve never worked with microcontrollers for audio recording before, so if such micro is not available, I’m also open to a low-cost solution/architecture that uses external components.Thank you
Hi there,I am trying to deploy a quantized LiteRT (TF Lite) stateless LSTM model to a Nucelo-H723 using CubeMX, X-Cube-AI, and CubeIDE. However, when I go to compile the generated code in CubeIDE, I get the following linker errors (full console output at bottom of this post) related to undefined references to arm_vector_sum_s8, arm_nn_vec_mat_mul_result_acc_s8_s16, and arm_nn_activation_s16 from the NetworkRuntime1020_CM7_GCC.a static library. Any suggestions on what the fix might be? Additional configuration information:We configure CubeAI inside of CubeMX to flash the system performance variant, and can load and analyze our LSTM model within the Cube-AI window in CubeMX with no issues.We also configure the H7 to use icache, dcache, CRC. We've been able to run other models (MLP) with no issues.Console Error:C:/ST/STM32CubeIDE_1.19.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.14.3.rel1.win32_1.0.100.202602081
The ST1S06xx datasheet (https://www.st.com/resource/en/datasheet/st1s06.pdf) contains an error: Figure 10 "Input voltave vs output voltage" has the axes labels swapped:A correct version of the Input voltage vs output voltage characteristic can be found in figure 7 of Application Note 2371 https://www.st.com/resource/en/application_note/an2371-st1s06-high-frequency-synchronous-buck-converter-stmicroelectronics.pdf : The datasheet is also missing details on a crucial characteristic: output voltage vs current. In my circuit I have R1=18k, R2=5.6k. Nominal output should be Vout = 0.8V*(1+18/5.6). With a load of 600mA I measure Vout = 3.36V; increasing the load to 800mA, Vout = 3.16V. Another crucial characteristic that's missing detail is dropout voltage: the only indication is figure 11 mentioned above, which suggest for a 1.2V / 1.5A output the dropout voltage is approx 1.1V, but there's no indication of how that changes with input/output voltage or current.
(I tried to submit a ticket but the system seems broken, giving an obscure error about an incorrect zip code).I need to confirm which version of STM32 is placed on a board. There are two versions, GP and PD. The datasheet does not really specify how the top marking is different for the two versions. Any ideas?Thanks, Pete
We want to use the STSPIN32G0A1 evb, we cant find its schematics of it.
I was handed an existing build that creates an SD card image for STM32MP1 and, while the partition allocated for the root filesystem is a gargantuan 9G, it's clear the filesystem created inside it is much smaller -- around 512M -- and I'm already at 98% full. I'm using ST's SD card image creation script, and I have looked for the variable where I can specify a larger root filesystem. I've seen a couple other posts here that provide suggested solutions, but those don't appear to work. Is there a single controlling variable that identifies the desired size of the actual root filesystem (independent of the size of the containing partition)? I'm assuming that value would be fed to a "mke2fs" command somewhere. P.S. I'm using the walnascar release of the meta-st-stm32mp layer.
Hello, in the STM32H753xI datasheet, Table 11, "Total current into sum of all VDD power lines (620mA)," is the voltage condition VDD = 3.3V? I would also like to know the current at VDD = 1.8V.
I am trying to capture data from the LINE_IN (blue jack on board), but I am not receiving the correct input. I evaluated my output at the oscilloscope and noticed that I am not receiving the sinusoid I am injecting; the frequency is correct, but the data appears clipped, as shown in the picture. I tried to reduce the Vpp, but it just started getting noisy instead of giving the correct input.My second test was to record on the sd card, and the problem persisted; I am only getting data above zero and noiseI am using the BSP library stm32h735g_discovery_audio.c, and to get the correct frequency that I was inputting, I modified these values in the BSP_AUDIO_IN_Initmx_config.FrameLength = 64;//changed: prev:128 mx_config.ActiveFrameLength = 32;//changed /An changed the number of slots like this:hsai->SlotInit.SlotNumber = 4; /* WM8994 TDM mode: 4 slots */I also tried to modify these registers from the audio codec directly, but nothing seems to make it work:* Disable mute on IN1L_TO_
Hi I am trying to use the AEK-POW-BMSWTX to read cell voltages from an Optipower OPR50006S50 Lithium Ion battery. I only want the cell information, not interested in battery management itself. I'm using SPI2 from an STM32G474RE. I have spliced pin C0 to the GND EXT pins and the GND terminal of the battery, then used C1 through C6 for cell wires. C6 is spliced to C7 through to C14, finally the positive terminal of the battery is connected to VBAT. The issue I am finding despite no MISO comms from the board is LED D2 goes off after 60 or so seconds. My SPI function is as below: void BMS_Read(uint8_t *rxBuf, uint16_t len) { uint8_t wake[5] = {0x55,0x55,0x55,0x55,0x55}; uint8_t rxBuf[8]; HAL_GPIO_WritePin(SPI2_BMS_CS_GPIO_Port, SPI2_BMS_CS_Pin, GPIO_PIN_RESET); HAL_SPI_Transmit(&hspi2, wake, 5, HAL_MAX_DELAY); for (uint16_t i = 0; i < len; i++) { uint8_t dummy = 0xFF; HAL_SPI_TransmitReceive( &hspi2, &dummy, // generate clock &rxBuf[i],
I have a project that is using custom hardware with a STM32G0B1CBT6 processor. The code is developed using STM32CubeIDE and STM32CubeMX. However, there are times when I am unable to run a debug session and I'm seeing (very) occasional Hard Faults.I have a diagnostic serial port and have successfully modified my Hard Fault Handler to dump additional information out that port.So what I'm after is some code that can read registers and/or the stack to provide additional information that I can use (along with the map file, etc) to determine where my Hard Fault is happening.Can anyone point me in the right direction? All my searches have shown me code that references registers I can't seem to find in the docs.Thanks.
Hi,I am setting up SBSFU on our STM32H750. I want to test the RDP and WRP security protections.Steps taken so far:I have enabled WRP and RDP Level 1 by setting the option bytes through cubeprogrammer and enabling SFU_WRP_PROTECT_ENABLE & SFU_RDP_PROTECT_ENABLE in app_sfu.hI have enabled SFU_TEST_PROTECTION in app_sfu.h Note:There are several test cases in sfu_test.c that I am using. The tests in questions are attached below:TEST_ERASE_FLASH is failing. Output:I am not sure why this would be. Does anyone have any advice?
Hi everyone,I am struggling to get MotionFX (9-axis sensor fusion) working on an STM32L476G-DISCOVERY board using the onboard LSM303C (Acc/Mag) and L3GD20 (Gyro).The Problem: Despite the library being initialized and updated in the main loop, all outputs (data_out.rotation, quaternion) remain strictly at 0.0.Current Status & Observations:Hardware CRC: Enabled and verified. The CRC->DR register changes value constantly, proving that MotionFX_update is processing data.Timing: The loop is running at 100Hz. I've tested with both a calculated dt and a fixed dt = 0.01f, but the output remains zero.Input Data (data_in):Acc: ~1.0g on Z-axis when flat (normalized to g).Gyro: Normalized to dps (values around 0-5 dps at rest).Mag: Values around -500 µT (normalized using 0.58f LSB for 16G scale).Memory: mfx_buffer is 2450 bytes and aligned to 32-bit (uint32_t array).Configuration: * mfx_knobs.output_type = MFX_ENGINE_OUTPUT_NED;Library enabled in both 6X and 9X modes.
Hi everyone,I’m currently working with the CR95HF and looking into using the provided DLL (CR95HF.dll) for PC-side communication.From the documentation and software packages I understand that a DLL is provided to interface with the CR95HF demonstration board (). However, it seems this DLL was originally built for older environments and is typically installed in x32 systems, which suggests it may be a 32-bit library.I searched the community and found a previous discussion where someone asked about x64 compatibility ( Solved: CR95HF DLL for x64 - STMicroelectronics Community ) and was provided with source code instead of a precompiled DLL.So my questions are:Is there now an official x64-compatible version of the CR95HF DLL available?Or is the recommended approach still to request/use the source code and rebuild the DLL for x64 systems?If rebuilding is required:Is there any official guidance or updated project for generating a 64-bit version?Thanks in advance for your help!
Hello , i would like to know how can we set the pwm channels in stm32cubemx as well as the serial wire debug , because i want to set up a project with STM32C5A3RGT6 but under the debug we have no 2 wire serial wire debug option. Edit: Moved from Introducing STM32CubeMX2, a new flavor of STM32CubeMX tool
Hello,I have two technical questions regarding the lis3dh accelerometer behavior and interrupt configuration.1) Are the values I read from the LIS3dh in m/s²???? Exemple :::Accel [LIS3dh] 28807220458ns (-7.300384, -1.942303, -5.712095)2) Interrupt logic (INT1_CFG :: XLIE / YLIE / ZLIE)When I configure an interrupt threshold, for example 5 m/s², and enable the axis event bits in INT1_CFG XLIE / YLIE / ZLIEDo the Low events correspond to the following type of comparison?X < threshold, Y < threshold, Z < thresholdOr do they correspond to:|X| < threshold, |Y| < threshold, |Z| < thresholdFor instance, if I have the following measured values and the interrupt threshold is set to 5 m/s²:Would this condition trigger an interrupt or not, according to the configured AOI ,XLIE / YLIE / ZLIE (i put 1 for this register)???Accel [LIS3DH] 29380340576ns (-18.442175, -19.566559, -19.461311)Thanks for your response
I have an old project developed with the STM32CubeIDE, which I would like to import into VSCode. I attempted to run "Convert Eclipse STM32CubeIDE Project", and the converter created some files in the destination folder.Yet, the conversion fails with this error message:2026-04-22 10:23:09.874 [Info] [ide-project-convert] Starting project conversion... 2026-04-22 10:23:10.173 [Info] [ide-project-convert] cube wrapper version: 0.10.2 2026-04-22 10:23:10.193 [Info] [ide-project-convert] Invoking STM32CubeIDE Eclipse exporter... 2026-04-22 10:23:18.988 [Info] [ide-project-convert] Generating project... 2026-04-22 10:23:19.054 [Error] [ide-project-convert] [ { instancePath: '', schemaPath: '#/required', keyword: 'required', params: { missingProperty: 'configurations' }, message: 'must have required property 'configurations'' } ] 2026-04-22 10:23:19.055 [Error] [ide-project-convert] /Users/me/projects/private/flipper/firmware-vscode/stm32cubeide-export.json does not conform to the schema
Hi,I am using IIS2ICLX MEMS accelerometer in an IOT device.The IIS2ICLX is soldered on a PCB that sends data to internet every 10min.To measure the zero-g level of both x and y axis, I suspend the device from the ceiling so that the PCB (and the accelerometer) is perfectly horizontal and and vibration-free.I noticed that the zero-g level changes if I briefly touch the device, and wait for the device to return to its horizontal position (the temperature of the device does not change).Does anyone has an explanation ? I there a way to minimize this effect by using two redondant accelerometers, with a 90 degre rotation between them ?Thanks for your help.
Hi,I'm using STM32H5F5LJHxQ. External HSE Oscillator is 48MHz. RTC clock mux is set to HSE_RTC, divider set to "/48" and the tool shows correctly that RTC clock is 1000kHz (48MHz / 48).During my tests I discovered a wrong RTC time, error ~2%. (1.2 seconds deviation per minute)In the generated function HAL_RTC_MspInit() is see: (49 instead of the expected 48)PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_HSE_DIV49; If I change the configuration in CubeMX to create a divider of 47, the correct RCC_RTCCLKSOURCE_HSE_DIV47 is generatedIf I change the configuration in CubeMX to create a divider of 49, the correct RCC_RTCCLKSOURCE_HSE_DIV49 is. generated.If I manually set the correct RCC_RTCCLKSOURCE_HSE_DIV48 in the sources, the RTC runs correctly. Regards,Gunnar BohlenHMS Networks
Hi. I have been looking at the internal operation of MEMS devices and am looking for information on how this sensor takes the reading from the mechanical parts. I am trying to find out if this sensor uses capacitive sensing or frequency drift and time period for one sample to be acquired from the MEMS structure. The available documentation does not list much information of this and any additional information would be great. Thanks.
After updating from TouchGFX 4.24.x to 4.26.0, the code generated cannot be compiled w/o manual correction - there are commas missing: const touchgfx::AbstractShape::ShapePoint<float> downArrowDisplayPoints[4] = { { 0.0f, 0.0f }, { 80.0f, 0.0f }, { 40.0f, 10.0f }{ 40.0f, 10.0f } };downArrowDisplay.setShape(downArrowDisplayPoints);downArrowDisplay.setVisible(false);add(downArrowDisplay); upArrowDisplay.setPosition(80, 61, 80, 10);upArrowDisplay.setOrigin(0.0f, 0.0f);upArrowDisplay.setScale(1.0f, 1.0f);upArrowDisplay.setAngle(0.0f);upArrowDisplayPainter.setColor(touchgfx::Color::getColorFromRGB(217, 141, 0));upArrowDisplay.setPainter(upArrowDisplayPainter);const touchgfx::AbstractShape::ShapePoint<float> upArrowDisplayPoints[4] = { { 40.0f, 0.0f }{ 80.0f, 10.0f }, { 0.0f, 10.0f }, { 40.0f, 0.0f } };upArrowDisplay.setShape(upArrowDisplayPoints);upArrowDisplay.setVisible(false);add(upArrowDisplay); upArrowLed.setPosition(80, 191, 80, 10);upArrowLed.setOrigin(0.0f
Hello everyone. I would really appreciate if someone could help me sort out a really annoying issue i have with a new STM32WB5MMGH6 based board i made.On this board i have two sensors connected to the same SPI interface (hspi2) with different CS pins to address the sensors. Here's the schematic sections of the two sensors : MS5607 : LSM6DSV320XTR with an auxiliary IIS2MDCTR tied directly to it (for the test board, the magnetometer is not soldered yet):I'm currently on test phase, and the MS5607 is responding correctly. But the LSM6DSV320XTR does not respond at all. i'm not even getting the whoami ID (i get a 0).For the SPI configuration i have this : For the 2 Chip Select pins i have this config : I don't understand where the problem comes from. Could someone help me asap ? I'm losing hope :(
Question split from this thread. Hi , Can you also provide some info on how to set pwm through timer channels ?
See attachment, field gets erased every time I re-generate code using STM32 CubeMX.problem seen on versionsSTM32CubeMX version 6.16.1uVuion/Keil version 5.43This has been ongoing for a while so problem does exist on older versions of both.
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.