Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I'm using a textarea widget with a wildcard, but as you can see in the image, the text appears invertedAny way to solve this?
HelloI'm working on a 320x240 SPI LCD using partial frame buffer strategyThe number of blocks is configured to 2 and the block size is configured to 19200 bytes.The problem is that flushFrameBuffer draws only 240x20 pixels at a time, however I would expect it to draw 240x40 at a time (240x40x2(16-bits) = 19200 bytes)Does anybody know if that's a TouchGFX limitation, or it can be changed ?
I have a custom board, which uses STM32H747IXH6 and MB1166 LCD screen from the related discovery board. I am trying to get TouchGFX up and running on this custom setup, but in my PCB design, I missed out the dedicated TE pin in the connector (I'm following the RaspberryPi DSI convention of DSI CLK, Data Lanes and I2C only). I can initialise the display, but I cannot get my TouchGFX application running. The process at the moment is as follows:Init DSI HostReset the LCD displayConfig DSI PLLConfig Host TimeoutsConfig PHY TimersConfig LPCommandConfig AdaptedCommand ModeInvert clock and data pins (to correct for PCB error)Register busIO for OTM8009AInit OTM8009A (as per Discovery examples)Config Flow ControlForce RX Low PowerInit LTDCActive low VSYNC and HSYNC polarity803x483 total width and height (800x480 + porches)Format RGB888Double frame bufferStart address 0xD0000000Init FMC (IS42S32800J)Init as Bank 2Init TouchGFXStart TouchGFX Thread Now when TouchGFX starts, taskEntry s
Hello everyone!The question is simple, i want to be able to "return" to the previous view when entering a sub-menu (view).There are many ways to do this, like manually assigning a label/identifier to each view.Pushing the label anto a stacked stored in the Model when entering a sub menu, then pop:ing the label and checking if it corresponds to a "sub-menu entry" when leaving the view.Question 1:Is there some built in mechanism to individually identify each view?I would like to avoid manually adding labels to the views like enums etc.Question 2:Is there a built in system for handling this?I haven't been able to find it in the documentation and would obviously prefer to use a excising built in solution than writing one myself. Example below:I want the cursor/arrow to return "Sub menu 1:A" when returning from sub menu "1:A"
Dear all!Normally, Screen will display in 305ms, the transfer to Screen1. In Main.C, bat_e will be calculated, if bat_e= true, will hide Screen and Screen1 and display Screen 2. can you share me how to do it.
Hello,I am trying to add warnings to widget when an error happens (shake / judder).I first started looking at the MoveAnimator class but there is no way to "ease" if the startXY == endXY.Other than hand rolling the position myself (as Gaetan shows), is there other classes or method that I should explore to add this shaking effect?
Hi, I am trying to reinitialize the LTDC-TFT LCD controller in a task when I press a button. I am using the STM32H735G-DK kit, which has a TFT LCD. I have created a project using TouchGFX, and it seems the display gets initialized and loaded with images from the TouchGFX init and TouchGFX task. Firstly, I want to achieve the re-initialization of the LTDC-TFT LCD on the STM32H735G-DK.when i try re initializing the LTDC, it got freeze, not sure how to unfreeze it, display goes blank unable to restore back all the images which has been loaded after a reset I am working on the low-power modes of the STM32H735G-DK and&
I have inherited a GUI project that has a memory leak which I tracked down to the use of the LISTBOX.If I remove the LISTBOX the memory usage never rises however if I utilize a LISTBOX even if empty memory used by STemWIN will rise until it runs out and crashes.Is this a known issue,or do I have an implementation error. Any examples of correct implementation or help would be appreciated.
Hello awesome people of the STM community! I'm working on a GUI project for the STM32H750B-DK, currently following the board bring up steps. I know that I could just use the generated code by TouchGFX template for the STM32H750B-DK. However, I have a few reasons for avoiding this:Being an engineering student I want to learn as much as I can form this project, by doing board bring up I can learn more step by step then just pressing a button and have it magically work (though magically work is getting more and more appealing) .The GUI is only one aspect of the project, I want to have accesses to a debugger in my preferred IDE (CLion) and not be reliant on constantly uploading through TouchGFX. I would much rather finish the GUI and upload the assets to external flash then just work in internal flash for the remainder of the project.I want to get the skills to do a board bring up for when I need a GUI for a custom board.Again being a mere engineering student I don't wa
Hi, I'm having a really hard time with the above example TouchGFX Board Setup in TouchGFX Designer 4.24.1. What should be a really straightforward (supported hardware) project has thus far got me very confused. As a simple test for a slightly more complex GUI, I have just 2 screens which I am trying to navigate using the Joystick: 2 (DOWN) for navigating forward to screen2 and 4; (LEFT) for navigating back to screen1. The interaction for this is all correctly configured in TouchGFX Designer. Of course, being 'Hardware button clicks' additional external code is required in the relevant ScreenView *cpp and *hpp files which I have added via CubeIDE. The project compiles without errors However, when flashed to the MCU the joystick does not have any effect whatsoever.I have investigated a little by looking at the structure of one of my previous projects using a (supported) H503RB and GFX01M2 which worked pretty much out of the box with full joystick useability.
Hi,I am using the STM32H563 with an ST7735S display and encountering a colour difference between TouchGFX and the display. How can this issue be resolved?ThanksMathan
Hi there Touchgfx team!I've this screen requirement, a list of settings. I'm doing it with a custom container that I already created. My custom container has a flex button with text(on the left) + the text on the right. What I need is that once the user presses the button, the text color changes to white. Once its released, changes back to black. The flex button works perfect, but I'm having trouble setting it up for the right text. I could add the white and black images, or creating a function to check if the button is pressed every n ticks, but that seems cumbersome. Is there any other way? Thanks a lot in advance
Hi there Touchgfx team! I have a view with a custom container list as in the ListLayout example. class test_selectionView : public test_selectionViewBase { public: test_selectionView(); virtual ~test_selectionView() {} virtual void setupScreen(); virtual void tearDownScreen(); /** * Handler of list element clicks. */ void listElementClicked(CustomListElement &element); protected: static const int number_of_select_test_kit_list_elements = 30; CustomListElement select_test_kit_list_elements[number_of_select_test_kit_list_elements]; // Callback that is assigned to each list element Callback<test_selectionView, CustomListElement &> listElementClickedCallback; }; I would like to have the number of elements in the model, and access it with a get method. Right now, you can see I'm harcoding the "30" value in the view. I already created number_of_select_test_kit_list_elements in the model and created the get method, because that numb
I am using STM32H757 board which MIPI DSI LCD onboardCreated touchgfx project and disabled RTOS (as I don’t want to use RTOS in my project). Tim6 is used for SYSI am incrementing a value by 1 (variable is declared as global static) on gui from model:tick function using wildcard text area. From model, i passed the value to presenter and then finally to view.cppApplication is working but there are some issues.When i debug the code, values are ok as expected but don’t reflect on LCD screen.When i reset board sometimes it shows incremented (but more than 1) or the old valueAlso the widget is sometimes seen is cut. I m not if sure if it is a display refresh issue and how to resolve??FYI: please check attached video.@Osman SOYKURT @Romain DIELEMAN
Hi there Touchgfx team! I have a textarea and 2 images inside a custom container. From my view, I create the custom container and then call a custom container method to update the x,y of these widgets like this: storage_full_image.setXY(battery_x, battery_y); battery_image.setXY(battery_x - 25, battery_y); header_date_text.setXY(header_date_x, header_date_y);The 2 images move without problem, but the textarea remains fixed. I'm invalidating all 3 widgets after updating the XY. Is there a different way to update the XY of a textarea?Thanks a lot in advance
I want to flip text horizontally such as Aa to the aA and vertically as well. How can achieve it on touchgfx? please guide anyone.
Hi,I want to get the access to the default pre flashed firmware image flashed while receiving STM32U575ZI-NUCLEO-AZ2 eval board. Can you share that whole firmware project along with the source code? Also, whether the UI is built using TouchGFX? If yes, is it also possible to share the TouchGFX project as well for the default firmware on the eval board?Thanks,Mehul
I am looking for a breakthrough to integrate TouchGFX with the STM32U575I-EV. However, the GIT repo for STM32U5 does not have any of such example.I tried using the STMCubeMX with the base IOC file for the eval board and integrated TouchGFX with it. However, after building the firwmare successfully, the image does not show up on the display at start.Any example can I have to refer and understand what I am missing? It is really hard for a developer to start using TOuchGFX and STM environment even while using the eval board and speed up the prototyping activities.
I developed firmware with CUBE IDE and then set up the 2.4" TFT LCD screen with buttons, etc., using TOUCH GFX DESIGNER. How do I import what I developed in TOUCH GFX into CUBE IDE?
Hi Team,We are trying to replace STM32U5G9J-DK2 display by ILI6137A Driver_IC display. We are getting Half display visible,Is there any driver to update to get the full display visible??ILI6137A Driver_IC CharacteristicsLCD Size-5.0Resolution-800(RGB)*480Display Mode-TRANSMISSIVE,NORMALLY WhiteInterface-RGB 24BitDriver IC -ILI6137ALED forward voltage- Min_17.4 Max_19.2 PFA,Actual Screen from development-Kit with STM32U5G9J-DK2 display Actual Display Half screen after changing the ILI6137A Driver_IC display Any guidance to resolve this? Thanks & Regards,Bindu
Hello, I just noticed that foceState and getState (for toggleButton) are not what i thought they were, until now I used to think that forceState would just simulate the press of a button for being able to press a button from the code, without physically pressing it, and that getState would just return true if the toggle state was pressed and false otherwise,but I just noticed it's not like that, those are just for swaping the pressed and released states, which is a bit confusing,my question is, how can i force a state of a toggle button then, imagine im using scroll list so only the elements visible right at the moment in the list exist, and we scroll down, imagine the element 20 is supossed to have a toggle toggled, how do i toggle it from the callback. This was my best idea, simulating the press and then release of the button, but this just doesn't feel good, there should be an easier way to just press or unpress a button right? void ProgramsListElement::Set_Favourite(
I've copied the folder containing a TouchGFX project for the STM32H7B3I-DK from one machine to another. However, I get the following error when I try to generate code on the new machine: Generate Assets make -f simulator/gcc/Makefile assets -j8 Reading ./application.config Reading ./target.config uninitialized constant Outputter::ApplicationFontProviderCpp Did you mean? ApplicationFontProviderHpp An error occurred during text conversion Cleaning generated files from generated/texts and generated/fonts. Does anyone have any idea what could be causing this? Is there some additional diagnostics stored somewhere that I can review?
Hello everyone!I'm working on an application using TouchGFX, and I've implemented a slider to control the display brightness. Here's the relevant code: brightness_slider.setXY(864, 262); brightness_slider.setBitmaps(touchgfx::Bitmap(BITMAP_ALTERNATE_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THIN_TRACK_SMALL_ID), touchgfx::Bitmap(BITMAP_ALTERNATE_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THIN_FILLER_SMALL_ID), touchgfx::Bitmap(BITMAP_ALTERNATE_THEME_IMAGES_WIDGETS_SLIDER_HORIZONTAL_THIN_ROUND_LIGHT_ID)); brightness_slider.setupHorizontalSlider(12, 9, 0, 0, 200); brightness_slider.setValueRange(100, 998); brightness_slider.setValue(TIM15->CCR1); brightness_slider.setNewValueCallback(sliderValueChangedCallback); add(brightness_slider); In this setup, setValue is initialized with TIM15->CCR1 to align the slider position with the current brightness level. The code works as expected; however, there’s an issue: this code is located in myScreenViewBase.
Process Explorer is showing a number of TouchGFXDesigner processes as running even though all instances of it have been closed (there are no windows visible).I found this when I tried to delete and folder and that failed with an "in use" message - Resource Monitor showed this use was by the orphaned TouchGFXDesigner processes.I am using version 4.23.1 under Windows 11.
I've been trying to get anything to show up on a STM32F429-DISC1 Discovery Kit display.I start a new project in CubeIDE using the '429 Discovery board as a base.I delete the USB and FreeRTOS configurations. I configure the clock for external 8MHz crystal, PLL, HCLK 168MHz, LCD-TFT clock 6.25MHzI add CRC, DMA2D, LTDC, FMC, and SPI according to the settings from a running '429 example project generated starting with TouchGFX. Add ThreadX, add TouchGFX, configure them appropriately, use the .part file to fire up Designer, add a box and a text field, generate the code, go into CubeIDE, refresh, compile...end up with a skeleton with no flesh, but it shows the issue.Then I got referred to the documentation https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-configure-rtos#threadx for hints as how to proceed.The documentation appears to say that my code should call:/* Call PreOsInit function */MX_TouchGFX_PreOSInit();...MX_ThreadX_Init();
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.