Page 1 of 1

I/O capable GUI

Posted: Wed Jun 23, 2021 8:00 am
by pythoncoder
micro-gui is an alternative to nano-gui. Both are portable between hosts, and both use the same display drivers providing portability to a range of displays.

While nano-gui is display-only, micro-gui has provision for user input via a set of from 2-5 pushbuttons. Alternatively a joystick-style navigation button may be used. With a TTGO T-Display an amazingly cheap WiFi capable I/O device can be constructed. The I/O capability comes at a cost in complexity and RAM usage: if you have no need for user input, nano-gui is preferred.

This image shows micro-gui running on a Pi Pico with a 320*240 ILI9341 display. The pushbuttons enable navigation between widgets. The Scale widget at top centre is one of several enabling the input of floating point values to high precision (0.05%). Widgets capable of input may programmatically be disabled (greyed-out), as may be seen on one of the pushbuttons.

Image

This is running with standard firmware and no use of frozen bytecode. It reports 72560 bytes free.

Please note that further development is planned namely extra demo scripts and improved drivers for some displays, so check for upgrades.

Re: I/O capable GUI

Posted: Thu Jun 24, 2021 3:43 am
by Mark's Bench
This looks pretty amazing and I can already think of half a dozen things around the house where it'd be handy. Thank you!

ESP32 host

Posted: Fri Jul 02, 2021 3:53 pm
by pythoncoder
Here is another implementation. The host is a TTGO T-Display, which is an ESP32 with 240x135 display. I added a navigation joystick and an SIL pullup resistor. Total cost well under £20 ($20?) including the PCB.

Image

Re: I/O capable GUI

Posted: Fri Jul 16, 2021 7:11 am
by Jackli
Is this using the MCU for interface design, or does it have its own GUI design software?

Re: I/O capable GUI

Posted: Fri Jul 16, 2021 1:33 pm
by pythoncoder
It was developed explicitly for MicroPython. Please see the docs.

An update

Posted: Fri Jul 16, 2021 1:48 pm
by pythoncoder
This has had a significant update fixing bugs and improving the docs.

It now supports an alternative method of data entry which takes advantage of a quadrature encoder for adjustment of floating point values and traversing dropdowns and listboxes.

It now supports mult-level menus. The garish colors in this example are optional.

Image.

The Meter widget now supports data driven callbacks which run when the data value enters, leaves, or crosses regions. These are visible as colored bands on the control. It is easy to implement alarms or devices like thermostats which act as a switch having hysteresis. The image below shows a Meter in a demo with two regions. The red region at the top is configured as an alarm (which runs a callback on entry). The region in the middle has hysteresis. Regions can be changed at runtime.

Image

Apologies for my photography. These things look better in real life...

Re: I/O capable GUI

Posted: Tue Oct 26, 2021 1:19 pm
by stanely
Great job, Peter! Your micro-GUI was recently credited in a nice instructable. https://www.instructables.com/Poor-Mans ... dium=email

Re: I/O capable GUI

Posted: Sun Oct 31, 2021 5:49 pm
by pythoncoder
That looks a nice project. Thanks for pointing it out.