257 views
in Platform Packages by

We are currently using Embedded Wizard 9.00 and our project platform package is NXP.iMX_RT.RGB565. I am looking into converting to Index8 as a way to save memory. I have created the CLUT file from EW and switched all platform packages and defines to Index8. The prototyper looks okay, but the image does not display correctly on the device. I am assuming this is because the clut.c file has 32 bit color mappings and the hardware only supports RGB565 values, but I could be misunderstanding the relationships between everything. 

Would updating to Embedded Wizard 9.20 allow me to accomplish this? Looking at the documentation it seems that having an RGB565 framebuffer and Index8 bitmap became possible in the 9.20 update. Is there any way to do this without updating from 9.00?  Below is the LCD schematic of our device. 

Thanks,

 

John

 

1 Answer

0 votes
by

Hi John,

let's try to sort out different things.

With version 9.20 the support of RGB565 and Index8 bitmap resources was introduced - this means that you can use these formats as sources within your GUI application. This has nothing to do with the destination format (= your framebuffer format). So from this aspect, there is no need to update. (Anyhow: We highly recommend to use always the latest version....).

The physical connection between your i.MXRT target and the display is not relevant for the framebuffer format. The integrated display controller LCDIF takes care to convert the framebuffer color format (e.g. RGBA8888, RGB565, Index8,...) to the display format (e.g. RGB24, RGB18, RGB16,...).

The CLUT is organized as 32bit color values. So in principle, it should be sufficient to use NXP.iMX_RT.Index8 instead of NXP.iMX_RT.RGB565 within your profile and to use the corresponding graphics engine on the target.

Can you try to run the example ColorFormats (should be provided in the folder /Examples of our Build Environment) and test the Index8 color format? Does this work?

Best regards,

Manfred.

by

Some additional remarks:

Maybe you can share some more details about the current memory footprint and the goals you want to achieve.

Further information can be found in the section Optimizing the Data Memory (RAM) usage.

by

Hi Manfred,

I tried using the example Embedded Wizard project and ran into the same issue. In our initial implementation, we had to change the databus from 16 bit to 18 bit in order to get the red to display correctly. After that change, everything worked correctly.  

Do you have any further suggestions? 

Thanks,

John

by

Hi John,

according to your last message, the display output is now correctly with your 18bit bus. Correct?

Do you have any further suggestions? 

What kind of additional help do you need?

Best regards,
Manfred.

by
The RGB565 displays correctly with the 18bit bus, but I can't get Index8 to display the red component - It looks similar to how RGB565 looked before switching to 18bit bus. I've tried switching bus and pixel format for Index8, but it only gets worse.

 

John
by
For anyone with a similar issue:

In order to get the display looking correct, I had to change the bit shifting in the EwBspSetFramebufferClut (in ew_bsp_display.c) to align with our hardware. Instead of left shifting by 11, 5, and 0, I changed the values to 13, 6, and 1.

Embedded Wizard Website | Privacy Policy | Imprint

...