Galdeano Is a DIY Handheld Computer with a Python Operating System

Angel Cabello’s Galdeano handheld computer runs a custom Python-based pseudo-operating system.

Ask 10 different experts to define the term “computer” and you’ll get ten different answers. But I like to think of a computer, at least in the modern context, as a digital device that is capable of running a variety of different software. That makes a computer distinct from something like a microcontroller that runs whatever firmware the creator flashed onto the ROM. But these definitions get very blurry, as evidenced by Angel Cabello’s Galdeano handheld computer that runs a Python-based pseudo-operating system.

Python is a very high-level programming language, which means that there are several layers of abstraction between it and the “bare metal.” According to conventional wisdom, that makes it unsuitable as the basis of an operating system. In C, for example, one can move data in and out of registers, but such low-level operations aren’t part of Python. Except that isn’t entirely true. MicroPython is an implementation designed to run on the bare metal of microcontrollers. As such, it includes low-level functions and those can be used to build something like an operating system.

In truth, Cabello’s code will still cause debate about whether it is firmware or software and whether this is an operating system at all. But it can run different specialized programs, including a symbolic calculator, a text editor, and a control interface for Philips Hue smart lights. At the very least, that puts it on par with the “dumb phones” and PDAs of a couple decades ago. Semantic arguments lose meaning at this point, as Galdeano functions like a handheld computer and that is what matters.

Galdeano’s brain is an Espressif ESP32 development board. The ESP32 is, indeed, a microcontroller. But it contains more RAM and processing power than the typical personal computer just three decades ago. Cabello designed a custom PCB to breakout that development board. The PCB also contains a 320x240 TFT LCD screen with ILI9341 driver, a boost converter, and 42-key keyboard. The boost converter allows for different battery arrangements, but Cabello seems to have settled on four AAA batteries for power. The PCB fits into a simple, but attractive, 3D-printed case complete with printed caps for the tactile push buttons.

To build the software, Cabello had to add some libraries on top of the standard MicroPython environment. Those included LVGL for graphics and Eigenmath for complicated calculations. Cabello created a special Python module that passes strings back and forth between the primary environment and the Eigenmath environment. Finally, because Eigenmath uses UTF character encoding, Cabello had to add a custom font. That firmware ended up being quite large, so Cabello built a partition table that extends to the SD card inserted into the ILI9341 display’s slot.

Whether or not you consider Galdeano to be a computer, it is interesting to see such a device built from scratch.

Cameron Coward
Writer for Hackster News. Proud husband and dog dad. Maker and serial hobbyist. Check out my YouTube channel: Serial Hobbyism
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles