cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple displays possible?

Jesper Ronnholm
Associate III

Is it possible to create any kind of hack to run multiple displays on one MCU with ToughGFX?

I'm looking for a way to have one display be drawn normally, but with two smaller displays at very low frame-rates (no higher than 1Hz).

1 ACCEPTED SOLUTION

Accepted Solutions
Martin KJELDSEN
Chief III

Hi Jesper,

Okay. For the parallel display you can simply use one of the existing solutions that configure the LTDC controller and then hook into the flushFrameBuffer(Rect& rect); method in your concrete HAL to transfer data to your serial display(s). It's not something i've tried before (multiple displays) but i can't see why that shouldn't work fine.

Here is a post about how to use flushFrameBuffer() with something like a serial display:

https://community.st.com/s/question/0D50X0000ADDsIiSQL/stm32f4touchgfxlcd-with-8080-parallel-interface

Best regards,

Martin

View solution in original post

5 REPLIES 5
Martin KJELDSEN
Chief III

Hi @Jesper Rönnholm​,

How are the displays connected?

Jesper Ronnholm
Associate III

We use parallel 565bpp for the main display, and a simple serial 8bpp (greyscale) protocol over the SPI bus for the two side displays. The side displays are memory mapped to 320x120px and have an update frequency of around 0,5 Hz.

We're looking to manage all three displays from TouchGFX - either in parallel app instances or on the same.

None of the three displays have a touch controller, so there's no conflict there.

Martin KJELDSEN
Chief III

Hi Jesper,

Okay. For the parallel display you can simply use one of the existing solutions that configure the LTDC controller and then hook into the flushFrameBuffer(Rect& rect); method in your concrete HAL to transfer data to your serial display(s). It's not something i've tried before (multiple displays) but i can't see why that shouldn't work fine.

Here is a post about how to use flushFrameBuffer() with something like a serial display:

https://community.st.com/s/question/0D50X0000ADDsIiSQL/stm32f4touchgfxlcd-with-8080-parallel-interface

Best regards,

Martin

Martin KJELDSEN
Chief III

I made a post in this thread that outlines how to transfer data to serial displays by hooking into flushFrameBuffer()

https://community.st.com/s/question/0D50X0000ADDsIiSQL/stm32f4touchgfxlcd-with-8080-parallel-interface

Jesper Ronnholm
Associate III

Thanks! We will study it closer.

It looks like we can maybe exploit the canvas by changing the application screen size after the initial code generation. Then we have one area of the canvas that will show in the original display, and one area that is only visible in the designer.

At least in terms of display compartmentalization, this would allow for keeping the canvas of all three displays in one designer project.

By manipulating the ChromART circuit when rendering outside the main display canvas, we may possibly also be able to inject the correct bitmap encoding for rendering the grayscale framebuffers (on the side displays).