published: August 18, 2019 —
last modified: October 23, 2025
I added more modules to the HAL layer. The Hitachi LCD driver is now in a stable state. It uses a MCP23008 chip-based backend to reduce the number of wires required to access the display.
Table of Contents
Video
Parts
This demo uses a number of Adafruit boards and components:
After installing the firmware on the board, just connect a USB cable and start a terminal on the computer. The firmware waits for the serial connection. A shell with command prompt is displayed in the terminal.
Enter help to get a list of supported commands. Some of them take additional arguments.
Conclusion
The HAL system provides a complete framework for firmware development. It is still in an early stage, but already provides concepts and tools which can be useful for productive projects. This demo illustrates a number of these features.
If you have any questions, missing some information, or simply wish to provide feedback, feel free to comment below!
I built an 8×8 neodymium magnet matrix to keep steel-ball switches in place under a PCB for my Outmoded Sequencer. I walk through marking and drilling 64 holes, gluing each magnet, and sealing with acrylic paint. If you're curious to try this practical approach, read the full post for step-by-step tips.
I received prototype boards from Eurocircuits and was impressed by their outstanding build quality—sharp solder-mask edges, precise alignment, and a subtle shine on the traces. I share close-up photos and brief thoughts about vias and finishes; read on if you appreciate careful PCB craftsmanship.
I've finished testing a new set of tall storage boxes designed for 3D printing. They're stackable with my flat and regular boxes, with reinforced walls and improved corners for cleaner prints. Download the free sample set or read the project page and catalog for full designs.
Posted on 2019-07-16— C++, Improve your Code, Learn
I introduce C++17 structured binding with approachable examples: returning multiple values via std::tuple, binding to structs and arrays, and using references to avoid copies. If you use a C++17-capable compiler and want cleaner, clearer code, read the full article for practical examples and tips.
Posted on 2019-07-09— C++, Improve your Code, Learn
I compare implementing a singleton as a class or as a module/namespace for Arduino firmware using simple LED driver examples and compiler measurements. I cover size, initialization and runtime trade-offs and explain when each approach makes sense. Read the full post for code, disassembly and practical recommendations.
I'm not a 3D printing guru, but I built and tested three print-in-place hinges optimized for PETG/ASA and explain the small design choices that make them work reliably. I walk you through bridging, fin widths, overhangs, and conical holes — read the full post to learn how to print them well.