adafruit / Adafruit_LvGL_Glue

“Glue” library between LittlevGL and Adafruit GFX (SPITFT)
Other
35 stars 14 forks source link

Upgrade Glue to LVGL v8 #17

Closed photomoose closed 2 years ago

photomoose commented 2 years ago

Upgraded Glue to support LVGL v8.

Note: this has been tested only on an Adafruit Feather Huzzah ESP32.

Most examples have been upgraded to support new v8 APIs, however I haven't upgraded the widgets examples for other boards - these still require some work and won't compile. Maybe I'll take a guess at what the APIs should be if I get further time - alternatively, if someone has access to the boards and a little time, please feel free to contribute.

embeddedt commented 2 years ago

As of 8.0, LVGL now has most of the examples except the very large demos in the main repository. I am just trying to understand the reason for needing to maintain separate demos here?

photomoose commented 2 years ago

Agreed - maybe we should minimise the examples in this repo just to really simple widgets, just to prove the concept. If a user wants to go further, then they can do so by looking at the demos in the official LVGL repo, as @embeddedt suggests.

Note: I think there's probably a memory leak in the SD card implementation here - I dynamically allocate memory for the file object when the file is opened, but should probably release it when the file is closed. I'll push up another commit to fix this shortly.

kisvegabor commented 2 years ago

Hi,

Glad to see that your are planning to update to v8! :slightly_smiling_face:

We have merged the examples to the main lvgl repo to make them easier the find and use.

So I also encourage you to refer to the "built-in" examples and add only a minimal number of demos to explain how to use LVGL on your system.

PaintYourDragon commented 2 years ago

That’s probably for the best. My thinking at the time was to show LvGL “flexing” on each Adafruit board…but in hindsight, just a “hello” for each, and pointing readers toward the experts for anything further, would be prudent.

A little swamped with other projects at the moment, but I’ll work those changes (along with the 8.0-ification) into the next Adafruit_LvGL_Glue release and documentation.

I appreciate your taking the time. Thank you!

kisvegabor commented 2 years ago

My thinking at the time was to show LvGL “flexing” on each Adafruit board…but in hindsight, just a “hello” for each, and pointing readers toward the experts for anything further, would be prudent.

It sounds reasonable to me.

I appreciate your taking the time. Thank you!

Thank you too! :slightly_smiling_face: Let us know if you have any LVGL specific questions or issues.

pmalecka commented 2 years ago

hi @kisvegabor, any news on this? I'd like to give lvgl 8 a shot on my PyPortal Titano, merging this would help tremendously. Thanks

kisvegabor commented 2 years ago

Are we waiting for LVGL related things?

photomoose commented 2 years ago

It's been a while since I submitted this PR (or worked actively with LVGL), however I have had this PR running on my Feather Huzzah continuously for the past year or so...

I do, however, remember missing a line of code or so in this PR. I'll dig out my local code to see what it was and will report back.

PaintYourDragon commented 2 years ago

Hi folks. Been super busy. I’m looking at this today. Gonna merge as-is regardless whether this works everywhere quite yet. As long as I don’t publish a new release, shouldn’t affect most users, only those pulling source from git. Will then make an extra pass of my own…

photomoose commented 2 years ago

@PaintYourDragon if you give me a few mins, I'll post up that missing line of code.

With respect to the examples, I would recommend also keeping the hello_featherwing_sd example, as that demonstrates how to make use of the embedded SD card reader in the 3.5" TFT Featherwing.

PaintYourDragon commented 2 years ago

Sure thing! I’ll sit back for a little, it’s about lunchtime here anyway. Thanks!

photomoose commented 2 years ago

@PaintYourDragon I've pushed the fix which releases the dynamically allocated memory reserved during sd_open() when sd_close() is called - only took me 7 months to get round to doing it :-).

Tested by setting LV_MEM_CUSTOM in lv_conf.h (so LvGL uses malloc) and printing out the available heap on my board in sd_open() andsd_close() (via ESP.getFreeHeap()).

PaintYourDragon commented 2 years ago

Tested on all boards with a “hello” example, so LvGL_Glue 2.1.0 is published! May take a couple hours to percolate through to the Arduino Library Manager.

lvgl library dependence is now pinned to version 8.2.0 (the current release as of this writing) since we know that works. Thank you for your help with this!

kisvegabor commented 1 year ago

OFF TOPIC

Hi,

I'd like to ask if you could help me to connect with a representative of Adafruit. I'm building a collaboration model between LVGL and hardware manufacturers and it'd be amazing if we could talk about it.

If it's not too much trouble, could you kindly assist me with this request? I can be reached at gabor@lvgl.io and would be grateful for any assistance you can provide.

Thank you in advance for your time and consideration. :blush:

ladyada commented 1 year ago

hiya you can email pt@adafruit.com with any questions!