Skip to main content
Senior
September 1, 2024
Solved

GFX01M2 and unsupported X-Nucleo boards in TouchGFX

  • September 1, 2024
  • 7 replies
  • 3201 views

Hi,  much trepidation here as I'm new to STM32 and new to this forum too.  

Looking through the entire inventory of STM microcontroller products, one could be forgiven for becoming a little confused over the 'right choice' or combination of hardware and software packages for a particular project.  I am a little confused!

Here is where I am with my efforts so far. I am - as part of my project development - trying to configure a GFX01M2 X-Nucleo diplay expansion board to run on an STM32F303RE Nucleo board.  Following various tutorials online, I am reasonably sure that I have produced a working hardware configuration via CubeMX v6.8.0 (I'm using this version presumably to keep compatability with X-CUBE-DISPLAY v3.0.0 Middleware). I have also configured X-CUBE-TOUCHGFX for this particular display expansion board.

My next step is to create the most basic of GUI's so I can test for a working setup of the boards.   To this end, I have used the STM32G071RB as a template/substitute MCU.  At this stage, I'm looking for no more than displaying some text on the display.  

My intuition suggests that i need to combine parts of the generated code from TouchGFX into my (hopefully correct) project for the F303RE via CubeIDE.  I'm at a bit of a loss as to how to achieve this, or, even if this is the correct approach to the solution.  Can somebody help me out and point me in the right direction.   Thanks!    

 

          

Best answer by GaetanGodart

No problem ! :smiling_face_with_smiling_eyes:

 

I think you are also looking at the wrong guide, we have an old guide talking about tgfx.exe but this is not the process anymore.

 

I think your next steps are :

  1. Upgrade all your software (STM32CubeMX, STM32CubeIDE, STM32CubeProgrammer and TouchGFX) and firmware
  2. Open TouchGFX Designer and create an empty project using a STM32G071RB nucleo + GFX01M2 to be able to look at what a working TBS similar to the one you want to create would look like
  3. Follow our TBS creation guide : board-bring-up/board-introduction 

 

Don't hesitate if you have questions. Maybe it would be more appropriate to create a new topic for those specifis questions.

 

Regards,

7 replies

GaetanGodart
Technical Moderator
September 2, 2024

Hello @Al-E-Bags ,

 

The GFX01M2 screen and the STM32F303RE Nucleo board are compatible so it should be able to work.

I think you are missing some steps.
Have you looked at our documentation for board bring up : board-introduction 

What you could try is to do the same steps you have done for the F303 but for the G071 and then compare your G071 project with a G071 project created from TouchGFX Designer. Every difference between the provided project and the project you have created will also be missing in your F303 project.

You can also check some guides such as this one : [Youtube] How to integrate TouchGFX in a custom board 

 

Hope this helps. :smiling_face_with_smiling_eyes:

If this comment answers your question, I invite you to select it as "best answer".

 

Regards,

Al-E-BagsAuthor
Senior
September 2, 2024

Hi and thank you for responding to my query. I'll be sure to take an in-depth look at the 'board bring up' document you have suggested.  At first glance, there looks to be quite a lot of useful information there. 

STM32 is an entirely (well not entirely) new architecture for me so, struggling a bit.  It's good to find this community forum!

GaetanGodart
Technical Moderator
September 2, 2024

My pleasure!

Do not hesitate to create a new topic if you have a specific question or to comment this topic.

 

Regards,

Al-E-BagsAuthor
Senior
September 3, 2024

Hi Gaetan. I have a couple of questions regarding the F303RE and the G071.  I'm specifically trying to 'match' the F303 to the G071 .ioc files in CubeMX.  There are differences in the pinouts of the MCU's, most of which I have managed to resolve however, I notice that in the X-CUBE-DISPLAY V.3.0.0 middleware (in the 'platform settings' tab), the configuration options are different on both despite being the same ST7789V driver as can be seen in the screenshots I have attached below.  Can you help me out with this?  I would like to know if there is a solution.  

Screenshot 2.pngScreenshot 1.png   

The screenshot on the right is from the G071*.ioc file.  The LCD_TE and the LCD_TE HSync Timer options are unavailable to the F303RE (on the left). 

Thanks for your time.

GaetanGodart
Technical Moderator
September 3, 2024

Hello @Al-E-Bags ,

 

I have created a new project using a STM32G071 nucleo that you are using as an example.
I have opened the ioc file.
I can see the x-cube-display middleware, but it is not set up for me :

GaetanGodart_0-1725354145635.png

Am I missing something?

 

Regards,

Al-E-BagsAuthor
Senior
September 3, 2024

Hi Gaetan.  Which version of the IDE/CubeMX are you using?  To have compatibility with X-CUBE-DISPLAY v.3.0.0, I think the latest versions of each you can use is v6.8.0 for CubeMX and v1.12.1 for CubeIDE.  At least this is what I believe to be correct (and is what I am using). Is the option 'greyed-out'?  I found that by clicking X-CUBE-DISPLAY, I have the option to configure access to the relevant display expansion boards, drivers etc. Once configured there will be a green tick against the X-CUBE-DISPLAY option and further configuration can be accessed by the tabs in the .ioc interface.

Screenshot 5.png

Hope this helps.  Thanks for helping me out!

 

Al-E-BagsAuthor
Senior
September 3, 2024

...first, you would need to download and install the X-CUBE-DISPLAY pack via the Help menu in the IDE.  Find the pack under 'Manage Embedded Software Packages' menu item.  Sorry, I forgot to mention this in my post.

GaetanGodart
Technical Moderator
September 4, 2024

Hello @Al-E-Bags ,

 

STM32CubeMX version : 6.12.0
TouchGFX version : 4.24.0

Here is what I have done in order to try to have a working example to get inspired from :

  1. Create a new project directly from TouchGFX Designer
  2. Select STM32G071RB + GFX01M2
  3. Generate code from TouchGFX Designer
  4. Open folder
  5. Open .ioc file

From there, the X-CUBE-DISPLAY is greyed out.
I install it directly from STM32CubeMX.
Then it is still greyed out, I look at what is selected and this is what I see :

GaetanGodart_0-1725450380642.png

I do not understand how you managed to have a working example that uses X-CUBE-DISPLAY.

The example created directly from TouchGFX Designer is a working example and it doesn't seem to use X-CUBE-DISPLAY.

SO my questions are
How did you end up with a working example that uses X-CUBE-DISPLAY for the STM32G071RB + GFX01M2 ?
Shouldn't you just not use X-CUBE-DISPLAY?

 

Regards,

Al-E-BagsAuthor
Senior
September 4, 2024

Hi Gaetan.

I attach a screenshot of CubeMX at versions 6.8.0 and 6.12.0 together on my desktop.  As you look at it,  V6.8.0 is at the right hand side of the screen.  V6.12.0 at the left.  On the left (v6.12.0), notice the red 'cross' icon in the dropdown box on the X-CUBE-DISPLAY line where as on the right side (v6.8.0) there is no such icon.  Essentially, you can not use X-CUBE-DISPLAY V3.0.0 in CubeMX at versions higher than v6.8.0.  Version 6.8.0 of CubeMX will allow cofiguration of GFX01M1, GFX01M2 and GFX02Z1 display expansion boards and their appropriate drivers and buses. 

The yellow warning triangle appear on the configuration screen on the right (v6.8.0) because as yet, there are no SPI buses enabled in the ioc file.  If I were starting from scratch, I would set SPI1 and SPI2 from the 'Connectivity' tab in the ioc to Full Duplex first, prior to setting the X-CUBE-DISPLAY options.

Screenshot 8.png 

  Once you have this configuration, you should be good to go. 

The F303RE that I am using for the GFX01M2 display needs to be configured for the diplay as there is no support for it in TouchGFX.   As far as I know...and I am no expert by any means, using X-CUBE-DISPLAY via the version of CubeMX I am using is the only means I have found to be able to do this.   

Hope this helps.

Al-E-BagsAuthor
Senior
September 4, 2024

Hi Gaetan.

In answer to your question, I should have mentioned that when the X-CUBE-DISPLAY package is installed,  the STM32Cube->Repository  directory will contain several folders, one of which is for the NUCLEO-G071RB board.  In this folder there is a HelloWorld application for both the GFX01M1 and GFX01M2 expansion boards.  I'm using this example to configure the F303RE.

GaetanGodart
Technical Moderator
September 5, 2024

Hello @Al-E-Bags ,

 

Ok, I think the confusion came from the different versions of STM32CubeMX that we are using.
In general it is recommended to use the latest version of software and firmware if possible.
Are you restricted to using an older version or can you upgrade?

 

"
The F303RE that I am using for the GFX01M2 display needs to be configured for the diplay as there is no support for it in TouchGFX.
"
This could be true for your version, but in the most recent version and most recent TBS (TouchGFX Board Setup), we do not use X-CUBE-DISPLAY, that is why I got confused.
It is actually not compatible anymore once you upgrade STM32CubeMX (I have tried to reproduce your issue):

GaetanGodart_0-1725528508591.png

 

"
As far as I know...and I am no expert by any means, using X-CUBE-DISPLAY via the version of CubeMX I am using is the only means I have found to be able to do this.
"
To use X-CUBE-DISPLAY the simplest way is probably through STM32CubeMX, but maybe you can download it and do it "manually".

 

Please, tell me if you can upgrade to the latest versions of software as it will make it easier to help you.
You won't need X-CUBE-DISPLAY at all if you upgrade.

Also, regarding the initial question about missing pins/signals, these signals are not mandatory, they are the prevent tearing, but you can add that manually, this is what we do in most TBS.
Here is the example of tearing effect signal (interrupt) for the most recent STM32G071RB-nucleo + GFX01M2 TBS :

GaetanGodart_1-1725528794781.png

 

Waiting for your answer.

 

Regards,

Al-E-BagsAuthor
Senior
September 5, 2024

Hi Gaetan.

"
Are you restricted to using an older version or can you upgrade?

"

No, no restriction whatsoever.  I have V6.12.0 installed but was using V6.8.0 for compatibility with X-CUBE-DISPLAY which I thought I needed to have.

"

... the most recent version and most recent TBS (TouchGFX Board Setup), we do not use X-CUBE-DISPLAY, that is why I got confused.

"

Ok, I too am, or have been confused (as I mentioned in my first post on this subject).  I had some issues trying to use the tgfx.exe tool (I could not get it to open correctly in a terminal window).  I think this is why I abandoned the TouchGFX Board Setup process and opted for CubeMX route to try to achieve my goals.

"

Also, regarding the initial question about missing pins/signals, these signals are not mandatory, they are the prevent tearing, but you can add that manually, this is what we do in most TBS.
Here is the example of tearing effect signal (interrupt) for the most recent STM32G071RB-nucleo + GFX01M2 TBS 

"

Ok.  It looks like I was headed down the wrong path.  I need to work out why I am having trouble using the board setup process and then, I think, we will be on the same page!  I shall remove the older version of CubeMX and work only with your instruction.  I'm sorry for any confusion I have caused.  

Please walk me through the steps I need to set up and use TBS (TouchGFX Board Setup.   Thanks for your time...and your patience :)

 

 

GaetanGodart
GaetanGodartBest answer
Technical Moderator
September 5, 2024

No problem ! :smiling_face_with_smiling_eyes:

 

I think you are also looking at the wrong guide, we have an old guide talking about tgfx.exe but this is not the process anymore.

 

I think your next steps are :

  1. Upgrade all your software (STM32CubeMX, STM32CubeIDE, STM32CubeProgrammer and TouchGFX) and firmware
  2. Open TouchGFX Designer and create an empty project using a STM32G071RB nucleo + GFX01M2 to be able to look at what a working TBS similar to the one you want to create would look like
  3. Follow our TBS creation guide : board-bring-up/board-introduction 

 

Don't hesitate if you have questions. Maybe it would be more appropriate to create a new topic for those specifis questions.

 

Regards,

Al-E-BagsAuthor
Senior
September 5, 2024

Will do! Thanks again.