I did try the lvgl pc version on this device (the same code that runs on my Linux workstation just fine) running Weston/Wayland, and the app started up with no errors, but nothing displayed on the screen.
Hi @kisvegabor /@cbrake ,
Thanks for the post on build setup. It helped me lot in using LVGL with my board.
I am using a sama5d3xek board which has a LCD resolution of 480X272.
Now i have issue on color format. I tried to configure to 32bit and 16bit(LV_COLOR_DEPTH 32 and LV_COLOR_DEPTH 16 in lv_conf.h) but looks like the display has something different than these two values.
From the above fbset command results, it shows 24
geometry 480 272 480 272 24
Is this the colour depth to be set?
If Yes, then the configuration file lv_conf.h doesn’t support this value.
Please help us to know how can we figure out this issue.
Below is the snap shot of display how it looks when configured to 32 bit
Hello, see the datasheet for that sama5d3xek board:
Section 6.1.3 says the following: Graphics and text can be displayed on the dot matrix panel with up to 16 million colors by supplying 24-bit data signals
(8bit x RGB by default) or 16-bit data signals (5+6+5bit x RGB in option). This allows the user to develop graphical user
interfaces for a wide variety of applications.
The display has 3x8 pins for the colors connected, but you can choose to use 16 bits color.
It seems to me like the problem here above has more to do with timing of your display than the setting with LVGL. For 24-bits color, you need to use 32 bit color depth. The last 8 bits of 32bit color are used for alpha, which this screen will not use.
LVGL v8 can render in 16 bit (RGB565) and 32 bit (ARGB8888) format, so 24 bit (RGB888) is not directly supported. The docs is really misleading in this regard. I’ve just updated it.
What you can do is rendering in 32 bit LV_COLOR_DEPTH 32 and convert it to 24 bit by dropping the 3rd byte from each pixel in the flush_cb.
I also know that it’s not ideal, but in v9 (will be released this year Q4) RGB888 rendering will be supported.
Hi,
I am trying to build the lv_port_linux_frame_buffer example in my yocto project. And in this example its mentioned that “LVGL configured to work with /dev/fb0 on Linux”. But when i run the binary from image, it shows the below output.
.
Looks like it is using DRM.
Also in bitbake file, it is converting to drm instead of fbdev. lvgl-demo-fb_8.3.0-bb.txt (2.6 KB)
But when i try to cross compile the same example for my controller by enabling “USE_DRM” macro in lv_drv_conf.h file and converting fbdev functions to drm functions in main.c, i end up in getting lots of errors.
Kindly let us know if we can use DRM [“/dev/dri/card0”] instead of fbdev.
I am asking this because, we are able to build the yocto image and see the display as expected.
Hi,
Will toggle the LV_COLOR_16_SWAP macro and check for the color.
But my concern is to use DRM instead of FBDEV.
Can i get help on this? I have enabled the USE_DRM macro in lv_drv_conf.h file
Also changed the fbdev functions to drm functions. main.c (2.5 KB)
Cross compiler used: arm-poky-linux-gnueabi-gcc
When cross compiled the lv_port_linux_frame_buffer example with above main.c file, getting errors on drm calls.
Yes, after linking the drm library, got rid of errors and generated binary file.
But now touch is not working, which was working before.
Currently following macros are enabled in my lv_drv_conf.h file.
USE_DRM
USE_WAYLAND
USE_EVEDEV
EVDEV_CALIBRATE
And following macros in my lv_conf.h file.
LV_COLOR_DEPTH 32
LV_USE_DEMO_WIDGETS 1
[Note: Rest of the macros are as default]
I am not able to see touch functionality with above macros enabled.
What are the macros to be enabled in lv_drv_conf.h file for touch to work?
Is there any configuration to be done apart from enabling the macros?