Free and Open Source EEZ Studio

Yes, EEZ Studio is offering much more ( like flow ) and started as help in creating GUI and control of instruments before it had started with LVGL.

Before you no one asked about wanting just LVGL project so the template was not there, I think it will be there in next version so it will be easy to use only LVGL without all other features…

I do not know would it be allowed by SLS license and make sense to have some script that converts SLS project to EEZ Project?

1 Like

We are using Emscripten to build LVGL library along with the some wrapper code which is exported to the EEZ Studio (the result is WASM code that can be called from the JavaScript; EEZ Studio is implemented in TypeScript using Electron). For example, when user creates Label widget, Studio will call exported wrapper function lvglCreateLabel which will call lv_label_create.

LVGL library is used to render screens with contained widgets in both UI editor and simulator which is part of EEZ Studio. Instead of using Emscripten SDL emulation for rendering and user input we implement our own display and input drivers, which is really not too complicated.

We do not support MicroPython, but I think it is very interesting to use MP both as glue code between Studio and LVGL library (so we don’t need to write before mentioned wrapper code) and as target language for Studio code generator.

EEZ Studio existed for several years before we learned about LVGL. It started as a tool for us to develop firmware first for H24005 and later for BB3. If we knew about LVGL maybe we wouldn’t create our UI library which we call EEZ-GUI which we also use for both H24005 and BB3. Also, we are using EEZ Studio as T&M tool for our devices. But, this part of the Studio should not distract users that just want to work on its LVGL projects.

NLnet Foundation donated some funding so we spent several months in late 2022. to add LVGL support to EEZ Studio. Our vision for LVGL support is to respect LVGL concepts and not try to hide it behind some kind of abstraction. Some other stuff like EEZ Flow visual programming, which doesn’t exist in LVGL are added on top of LVGL and it is not required to be used.

3 Likes

All clear, thank you for the detailed explanation! Looking forward to meet you! :blush:

Is there an easy way to migrate from SLS to EEZ?

For now there is not, but I think both project files SLS and EEZ are text based and someone could spend some time and wrote converter.

From what I have gathered here are the options for a GUI interface builder tool for LVGL:

  • SquareLine will continue support of LVGL and update its software but isn’t directly affiliated to LvGL.
  • NXP GUI Guider can generate LVGL interfaces. It’s more oriented to cater for NXP’s hardware but can be set as a default profile to export the code. My main issue is preview needs to render the whole code and run it in a preview window. Which is time consuming.
  • EEZ Studio I need to test it.

Whatever the next big GUI software for LVGL is, it needs to be FOSS, just like LVGL is. That has been the issue with SwuareLine and NXP versions in my opinion. A locked software means slower development, less bug corrections, an incentive to prioritize certain hardware and the risk of the software being dropped or compleypaywalled at any given moment.

1 Like

I would separate the concerns of “Free” and “Open source” but to not hijack this topic I opened this one: Business model for LVGL's editor

2 Likes

The new version of EEZ Studio (v0.11.0) comes now with LVGL v9 support, so now you can choose whether your newly created project will use v8.3 or v9.0

5 Likes

What a great choice, as soon as I read it I went to look for it and I liked it. I’m working with TFT ILI9486 + VSCode + PlatformIO + LVGL, I already saw an example for a similar screen, I’m going to try to understand it and do something similar for mine.
In this link I saw the example.

Thank you very much.

1 Like

Good day.

No matter how hard I’ve tried, I haven’t been able to get a 4" ILI9488 TFT to work in VSCode + PlatformIO with the Arduino framework. I don’t know what I’m doing wrong. In the header file “ui.c” I’m getting errors in:

ActionExecFunc actions[] = {
};

tick_screen(g_currentScreen);

regarding the variable “g_currentScreen”.

I’m very interested in working with your framework, but I haven’t been able to. If I run something similar in the SquareLine Studio IDE, it works, but I wanted to migrate to yours. I don’t know if I have any errors with your libraries:

#include "flow_def.h"
#include <eez/flow/lvgl_api.h>

Thank you very much for your attention. Thank you.

It is best if we can switch to discord - I can check project tomorrow .

I know that eez-framework inside that repository may need update.

Also as that screen is not default you may want to run but I am not sure how to do that from VSCode

Once that script prepares all files you can build GUI from studio and add more code and build next time with PlatformIO

./fullbuild.sh ILI9341_240x320

This is probably because your are missing #include "actions.h" in your ui.c template file:

New projects created with the latest version 0.11.0 have this already in place.


“I have it in my code.”

Good day.

Thank you very much for responding. In this repository, I have the files in which I am conducting tests. They are not yet public as I haven’t documented them.

You can observe the versions in:

SquareLine Studio.
EEZ Studio.
NEXTION Studio.

TFT ILI9488 + LVGL + PlatformIO with Arduino Framework.

The project is for a Master’s thesis in Colombia. I am a Civil Engineer, so programming is not my greatest strength.

But I want to go with open-source code versions so that I can share it with the community without any problems.

In terms of pricing, I am leaning towards EEZ Studio + LVGL. NEXTION is another option, but it is more expensive compared to the screens I use.

Thank you.

TFT ILI9488+LVGL+PlatFormIO+SquareLine Studio
https://youtube.com/shorts/qQa16WLLoO4

Friends, I have already solved my problem and I already have an ILI9488 TFT running with EEZ + LVGL + PlatformIO v8.3.11 + Arduino Framework. It’s up and running now, and I’ll start programming it with what I need. I’ll leave this code on my GitHub in case anyone wants to see it.

https://github.com/G2EJ-IC/PlatFormIO_dot_L2St/tree/main/Ej_EEZ/Ej-EEZ_v001

I only had to place some compilation directives in the platformio.ini file.

build_flags =
-DEEZ_FOR_LVGL
-DLV_LVGL_H_INCLUDE_SIMPLE
-Isrc

Thank you very much.

Esta es la TFT ILI9488 DE 3.95in + Touch_XPT2046.

Very interesting solution.
One question for LVGL project (9.0), no Flow:
The Run mode display only the main page, is possible to try other pages ?

Thanks in advance

1 Like

No. But, you can enter Debug mode where you can select other pages.

Thanks, I hope this is possible in future.

I take this opportunity to ask you another question: while converting a font I receive an error but I can’t fully view the pop-up. Do I need to install any plug-ins to be able to import fonts?

Thanks again

I’ve managed to port LvGL EEZ studio based to my STM32 project.
This is the results.

1 Like

FYI, [Video] Gábor Kiss-Vámosi on LinkedIn: Checkout LVGL running on a STM32H757 1280x800 Riverdi board. The UI was…

1 Like