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

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

Made with Slides.com