Compact Graphical User Interface (GUI), Known As ZPUI, Could Potentially Be Your Ideal Embedded Solution
Shell Access Pain Point
Sick and tired of battling to gain shell access on a single board computer (SBC)? The usual scenario is far from ideal - you need a keyboard, monitor, and an Ethernet cable for the smoothest results. But what if you're short on space or those crucial components? UART connection could be a lifesaver, unless it's broken or misconfigured. Or you could try Wi-Fi credentials in a text file, but good luck figuring out the IP address or debugging errors in the formatting. And don't even get me started on the headaches caused by the countless Pi 4 and 5 models exposing a USB gadget connection on the USB-C port, only to find out you're already powering the Pi from that very port. Yikes!
Server-Grade Interface Solution
The good news is, there's now a cheap and accessible way to tackle SBC frustrations. Meet ZPUI (Zippy UI), an embedded UI you can use to control your Pi or other Linux device with a minimum investment - all you need is a cheap I2C screen and a few buttons.
A Throwback to Simpler Times
A separate lightweight control interface isn't exactly a revolutionary idea. Take a stroll down memory lane to the glory days of character LCDs and non-standard mounting boxy cute servers, and you'll find that a 16x2 display and five arrow keys on a Sun machine would be enough to manage your server pretty effectively, thanks to some bespoke software.
The Birth of pyLCI
Back in 2014, I crafted my first semi-serious project - a lightweight HD44780 library for Raspberry Pi use. This universal, easy-to-use library supported both direct GPIO access and I2C backpacks, laying the groundwork for IP address display, powering off boards to avoid SD card corruption, and managing IP addresses and Wi-Fi networks without the need for SD card machinations.
The Rise of pyLCI to ZPUI
The result was pyLCI (Linux Control Interface), an invaluable tool for my SBC journeys that I went on to incorporate into numerous portable devices, especially the pocket-sized kind powered by Pi. Later, while working on ZeroPhone, an open-source Raspberry Pi Zero-based numpad phone, I forked pyLCI into a basic UI base called ZPUI. I upped the ante to super-common 128x64 screens, but the user-friendliness of the interface was nothing short of miraculous.
Bigger Screens, Bigger Ambitions
Now, with a hacker collective, I'm working on a Beepy derivative device - a QWERTY PDA-like Pi Zero-based pocket Linux terminal in need of a low-frills graphical UI. Based on the success seen in previous ZPUI projects, I redesigned it to fit larger screens and contribute to the Beepy community's growth.
A Universal Solution for All Linux Devices
ZPUI has massive potential to make your Linux devices more accessible and user-friendly, whether you're building a home automation or OpenWRT-powered pocket router or a Meshtastic node that needs hands-on adjustments. It's perfect for managing failsafes for a robot with computer vision or running workshops where seeing your Pi’s IP address is crucial in instances with numerous students vying for your attention.
ZPUI's Advantages
You can get started using ZPUI with a tiny 128x64 OLED screen and a handful of buttons. If you're ordering PCBs soon, I've designed a business card-size Pi shield that's compatible with any Pi and even works over QWIIC if that's your thing.
While ZPUI already handles most basic tasks, I'm also working on simplifying third-party app design. You can create your own ZPUI apps, and they can even be distributed as Python packages. Join the ranks of friendly contributors working on a heap of mechanisms to streamline app design, including Bluetooth config interfaces and app stores.
Try ZPUI Today
Give ZPUI a whirl in your projects, especially if you've experienced the kinds of problems mentioned in the intro. If an embedded UI like this came built-in with SBCs like the Pi, I'd be shouting from the rooftops! So help me out and share the word around the maker community. And remember, if you have any questions or suggestions, don't hesitate to hit me up. Let's make a difference together!
PS: Unleash Your Inner Cyberpunk!
Here's a little something extra: check out this demony video of a palm-sized ZPUI business card shield. Connect it to an SBC using QWIIC, and watch as it pops up on the screen, complete with an irresistibly cyberpunk vibe. Try it for yourself and join the growing ranks of ZPUI aficionados!
- The smoothest shell access on a single board computer (SBC) could be simplified with ZPUI, an embedded UI that only requires a cheap I2C screen and a few buttons, eliminating the need for a keyboard, monitor, and Ethernet cable.
- In the past, managing a server with character LCDs and non-standard mounting boxy servers was effective thanks to bespoke software, similar to the user-friendly interface of ZPUI.
- The creation of pyLCI, a lightweight HD44780 library for Raspberry Pi use, paved the way for easier IP address management, powering off boards to avoid SD card corruption, and handling IP addresses and Wi-Fi networks without the need for SD card machinations.
- With the potential to make Linux devices more accessible and user-friendly, ZPUI can benefit various projects such as home automation, OpenWRT-powered pocket routers, Meshtastic nodes, managing failsafes for a robot with computer vision, or running workshops where seeing a device’s IP address is crucial.