Porting LittlevGL for a monochrome display

Leveraging LvGL’s capabilities on a low resource project

Mattia Maldini
10 min readAug 11, 2019

--

My line of work brings me close to small embedded systems with minimal UI: a few LEDs or some digits displays. From time to time however I end up working with small monochrome screens, sparking the need for a working albeit simple GUI library.

In this field, the available resources are barren to say the least. Most results found online refer either to proprietary libraries distributed by LCD vendors with nonexistent support or to dubious code generators that fail to deliver anything beyond a few supported drivers, if at all. My same company’s previous solution was a cracked and modified API whose reference manual was long lost in time. The only reliable alternative to baking your own GUI is LittlevGL.

Microchip’s attempt at GUI support. Needless to say, it’s barely functional.

LittlevGL (or LvGL) is an open source graphic library for embedded systems. It is mainly focused on color TFT displays, but can in principle work for monochrome LCDs as well. My first approach was discouraged by its main purpose being color and the size of the compiled result (about 250 KB of binary for PIC architecture). After a little fiddling however I can say…

--

--

Mattia Maldini

Computer Science Master from Alma Mater Studiorum, Bologna; interested in a wide range of topics, from functional programming to embedded systems.