Showing results for 
Search instead for 
Did you mean: 

Hardware mistake and LTDC remapping solution wanted!


Hello everyone, I have a big problem with the hardware. I designed the hardware before dealing with the Cubemx. Starting from a circuit that worked, I mistakenly thought that giving the system RGB666 from RGB888 meant giving bits 0 to 6 R0...R6, G0..G6, B0..B6. I then connected the two bits of the display R0, R1, G0, G1, B0 B1 to ground, as shown in the figure. But I have the problem that everything is wrong.Is it possible to remap LTDC so I can see everything properly?

Thanks for your help.Disp Schematic.png





Accepted Solutions

Simply in MX wizard change ltdc layer 0 to L8 and same touchgfx buff to L8 and regenerate target.

View solution in original post


Ok, I understand that this is not possible to do on the LTDC, I just read the datasheet, but it is instead possible to manipulate the color file on touchgfx, but I would have to override the setBitmap(const Bitmap& bmp) function similar to readBMP24File and shifting the pixels, it would Is a similar solution possible or not? premise, I set the HW as RGB888 and it works and then deinitialized the x6 and x7 pins of the RGB, and everything goes, now the color needs to be shifted downwards by two bits per color.

Ok, update: one part of problem solved changing file color.hpp, now the hard part is intercept ware the bitmap for widget is loaded and shift rgb, there is someone can help? can't find this in code.  I can be very grateful for this, I have a demo and can't change hardware in this moment...


LTDC is hw based transfer , you cant manipulate it, but you can change framebuffer data before LTDC use it.

Issue is speed and size of lcd. For example 320x240 you can simple change data in buffer, but for big displays MCU dont have power todo.

Hi MM..1, thanks for your answer. I 'm using H7, I can try to do it, ware is the specified point for buffer transfer whith touchgfx?

You have maybe next one choice, use L8 LTDC indexed mode 256 pallete system and modify generated array.
But here your design is limited to 256 colors.

Thanks for the suggestion, I wanted to modify the direct reading of the bitmaps from the external flash at loading, this would have made the computational cost minimal. I've already done this for colors where the change was quick. But I searched for hours for the link between the widgets and the load and I think it's closed in drawPartialBitmap(xx..), wouldn't there be a way to overwrite the function? regarding the tip with L8, is there an example of how to create the setting? Thank you.

Simply in MX wizard change ltdc layer 0 to L8 and same touchgfx buff to L8 and regenerate target.

MM..1, YOU SAVED ME! how this mechanism work? different bit/byte distribution? I'm a newbie on interfaces, I'm 12 years old on power systems... very distant from this field. Really thanks!

But now I have this proble, this is for L8? I don't understand... IMG_20230910_141431035.jpgIMG_20230910_141448863.jpg