How to use lvgl projects on a bare-metal Raspberry Pi


Are there any tutorials on how to use the lvgl GUI that is created using PC simulator on a bare-metal Raspberry pi 3B+?

What MCU/Processor/Board and compiler are you using?

currently I can run my lvgl gui on a Raspberry pi 3B+ that has Rasbian OS.

What LVGL version are you using?

latest version (v8)

What do you want to achieve?

I want to use my LVGL GUI on a bare-metal raspberry pi

What have you tried so far?

Running the GUI on a raspberry pi that has Rasbian OS.

If you are using SO3, you’re very close to bare metal solution. However, you still need to have a framebuffer driver (pretty simple) to run on RPi3B+.

Hi @drossier
Thank you for your reply.

I’m not sure what is SO3 - I’m not very familiar with RPi and linux-like systems.
Are there any online references that you would suggest?

Sure, sorry forgetting to add the link. SO3 is a lightweight OS devoted to ARM specifically (RISC-V will follow). The thing is you have a minimum set of code used to bootstrap and you’re able to access devices in a simple way. Even without any MMU. Give it a try in the QEMU emulated environment if you can. If you go further, we can see together to have a simple framebuffer driver running on RPi3B+ (currently, SO3 is configured to run on RPi4, but with no support to the framebuffer currently). However, LVFL 8 is perfectly running in the emulated environment. Here is a link:


Fantastic, I will give it a try and update you how it goes. Many thanks
If I understand you correctly, ARM based microcontrollers are supported by SO3, so STM32 microcontrollers should be supported as well ?

Hi, I was thinking about same thing few days back but I did not have time to try something except Google search which result in findings 2 projects which could be helpful:

I hope it will help :wink:

If I will try something in the future, I will share my results.

Thank you for your suggestion. I tried to run the QEMU Raspberry Pi emulator but ran into many issues. It seems a bit advanced for me :slight_smile:

I think I will give it a try later once I finilaze my code and make sure it works fine on Raspberry Pi that runs Raspbian OS.

It is certainly possible to run SO3 on a STM32 provided some adaptations. But the thing is to run LVGL in the user space, you certainly need a MMU which is not provided by STM32 so far I know.

1 Like