Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,I am doing bringup to touchGFX based costum LCD controller using STM32H735 MCU connected to the LCD with Parrallel RGB using LTDC.Currently the application not returning from the tick() function called from backPorchExited().The stuck occers from the backPorchExited() first call.What could be the reason for such problem?Explanations regards the expected behaviur of tick() call from backPorchExited() will be highly appreciated.Thank you!
I am working on the STM32N6570-DK board, and I have a question about demonstrating data on the lcd screen. You see, my project need to do multiple tasks, like collecting the data from the sensors and using the camera to do some AI model inference. Let's name it task A, and task B. I have already written these data-collecting functions in the main.c file, and in model.cpp, I wrote the Model::getcollecteddata() and Model::AIinference() function, and connect this model.cpp with main.c. However, I am wondering if I want to use the Model::tick to send the data to the presenter and use the lcd to show them, due to the fact that I already wrote two functions and the two functions mean s two tasks, in the Model::tick(), can I use the function below: void Model::tick() { tickCounter++; if((tickCounter%20)==0) { modelListener->collecteddatavalue(getcollecteddata()); modelListener->AIinferencevalue(AIinference()); } } What I really want to ask is when I use the touchgfx, the functions
Hello everyone,I’m developing an STM32H750 application using STM32CubeIDE and TouchGFX, and I’m trying to integrate a sensor using I2C.I implemented a sensor driver and added the corresponding source files, but I’m running into linker errors like:undefined reference to `Sensor_Calc()'I made sure the source files are included in the build and headers properly referenced, but the errors persist.If anyone has working examples, suggestions, I’d be grateful.Thanks for your help!Additional Info:STM32CubeIDE version: 1.17.0Compiler: arm-none-eabi-gcc 12.3.1Target MCU: STM32H750B-DKUsing C++ and TouchGFX framework
Assuming that it is clear at the operational level on the firmware and hardware how to create the driver and fill a buffer on a monochrome display, but the real question is how to work on the monochrome gui? does anyone have experience with it? and then why are there no examples? today it is possible to find decent monochrome displays with 240x128 pixels and with scala 4 and 16 colors, but why are they not taken into consideration? I work in the industrial field and these displays are irreplaceable for robustness and readability even for critical devices. Why are there no examples? I'll start by saying that I've been looking for it for years and today I did it again after a long time and I continue to realize that nothing exists... some enlightened person enlighten me.
I'm working with TouchGFX, in my project I include n files that are needed for the hardware I use, a custom hardware with STM32F429II...They are variable interchange files between the TouchGFX engine and my hardware.The entire project works when it is compiled and programmed on the target, while it doesn't work when I start the simulator: gcc, during compilation, does not find the files I include.Can anyone help me resolve the problem?
Hello ST Community,I'm working on a project using STM32H7 (Waveshare OpenH7XXI-C board) with TouchGFX 4.25.My hardware setup:External QSPI flash (W25Q128) for storing bitmap/image assetsExternal SDRAM (IS42S16400J - 16MB) for framebuffer and runtime buffersDisplay resolution: 1024×600, color format: RGB888Due to hardware design limitations, I'm unable to increase the QuadSPI speed (track length and plug-n-play module constraints).I’ve observed that during frequent screen updates, some parts of the background image get re-read from QSPI, resulting in flickering.This becomes more noticeable when using large fonts, wildcard text updates, or redrawing images.My goal:I want TouchGFX to:Load image/bitmap assets (stored in QSPI) only once at startupCopy them into SDRAMReuse from SDRAM on future redraws — avoiding repeated QSPI readsMy Questions:What is the recommended method to configure TouchGFX for caching QSPI images into SDRAM once?How should I modify the linker script (.ld) to reserve a
Language export fails. I followed this guide: https://support.touchgfx.com/docs/development/ui-development/touchgfx-engine-features/texts-and-fonts#translationsI installed ruby for windows using rubyinstaller-3.4.3-1-x64.exe.I updated TouchGFXf Designer and the middleware folder to 4.25.0.I ruby from command prompt like this:myproject_path\Middlewares\ST\touchgfx\framework\tools\textconvertruby translations.rb export myproject_path\TouchGFX\assets\texts\assets\texts\texts.xml translations.xlsxThen I get the following error:in 'Kernel#require': cannot load such file -- nokogiri (LoadError)I have no experience with ruby and no instructions are listed.
After adding in the .ioc file, in software package, Touch GFX and enabled grafic applications. when I try to lunch ApplicationTemplate.touchgfx.part i receive the following error message. Brlow i also put the content of the log file Sorry - something unexpected has happened which caused an error to occur in the Designer. For more information, see the log file located at: C:\Users\vdalessandro\AppData\Roaming\TouchGFX-4.25.0\TouchGFXDesigner.log Please consider reporting this bug and steps to reproduce it at the TouchGFX Help Center so it can be fixed in a future version.You can find the Help Center here: https://community.st.com/touchgfx Error: Object reference not set to an instance of an object. 2025-05-15 10:35:12,492 [1] ERROR TouchGFXDesigner.App: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. at TouchGFXDesigner.Main.Project.Configuration.FeatureConfig.FeatureConfigCategory.Un
Hello everyone, I’m working on a project using TouchGFX and I would like to know if it’s possible to display real-time curves (line graphs) that represent data coming from a sensor connected via I2C. :small_blue_diamond: I’m using a microcontroller from the STM32 series.:small_blue_diamond: The sensor communicates through I2C (temperature sensor).:small_blue_diamond: I would like to visualize this data in graphical form (curves or charts) on the display using TouchGFX. My main questions are: Is it possible to plot real-time curves or graphs using TouchGFX? Are there any built-in widgets or recommended methods to implement dynamic data plotting? What is the best way to send I2C data from the MCU to the TouchGFX GUI efficiently? Are there any examples or tutorials available? Any suggestions, code examples, or documentation links would be very helpful!Thanks in advance :folded_hands:
Board is STM32H7S78-DKSerial: K242000883CubeMX 6.14.0TouchGFX Designer 4.25.0CubeIDE 1.17.0I load the STM32H7S78 Discovery Kit FreeRTOS example in TouchGFX Designer, design a screen and then open it in CubeIDE and flash it to the board. All fine. Then I open the .ioc file in CubeMX and activate ETH in Application and select the RMII mode. Immediately I get a Clock Configuration issue. The ETH CLOCK is only 24 MHz, but should be 50 MHz. When I click the button resolve clock issues I get a solution. I generate the Code (must enable USE_NEWLIB_REENTRANT) and flash the board with CubeIDE, but the Screen is dark. When I debug it goes into the Screen1View::setupScreen, but the Screen I designed in TouchGFX doesn't come up.
I create project based on touch-gfx and it is working corectly but I would like to merge its UI with my another project. To achive this I changed the touch-gfx project structure to default STM32CubeIDE. I got graphics distortions after this. What could be the reason of this fail?
Hello All,I am facing the issue for displaying the high resolution images, while running on Touchgfx simulator and STM32H757I-Eval board. I am using the 1000 X 682 image on .png format.Though I have made Image scaling algorithm to Bilinear Interpolation but the image quality and text in those images do not look refined. The original image and the simulator image has lot of difference in its quality.Let me know how I can increase and make the display image resolution to get better image quality ? Regards,Shiv
Hello,I’m trying to set up my project on a custom board with an STM32F767IIT6 microcontroller. A display is connected to it via LTDC (480x272). Additionally, there is an SD card connected via SPI. I’m using only the internal RAM — no external memory is connected. My goal is to store graphics on the SD card and display them on the screen. Nothing fancy—mostly small icons. When I generate the project and upload everything to flash memory, the demo example runs without any issues. However, when I configure the project according to YouTube tutorials, the screen shows a scrambled image with colored pixels. The outline of a rotating logo animation is also visible. I’d be grateful for any suggestions on where else I should look for the source of the problem. My settings:
textArea can only be configured in the design of the text alignment, but not in the code to dynamically modify the alignment of the text, which is very strange, because then, in the long text of the automatic line breaks, the Chinese need to be left-aligned, the English need to be aligned in the centre, it can not be achieved.
I still have the same issues since a few releases of TouchGFX also in the new release that i can not download the boards or any demo or so out of the software. What is the reason to this? I tried a lot of things but it wont work. So is there any solution to that issue? Thanks a lot for the Help.
Hello, I'm currently developing a GUI for STM32H747I DISCO as all of a sudden, i couldn't open my touchgfx project properly anymore. Everything worked well before. Now there are no screens shown in the designer and the application name is always "MyApplication" which is not true. Also the Config Icon on the sidebar is often not visible. I also deleted and reloaded the Project into the TouchGFXProjects folder but unfortunately it is always the same problem. My TouchGFX version is 4.24.2. I appreciate any help.Best regards.
I have an stm32f769 discovery kit and i want to use the usart to read gps data.In CN13 header and PC6 and PC7 pins for TX and RX of the USART 6 .But in the default Touchgfx project created from touchgfx so i can have a screen already working these seems to be set as VSYNC FREQ output and Render Time output pins respectively in the same order.Am i going to break the project if i change the setup for usart rx and tx?Where and in which pins can i reassing the VSYNC and the Render Time outputs. Are they real signals that are needed from the display to work? I seems that completely removing them the Touch does not work or it does not seem to work.I moved the pins to some others. I randomly selected PB3 and PD7 in the same order and everything seems to be back to normal.I am not sure if there is any hidden impact that i just do not see now.
Hello,I’ve recently purchased the STM32U5G9J-DK2 Discovery board and noticed it came with a demo app preloaded with UI, touch input, etc. But I can't seem to find the source code for it anywhere.I checked STM32CubeIDE examples, the STM32U5 firmware package and even TouchGFX Designer, but no luck so far.Also, the examples in STM32CubeIDE don’t seem to have a proper TouchGFX integration for this board and the TouchGFX Designer demos I tried show corrupted graphics on the screen.Having a working sample project would really help right now because I’m not sure how to get the GUI part working without one. Just something that shows how to properly set up TouchGFX on this board, even a basic example would do.If anyone knows where the source code for the original demo is, or has a working TouchGFX example for this board, or at least point me in the right direction, I’d really appreciate it!Thanks in advance!
Hello,this error really drives me crazy. When trying to flash the programm from the ToughGFX App or CubeIDE the external Memory can't be erased. I use the recommended CubeMXVersion of 6.14 and have the latest CubeProgrammer and CubeIDE with STM32Cube FW_U5 V1.7.0. The whole ToughGFX log is attached. Thanks in advance!These are the following errors that are occurring:TouchGFX:Erasing memory corresponding to sector 0:Erasing external memory sector 0Error: failed to erase memorygcc/include/flash_sections_int_ext.mk:5: recipe for target '_extflash_' failedmake[1]: *** [_extflash_] Error 1../gcc/Makefile:52: recipe for target 'flash' failedmake: *** [flash] Error 2FailedFailed CubeIDE:Error message from debugger back end:Error finishing flash operationFailed to execute MI command:\STM32CubeIDE\\Debug\\STM32U575ZI-NUCLEO-AZ2.elfError message from debugger back end:Error finishing flash operationError finishing flash operation
Hi,I'm having a problem that's driving my crazy. After running my program for a little while, I start getting DMA2D transfer errors because the src address of the blitOp struct in the function void STM32DMA::setupDataCopy(const BlitOp& blitOp) starts getting invalid values (like 0x40 for instance) instead of pointing to the external flash where all the images are saved (addresses starting at 0x90000000).It's hard to tell who is responsible for putting an invalid address as this function is called directly from the touchgfx library and there is no way to debug really what's going on under the hood. It seems to always happen right after the function HAL::lcd().drawPartialBitmap() is called inside the draw function of a own made button class (but looks almost identical to the standard touchgfx button). This function is called with valid bmp, x and y coordinates, dirty rectangle, alpha value and with the useOptimized set to true).We thought for a while it was due to a memory leak
Hello STM-Community.I am currently working on some project with the "LIZARD Board" from Actron and a 800*480 LCD-screen.I followed the Instruction in https://support.touchgfx.com/docs/development/board-bring-up/how-to/03-display-internaland also other "tutorials" but wasnt able to get it to work.Now i finally noticed that the "Color Frame Buffer Start Address" in LTDC is missing...I have no idea why that is the case and if this a bug in CubeIDE v.1.17.0 or something on my side.Does anyone know what to do?
When screen initializes: scrollWheel1.setNumberOfItems(1); scrollWheel1.setDrawables(scrollWheel1ListItems, updateItemCallback, scrollWheel1SelectedListItems, updateItemCallback);After run for some time, scrollWheel is re-configed as: scrollWheel1.setNumberOfItems(9); // assert() error happened here scrollWheel1.invalidate();The error happens at :ScrollWheelWithSelectionStyle::setNumberOfItems() ScrollBase::setNumberOfItems()DrawableList::setNumberOfItems() DrawableList::refreshDrawables() Container::add(*drawable); assert(d.parent == 0 && "Cannot add Drawable multiple times");So can I call setNumberOfItems() dynamically? How to go around?
Hi,I am trying to plot an array of 512 values in a dynamic graph in touchgfx. This is working as intended but I am experiencing poor performance. When in histogram mode the graph updates quickly however I wish to use line mode and when in this mode, the graph will take between two and three seconds to update. I'm aiming to get the graph to update in around one second. Any ideas on how to optimise the plotting of the graph. Perhaps the way in which the data is passed from Model.cpp into the screenView.cpp?Currently I am passing the data through as such:for(int i = 0; i < 512; i++) { modelListener->UpdateGraph(i, graphData[i]); }Any help would be greatly appreciated.Thanks.
Hi guys.I am using STM32H7B3LIHQ MCU, MX25LM51245GXDI00 flash and IS42S32800J-6BLI RAM with NHD-4.3-800480CF-ASXP-CTP TFT screen. I configured the LTDC, FMC, OCTOSPI, TouchGFX and FREERTOS settings. I have a 2 problem.1- I added textArea in the screen for trying. I am increasing the "counter" register and displaying its value in the textArea at 100 mS intervals. But counter register does not inreasing the 100mS intervals, it increasing in 1000mS intervals. FREERTOS TICK_RATE_Hz = 1000 and this is code;void screenView::handleTickEvent() { static int tickCount = 0; if (tickCount++ >= 100) { Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZE, "%u",counter); textArea1.invalidate(); tickCount = 0; } if (counter >= 17000) counter = 0; else counter++; }2- I added an image with a resolution of 800x480 to the screen. The textarea is on this image. Every time I refresh the screen (textArea1:invalidate()), the screen dithering. But sometimes (1 time i
Hi, I am trying to get any of the TouchGFX demos to work on STM32N6570-DK board to work but nothing worked so far. Only TouchGFX Analog/Digital clock example works from all other available examples. All available demos for N6 DK board don't work.When I try a demo, I see that the "Post-Build steps" has already the following script:arm-none-eabi-objcopy.exe -O binary --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection ${ProjName}.elf ${ProjName}.bin&arm-none-eabi-objcopy.exe -O ihex --only-section=FontFlashSection --only-section=TextFlashSection --only-section=ExtFlashSection ${ProjName}.elf ${ProjName}_assets.hexI appended the script with "&&" to add the header script as follows:arm-none-eabi-objcopy.exe -O binary --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection ${ProjName}.elf ${ProjName}.bin&arm-none-eabi-objcopy.exe -O ihex --only-section=FontFlashSection --only-s
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.