cancel
Showing results for 
Search instead for 
Did you mean: 

OFFICIAL RELEASE: X-CUBE-TOUCHGFX v4.13.0

Martin KJELDSEN
Chief III

Goodmorning everyone!

With the release of CubeMX 5.5.0 we've removed TouchGFX from the Middleware section of CubeMX and are now offering TouchGFX configuration through an X-CUBE.

The X-CUBE pack contains the following:

  1. TouchGFX Designer .msi, as per usual
  2. TouchGFX Generator - A tool through "additional software" for creating your TouchGFX HAL based on CubeMX settings.

CubeMX is a tool for configuring your MCU.

CubeMX is not a tool for completely configuring peripherals like touch controllers and external memories.

TouchGFX Generator (new since 4,13) is a CubeMX extension that can generate all or parts of your TouchGFX HAL Layer based partially on settings taken from your MCU configuration in CubeMX.

TouchGFX Generator (new since 4,13) is not a tool that provides complete configurations for touch controllers, external memories, etc. It only generates the TouchGFX HAL - Rendering strategies, acceleration strategies, etc.

TouchGFX Designer is a tool that can supply you with application templates for existing stm32 display kits. We are working on getting all of them updated to use the new Generator.

Please read the following guides for instructions on how to install the new TouchGFX X-CUBE and how to use the TouchGFX Generator to develop your TouchGFX HAL:

From now on it is the X-CUBE that receives a version bump, bumping the version of both tools contained within.

A few application templates already support the new TouchGFX Generator (and thus CubeMX 5.5.0), with lots more to come. One of our main priorities is to get the rest of the application templates ported to use the TouchGFX Generator,

  • STM32H7BI-DK v.3.0.0 (uploaded)
  • STM32F746-DISCO v.3.0.0 (uploaded)
  • STM32F769I-DISCO v.3.0.0 (uploaded)
  • STM32H750B-DK v3.0.0 (uploaded)
  • STM32F750-DK v3.0.0 (in progress)
  • STM32L4R9-DISCO v3.0.0 (in progress)
  • STM32L4P5-DISCO v3.0.0 (in progress)
  • STM32H743-EVAL v3.0.0 (In progress)

Generally, any application template that supports the Generator/CubeMX 5.5.0 will be major version 3.

0690X00000BviXRQAZ.png 

0690X00000BviXWQAZ.png

Let me know here if you have any questions or face any issues! We're eager to see how this works for everyone.

Now that we are officially live with X-CUBE-TOUCHGFX we'll continue working on improving documentation, offering support and updating the current application templates you can find through the designer.

Aside from that i'll do my best to catch up on this community, something i've had to neglect a bit because of the new Generator.

Best regards,

TouchGFX Generator Team

162 REPLIES 162

>First, adding the 'additional software' is not very obvious so I'm glad that someone else took that bullet before me..

"Additional software" is clearly marked if you read the article i wrote about installation and activation. As far as the horrible UX of the button, we've already relayed this to CubeMX.

> This is intentionally Raising the bar for newcomer - hardly a smart move by ST..

I must have said this a few hundred times already. CubeMX does not generate anything specifically for a board, despite its "board selector" feature.

You obviously haven't read anything i've written about using Application Templates when possible to get working touchgfx projects for a specific stm32 based board. This is essentially the "BOARD SELECTOR" you're looking for. Go have a look at the F746G-DISCO template, it is updated to work with TouchGFX GEnerator and CubeMX 5.5 and Designer 4.13. CubeMX is an MCU configurator. TouchGFX Designer will deliver the "packages" that come with working projects for board X with option to open .ioc files in CubeMX.

> Under 'Driver' it's all of them

I don't know what this means. Please elaborate.

A bit disappointed about this kind of feedback. But thanks, it's valuable none the less and i'll take it into consideration for next version.

/Martin

Martin,

At what point do we select the application template? In the previous release, I did this by selecting the board support package when starting a new project in STMCubeIDE. Then, when executing TouchGFX (in Middlewares > Graphics), the board package and HAL layer were all set up.

With this new version of the tools, I selected the STM32F746-Discovery when creating a new STM32 project in STMCube32. When going to the TouchGFX Generator, items are not set to the default settings for that board. For example, the size of the display was 32x32, not 480x272.

Are you saying start by selecting application template within TouchGFX?

I think this is the confusing part people aren't understanding.

Martin,

Could you elaborate on the Application Template selection process? See my comment above.

I am not sure if others do this, but I select the board when starting a new project in STM32CubeIDE which opens up CubeMX board selector. When I do this and open up the TouchGFX Designer, I am not presented with a way to select an Application Template. It presents me with a way to select the UI Template, however.

Is there an article explaining the selection of an Application Template from TouchGFX after the project has been created in STM32CubeIDE?

I apologize if I am missing the obvious, but this is one area that I have not gotten a good understanding about in the STM32CubeIDE/CubeMX/TouchGFX integration.

Hey @Martin KJELDSEN​,

I'm sorry for my reply - I really love what you are doing. The frustration of not getting it to work right away got the best of me. sorry for that.

I think I might use the program the wrong way around. Maybe it's not the way you and the Cube team intend that it should be used but nonetheless it happened:

I'm only going through CubeIDE and please tell me if that is wrong but having a single point of starting makes sense to me.

