Ver Fonte

* Updated firmware references (#151)

* Added 3 more fonts (just for fun)
Alexander Kopachov há 2 anos atrás
pai
commit
123f421608

+ 3 - 0
features_config.h

@@ -37,6 +37,9 @@
 #define TOTP_FONT_712SERIF (5)
 #define TOTP_FONT_GRAPH35PIX (6)
 #define TOTP_FONT_KARMAFUTURE (7)
+#define TOTP_FONT_FUNCLIMBING (8)
+#define TOTP_FONT_DPCOMIC (9)
+#define TOTP_FONT_PIXELFLAG (10)
 
 // End of list
 

+ 11 - 0
ui/fonts/active_font.h

@@ -24,4 +24,15 @@
 #elif TOTP_FONT == TOTP_FONT_KARMAFUTURE
 #include "karma_future/karma_future.h"
 #define TOTP_CODE_FONT_INFO karmaFuture_14ptFontInfo
+#elif TOTP_FONT == TOTP_FONT_FUNCLIMBING
+#include "funclimbing/funclimbing.h"
+#define TOTP_CODE_FONT_INFO funclimbingDemo_18ptFontInfo
+#elif TOTP_FONT == TOTP_FONT_DPCOMIC
+#include "dpcomic/dpcomic.h"
+#define TOTP_CODE_FONT_INFO dPComic_18ptFontInfo
+#elif TOTP_FONT == TOTP_FONT_PIXELFLAG
+#include "pixelflag/pixelflag.h"
+#define TOTP_CODE_FONT_INFO pixelFlag_18ptFontInfo
+#else
+#error TOTP Font is not set or unknown
 #endif

+ 1114 - 0
ui/fonts/dpcomic/dpcomic.c

@@ -0,0 +1,1114 @@
+#include "dpcomic.h"
+
+/* GENERATED BY https://github.com/pavius/the-dot-factory */
+
+/* 
+**  Font data for DPComic 18pt
+*/
+
+/* Character bitmaps for DPComic 18pt */
+const uint8_t dPComic_18ptBitmaps[] = {
+    /* @0 '-' (15 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0xE0,
+    0x3F,
+    0xF8,
+    0x0F,
+    0xF8,
+    0x0F,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @34 '0' (15 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xE0,
+    0x07,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0xE0,
+    0x07,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @68 '1' (15 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xE0,
+    0x01,
+    0xF8,
+    0x01,
+    0xF8,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xE0,
+    0x0F,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @102 '2' (15 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x07,
+    0xC0,
+    0x07,
+    0xE0,
+    0x0F,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x07,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xE0,
+    0x3F,
+    0xF8,
+    0x0F,
+    0xF8,
+    0x0F,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @136 '3' (15 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x3F,
+    0xC0,
+    0x3F,
+    0xE0,
+    0x3F,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x07,
+    0xC0,
+    0x07,
+    0xC0,
+    0x07,
+    0x00,
+    0x0F,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0xE0,
+    0x0F,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @170 '4' (15 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0F,
+    0xC0,
+    0x0F,
+    0xC0,
+    0x0F,
+    0xE0,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0xF8,
+    0x0F,
+    0xF8,
+    0x0F,
+    0xF8,
+    0x0F,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @204 '5' (15 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x3F,
+    0xC0,
+    0x3F,
+    0xC0,
+    0x0F,
+    0xE0,
+    0x00,
+    0xE0,
+    0x00,
+    0xE0,
+    0x07,
+    0xE0,
+    0x0F,
+    0xE0,
+    0x0F,
+    0x00,
+    0x0E,
+    0x00,
+    0x0F,
+    0x00,
+    0x0F,
+    0xE0,
+    0x07,
+    0xF8,
+    0x01,
+    0xF8,
+    0x01,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @238 '6' (15 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x0F,
+    0x00,
+    0x0F,
+    0xC0,
+    0x07,
+    0xE0,
+    0x00,
+    0xE0,
+    0x00,
+    0xE0,
+    0x07,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0F,
+    0x38,
+    0x0F,
+    0xF8,
+    0x07,
+    0xE0,
+    0x01,
+    0xE0,
+    0x01,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @272 '7' (15 pixels wide) */
+    0x00,
+    0x00,
+    0xE0,
+    0x0F,
+    0xE0,
+    0x0F,
+    0xF8,
+    0x0F,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x07,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xE0,
+    0x00,
+    0xF8,
+    0x00,
+    0xF8,
+    0x00,
+    0x38,
+    0x00,
+    0x38,
+    0x00,
+    0x38,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @306 '8' (15 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x0F,
+    0xC0,
+    0x0F,
+    0xE0,
+    0x38,
+    0xE0,
+    0x3E,
+    0xE0,
+    0x3E,
+    0xC0,
+    0x0F,
+    0xE0,
+    0x07,
+    0xE0,
+    0x07,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0F,
+    0xE0,
+    0x07,
+    0xE0,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @340 '9' (15 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x07,
+    0xC0,
+    0x07,
+    0xE0,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0xF8,
+    0x0F,
+    0xF8,
+    0x0F,
+    0xE0,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0xE0,
+    0x01,
+    0xF8,
+    0x00,
+    0xF8,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @374 'B' (15 pixels wide) */
+    0xC0,
+    0x0F,
+    0xE0,
+    0x3F,
+    0xE0,
+    0x3F,
+    0xF8,
+    0x38,
+    0x38,
+    0x3E,
+    0x38,
+    0x3E,
+    0xF8,
+    0x0F,
+    0xF8,
+    0x3F,
+    0xF8,
+    0x3F,
+    0x38,
+    0x38,
+    0x38,
+    0x3E,
+    0x38,
+    0x3E,
+    0xF8,
+    0x0F,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @408 'C' (15 pixels wide) */
+    0x00,
+    0x0F,
+    0xC0,
+    0x3F,
+    0xC0,
+    0x3F,
+    0xE0,
+    0x39,
+    0xE0,
+    0x00,
+    0xE0,
+    0x00,
+    0xF8,
+    0x00,
+    0x38,
+    0x00,
+    0x38,
+    0x00,
+    0x38,
+    0x38,
+    0x38,
+    0x3E,
+    0x38,
+    0x3E,
+    0xF8,
+    0x0F,
+    0xE0,
+    0x07,
+    0xE0,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @442 'D' (15 pixels wide) */
+    0xC0,
+    0x07,
+    0xE0,
+    0x0F,
+    0xE0,
+    0x0F,
+    0xF8,
+    0x3E,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x3E,
+    0x38,
+    0x0F,
+    0x38,
+    0x0F,
+    0xF8,
+    0x07,
+    0xF8,
+    0x01,
+    0xF8,
+    0x01,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @476 'F' (15 pixels wide) */
+    0x80,
+    0x1F,
+    0xC0,
+    0x0F,
+    0xC0,
+    0x0F,
+    0xF0,
+    0x01,
+    0x70,
+    0x00,
+    0x70,
+    0x00,
+    0xF0,
+    0x0F,
+    0xF0,
+    0x03,
+    0xF0,
+    0x03,
+    0x70,
+    0x00,
+    0x70,
+    0x00,
+    0x70,
+    0x00,
+    0x70,
+    0x00,
+    0x70,
+    0x00,
+    0x70,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @510 'G' (15 pixels wide) */
+    0x00,
+    0x0F,
+    0xC0,
+    0x3F,
+    0xC0,
+    0x3F,
+    0xE0,
+    0x39,
+    0xE0,
+    0x00,
+    0xE0,
+    0x00,
+    0xF8,
+    0x00,
+    0x38,
+    0x3E,
+    0x38,
+    0x3E,
+    0x38,
+    0x38,
+    0x38,
+    0x3E,
+    0x38,
+    0x3E,
+    0xF8,
+    0x0F,
+    0xE0,
+    0x07,
+    0xE0,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @544 'H' (15 pixels wide) */
+    0x00,
+    0x30,
+    0x20,
+    0x38,
+    0x20,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0xF8,
+    0x3F,
+    0xF8,
+    0x3F,
+    0xF8,
+    0x3F,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @578 'J' (15 pixels wide) */
+    0x00,
+    0x08,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x00,
+    0x0E,
+    0x18,
+    0x0F,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0xE0,
+    0x01,
+    0xE0,
+    0x01,
+
+    /* @612 'K' (15 pixels wide) */
+    0x20,
+    0x30,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x3E,
+    0x38,
+    0x0F,
+    0x38,
+    0x0F,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x38,
+    0x0F,
+    0x38,
+    0x3E,
+    0x38,
+    0x3E,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @646 'M' (15 pixels wide) */
+    0x08,
+    0x10,
+    0x3E,
+    0x1C,
+    0x3E,
+    0x1C,
+    0x7E,
+    0x1E,
+    0xFE,
+    0x1F,
+    0xFE,
+    0x1F,
+    0xCE,
+    0x1D,
+    0x0E,
+    0x1C,
+    0x0E,
+    0x1C,
+    0x0E,
+    0x1C,
+    0x0E,
+    0x1C,
+    0x0E,
+    0x1C,
+    0x0E,
+    0x1C,
+    0x0E,
+    0x1C,
+    0x0E,
+    0x1C,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @680 'N' (15 pixels wide) */
+    0x20,
+    0x30,
+    0xF8,
+    0x38,
+    0xF8,
+    0x38,
+    0xF8,
+    0x38,
+    0xF8,
+    0x39,
+    0xF8,
+    0x39,
+    0xF8,
+    0x39,
+    0x38,
+    0x3F,
+    0x38,
+    0x3F,
+    0x38,
+    0x3F,
+    0x38,
+    0x3E,
+    0x38,
+    0x3E,
+    0x38,
+    0x3E,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @714 'P' (15 pixels wide) */
+    0xC0,
+    0x07,
+    0xE0,
+    0x0F,
+    0xE0,
+    0x0F,
+    0xF8,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0F,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0xF8,
+    0x01,
+    0x38,
+    0x00,
+    0x38,
+    0x00,
+    0x38,
+    0x00,
+    0x38,
+    0x00,
+    0x38,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @748 'Q' (15 pixels wide) */
+    0x00,
+    0x0F,
+    0xC0,
+    0x3F,
+    0xC0,
+    0x3F,
+    0xE0,
+    0x39,
+    0xE0,
+    0x38,
+    0xE0,
+    0x38,
+    0xF8,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x3E,
+    0x38,
+    0x3E,
+    0xF8,
+    0x0F,
+    0xE0,
+    0x3F,
+    0xE0,
+    0x3F,
+    0x00,
+    0x38,
+    0x00,
+    0x38,
+
+    /* @782 'R' (15 pixels wide) */
+    0xC0,
+    0x07,
+    0xE0,
+    0x0F,
+    0xE0,
+    0x0F,
+    0xF8,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0F,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0xF8,
+    0x01,
+    0x38,
+    0x07,
+    0x38,
+    0x07,
+    0x38,
+    0x0F,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @816 'T' (15 pixels wide) */
+    0x00,
+    0x7E,
+    0xE0,
+    0x3F,
+    0xE0,
+    0x3F,
+    0xF8,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @850 'V' (15 pixels wide) */
+    0x20,
+    0x30,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x07,
+    0x38,
+    0x07,
+    0xE0,
+    0x07,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @884 'W' (15 pixels wide) */
+    0x04,
+    0x40,
+    0x07,
+    0x70,
+    0x07,
+    0x70,
+    0x07,
+    0x71,
+    0xC7,
+    0x71,
+    0xC7,
+    0x71,
+    0xC7,
+    0x71,
+    0xC7,
+    0x71,
+    0xC7,
+    0x71,
+    0xC7,
+    0x71,
+    0xE7,
+    0x39,
+    0xE7,
+    0x39,
+    0x3C,
+    0x0F,
+    0x1C,
+    0x07,
+    0x1C,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @918 'X' (15 pixels wide) */
+    0x18,
+    0x30,
+    0x38,
+    0x38,
+    0x38,
+    0x38,
+    0xF8,
+    0x3E,
+    0xE0,
+    0x0F,
+    0xE0,
+    0x0F,
+    0xC0,
+    0x07,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xE0,
+    0x07,
+    0x38,
+    0x0F,
+    0x38,
+    0x0F,
+    0x38,
+    0x3E,
+    0x18,
+    0x38,
+    0x18,
+    0x38,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @952 'Y' (15 pixels wide) */
+    0x18,
+    0x08,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0x38,
+    0x0E,
+    0xF8,
+    0x0F,
+    0xF8,
+    0x0F,
+    0xE0,
+    0x07,
+    0xE0,
+    0x01,
+    0xE0,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x01,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+};
+
+/* Character descriptors for DPComic 18pt */
+/* { [Char width in bits], [Offset into dPComic_18ptCharBitmaps in bytes] } */
+const FONT_CHAR_INFO dPComic_18ptDescriptors[] = {
+    {15, 0}, /* - */
+    {0, 0}, /* . */
+    {0, 0}, /* / */
+    {15, 34}, /* 0 */
+    {15, 68}, /* 1 */
+    {15, 102}, /* 2 */
+    {15, 136}, /* 3 */
+    {15, 170}, /* 4 */
+    {15, 204}, /* 5 */
+    {15, 238}, /* 6 */
+    {15, 272}, /* 7 */
+    {15, 306}, /* 8 */
+    {15, 340}, /* 9 */
+    {0, 0}, /* : */
+    {0, 0}, /* ; */
+    {0, 0}, /* < */
+    {0, 0}, /* = */
+    {0, 0}, /* > */
+    {0, 0}, /* ? */
+    {0, 0}, /* @ */
+    {0, 0}, /* A */
+    {15, 374}, /* B */
+    {15, 408}, /* C */
+    {15, 442}, /* D */
+    {0, 0}, /* E */
+    {15, 476}, /* F */
+    {15, 510}, /* G */
+    {15, 544}, /* H */
+    {0, 0}, /* I */
+    {15, 578}, /* J */
+    {15, 612}, /* K */
+    {0, 0}, /* L */
+    {15, 646}, /* M */
+    {15, 680}, /* N */
+    {0, 0}, /* O */
+    {15, 714}, /* P */
+    {15, 748}, /* Q */
+    {15, 782}, /* R */
+    {0, 0}, /* S */
+    {15, 816}, /* T */
+    {0, 0}, /* U */
+    {15, 850}, /* V */
+    {15, 884}, /* W */
+    {15, 918}, /* X */
+    {15, 952}, /* Y */
+};
+
+/* Font information for DPComic 18pt */
+const FONT_INFO dPComic_18ptFontInfo = {
+    17, /*  Character height */
+    '-', /*  Start character */
+    'Y', /*  End character */
+    2, /*  Width, in pixels, of space character */
+    dPComic_18ptDescriptors, /*  Character descriptor array */
+    dPComic_18ptBitmaps, /*  Character bitmap array */
+};

+ 7 - 0
ui/fonts/dpcomic/dpcomic.h

@@ -0,0 +1,7 @@
+#pragma once
+
+/* GENERATED BY https://github.com/pavius/the-dot-factory */
+
+#include "../font_info.h"
+
+extern const FONT_INFO dPComic_18ptFontInfo;

+ 1172 - 0
ui/fonts/funclimbing/funclimbing.c

@@ -0,0 +1,1172 @@
+#include "funclimbing.h"
+
+/* GENERATED BY https://github.com/pavius/the-dot-factory */
+
+/* 
+**  Font data for fun climbing (Demo) 18pt
+*/
+
+/* Character bitmaps for fun climbing (Demo) 18pt */
+const uint8_t funclimbingDemo_18ptBitmaps[] = {
+    /* @0 '-' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0xE0,
+    0x03,
+    0xE0,
+    0x03,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @36 '0' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x80,
+    0x00,
+    0xE0,
+    0x03,
+    0x20,
+    0x02,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x08,
+    0x04,
+    0x08,
+    0x08,
+    0x08,
+    0x08,
+    0x08,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x20,
+    0x02,
+    0xE0,
+    0x01,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @72 '1' (16 pixels wide) */
+    0x00,
+    0x02,
+    0x00,
+    0x03,
+    0x80,
+    0x03,
+    0xC0,
+    0x02,
+    0x60,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x00,
+
+    /* @108 '2' (16 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x07,
+    0x60,
+    0x04,
+    0x20,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x08,
+    0x02,
+    0x08,
+    0x02,
+    0x00,
+    0x01,
+    0x00,
+    0x01,
+    0x80,
+    0x00,
+    0x80,
+    0x00,
+    0x40,
+    0x00,
+    0x60,
+    0x00,
+    0xC0,
+    0x03,
+    0x00,
+    0x1C,
+    0x00,
+    0x00,
+
+    /* @144 '3' (16 pixels wide) */
+    0x00,
+    0x02,
+    0x80,
+    0x05,
+    0x40,
+    0x08,
+    0x40,
+    0x08,
+    0x40,
+    0x10,
+    0x40,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x08,
+    0x00,
+    0x08,
+    0x00,
+    0x0C,
+    0x00,
+    0x06,
+    0x00,
+    0x03,
+    0x80,
+    0x0F,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x30,
+    0x08,
+    0xC0,
+    0x07,
+    0x00,
+    0x00,
+
+    /* @180 '4' (16 pixels wide) */
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x40,
+    0x10,
+    0x40,
+    0x10,
+    0x40,
+    0x10,
+    0x40,
+    0x10,
+    0x40,
+    0x10,
+    0x20,
+    0x10,
+    0x20,
+    0x10,
+    0x20,
+    0x10,
+    0x20,
+    0x10,
+    0x30,
+    0x10,
+    0xF0,
+    0x1F,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+
+    /* @216 '5' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x60,
+    0x00,
+    0xA0,
+    0x03,
+    0x20,
+    0x04,
+    0x20,
+    0x00,
+    0x30,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0xF0,
+    0x00,
+    0x80,
+    0x03,
+    0x00,
+    0x04,
+    0x00,
+    0x08,
+    0x00,
+    0x08,
+    0x00,
+    0x08,
+    0x00,
+    0x04,
+    0x80,
+    0x03,
+    0xF0,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @252 '6' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x40,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x18,
+    0x03,
+    0xC8,
+    0x06,
+    0x28,
+    0x0C,
+    0x18,
+    0x08,
+    0x18,
+    0x08,
+    0x08,
+    0x08,
+    0x08,
+    0x08,
+    0x10,
+    0x08,
+    0x30,
+    0x0C,
+    0xC0,
+    0x07,
+    0x00,
+    0x00,
+
+    /* @288 '7' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x0F,
+    0xF0,
+    0x09,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x06,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x03,
+    0x00,
+    0x01,
+    0x00,
+    0x01,
+    0x00,
+    0x01,
+    0x00,
+    0x00,
+
+    /* @324 '8' (16 pixels wide) */
+    0x80,
+    0x01,
+    0x60,
+    0x02,
+    0x30,
+    0x04,
+    0x10,
+    0x08,
+    0x10,
+    0x08,
+    0x08,
+    0x08,
+    0x08,
+    0x08,
+    0x10,
+    0x0C,
+    0x10,
+    0x04,
+    0x60,
+    0x03,
+    0xC0,
+    0x01,
+    0x40,
+    0x03,
+    0x20,
+    0x04,
+    0x20,
+    0x04,
+    0x20,
+    0x04,
+    0x20,
+    0x04,
+    0xC0,
+    0x03,
+    0x00,
+    0x00,
+
+    /* @360 '9' (16 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x01,
+    0x20,
+    0x02,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0xE0,
+    0x03,
+    0x00,
+    0x02,
+    0x00,
+    0x02,
+    0x00,
+    0x01,
+    0x00,
+    0x01,
+    0x80,
+    0x00,
+    0x80,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @396 'B' (16 pixels wide) */
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x08,
+    0x00,
+    0x08,
+    0x00,
+    0xE8,
+    0x0F,
+    0x38,
+    0x10,
+    0x10,
+    0x10,
+    0x10,
+    0x30,
+    0x10,
+    0x10,
+    0x10,
+    0x18,
+    0xF0,
+    0x07,
+    0x20,
+    0x00,
+
+    /* @432 'C' (16 pixels wide) */
+    0x00,
+    0x03,
+    0x80,
+    0x06,
+    0x40,
+    0x04,
+    0x40,
+    0x04,
+    0x40,
+    0x08,
+    0x40,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x40,
+    0x00,
+    0x40,
+    0x08,
+    0x40,
+    0x08,
+    0x40,
+    0x08,
+    0xC0,
+    0x08,
+    0x80,
+    0x04,
+    0x80,
+    0x05,
+    0x00,
+    0x02,
+
+    /* @468 'D' (16 pixels wide) */
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x80,
+    0x07,
+    0x40,
+    0x04,
+    0x20,
+    0x04,
+    0x20,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x30,
+    0x04,
+    0x20,
+    0x04,
+    0x20,
+    0x04,
+    0x40,
+    0x04,
+    0x80,
+    0x05,
+    0x00,
+    0x07,
+
+    /* @504 'F' (16 pixels wide) */
+    0x00,
+    0x02,
+    0x80,
+    0x0D,
+    0xC0,
+    0x08,
+    0x40,
+    0x10,
+    0x60,
+    0x10,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0xF8,
+    0x01,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x20,
+    0x00,
+    0x40,
+    0x00,
+
+    /* @540 'G' (16 pixels wide) */
+    0x80,
+    0x00,
+    0x60,
+    0x01,
+    0x20,
+    0x03,
+    0x30,
+    0x02,
+    0x10,
+    0x02,
+    0x10,
+    0x02,
+    0x10,
+    0x02,
+    0x10,
+    0x02,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0xD0,
+    0x0F,
+    0x10,
+    0x02,
+    0x10,
+    0x01,
+    0x20,
+    0x01,
+    0xE0,
+    0x00,
+    0x40,
+    0x00,
+
+    /* @576 'H' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x08,
+    0x00,
+    0x08,
+    0x00,
+    0x08,
+    0x00,
+    0x18,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x0F,
+    0x90,
+    0x09,
+    0xD0,
+    0x18,
+    0x50,
+    0x10,
+    0x30,
+    0x10,
+    0x30,
+    0x10,
+    0x10,
+    0x10,
+    0x00,
+    0x00,
+
+    /* @612 'J' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x00,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x20,
+    0x04,
+    0x20,
+    0x02,
+    0x20,
+    0x02,
+    0x60,
+    0x03,
+    0xC0,
+    0x01,
+    0x00,
+    0x00,
+
+    /* @648 'K' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x08,
+    0x10,
+    0x0C,
+    0x10,
+    0x02,
+    0xB0,
+    0x01,
+    0xE0,
+    0x00,
+    0x60,
+    0x00,
+    0x60,
+    0x00,
+    0xA0,
+    0x00,
+    0x20,
+    0x01,
+    0x20,
+    0x02,
+    0x20,
+    0x0C,
+    0x20,
+    0x08,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @684 'M' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x10,
+    0x10,
+    0x30,
+    0x18,
+    0x30,
+    0x18,
+    0x50,
+    0x34,
+    0x50,
+    0x24,
+    0xC8,
+    0x22,
+    0x88,
+    0x22,
+    0x88,
+    0x21,
+    0x08,
+    0x21,
+    0x04,
+    0x60,
+    0x04,
+    0x40,
+    0x04,
+    0x40,
+    0x04,
+    0x40,
+    0x02,
+    0x40,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @720 'N' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x02,
+    0x01,
+    0x86,
+    0x07,
+    0x44,
+    0x04,
+    0x24,
+    0x08,
+    0x24,
+    0x08,
+    0x14,
+    0x18,
+    0x14,
+    0x10,
+    0x1C,
+    0x10,
+    0x0C,
+    0x10,
+    0x0C,
+    0x10,
+    0x08,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @756 'P' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0xE0,
+    0x01,
+    0x20,
+    0x02,
+    0x20,
+    0x04,
+    0x60,
+    0x04,
+    0x40,
+    0x04,
+    0x40,
+    0x04,
+    0x40,
+    0x04,
+    0x40,
+    0x06,
+    0x40,
+    0x02,
+    0xC0,
+    0x01,
+    0xC0,
+    0x00,
+    0x40,
+    0x00,
+    0x40,
+    0x00,
+    0x40,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @792 'Q' (16 pixels wide) */
+    0x00,
+    0x00,
+    0xC0,
+    0x03,
+    0x30,
+    0x06,
+    0x18,
+    0x08,
+    0x08,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x20,
+    0x04,
+    0x20,
+    0x04,
+    0x20,
+    0x08,
+    0x21,
+    0x08,
+    0x33,
+    0x10,
+    0x12,
+    0x30,
+    0x0E,
+    0xC0,
+    0x07,
+    0x00,
+    0x08,
+    0x00,
+    0x08,
+    0x00,
+    0x10,
+    0x00,
+    0x00,
+
+    /* @828 'R' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x07,
+    0x88,
+    0x0D,
+    0x48,
+    0x08,
+    0x68,
+    0x00,
+    0x28,
+    0x00,
+    0x28,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x10,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @864 'T' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x80,
+    0x00,
+    0x80,
+    0x00,
+    0x80,
+    0x00,
+    0x80,
+    0x00,
+    0xE0,
+    0x03,
+    0x80,
+    0x00,
+    0x80,
+    0x00,
+    0x80,
+    0x00,
+    0x80,
+    0x04,
+    0x80,
+    0x04,
+    0x80,
+    0x04,
+    0x80,
+    0x04,
+    0x80,
+    0x05,
+    0x00,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @900 'V' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x08,
+    0x10,
+    0x10,
+    0x10,
+    0x10,
+    0x18,
+    0x10,
+    0x08,
+    0x10,
+    0x08,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x20,
+    0x04,
+    0x20,
+    0x02,
+    0x20,
+    0x02,
+    0x20,
+    0x01,
+    0x40,
+    0x01,
+    0xC0,
+    0x01,
+    0xC0,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @936 'W' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x03,
+    0x80,
+    0x02,
+    0x80,
+    0x02,
+    0x40,
+    0x02,
+    0x40,
+    0x02,
+    0x41,
+    0x86,
+    0x42,
+    0x84,
+    0x42,
+    0x44,
+    0x44,
+    0x44,
+    0x64,
+    0x24,
+    0x28,
+    0x28,
+    0x28,
+    0x18,
+    0x30,
+    0x18,
+    0x30,
+    0x18,
+    0x20,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @972 'X' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x08,
+    0x08,
+    0x10,
+    0x04,
+    0x20,
+    0x04,
+    0x40,
+    0x02,
+    0x80,
+    0x03,
+    0x80,
+    0x01,
+    0x80,
+    0x03,
+    0x40,
+    0x02,
+    0x30,
+    0x04,
+    0x18,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+
+    /* @1008 'Y' (16 pixels wide) */
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x08,
+    0x08,
+    0x08,
+    0x08,
+    0x08,
+    0x0C,
+    0x08,
+    0x0C,
+    0x08,
+    0x0A,
+    0x10,
+    0x0A,
+    0xF0,
+    0x09,
+    0x00,
+    0x0C,
+    0x10,
+    0x04,
+    0x10,
+    0x04,
+    0x20,
+    0x02,
+    0xE0,
+    0x03,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+};
+
+/* Character descriptors for fun climbing (Demo) 18pt */
+/* { [Char width in bits], [Offset into funclimbingDemo_18ptCharBitmaps in bytes] } */
+const FONT_CHAR_INFO funclimbingDemo_18ptDescriptors[] = {
+    {16, 0}, /* - */
+    {0, 0}, /* . */
+    {0, 0}, /* / */
+    {16, 36}, /* 0 */
+    {16, 72}, /* 1 */
+    {16, 108}, /* 2 */
+    {16, 144}, /* 3 */
+    {16, 180}, /* 4 */
+    {16, 216}, /* 5 */
+    {16, 252}, /* 6 */
+    {16, 288}, /* 7 */
+    {16, 324}, /* 8 */
+    {16, 360}, /* 9 */
+    {0, 0}, /* : */
+    {0, 0}, /* ; */
+    {0, 0}, /* < */
+    {0, 0}, /* = */
+    {0, 0}, /* > */
+    {0, 0}, /* ? */
+    {0, 0}, /* @ */
+    {0, 0}, /* A */
+    {16, 396}, /* B */
+    {16, 432}, /* C */
+    {16, 468}, /* D */
+    {0, 0}, /* E */
+    {16, 504}, /* F */
+    {16, 540}, /* G */
+    {16, 576}, /* H */
+    {0, 0}, /* I */
+    {16, 612}, /* J */
+    {16, 648}, /* K */
+    {0, 0}, /* L */
+    {16, 684}, /* M */
+    {16, 720}, /* N */
+    {0, 0}, /* O */
+    {16, 756}, /* P */
+    {16, 792}, /* Q */
+    {16, 828}, /* R */
+    {0, 0}, /* S */
+    {16, 864}, /* T */
+    {0, 0}, /* U */
+    {16, 900}, /* V */
+    {16, 936}, /* W */
+    {16, 972}, /* X */
+    {16, 1008}, /* Y */
+};
+
+/* Font information for fun climbing (Demo) 18pt */
+const FONT_INFO funclimbingDemo_18ptFontInfo = {
+    18, /*  Character height */
+    '-', /*  Start character */
+    'Y', /*  End character */
+    2, /*  Width, in pixels, of space character */
+    funclimbingDemo_18ptDescriptors, /*  Character descriptor array */
+    funclimbingDemo_18ptBitmaps, /*  Character bitmap array */
+};

+ 7 - 0
ui/fonts/funclimbing/funclimbing.h

@@ -0,0 +1,7 @@
+#pragma once
+
+/* GENERATED BY https://github.com/pavius/the-dot-factory */
+
+#include "../font_info.h"
+
+extern const FONT_INFO funclimbingDemo_18ptFontInfo;

+ 1114 - 0
ui/fonts/pixelflag/pixelflag.c

@@ -0,0 +1,1114 @@
+#include "pixelflag.h"
+
+/* GENERATED BY https://github.com/pavius/the-dot-factory */
+
+/* 
+**  Font data for {PixelFlag} 18pt
+*/
+
+/* Character bitmaps for {PixelFlag} 18pt */
+const uint8_t pixelFlag_18ptBitmaps[] = {
+    /* @0 '-' (13 pixels wide) */
+    0xFE,
+    0x07,
+    0xFE,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0x00,
+    0xFE,
+    0x07,
+    0xFE,
+    0x07,
+
+    /* @34 '0' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @68 '1' (13 pixels wide) */
+    0xff,
+    0xff,
+    0xff,
+    0xff,
+    0x00,
+    0xe0,
+    0xc0,
+    0xe0,
+    0xc0,
+    0xe0,
+    0xe0,
+    0xe0,
+    0xe0,
+    0xe0,
+    0xc0,
+    0xe0,
+    0xc0,
+    0xe0,
+    0xc0,
+    0xe0,
+    0xc0,
+    0xe0,
+    0xc0,
+    0xe0,
+    0xe0,
+    0xe3,
+    0xe0,
+    0xe3,
+    0x00,
+    0xe0,
+    0xff,
+    0xff,
+    0xff,
+    0xff,
+
+    /* @102 '2' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x07,
+    0xFC,
+    0x07,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0xF8,
+    0x07,
+    0xFC,
+    0x07,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x1F,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @136 '3' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x07,
+    0xFC,
+    0x07,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0xE0,
+    0x07,
+    0xE0,
+    0x1F,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @170 '4' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x00,
+    0x06,
+    0x00,
+    0x06,
+    0x00,
+    0x07,
+    0xC0,
+    0x07,
+    0xC0,
+    0x06,
+    0x60,
+    0x06,
+    0x78,
+    0x06,
+    0x18,
+    0x06,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x1F,
+    0x00,
+    0x06,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @204 '5' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x1F,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0xFC,
+    0x07,
+    0xFC,
+    0x1F,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @238 '6' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x00,
+    0xFC,
+    0x07,
+    0xFC,
+    0x1F,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @272 '7' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x1F,
+    0x00,
+    0x06,
+    0x00,
+    0x07,
+    0x00,
+    0x03,
+    0xC0,
+    0x00,
+    0xE0,
+    0x00,
+    0x60,
+    0x00,
+    0x18,
+    0x00,
+    0x1C,
+    0x00,
+    0x0C,
+    0x00,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @306 '8' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xF8,
+    0x07,
+    0xFC,
+    0x1F,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @340 '9' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xF8,
+    0x1F,
+    0xF8,
+    0x1F,
+    0x00,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @374 'B' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x07,
+    0xFC,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x07,
+    0xFC,
+    0x1F,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @408 'C' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @442 'D' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x07,
+    0xFC,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @476 'F' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x1F,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0xFC,
+    0x03,
+    0xFC,
+    0x03,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @510 'G' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x00,
+    0xCC,
+    0x1F,
+    0xCC,
+    0x1F,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @544 'H' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x1F,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @578 'J' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x00,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x1F,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @612 'K' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x06,
+    0x0C,
+    0x07,
+    0x0C,
+    0x03,
+    0xFC,
+    0x00,
+    0xFC,
+    0x03,
+    0x0C,
+    0x03,
+    0x0C,
+    0x06,
+    0x0C,
+    0x1E,
+    0x0C,
+    0x18,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @646 'M' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x1C,
+    0x1E,
+    0x7C,
+    0x1F,
+    0x6C,
+    0x1B,
+    0xCC,
+    0x18,
+    0xCC,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @680 'N' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x1C,
+    0x18,
+    0x7C,
+    0x18,
+    0x6C,
+    0x18,
+    0xCC,
+    0x18,
+    0xCC,
+    0x1B,
+    0x0C,
+    0x1B,
+    0x0C,
+    0x1E,
+    0x0C,
+    0x1E,
+    0x0C,
+    0x18,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @714 'P' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x07,
+    0xFC,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x07,
+    0xFC,
+    0x07,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x0C,
+    0x00,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @748 'Q' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xF8,
+    0x07,
+    0xF8,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xCC,
+    0x18,
+    0xCC,
+    0x1B,
+    0x0C,
+    0x1B,
+    0x0C,
+    0x1E,
+    0xFC,
+    0x1F,
+    0xF8,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @782 'R' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x07,
+    0xFC,
+    0x07,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xFC,
+    0x07,
+    0xFC,
+    0x1F,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @816 'T' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0xFC,
+    0x1F,
+    0xFC,
+    0x1F,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @850 'V' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x1C,
+    0x1E,
+    0x18,
+    0x06,
+    0x60,
+    0x03,
+    0xE0,
+    0x03,
+    0xC0,
+    0x00,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @884 'W' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0xCC,
+    0x18,
+    0xCC,
+    0x18,
+    0xCC,
+    0x18,
+    0xCC,
+    0x18,
+    0xCC,
+    0x18,
+    0xCC,
+    0x18,
+    0xFC,
+    0x1F,
+    0x78,
+    0x07,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @918 'X' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x18,
+    0x06,
+    0x78,
+    0x07,
+    0x60,
+    0x03,
+    0xC0,
+    0x00,
+    0xE0,
+    0x03,
+    0x60,
+    0x03,
+    0x18,
+    0x06,
+    0x1C,
+    0x1E,
+    0x0C,
+    0x18,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+
+    /* @952 'Y' (13 pixels wide) */
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+    0x00,
+    0x00,
+    0x0C,
+    0x18,
+    0x0C,
+    0x18,
+    0x18,
+    0x06,
+    0x78,
+    0x07,
+    0x60,
+    0x03,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0xC0,
+    0x00,
+    0x00,
+    0x00,
+    0xFF,
+    0x1F,
+    0xFF,
+    0x1F,
+};
+
+/* Character descriptors for {PixelFlag} 18pt */
+/* { [Char width in bits], [Offset into pixelFlag_18ptCharBitmaps in bytes] } */
+const FONT_CHAR_INFO pixelFlag_18ptDescriptors[] = {
+    {13, 0}, /* - */
+    {0, 0}, /* . */
+    {0, 0}, /* / */
+    {13, 34}, /* 0 */
+    {13, 68}, /* 1 */
+    {13, 102}, /* 2 */
+    {13, 136}, /* 3 */
+    {13, 170}, /* 4 */
+    {13, 204}, /* 5 */
+    {13, 238}, /* 6 */
+    {13, 272}, /* 7 */
+    {13, 306}, /* 8 */
+    {13, 340}, /* 9 */
+    {0, 0}, /* : */
+    {0, 0}, /* ; */
+    {0, 0}, /* < */
+    {0, 0}, /* = */
+    {0, 0}, /* > */
+    {0, 0}, /* ? */
+    {0, 0}, /* @ */
+    {0, 0}, /* A */
+    {13, 374}, /* B */
+    {13, 408}, /* C */
+    {13, 442}, /* D */
+    {0, 0}, /* E */
+    {13, 476}, /* F */
+    {13, 510}, /* G */
+    {13, 544}, /* H */
+    {0, 0}, /* I */
+    {13, 578}, /* J */
+    {13, 612}, /* K */
+    {0, 0}, /* L */
+    {13, 646}, /* M */
+    {13, 680}, /* N */
+    {0, 0}, /* O */
+    {13, 714}, /* P */
+    {13, 748}, /* Q */
+    {13, 782}, /* R */
+    {0, 0}, /* S */
+    {13, 816}, /* T */
+    {0, 0}, /* U */
+    {13, 850}, /* V */
+    {13, 884}, /* W */
+    {13, 918}, /* X */
+    {13, 952}, /* Y */
+};
+
+/* Font information for {PixelFlag} 18pt */
+const FONT_INFO pixelFlag_18ptFontInfo = {
+    17, /*  Character height */
+    '-', /*  Start character */
+    'Y', /*  End character */
+    0, /*  Width, in pixels, of space character */
+    pixelFlag_18ptDescriptors, /*  Character descriptor array */
+    pixelFlag_18ptBitmaps, /*  Character bitmap array */
+};

+ 7 - 0
ui/fonts/pixelflag/pixelflag.h

@@ -0,0 +1,7 @@
+#pragma once
+
+/* GENERATED BY https://github.com/pavius/the-dot-factory */
+
+#include "../font_info.h"
+
+extern const FONT_INFO pixelFlag_18ptFontInfo;