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.
Video
Parts
This demo uses a number of Adafruit boards and components:
- Adafruit Feather M0 (any type)
- Adafruit I2C / SPI character LCD backpack
- Or just use an MCP23008 IO chip directly.
- Adafruit LCD 20×4
- Any LCD with a Hitachi HD44780 compatible chip will work.
Setup

Firmware
You will find all the firmware files in the following repositories. The demo repository includes all required dependencies using submodules.
- https://github.com/LuckyResistor/HAL-example-fm0-lcd-hitachi
- https://github.com/LuckyResistor/HAL-common
- https://github.com/LuckyResistor/HAL-lcd-hitachi
- https://github.com/LuckyResistor/HAL-feather-m0
- https://github.com/LuckyResistor/HAL-mcp230xx
- https://github.com/LuckyResistor/HAL-lcd-character
- https://github.com/LuckyResistor/HAL-toolchain
Usage
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!