Adding HW platforms for Envox EEZ Studio LVGL
About me
Goran
Repair technician of informatics equipment
Repair technician of banking equipment
SW/HW design engineer (LoRa, NB-IoT, FPGA...)
Member of Radiona.org – Zagreb Makerspace
Meetups, lectures, workshops, exibitions...
CEO and co-founder of Intergalaktik d.o.o.
About RadionaOrg
Radiona.org is a non-profit organisation and citizen lab consisting of makerspace/hackerspace, media art lab, Repair Café and residence program founded in 2011. The organisation is dealing with DIY (do-it-yourself), DIWO (do-it-with-others) and DITO (do-it-together) cultures, STEAM concepts, interdisciplinary and intergenerational non-formal education and hybrid activities.
Radiona Workshops
Radiona Repair cafe
Intergalaktik d.o.o.
Founded in 2020.
Organize crowdfunding campaign for ULX3S
Taking care of ULX3S production
ULX3S distribution
ULX3S support gitter/discord/mail
Focused on opensource HW/SW solutions
Currently working on multiple open projects
(SynthoGame, FireFly, ULX4M, ULX3S extension boards, STM32-ULX3S, Megaphone, ULX3S-BB3)
https://intergalaktik.eu/
https://twitter.com/intergalaktikEU
Since 1997 NLnet foundation (after its historical contribution to the early internet in Europe) has been financially supporting organizations and people that contribute to an open information society. It funds those with ideas to fix the internet. The procedure is fast, competitive and open to anyone. The articles of association for the NLnet foundation state: "to promote the exchange of electronic information and all that is related or beneficial to that purpose".
NLnet has contributed funding to many important and very visible projects around fundamental standards from securing the core routing protocols and the domain name system of the internet to safer email, vendor-independent videoconferencing, more reliable wireless networks and private instant messaging - all based on open standards and verifiable open source software and/or hardware. It spawned the world-renowned NLnet Labs, and supported great open source projects like Jitsi, ARPA2, WireGuard, NoScript, Tor Hidden Services, GPLv3, GNUnet, and webODF. And many more ....
EEZ Bench Box 3 (BB3)
- Modular design – use up to three modules in any combination
- Large color touchscreen display with customizable and responsive GUI
- MicroPython scripting, Node-RED integration, EEZ Flow
- MQTT support
- DC power source up to 6 channels, max. 465 W
- Easily programmable with 400+ SCPI commands
- Built-in Ethernet, USB and UART for remote control
- Build-in removable 8 GiB micro SD card for data logging and programming
- Fast boot, FreeRTOS firmware
- Quiet operation thanks to multi-sensor fan speed control
- Software simulator
- Quick and easy upgrade of the DIB module’s firmware
- Easy maintenance, disassembling and repair
Typical applications
- Product development and debugging
- Laboratories and educational facilities
- Quality control and assessment
- Automobile electronic circuit testing
- Production automation testing
- Device or circuit characteristic verification and troubleshooting
In collaboration with Envox d.o.o.
The main objective of the project was to introduce FPGA technology in the existing open source EEZ DIB concept for modular T&M (Test & Measurement) solutions, and EEZ BB3, its first practical implementation whose master (control) module uses a 32-bit general purpose microcontroller (MCU).
https://www.envox.eu/eez-bb3/
BB3 && ULX3S
We have successfully confirmed that combining BB3 and ULX3S is possible, but it was not easy to mix two HW projects ULX3S was designed in KiCad and BB3 was designed in Eagle.
Luckily KiCad provides import of Eagle board.
BB3 ULX3S integration
Envox EEZ Studio GUI builder
https://github.com/eez-open
The EEZ Studio is an open source cross-platform (developed in Electron) modular visual low-code development tool and SCPI controller for EEZ BB3 T&M chassis and EEZ H24005 programmable power supply and other T&M devices that support SCPI from manufacturers such as Keysight, Rigol, Siglent, Tek/Keithley, R&S, etc.
Envox EEZ Studio GUI builder
https://github.com/eez-open
EEZ FLOW
EEZ Flow is part of the cross-platform open source low-code EEZ Studio and enables quick and easy creation of flow diagrams and dashboards using ready-made components or external ones that you can create yourself. Execution of EEZ flow can be on a PC which allows simultaneous remote control of multiple BB3 or T&M equipment from other manufacturers. It is an attractive open-source alternative to common ATE applications (LabView, VEE, etc.).
Visual debuger
Testing ULX3S batches with EEZ FLOW
Production companies are preferring GUI testing so Envox helped us to with designing batch testing with EEZ flow
Running on other HW platforms
In old Studio creating GUI for not supported platform was not easy task, so Envox searched for a way to make out life a little bit easier.
Studio needed graphical library that is platform independent.
LVGL (Light and Versatile Graphics Library)
-
Powerful building blocks such as buttons, charts, lists, sliders, images, etc.
-
Advanced graphics with animations, anti-aliasing, opacity, smooth scrolling
-
Various input devices such as touchpad, mouse, keyboard, encoder, etc.
-
Multi-language support with UTF-8 encoding
-
Multi-display support, i.e. use multiple TFT, monochrome displays simultaneously
-
Fully customizable graphic elements with CSS-like styles
-
Hardware independent: use with any microcontroller or display
-
Scalable: able to operate with little memory (64 kB Flash, 16 kB RAM)
-
OS, external memory and GPU are supported but not required
-
Single frame buffer operation even with advanced graphic effects
-
Written in C for maximal compatibility (C++ compatible)
-
Free and open-source under MIT license
https://lvgl.io/
Squareline Studio (from the author of LVGL)
SquareLine Studio is a visual drag-and-drop UI editor to create beautiful Graphical User Interfaces quickly and easily for embedded and desktop applications. SquareLine Studio targets both hobbyists and professionals with cheap and flexible subscription plans.
Recent Envox EEZ Studio
- M1 - Visual editor
- M2 - Interpreter for PC
- M3 - Interpreter for BB3
- M4 - Debugger for PC
- M5 - Debugger for BB3
- M6 - EEZ flow engine unification
- M7 - Multilanguage support in project
- M8 - Widgets advanced control
- M9 - Project templates
- M10 - Gitea.io integration
- M11 - New EEZ Flow extensions
- M12 - LVGL integration
- M13 - Standalone Flow dashboard
- M14 - Home page modifications and enhancements
EEZ Studio LVGL GUI builder with FLOW
Time for my first project with new GUI
LVGL already have working esp32 port, but it is still on v7.9
EEZ studio is using new LVGL version 8.3
Searching among forks I have found that catcatBlue did significant update up to version 8.2
After few fixes I got original LVGL DEMO EXAMPLE working with version 8.3.
Now I just needed to get eez-framework to compile with ESP-IDF.
With big help from Martin (Envox), and few CMakeLists and sdkconfig changes
we got first compiled version of eez-framework and LVGL 8.3 working!
Now I can start working on my first DEMO project
Let's work on BB3 WIFI controller
My BB3 is bit away from my working desk.
To adjust voltage/current or power on/off I always need to rise from desk and click on BB3 screen.
I could use USB controller - like pedal or I could even use controller over computer, but sometimes I do not want to power of my PC to just power on off channels.
So I have decided that first demo project should be
WIFI BB3 touch controller
Designing ESP32 BB3 controller
And in no time DEMO was running on real HW
Demo on SOLDERED Inkplete
M5stack with high speed DMA
While porting is still fresh in my head I saw that M5stack was quite popular, so I also decided to test it
M5stack is using ESP32 so this should be easy one
I bought 2 M5stack devices from Mouser and just changed few settings in menuconfig
Example worked but graphics was laggy from ESP-IDF
I have checked other options and found some library that was using DMA transfer
They used platformIO as platform so I decided to give it a try
After some time I got everything working and it was super fast!
M5stack with high speed DMA
Just one more -- please wellcome RP2040!!!
As platformIO is common platform for different hardware I also checked if there is some project that is using platformIO and RP2040 board, as that one is also common and popular among makers.
After finding one I only needed to connect few pin, but nothing worked.
So I decided to use picoprobe (another RP2040 board) as debugger -
After some trial and error I have found options that worked in VSCODE
And in no time I have found and fix RP2040 port!
Testing more screens
Plug and pray demo time
Circle is a C++ bare metal programming environment for the Raspberry Pi. It should be usable on all existing models (tested on model A+, B, B+, on Raspberry Pi 2, 3, 4, 400 and on Raspberry Pi Zero)
https://github.com/rsta2/circle
https://github.com/smuehlst/circle-stdlib
Adding HW platforms for Envox EEZ Studio LVGL
By Goran Mahovlić
Adding HW platforms for Envox EEZ Studio LVGL
- 135