PixelFont is a family of AdafruitGFX & u8g2 compatible fonts, hand crafted for tiny low-res displays. The fonts are designed to be slender and condensed to fit as much text on a line as possible. And to also look awesome.
You can also use AI to scale the fonts up, add spacing between pixels, makes pixels larger, rounded etc. So it’s a great way to make a faux-low-res display or a retro arcade kind of look.
Supported languages are: English, Spanish, French, Italian, Czech and more.
Please note that I have personally hand-crafted only the Czech special characters. Other extended Latin glyphs are AI generated, so PRs with corrections from native speakers are welcome!
There are two options for each font - english version, which works with basic AdafruitGFX library and extended latin version which requires UTF-8 fork of AdafruitGFX.
Using extended latin version with standard library still works for english glyphs but because of extra data, it's taking more memory space, so it's recommended to use english version with it.
#include <Adafruit_GFX.h>
#include <PixelFonts.h> // every font; the ones you do not use take no flash
// This is required to make extended latin work, using forked Adafruit-GFX is required:
// https://github.com/DoomHammer/Adafruit-GFX-Library/tree/enable-utf-8
// Remove this line if with stock AdafruitGFX and english font variants
display.utf8(true);
display.setFont(&pixelfont_extended_latin_13x7_semibold);
display.setTextColor(BLACK);
display.setCursor(10, 30);
display.print("Temperature 23.5");The same fonts in u8g2 format: the font name + _u8g2. You can use english fonts or extended latin fonts with no limitations.
#include <U8g2lib.h>
#include <PixelFontsU8g2.h> // every u8g2 font; the ones you do not use take no flash
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
u8g2.begin();
u8g2.setFontMode(1);
u8g2.setFont(pixelfont_13x7_semibold_u8g2);
u8g2.drawStr(0, 20, "Temperature 23.5");
u8g2.setFont(pixelfont_extended_latin_13x7_semibold_u8g2);
u8g2.drawUTF8(0, 20 + PIXELFONT_EXTENDED_LATIN_13X7_SEMIBOLD_U8G2_LINE_HEIGHT, "Příliš žluťoučký kůň");
u8g2.sendBuffer();Each u8g2 font comes with its line height, e.g. PIXELFONT_13X7_SEMIBOLD_U8G2_LINE_HEIGHT.
The bdf/ folder has every font as a BDF file (Unicode encoded), for u8g2's bdfconv, FontForge, the LVGL font
converter and other tools. FONT_ASCENT + FONT_DESCENT is the line height.
Names follow pixelfont[_3d | _3d_condensed][_extended_latin]_ROWSxCOLS_WEIGHT:
ROWSxCOLS- size of the letter grid in pixels: capital height x capital widthWEIGHT- stroke width:thin= 1px,semibold= 2px,bold= 3px_3d- outline + shadow version, 3 px taller, 1 px gap between characters and lines_3d_condensed- the same 3D version with no gap between characters and lines_extended_latin- adds the accented letters and punctuation (see Language support)
In the table: Height = pixel height of the capitals (3D versions include the outline and shadow), Weight = stroke width, English = ASCII only, Extended Latin = ASCII + accented letters.
| Height | Weight | English | Extended Latin |
|---|---|---|---|
| 5 px | 1px | pixelfont_5x5_thin |
- |
| 7 px | 1px | pixelfont_7x5_thin |
pixelfont_extended_latin_7x5_thin |
| 9 px | 1px | pixelfont_9x5_thin |
pixelfont_extended_latin_9x5_thin |
| 11 px | 1px | pixelfont_11x5_thin |
pixelfont_extended_latin_11x5_thin |
| 13 px | 1px | pixelfont_13x5_thin |
pixelfont_extended_latin_13x5_thin |
| 13 px | 1px | pixelfont_13x7_thin |
pixelfont_extended_latin_13x7_thin |
| 13 px | 2px | pixelfont_13x7_semibold |
pixelfont_extended_latin_13x7_semibold |
| 17 px | 1px | pixelfont_17x5_thin |
pixelfont_extended_latin_17x5_thin |
| 17 px | 2px | pixelfont_17x5_semibold |
pixelfont_extended_latin_17x5_semibold |
| 17 px | 3px | pixelfont_17x7_bold |
pixelfont_extended_latin_17x7_bold |
| 21 px | 1px | pixelfont_21x11_thin |
pixelfont_extended_latin_21x11_thin |
| 21 px | 3px | pixelfont_21x11_bold |
pixelfont_extended_latin_21x11_bold |
| Height | Weight | English | Extended Latin |
|---|---|---|---|
| 8 px | 1px | pixelfont_3d_5x5_thin |
- |
| 8 px | 1px | pixelfont_3d_condensed_5x5_thin |
- |
| 10 px | 1px | pixelfont_3d_7x5_thin |
pixelfont_3d_extended_latin_7x5_thin |
| 10 px | 1px | pixelfont_3d_condensed_7x5_thin |
pixelfont_3d_condensed_extended_latin_7x5_thin |
| 12 px | 1px | pixelfont_3d_9x5_thin |
pixelfont_3d_extended_latin_9x5_thin |
| 12 px | 1px | pixelfont_3d_condensed_9x5_thin |
pixelfont_3d_condensed_extended_latin_9x5_thin |
| 14 px | 1px | pixelfont_3d_11x5_thin |
pixelfont_3d_extended_latin_11x5_thin |
| 14 px | 1px | pixelfont_3d_condensed_11x5_thin |
pixelfont_3d_condensed_extended_latin_11x5_thin |
| 16 px | 1px | pixelfont_3d_13x5_thin |
pixelfont_3d_extended_latin_13x5_thin |
| 16 px | 1px | pixelfont_3d_condensed_13x5_thin |
pixelfont_3d_condensed_extended_latin_13x5_thin |
| 16 px | 1px | pixelfont_3d_13x7_thin |
pixelfont_3d_extended_latin_13x7_thin |
| 16 px | 1px | pixelfont_3d_condensed_13x7_thin |
pixelfont_3d_condensed_extended_latin_13x7_thin |
| 16 px | 2px | pixelfont_3d_13x7_semibold |
pixelfont_3d_extended_latin_13x7_semibold |
| 16 px | 2px | pixelfont_3d_condensed_13x7_semibold |
pixelfont_3d_condensed_extended_latin_13x7_semibold |
| 20 px | 1px | pixelfont_3d_17x5_thin |
pixelfont_3d_extended_latin_17x5_thin |
| 20 px | 1px | pixelfont_3d_condensed_17x5_thin |
pixelfont_3d_condensed_extended_latin_17x5_thin |
| 20 px | 2px | pixelfont_3d_17x5_semibold |
pixelfont_3d_extended_latin_17x5_semibold |
| 20 px | 2px | pixelfont_3d_condensed_17x5_semibold |
pixelfont_3d_condensed_extended_latin_17x5_semibold |
| 20 px | 3px | pixelfont_3d_17x7_bold |
pixelfont_3d_extended_latin_17x7_bold |
| 20 px | 3px | pixelfont_3d_condensed_17x7_bold |
pixelfont_3d_condensed_extended_latin_17x7_bold |
| 24 px | 1px | pixelfont_3d_21x11_thin |
pixelfont_3d_extended_latin_21x11_thin |
| 24 px | 1px | pixelfont_3d_condensed_21x11_thin |
pixelfont_3d_condensed_extended_latin_21x11_thin |
| 24 px | 3px | pixelfont_3d_21x11_bold |
pixelfont_3d_extended_latin_21x11_bold |
| 24 px | 3px | pixelfont_3d_condensed_21x11_bold |
pixelfont_3d_condensed_extended_latin_21x11_bold |
Glyph data in a simple txt form is included, so you can use AI to generate any bitmap / font format.


