Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
error:object of type'touchgfxdesiger.main.project.texts.texttab.textgrid.translationviewmodel' cannot be converted to type'touchgfxdomainmodel.text.models.typogrephy'. Now I can't open my project,so what can i do?
Hello,I am working with STM32 TouchGFX on a Riverdi board. I would like to use the board-specific settings in offline mode. Are there any files available for specific boards? If so, is it possible to transfer those files via a flash drive and use TouchGFX with the specific board on a computer without internet access, by placing them in the appropriate directory?
Hello,I am using a STM32H7S78-DK and I created a project using TouchGFX Designer with the default empty template. However, when I try to run it, the board immediately hard faults.Stack Trace:main()└── MX_TouchGFX_Init()└── touchgfx_components_init()└── nema_init()└── nema_sys_init()└── tsi_malloc_init_pool_aligned(1, (void*)nemagfx_stencil_buffer_mem, (uintptr_t)nemagfx_stencil_buffer_mem, NEMAGFX_STENCIL_POOL_SIZE, 1, 8);I've seen some some discussions where the CRC could be the problem, everything seems fine with the CRC, and i don't think any of the issues are directly related to the NeoChrom GPU.A while back i tried the same project setup, and it was fine. After that i was checking Rust with Embassy and adding lvgl to an empty project. I'm not sure if it could be related, it might just be a weird coincidence.
OS: Windows 10STM32CubeIDE version: 1.18.1Board: STM32H757XIH6My project was made in TouchGFX 4.23.2. The project uses both cores on the board, they communicate with openamp. After updating to TouchGFX 4.25.0 and generating from ioc with the TGFX 4.25.0 generator. Openamp on the M4 core goes to error handler everytime. Openamp on M7 seems to be working. If I run the original software, not updated to TGFX 4.25.0 everything works as expected.This is the openamp code on M4: int status; MAILBOX_Init(); if(MX_OPENAMP_Init(RPMSG_REMOTE, NULL) != HAL_OK){ Error_Handler(); } status = OPENAMP_create_endpoint(&rp_endpoint, RPMSG_SERVICE_NAME, RPMSG_ADDR_ANY, rpmsg_recv_callback, NULL); if(status < 0){ Error_Handler(); } receive_message(); This is the openamp code in a task on M7: int status; MAILBOX_Init(); rpmsg_init_ept(&rp_endpoint, RPMSG_CHAN_NAME, RPMSG_ADDR_ANY, RPMSG_ADDR_ANY, NULL, NULL); if(MX_OPENAMP_Init(RPMSG_MASTER, new_service_cb) !
I'm using a digital clock in my application but I'm seeing a strange behavior between what I've set into TouchGFX Designer and the simulatorThere's no custom code in the applicationWhy is that? What should I look for?
Unexpected error has happened=======================================================================================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\sohae\AppData\Roaming\TouchGFX-4.25.0\TouchGFXDesigner.logPlease 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/touchgfxError: Object reference not set to an instance of an object.=======================================================================================I installed torchgfx 4.25.0 today. When I select 'Animated Image Example' from examples and click the create button, I get the following error message. How do I fix this?
I am currently making an artificial horizon for a project in TouchGFX, but I just noticed that when I tried to use the svg of the Pitch_Angle_Indicator that has numbers I get a compile error. Are there any plans to implement the usage of numbers in svg images? BSNeyus
Ok, a quick set of questions. (1) STM32U5G9 has 2 AHB ports for GPU2D. M0 goes throu DCACHE2, M1 does not. Which type of request (command list, texture fetch, render/blend read/write) for throu which port (M0/M1) ? (2) Is there any documentation available for TSC4/TSC6/TSC6A other than US Patent #9640149 ? (3) Is there any documentation available for the TSVG formated used for nema_vg_draw_tsvg() ? (4) Where can I get nema_font_convert, nema_vg_font_convert and nema_pixpresso for Linux/Windows/Mac ? Really appreciate any help here. There was talk about a NeoChromSDK, is there any news on thise one ?
Hi everyone, I'm facing a strange issue in my TouchGFX project. I added a new method function1() in my Screen1View class,and when i create the definition of that function1() in screen1View.cpp it showing the function not declared i followed controllltech youtube tutorial but for me im stuck here.i will share the .hpp and .cpp and error messageserror im getting 16:39:36 **** Incremental Build of configuration Debug for project STM32H735G-DK **** make -j8 all arm-none-eabi-g++ "C:/TouchGFXProjects/MyApplication_14/TouchGFX/gui/src/screen1_screen/Screen1View.cpp" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DUSE_BPP=24 -DDEBUG -DSTM32H735xx -DUSE_PWR_DIRECT_SMPS_SUPPLY -c -I../../Core/Inc -I../../TouchGFX/App -I../../TouchGFX/target/generated -I../../TouchGFX/target -I../../Drivers/STM32H7xx_HAL_Driver/Inc -I../../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I../../Middlewares/Third_Party/FreeRTOS/Source/include -I../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I../../Mi
Hi I've been trying to display an image on the GUI using an image (hex array) stored in the QSPI flash (memory mapped). I've taken a look at some of the documentation such as Loading Images at Runtime & Dynamic Bitmaps. void LandingView::loadImageFromQSPI(Image& imageWidget) { BitmapId bmpId = Bitmap::dynamicBitmapCreateExternal( 185, 43, (const void*)0x90FC0000, Bitmap::RGB565 ); if (bmpId != BITMAP_INVALID) { imageWidget.setBitmap(Bitmap(bmpId)); imageWidget.invalidate(); // To trigger redraw } } FrontendApplication::FrontendApplication(Model& m, FrontendHeap& heap) : FrontendApplicationBase(m, heap) { Bitmap::setCache(touchgfxCache, sizeof(touchgfxCache)); } When debugging, I keep getting BITMAP_INVALID? I've made sure I'm in memory mapped mode.
Hi eveyone!I am using TouchGFX Designer 4.25.0In the real world, you can only move a linear slider control by touching/moving the slider knob itself. One of the issues with using the TouchGFX Slider Widget is that it will instantly move from one position to another by touching/clicking anywhere on the slider scale. The graphical indicator (knob) is only there to indicate where the new setting sits on its scale of 0% to 100%.I have 16 sliders, eight of which are visible at any one time. With my application, it would be a disaster if a user "accidentally" touched a slider (scale) and moved a setting from very low to very high in an instant. I have seen one post (a medical app !!) where the designer has the same problem.++++++So far, I have half a solution and would like to ask for help on how to solve my current dilema. Thanks in advance.void ChannelFader::UpdateStatus() // Slider adjustment confirmed { /* other code here */ sliderChSlider.setTouchable(false); }Here, I h
Hi!We got an old TouchGFX (4.10) application where the screen freezes from time to time. Freeze means we no longer get tick events, whereas the other FreeRTOS tasks are still alive. *Most* times this happens after Button pressed events.This raises understanding questions on our side:I presume that calling invalidate() puts the drawable object in some kind of a queue, right?What happens if invalidate() is called twice or more times on the same drawable object? Is the drawable queued twice or more times and is this drawable object drawn twice or more times?What happens if a drawable object is- completely- partiallyhidden by an upper drawable object and invalidate() is called? (All drawables are set visible). Is the (partially) hidden drawable object drawn (completely) in both cases?Is it possible to query an drawable object whether it has already been queued after a invalidate() call?Lets pretend a Button changes its image on a Button pressed event. From our understanding there're two re
I have two buttons (up and down) that moves by one step the scroll wheel using the function animateToItemIt seems, but I may be wrong, that UpdateCenterItem is not called when animateToItem, is executed Is it correct?
I want to make this graphical interface, can you help me to do that and thank you very much
Does anyone have an improved example to understand the MVP[1] (and widget/containers),where you change the base implementation of the MVP ?I was able to defined default implementation for the Model and the View but not for the Presenter or Drawables.class ModelListener { public: virtual char* getPAmessage(eVerbose_t type) { return model->PAmessage; } ... } class View : public Screen { public: char* getPAmessage(eVerbose_t type) { return presenter->getPAmessage(type); } ... }The goal was to make a signal that is understood by every layer without having to use boilerplate at each new implementation of these interfaces. [1] Example: "Understanding Application Structure"
I have a series of interactions that shows/hide widgets on the screen. The interactions are basically triggered when a button is clicked and are all managed via TouchGFX Designer.Is there a way to trigger them via code, so like generate a virtual click on a button via code, instead of actually clicking the screen?For istance I have an interaction named yesHideSaveSettingsModalWindows that, when it's done, trigger another interaction called showSavedLanguagemodalWindowIs there a way to manually trigger showSavedLanguagemodalWindow ?
Title edited to be less confusing.Sorry for the confusing title. Basically what I want to do is, I have an STM32F746G-DISCO, I made a screen with 6 toggle buttons, when the toggle buttons are toggled on, the controller should give a trigger as long as the button is turned on, however, I want these buttons to automatically turn off at 8 PM (GMT+3), my main concern is creating a trigger from these buttons (preferably from the Arduino pins) and also keeping track of the time and closing the toggle buttons.The idea is that each button will be connected to the power source of a machine which will only give power as long as the button turned is on from the microcontroller screen while also turning them off so they don't get turned on outside of work hours, kind of like a switch to turn on a light bulb
when i click the ffmpeg.exe with my computer win10 system, it can't run and flick to cancel , how to solve this issue ?
Hey everyone, for those who haven't seen the announcement in the community blog, I'm also announcing this here :) We're launching a contest focused on custom containers! Custom containers have been a hot topic on our forum, and we love seeing the enthusiasm and creativity from all of you. This contest is a fantastic opportunity to showcase your skills and collaborate with fellow developers. To make things easier, we've put together some educational videos on how to create custom containers. Be sure to check them out on our YouTube channel for all the tips and tricks you need to get started. You can find the terms and conditions, as well as the submission form, here. Please review them before you start developing your container to ensure it meets the contest rules. No contest is complete without amazing prizes. You have the chance to win a STM32U5G9J-DK2 board (valued a
I have created several projects in TouchGFX Designer v4.22.1 - each with a unique 'Application Name'. I'm using the STM32H747i-DISCO boards (dual-core MCU). When I import any of these into CubeIDE v1.13.2, they always show up with this type of structure in CubeIDE:STM32H747I-DISCO (in STM32CubeIDE) > Application > Drivers > STM32H747I-DISCO_CM4 (in CM4) > STM32H747I-DISCO_CM7 (in CM7) STM32H747I-DISCO.iocThe problem is that CubeIDE will only allow ONE of these projects to be in its 'workspace' at any given time. The projects that were first created in CubeIDE don't have this issue. Is there a way in TouchGFX to make it such that its projects import into CubeIDE with a unique name for each?
I have created a scroll list object in TouchGFX Designer. The Scroll List takes a custom container as item. I have 3 items in my scroll listFor some reason, when I call languageSelectorScrollListItems.getNumberOfDrawables(); it returns 5Checking the member declaration I'm seeing that it is defined as an array with 5 itemstouchgfx::DrawableListItems<languageItem, 5> languageSelectorScrollListItems; Why is that?
Hi all,I am looking for advices to implement my GUI. I have screen 1 with all the widgets. On this screen by default has:1. The texts for Hours:Minutes:Seconds and a button to switch to setting screen to set the count down timer.2. The switch mode button, to switch the timer 1 to timer 2.Timer 1 has different texts and looks vs. timer 2.The rest of the widgets on screen 1 stay exactly the same.Currently, I have a solution buy copy exactly the same screen 1 and just replace the timer texts and button only, and using switch mode button to switch back and forth the screen 2 to screen 1 and vice versa.I found this is wasting the memory resource and additional coding to handle different screens.Question:Is there a way I can use only screen 1 and change texts and button between timer1 vs. timer2?
I am working on a STM32N6570-DK board, and I am wondering how to start the MPU of the N6 core, when I start a touchgfx project, it can't work successfully. I hope that some additional information and some courses can be provided.
Hello everyone, I am a first-year university student. I am developing a GUI application on the STM32U585 using TouchGFX Designer and FreeRTOS, and I have encountered some issues. Due to my lack of experience, I would like to ask for your advice on how to solve these problems. Here is my GitHub repository for the code(https://github.com/weixuna/GPDMA_AMOLED_). Device information:MCU: STM32U585CIU6RTOS: FreeRTOSGUI: TouchGFXIDE: STM32CubeIDEGPDMA enabledThe display is AMOLED, and the MCU communicates with the screen via QSPI in OCTOSPI mode.Phenomenon:I added two buttons in TouchGFX Designer.When I swipe to switch to a page (Screen) with two buttons, the program sometimes crashes and enters a HardFault.The crash happens during or after the page transition animation.If I add transition animations such as Cover, Wipe, or Block, there will be screen corruption (garbled display). If
I have a build error where the call to MX_TouchGFX_Init(); in main.c (generated by Cube MX) is different than the one in app_touchgfx.h UINT MX_TouchGFX_Init(VOID *memory_ptr);, also generated by CubeMXI am using TouchGFX 4.19.1 in Stm32CubeIDE 1.9 Did anybody ran into that? Any suggestion?build console output:../Core/Src/main.c: In function 'main':../Core/Src/main.c:135:3: error: too few arguments to function 'MX_TouchGFX_Init' 135 | MX_TouchGFX_Init(); | ^~~~~~~~~~~~~~~~In file included from ../Core/Src/main.c:29:../TouchGFX/App/app_touchgfx.h:45:6: note: declared here 45 | UINT MX_TouchGFX_Init(VOID *memory_ptr); | ^~~~~~~~~~~~~~~~make[1]: *** [Core/Src/subdir.mk:59: Core/Src/main.o] Error 1
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.