Porting LVGL to VEXcode Text

Hi all,

I want to port LVGL for use in VEXcode Text to display pictures and make a nice auton selector. Before you ask, yes, I could just use PROS, but my IT situation makes this not an option, and I also don’t have the time to learn okapi.

if I need to clarify anything don’t hesitate to message me.

First of all, you don’t need to learn how to use okapi, it’s completely separate from the main API. Doing simple stuff like moving motors is actually less writing with PROS.

Motor motor(1);

Too bad about IT.

LVGL with VEXCode has been done before:

It probably should not be too complicated, just follow the LVGL porting guide. You can use the PROS source as reference on how to connect LVGL to the VEX display.


Hey, @theol0403, Thanks for the quick reply.

I checked the PROS wiki , which basically said to untick a box to use LVGL. Then I realized you weren’t talking about the wiki, and my next question is, should I be checking the PROS program source or some LVGL example code made with PROS?


I was going to release this code a while back, but there are issues building this with the windows build of VEXcode due to some of the backend code being 32 bit and running into memory issues (due to the structure of the LVGL source files). However, it does build well on Mac.

alternate version using newer LVGL source

Have fun, but I will not be providing any support for this.


Thanks a lot for this. Unfortunately, I only have Windows machines, but I’ll try this anyway and see maybe if I can get it to work.

I added a repo with a new build based on the latest 7.0 release of lvl.


You know you can make an auton selector without using lvgl right?

In vex code
20 charcters

you do know I work for VEX/Robomatter and was part of the team that created the V5 and VEXcode, right ?


Yah I know that I was talking about the guy that made this post. whattheheckman

ok, just checking, yea I only revived this topic as I had posted the links to the other versions of the VEXcode/lvgl repos in it.


How long did it take you guys to develop all of that stuff. I know this is off topic but I’m curious

V5 development was started in 2015, perhaps some in 2014, I forget. VEXcode was a bit of.a skunkworks project, Raj and I wrote the first version of VEXcode text in about 6 months (mostly Raj). VEXcode blocks was a different team,

and for anyone who’s interested in the origins of the name LVGL, this is from the primary developer.

If anyone interested in the full story:
My full name is Kiss-Vámosi (family name) Gábor (first name). In Hungary, the order is the opposite.
“Kiss-Vámosi” is for short “Kiss-V.” And “Kiss” means “Little” in Hungarian. So Little + V = Littlev:

For fun, one of my friends told me “hey, littlev” when we started to learn English.

So that’s the mysterious story of the name

so little-V graphics library,


Thats cool. I am surprised you guys worked on v5 stuff for so long. I never knew it took that long to develop something like that.

I didn’t know that , but I figure now that It can be done. I wanted to follow some tutorials for an auton selector without asking my team to change their entire codebase, but we all decided to just use separate programs instead. Thanks for the heads up.

Hey, sorry if this is a really stupid question, but how would you use this library in an existing vexcode project? Again really sorry if this is a stupid question.

Hi, and welcome to the forums! However, before posting, it is advisable to first the FAQs. Generally, if you have a question about an old thread (this ones last post was two years ago), you create a new topic. @DRow, would you mind closing this?

1 Like

I’ll answer the question, then yes, probably time to close this old topic.

First, lvgl has moved on to version 8, there’s a VEXcode port of V8.3 here.

The demo project does show how to use the library, but in simple terms
copy the headers (build/include/* in the repo) into the project include folder
copy the library (build/libv5lvgl.a) somewhere sensible where you can link against it, usually I would place inside a “lib” folder in the root of the project.
modify vex/mkenv.mk to link the library

# libraries
LIBS =  --start-group -lv5rt -lv5lvgl -lstdc++ -lc -lm -lgcc --end-group

There’s another demo here using an older lvgl version, might be a better place to start from.