LVGL Support

There’s recently been a small uproar in Arduino land…

Someone released a technology called LVGL which is capable of creating stunningly good looking user interface on something as simple and small as a Arduino Uno!

I’m wondering if it would be anywhere near possible to implement this to TinyCLR? I mean, if a Arduino Uno can do it a big and mighty SITCore could too. Right???

I already contacted the developer once if he was interested in porting it to TinyCLR and he said he would be happy to help but he didnt have the time to do it himself.

It would be a great addition to the UI library, especially with the new VNC support… :smiley:

Some examples of LVGL:

image

You can find videos of these examples here and here

as I READ - it seems a little hunger on bare metal …

Requirements

Basically, every modern controller (which is able to drive a display) is suitable to run LVGL. The minimal requirements are:

Name Minimal Recommended
Architecture 16, 32 or 64 bit microcontroller or processor
Clock > 16 MHz > 48 MHz
Flash/ROM > 64 kB > 180 kB
Static RAM > 2 kB > 4 kB
Stack > 2 kB > 8 kB
Heap > 2 kB > 8 kB
Display buffer > 1 × hor. res. pixels > 10 × hor. res. pixels

Just to mention some platforms:

  • STM32F1, STM32F3, STM32F4, STM32F7, STM32L4, STM32L5, STM32H7
  • Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ
  • NXP: Kinetis, LPC, iMX, iMX RT
  • Linux frame buffer
  • Raspberry Pi
  • Espressif ESP32
  • Infineon Aurix
  • Nordic NRF52 Bluetooth modules
  • Quectel modems

Correct, it uses some resources. But I think that’s a worthy tradeoff if you want a easy way to create truly beautiful UIs. Besides, the current lineup of SITCores have more resources than the recommend specs and should be able to run LVGL.

Please correct me if I’m wrong :slight_smile:

No you are not wrong ,i like too to have that on sitecore because it have a lot of ability :santa: too.

but mainstream on SITECORE was .NET and to keep the best of both world (hardware side and programmer side) need to squish as much as possible (case of graphics/network/…) because of boards limited resources (those are not big pc with a lot of resources…).

case 1: if you want graphic you can use HMI Displays too (just create drivers for them) like Nextion , 4Display …
but also with integrated Sitecore Graphics you have enough space of beatify (just run examples done) and if need you can create same graphics you posted above to …

but only missing tools is an graphic designer - like Glade was before but maybe this are done but is hidden from GHI by any reason …

1 Like

TinyCLR UI is a lot more powerful but it lacks the art. Perhaps add your interest to GitHub. There is already an open issue about UI improvements

3 Likes

I do think that what I see in LVGL that one could add to TinyCLR is support for animation curves and transitions implemented in native code. Otherwise, yes, I think TinyCLR is just as expressive as LVGL, it just lacks some of the animation primitives that need to be done in native code. Those visually smooth animations are what give a lot of the slick look to the LVGL demos. The rest of the slickness that you see in the LVGL demos is just well-thought out visual design and quality assets.

The TinyCLR-compatible way to do this would be a timer-interrupt driven animation engine that would adjust object properties according to keyframes and curves. It could lay nicely on top of the existing TinyCLR object model.

Update: Added github issue : Add an animation engine · Issue #830 · ghi-electronics/TinyCLR-Libraries · GitHub

3 Likes