I start of by creating a new project (c++) and get to the board selector. so far so good. I have downloaded the additional software package (and I know this isn't your choice but the location of the installer?? urgh..)

The main reason I gt frustrated is that I get a big box that says' Initialize board with default configuration?' - so at this point I'm pretty confident that all my peripherals will be set up for me - By the way I'm using the F746-disco board.

Using the partial TouchGFX configuration I start the designer - but NO choice for application template is shown. and if it did show up it was the 2.0.0 one. not the 3.0.0 one. After that I got errors for generating excel files and errors stating I should change my regional settings to english and restart it.

Even after I did so I have 'String is not a valid dateTime' or something along those lines.

with the old version We had the layer settings and framebuffer starting address set by default - what am I missing since this is not the case anymore?

If I leave the framebuffer allocation to 'by allocation' I will get an error because there's not space enough left in the internal RAM which is of course obvious.

I will try and try again until I get it to work smoothly but so far no luck.

HP,

That is what I have issues with as well. I start by creating a project in STM32CubeIDE, which I thought was the way it is to be done.

When I generate the CubeMX code, the "part" touchgfx file appears in the TouchGFX directory in the Project Explorer. Double-clicking on that file brings up the TouchGFX Designer with the menu to "Select a UI for your new application". It does not provide a way select an Application Template.

I will try to put down my thoughts a bit more structured this time.

I have downloaded cubeMX and tried configuring a project through there.

  1. using this method I have acces to the 'advanced' setup and the 'generate under root' option I can now disable. I'm aware that it changes the layout of the files and folders but in doing so I loose the toughGFX file in my view in the CubeIDE. It was a nice feature to just be able to doubleclick inside the IDE and go straight to the designer. take this a suggestion for improvement 🙂
  2. Another thing that bothers me is that we now have to call MX_TouchGFX_Process(); ourselves. Before it was just there. ready for running.
  3. the default task no longer is the right size. using the IDE approach the defaultTask have a stackSize of 128 instead of the needed 4096. I think we discussed this before but since the designer can generate the right size for a project it's something that is easily missed.
  4. using the 3.0.0 application template will generate a cubeIDE project but it will not compile. I took the blank UI template and inserted an image. Using the 'Run target' it works fine (although you have to install CubeProgrammer first - is that mentioned anywhere?). When I use the IDE project I get the following warning: make: *** No rule to make target 'C:/TouchGFXProjects/MyApplication_3/TouchGFX/gui/src/logoargbbilinear127qspi_screen/LogoARGBBilinear127QSPIPresenter.cpp', needed by 'Application/User/gui/LogoARGBBilinear127QSPIPresenter.o'. Stop. This is the stock project from the Designer generation.
  5. Would it be possible to implement the external loader in the project generation? This way we could all skip the step of having to load the QSPI flash externally. I know this have been brought up before but looking at the level of integration you have achieved it might be interesting to pursue - at least for the dev-kits. I guess this would be application template specific but nice nonetheless.

I know that it can work since using the application template built-in works. Have I missed a walk through for a dev-kit somewhere?

HP,

I could be wrong, but we may be making this more difficult than it needs to be. According to the link

https://touchgfx.zendesk.com/hc/en-us/articles/360010921760-TouchGFX-HAL-Development

0690X00000BvwOOQAZ.png

Start with the TouchGFX Designer, which after "Generate Code", creates the CubeMX file and the Stm32CubeIDE project.

At this point I double-clicked the project file created in the "STM32CubeIDE" directory. Stm32CubeIDE opened up the project. I did have one compile error, but I generated the CubMX code and the error went away.

My only problem now is that I am not able to connect to the target because I am getting an error saying:

(Read)Failed determine breakpoint type
Error! Failed to read target status 
Debugger connection lost.
Shutting down...

 I am able to run the Target from the Designer so I know the board works. I am also able to run the debugger from the previous version of Stm32CubeIDE (1.1.0).

Note that it appears that many things have been taken care of in the Stm32CubeIDE/TouchGFX integration. I see that the QUADSPI configuration is correct and the memory configuration in the file STM32F746NGHX_FLASH.id appears to be correct as well.

👍

The different flows should be described in the documentation.

CubeMX is an MCU configurator. If you go by the board selector you'll get default IP configurations (But Generator is not connected to the board selector). However, if you now select Parallel RGB from the Generator display interface section you'll inherit the LTDC settings for w/h (480x272 - The default for custom display interface is 32x32.

What we're trying to do is to have APPLICATION TEMPLATES accessible from within the designer that uses the MCU configurator (CUBEMX) + additional code (BSP) to prepare memories and touch controller to run TouchGFX.

The dream is to use CubeMX only in the event that you have a custom board with an MCU you need to configure, or if you have your ST development board that you need to make adjustments to (for prototyping).

/Martin

If you use CubeMX to generate a project from scratch then this IS your application template. You're trying to do something for a custom platform. The designer then allows you to select a UI to put on top of that template - EMPTY or one of the examples.

Start from the designer if you want to have everything configured and just want to create a UI for your stm32 development kit. This once started from CubeMX, from scratch as well, but now we packaged it up for you including the .ioc file that works with the new Generator.

I must have done a right terrible job explaining this in the documentation.

We're working, right now, on updating all ATs to be cubemx 5.5'ified - its a work in progress. So far you can use the H7B3-DK and the F746g-disco, 769-disco is on its way and so is the L4R9-disco, etc etc.

/Martin

Thanks for the explanation, Martin. You've done a ton of work on this.

I think my problem was that I was attempting to create a project in STM32CubeIDE / CubeMX like I did in the previous version and was too blind to see its different now for Application Templates.....well that and it must be true you can't teach an old dog new tricks :D

I am planning on attempting to set it up manually for the Stm32F746g-Discovery so I can verify the process for a board that I know works before attempting on a new custom board.

Do you have any ideas on why my debugger isn't connecting? It connects fine when running target from the Designer and from the previous STM32CubeIDE version. It will also connect with the new version of CubeIDE / CubeMX if I setup a project the old way (but have a black screen).