Meet FontEdit – The Custom Font Editor for LCD, LED and E-Paper Displays

Meet FontEdit – The Custom Font Editor for LCD, LED and E-Paper Displays


Fonts sourcing/creation, usage and management, are some of the major challenges firmware developers face with projects where the display (TFTs, Epaper displays, etc.), is a critical element of the project’s performance. From access to clear and good looking fonts to managing the size of the font files when running on MCUs with limited memory, is an issue that cost developers tons of time during product development, but all of that is about to change thanks to Fontedit.

Developed by as a personal solution to the challenges with fonts for an E-paper display based project, Fontsedit is a software that provides embedded software developers with an easy way to import, preview, edit and export a font for use in embedded systems’ displays.

It is capable of opening any general-purpose fixed-width desktop font and gives users the freedom to use custom fonts (although, for now, it has to be a font registered in your operating system). The software automatically imports font glyphs for characters in the ASCII printable range (32…126 or 0x20…0x7e), and list all the available glyphs with an edit view that allows users to fine-tune individual glyphs.

Font glyphs can be edited by interacting with the editor using the mouse and the keyboard. For example, Clicking and dragging the mouse can be used to set pixels (making them black), while holding Alt or Ctrl (⌘) can be used to erase. The touchpad scroll (or mouse wheel) with Ctrl (⌘) can be used to zoom (in or out)  the editor canvas.

Asides editing existing imported font glyphs, new glyphs can also be added to existing font documents by copying an existing glyph, starting from scratch with a blank canvas, or adding a glyph from a character you put in (useful for adding non-ASCII characters to your font).

Once the font edit/creation is completed, it can be exported either as a C file (also suitable for  C++), an Arduino-specific C file (using PROGMEM), or as a Python list or bytes object (both compatible with Python 2.x/3.x and MicroPython). The export screen allows users to switch between MSB and LSB mode, invert all the bits, and conditionally include line spacings in font definition.

The software is written in C++17 with UI in Qt and it has been tested on MacOS, Linux (Ubuntu 18.04 and 19.10), Windows 10, and Raspbian Buster, so it’s pretty flexible and works with most Operating systems.

The compiles software packages are available on the project’s GitHub Releases page. While the source code is available under the conditions of GPL v3 on the project’s GitHub page.

Dominik has reiterated his desire to continue improving the tool and users/community folks who are interested in contributing to the project can report bugs and request features via GitHub Issues or as a pull request.

About Emmanuel Odunlade
Email : Website :

Hardware Design Engineer | #IoT Consultant |All things #ML | Entrepreneur | Serial Writer | Passionate about Innovation and technology as tools for solving problems in developing countries. Spare time is spent around writing and advocacy for the growth of the Maker/DIY Culture in Africa.

view all posts by emmanuel
Notify of
1 Comment
Inline Feedbacks
View all comments

Please see my free developed projects for OLEDH : OLED image to Hex :
And LCD Font Generator LFG :

It’s my pleasure to have your suggestions.

With best regard.