Skip to main content
Raymond Buck
Senior
January 27, 2022
Solved

STM32F429 Discovery Board Not Working Properly

  • January 27, 2022
  • 23 replies
  • 6862 views

I purchased a STM32F429 Discovery Board about a year ago. I finally got around to unboxing it today. I want to see if I can figure out how to use the TouchGFX tool with this board. I want to have 6 buttons and a textbox on the display.

The board has a program loaded on it from the factory. Apparently something is not right with the software. The screen has Video player, Image browser, Clock/Calendar, Performance, Game, and System Info images on the screen. I assume you are supposed to touch these to see a demonstration of these items.

However, none of them work properly. If I touch Clock/Calendar the display will sometimes pull the calendar and clock up. At other times the screen changes to "MJPEG Player". If I touch the System Info "button" it pulls up Image Browser and says "No File Found". Regardless of what comes up, NONE of the buttons respond to being touched. The only thing I can do is press the reset button. This restarts the board and it returns to the default startup screen.

Did anyone test this software before shipping the boards to the distributors?

Are there any tutorials online that can help me program this board to something that works? Everything I have found so far uses STM32F7xx CPU's. Is there anything that can be done to make the factory installed program work?

This topic has been closed for replies.
Best answer by Raymond Buck

Tesla DeLorean,

Thank you for all you comments. They give insight into why there are not examples available for the F4x9 parts.

My application is fairly simple. I am building a HF receiver as an update to one I built several years ago. I have been a amateur radio operator since the early 60's. The previous radio used buttons and rotary switches to select various functions, such as band, USB, LSB, selectivity, etc. For the new radio I want to use touch screen buttons. That will save a lot of hole drilling, hardware, and the associated wiring.

My first thought was to use a 3.5 inch Nextion TFT display with a built in driver/CPU and their graphics generation tool. But I thought about it and decided I could purchase a less costly screen without the driver/CPU built in. Since I needed a CPU to control the radio I figured the 429 with the LCD driver engine would be the approach to take. The cost of the 429 + the non-driver TFT was about the same as the display with the driver built in. And I would also have more capability with the 429 vs a smaller CPU. The cost of a F7 part + driverless TFT far exceeds the Nextion with driver part.

I will stick with the 429 part as I know it is more than capable of doing what I need. I am watching a couple of ST videos now on how to use TouchGFX. If I can create a couple of buttons and have them light LEDs on the Discovery board I will then design my custom board around the 429 part. The 180 MHz clock is overkill for the radio as CPU in the old radio runs on a 32 MHz clock.

Again, thanks for you comments. It really helps.

Jan,

The clarification of your app answers my questions. If I move the stylus very slow it does draw a solid line. Also, holding the User button down and touching the center of the X and moving it to the opposite diagonal corner, the line then follows the stylus.

Maybe the younger generation likes to play with mirrored drawing but the age of my brain probably cannot handle that very well. :)

If I have questions about TouchGFX I will create a new topic. I will go back to the other forum and add a link to this post.

Thank you for you help.

Ray

23 replies

CLam.2
Visitor II
November 5, 2022

Hi @Community member​ , I have the same board STM32F429I-DISC1 MB1075E. The doodle file you supplied works in LCD display and can draw as well.

I am a complete beginner, got this discovery board last week after reading reddits and people's advice blogs for starters. Definitely it looks like I should have bought a recent one, but I didn't know of that. None of the demo codes work to display the LCD except your doodle.hex. Can you please send me the zip file of the source code, may be I can modify that to keep learning about the peripherals and grow slowly from there.

Thank you a lot in advance.

Ccer

Romain DIELEMAN
ST Employee
November 7, 2022

Hi,

Are you planning to use TouchGFX or are you just having some fun with discovery kits for learning ? If you wish to use TouchGFX you will find a fully pre configured project, which we call TouchGFX Board Setup (TBS), in TouchGFX Designer for the STM32F429 dk rev E. In TouchGFX Designer 4.20 you will see 3 different TBS available for the STM32F429 dk so make sure you select the one for the revision E. You will then have a configured STM32CubeMX project with all the necessary board specific packages to run a TouchGFX application on this board, and you will be able to use either STM32CubeIDE, Keil, or IAR as your preferred toolchain.

/Romain

Raymond Buck
Senior
November 5, 2022

CLam.2 (Community Member)

CCer, if you look at this link https://www.eevblog.com/forum/microcontrollers/need-hex-file-to-test-touch-screen-on-stm32f429-discovery-board/

you can download my zip files and try them on you display. There are 2 files and you will have to change the zip extension to bin to program them into your board.

I hope this helps you with your board.

waclawek.jan
Super User
November 6, 2022

AFAIK the E revision of Disco'F429 is the latest one.

Most if not all Disco'F429 code out there uses the LTDC controller inside the 'F429, and treats the LCD as a "passive" RGB LCD. Raymond's files use that probably, too, try that first. If that does not work properly and "doodle" does (see below), there may be problem eg. with the LCD's connector being improperly seated.

So, in contrast with others, "doodle" actually uses the LCD's controller and talks to it through SPI, so it uses far less contacts on the connector (and far less mcu pins, as it is part of an unfinished project which uses pins on the 'F429 which would be otherwise used to control the SDRAM and the RGB portion of LCD). It is a significantly slower way of drawing things on LCD, but for this particular project it did not matter.

As it contains code which is not mine, I cannot give away the sources, but here is a simplified version which draws on the LCD using SPI and could be potentially used as a starting point for experiments.

JW

CLam.2
Visitor II
November 6, 2022

yep doodle works but not the other 2 files.

Any oss repos that exactly works for this board would be highly appreciated.

Thanks,

Ccr

CLam.2
Visitor II
November 6, 2022

Can you please recommend another good discovery board so that I can learn from the basics ?

waclawek.jan
Super User
November 6, 2022

> yep doodle works but not the other 2 files.

And have you tried the binary (lcd.bin/lcd.hex) from the disco_f429.zip, I gave link to above?

JW

CLam.2
Visitor II
November 7, 2022

yes the lcd.hex works, thanks a lot.

SGill.3
Associate
April 14, 2023

I had this issue with the blue -E01 version of the 32F429 discovery kit. The touch screen was flipped left to right (looking at it in landscape). So, if a button was on the left side of the screen, you would need to press on the right side of the screen to activate it. The way the board is put together, I could not see a way to fix this mechanically without the risk of damaging the board. I contacted STM to see if there was a way to fix this in the software without a resolution. I could not figure out how to flip it myself in the software. I ended up testing stuff pressing on where I thought the touch screen location of the button was.

The touch screen controller gives the processer a pair of numbers that represent the press location. It is up to the processer to figure out if the x, y location is where a button on the screen is. I am going to try a blank project with the -E01 board description and see if that works.

MM..1
Super User
April 16, 2023
Seems you completely don’t understand how touchGFX code work. Open target folder and edit touch cpp file. Rearange touch coords is two line code...