ESP8266 Oled Display library: How to customize fonts

Many people were asking me to publish the code that creates the font files used in the SSD1306 OLED library. Well, I was hesitating since the code was a bit hacky. So I sat down and created an online tool which is now open for Beta testing. It allows you to select a font from a list of integrated Apache licensed files, choose font size and style (plain, italic, bold) and then create the C file which you can copy paste into your Arduino IDE. Almost forgot, there is also a preview of how the font will look on the display…

It might not be perfect yet and I’m looking forward to get your feedback…
And here is the tool:

Preview pane of the Font creator

Posted by Daniel Eichhorn

Daniel Eichhorn is a software engineer and an enthusiastic maker. He loves working on projects related to the Internet of Things, electronics, and embedded software. He owns two 3D printers: a Creality Ender 3 V2 and an Elegoo Mars 3. In 2018, he co-founded ThingPulse along with Marcel Stör. Together, they develop IoT hardware and distribute it to various locations around the world.


  1. The tool and all is very cool. But, since the fonts aren't tailored for the minimal display it get "jaggered" when converted. I would like to have some more standard fonts that renders perfectly on the tiny display. Many of the fonts in the u8glib looks really beautiful on the 128×64.
    Is there a way to convert those fonts? Or a simple way to create nice looking fonts for the library?
    Fonts with 6 lines or even 8 lines of text would be cool.
    By the way, hope you enjoyed the donated beer 🙂

  2. Hello,
    And thx for this great job.
    I’m a beginner in Arduino and C++ dev. I’d like to use your library in my own library but it doesn’t work, compiler said that display an ui are already declared… Could you tell me how to do that ?

    Thx a lot.


  3. Very neat utility. But I could not work out the actual mapping of codes to bitmap that it generates. I tried to hand-place some of the generated codes onto a bitmap, and it shows as rubbish.

    Can you please let us know how they are mapped ?

Leave a Reply