NucleoF446 re + SSD1331 simple Library

Dependents:   Nucleo_446 Nucleo446_SSD1331

Files at this revision

API Documentation at this revision

Comitter:
kadonotakashi
Date:
Thu Oct 11 04:10:23 2018 +0000
Parent:
0:9442efe129e7
Commit message:
add font;

Changed in this revision

fonts/FreeSans9pt7b.h Show annotated file Show diff for this revision Revisions of this file
fonts/FreeSerif9pt7b.h Show annotated file Show diff for this revision Revisions of this file
fonts/TomThumb.h Show annotated file Show diff for this revision Revisions of this file
ssd1331.cpp Show annotated file Show diff for this revision Revisions of this file
ssd1331.h Show annotated file Show diff for this revision Revisions of this file
diff -r 9442efe129e7 -r 85198abc3103 fonts/FreeSans9pt7b.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/FreeSans9pt7b.h	Thu Oct 11 04:10:23 2018 +0000
@@ -0,0 +1,201 @@
+const uint8_t FreeSans9pt7bBitmaps[] PROGMEM = {
+  0xFF, 0xFF, 0xF8, 0xC0, 0xDE, 0xF7, 0x20, 0x09, 0x86, 0x41, 0x91, 0xFF,
+  0x13, 0x04, 0xC3, 0x20, 0xC8, 0xFF, 0x89, 0x82, 0x61, 0x90, 0x10, 0x1F,
+  0x14, 0xDA, 0x3D, 0x1E, 0x83, 0x40, 0x78, 0x17, 0x08, 0xF4, 0x7A, 0x35,
+  0x33, 0xF0, 0x40, 0x20, 0x38, 0x10, 0xEC, 0x20, 0xC6, 0x20, 0xC6, 0x40,
+  0xC6, 0x40, 0x6C, 0x80, 0x39, 0x00, 0x01, 0x3C, 0x02, 0x77, 0x02, 0x63,
+  0x04, 0x63, 0x04, 0x77, 0x08, 0x3C, 0x0E, 0x06, 0x60, 0xCC, 0x19, 0x81,
+  0xE0, 0x18, 0x0F, 0x03, 0x36, 0xC2, 0xD8, 0x73, 0x06, 0x31, 0xE3, 0xC4,
+  0xFE, 0x13, 0x26, 0x6C, 0xCC, 0xCC, 0xC4, 0x66, 0x23, 0x10, 0x8C, 0x46,
+  0x63, 0x33, 0x33, 0x32, 0x66, 0x4C, 0x80, 0x25, 0x7E, 0xA5, 0x00, 0x30,
+  0xC3, 0x3F, 0x30, 0xC3, 0x0C, 0xD6, 0xF0, 0xC0, 0x08, 0x44, 0x21, 0x10,
+  0x84, 0x42, 0x11, 0x08, 0x00, 0x3C, 0x66, 0x42, 0xC3, 0xC3, 0xC3, 0xC3,
+  0xC3, 0xC3, 0xC3, 0x42, 0x66, 0x3C, 0x11, 0x3F, 0x33, 0x33, 0x33, 0x33,
+  0x30, 0x3E, 0x31, 0xB0, 0x78, 0x30, 0x18, 0x1C, 0x1C, 0x1C, 0x18, 0x18,
+  0x10, 0x08, 0x07, 0xF8, 0x3C, 0x66, 0xC3, 0xC3, 0x03, 0x06, 0x1C, 0x07,
+  0x03, 0xC3, 0xC3, 0x66, 0x3C, 0x0C, 0x18, 0x71, 0x62, 0xC9, 0xA3, 0x46,
+  0xFE, 0x18, 0x30, 0x60, 0xC0, 0x7F, 0x20, 0x10, 0x08, 0x08, 0x07, 0xF3,
+  0x8C, 0x03, 0x01, 0x80, 0xF0, 0x6C, 0x63, 0xE0, 0x1E, 0x31, 0x98, 0x78,
+  0x0C, 0x06, 0xF3, 0x8D, 0x83, 0xC1, 0xE0, 0xD0, 0x6C, 0x63, 0xE0, 0xFF,
+  0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x18, 0x18, 0x18, 0x10, 0x30, 0x30,
+  0x3E, 0x31, 0xB0, 0x78, 0x3C, 0x1B, 0x18, 0xF8, 0xC6, 0xC1, 0xE0, 0xF0,
+  0x6C, 0x63, 0xE0, 0x3C, 0x66, 0xC2, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x03,
+  0x03, 0xC2, 0x66, 0x3C, 0xC0, 0x00, 0x30, 0xC0, 0x00, 0x00, 0x64, 0xA0,
+  0x00, 0x81, 0xC7, 0x8E, 0x0C, 0x07, 0x80, 0x70, 0x0E, 0x01, 0x80, 0xFF,
+  0x80, 0x00, 0x1F, 0xF0, 0x00, 0x70, 0x0E, 0x01, 0xC0, 0x18, 0x38, 0x71,
+  0xC0, 0x80, 0x00, 0x3E, 0x31, 0xB0, 0x78, 0x30, 0x18, 0x18, 0x38, 0x18,
+  0x18, 0x0C, 0x00, 0x00, 0x01, 0x80, 0x03, 0xF0, 0x06, 0x0E, 0x06, 0x01,
+  0x86, 0x00, 0x66, 0x1D, 0xBB, 0x31, 0xCF, 0x18, 0xC7, 0x98, 0x63, 0xCC,
+  0x31, 0xE6, 0x11, 0xB3, 0x99, 0xCC, 0xF7, 0x86, 0x00, 0x01, 0x80, 0x00,
+  0x70, 0x40, 0x0F, 0xE0, 0x06, 0x00, 0xF0, 0x0F, 0x00, 0x90, 0x19, 0x81,
+  0x98, 0x10, 0x83, 0x0C, 0x3F, 0xC2, 0x04, 0x60, 0x66, 0x06, 0xC0, 0x30,
+  0xFF, 0x18, 0x33, 0x03, 0x60, 0x6C, 0x0D, 0x83, 0x3F, 0xC6, 0x06, 0xC0,
+  0x78, 0x0F, 0x01, 0xE0, 0x6F, 0xF8, 0x1F, 0x86, 0x19, 0x81, 0xA0, 0x3C,
+  0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x68, 0x0D, 0x83, 0x18, 0x61, 0xF0,
+  0xFF, 0x18, 0x33, 0x03, 0x60, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0,
+  0x78, 0x0F, 0x03, 0x60, 0xCF, 0xF0, 0xFF, 0xE0, 0x30, 0x18, 0x0C, 0x06,
+  0x03, 0xFD, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0F, 0xF8, 0xFF, 0xC0, 0xC0,
+  0xC0, 0xC0, 0xC0, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x0F, 0x83,
+  0x0E, 0x60, 0x66, 0x03, 0xC0, 0x0C, 0x00, 0xC1, 0xFC, 0x03, 0xC0, 0x36,
+  0x03, 0x60, 0x73, 0x0F, 0x0F, 0x10, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C,
+  0x07, 0x80, 0xFF, 0xFE, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x06,
+  0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x07,
+  0x8F, 0x1E, 0x27, 0x80, 0xC0, 0xD8, 0x33, 0x0C, 0x63, 0x0C, 0xC1, 0xB8,
+  0x3F, 0x07, 0x30, 0xC3, 0x18, 0x63, 0x06, 0x60, 0x6C, 0x0C, 0xC0, 0xC0,
+  0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0xE0,
+  0x3F, 0x01, 0xFC, 0x1F, 0xE0, 0xFD, 0x05, 0xEC, 0x6F, 0x63, 0x79, 0x13,
+  0xCD, 0x9E, 0x6C, 0xF1, 0x47, 0x8E, 0x3C, 0x71, 0x80, 0xE0, 0x7C, 0x0F,
+  0xC1, 0xE8, 0x3D, 0x87, 0x98, 0xF1, 0x1E, 0x33, 0xC3, 0x78, 0x6F, 0x07,
+  0xE0, 0x7C, 0x0E, 0x0F, 0x81, 0x83, 0x18, 0x0C, 0xC0, 0x6C, 0x01, 0xE0,
+  0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1B, 0x01, 0x98, 0x0C, 0x60, 0xC0, 0xF8,
+  0x00, 0xFF, 0x30, 0x6C, 0x0F, 0x03, 0xC0, 0xF0, 0x6F, 0xF3, 0x00, 0xC0,
+  0x30, 0x0C, 0x03, 0x00, 0xC0, 0x00, 0x0F, 0x81, 0x83, 0x18, 0x0C, 0xC0,
+  0x6C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1B, 0x01, 0x98, 0x6C,
+  0x60, 0xC0, 0xFB, 0x00, 0x08, 0xFF, 0x8C, 0x0E, 0xC0, 0x6C, 0x06, 0xC0,
+  0x6C, 0x0C, 0xFF, 0x8C, 0x0E, 0xC0, 0x6C, 0x06, 0xC0, 0x6C, 0x06, 0xC0,
+  0x70, 0x3F, 0x18, 0x6C, 0x0F, 0x03, 0xC0, 0x1E, 0x01, 0xF0, 0x0E, 0x00,
+  0xF0, 0x3C, 0x0D, 0x86, 0x3F, 0x00, 0xFF, 0x86, 0x03, 0x01, 0x80, 0xC0,
+  0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0xC0, 0x78, 0x0F,
+  0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01,
+  0xB0, 0x61, 0xF0, 0xC0, 0x6C, 0x0D, 0x81, 0x10, 0x63, 0x0C, 0x61, 0x04,
+  0x60, 0xCC, 0x19, 0x01, 0x60, 0x3C, 0x07, 0x00, 0x60, 0xC1, 0x81, 0x30,
+  0xE1, 0x98, 0x70, 0xCC, 0x28, 0x66, 0x26, 0x21, 0x13, 0x30, 0xC8, 0x98,
+  0x6C, 0x4C, 0x14, 0x34, 0x0A, 0x1A, 0x07, 0x07, 0x03, 0x03, 0x80, 0x81,
+  0x80, 0x60, 0x63, 0x0C, 0x30, 0xC1, 0x98, 0x0F, 0x00, 0xE0, 0x06, 0x00,
+  0xF0, 0x19, 0x01, 0x98, 0x30, 0xC6, 0x0E, 0x60, 0x60, 0xC0, 0x36, 0x06,
+  0x30, 0xC3, 0x0C, 0x19, 0x81, 0xD8, 0x0F, 0x00, 0x60, 0x06, 0x00, 0x60,
+  0x06, 0x00, 0x60, 0x06, 0x00, 0xFF, 0xC0, 0x60, 0x30, 0x0C, 0x06, 0x03,
+  0x01, 0xC0, 0x60, 0x30, 0x18, 0x06, 0x03, 0x00, 0xFF, 0xC0, 0xFB, 0x6D,
+  0xB6, 0xDB, 0x6D, 0xB6, 0xE0, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84,
+  0x10, 0x80, 0xED, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0xE0, 0x30, 0x60, 0xA2,
+  0x44, 0xD8, 0xA1, 0x80, 0xFF, 0xC0, 0xC6, 0x30, 0x7E, 0x71, 0xB0, 0xC0,
+  0x60, 0xF3, 0xDB, 0x0D, 0x86, 0xC7, 0x3D, 0xC0, 0xC0, 0x60, 0x30, 0x1B,
+  0xCE, 0x36, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x7C, 0x6D, 0xE0, 0x3C,
+  0x66, 0xC3, 0xC0, 0xC0, 0xC0, 0xC0, 0xC3, 0x66, 0x3C, 0x03, 0x03, 0x03,
+  0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x3C, 0x66,
+  0xC3, 0xC3, 0xFF, 0xC0, 0xC0, 0xC3, 0x66, 0x3C, 0x36, 0x6F, 0x66, 0x66,
+  0x66, 0x66, 0x60, 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x67,
+  0x3B, 0x03, 0x03, 0xC6, 0x7C, 0xC0, 0xC0, 0xC0, 0xDE, 0xE3, 0xC3, 0xC3,
+  0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF, 0xC0, 0x30, 0x03,
+  0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0xE0, 0xC0, 0x60, 0x30, 0x18, 0x4C,
+  0x46, 0x63, 0x61, 0xF0, 0xEC, 0x62, 0x31, 0x98, 0x6C, 0x30, 0xFF, 0xFF,
+  0xFF, 0xC0, 0xDE, 0xF7, 0x1C, 0xF0, 0xC7, 0x86, 0x3C, 0x31, 0xE1, 0x8F,
+  0x0C, 0x78, 0x63, 0xC3, 0x1E, 0x18, 0xC0, 0xDE, 0xE3, 0xC3, 0xC3, 0xC3,
+  0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x3C, 0x66, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
+  0xC3, 0x66, 0x3C, 0xDE, 0x71, 0xB0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83,
+  0xE3, 0x6F, 0x30, 0x18, 0x0C, 0x00, 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3,
+  0xC3, 0xC3, 0x67, 0x3B, 0x03, 0x03, 0x03, 0xDF, 0x31, 0x8C, 0x63, 0x18,
+  0xC6, 0x00, 0x3E, 0xE3, 0xC0, 0xC0, 0xE0, 0x3C, 0x07, 0xC3, 0xE3, 0x7E,
+  0x66, 0xF6, 0x66, 0x66, 0x66, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
+  0xC3, 0xC3, 0xC7, 0x7B, 0xC1, 0xA0, 0x98, 0xCC, 0x42, 0x21, 0xB0, 0xD0,
+  0x28, 0x1C, 0x0C, 0x00, 0xC6, 0x1E, 0x38, 0x91, 0xC4, 0xCA, 0x66, 0xD3,
+  0x16, 0xD0, 0xA6, 0x87, 0x1C, 0x38, 0xC0, 0xC6, 0x00, 0x43, 0x62, 0x36,
+  0x1C, 0x18, 0x1C, 0x3C, 0x26, 0x62, 0x43, 0xC1, 0x21, 0x98, 0xCC, 0x42,
+  0x61, 0xB0, 0xD0, 0x38, 0x1C, 0x0C, 0x06, 0x03, 0x01, 0x03, 0x00, 0xFE,
+  0x0C, 0x30, 0xC1, 0x86, 0x18, 0x20, 0xC1, 0xFC, 0x36, 0x66, 0x66, 0x6E,
+  0xCE, 0x66, 0x66, 0x66, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xC6, 0x66,
+  0x66, 0x67, 0x37, 0x66, 0x66, 0x66, 0xC0, 0x61, 0x24, 0x38 };
+
+const GFXglyph FreeSans9pt7bGlyphs[] PROGMEM = {
+  {     0,   0,   0,   5,    0,    1 },   // 0x20 ' '
+  {     0,   2,  13,   6,    2,  -12 },   // 0x21 '!'
+  {     4,   5,   4,   6,    1,  -12 },   // 0x22 '"'
+  {     7,  10,  12,  10,    0,  -11 },   // 0x23 '#'
+  {    22,   9,  16,  10,    1,  -13 },   // 0x24 '$'
+  {    40,  16,  13,  16,    1,  -12 },   // 0x25 '%'
+  {    66,  11,  13,  12,    1,  -12 },   // 0x26 '&'
+  {    84,   2,   4,   4,    1,  -12 },   // 0x27 '''
+  {    85,   4,  17,   6,    1,  -12 },   // 0x28 '('
+  {    94,   4,  17,   6,    1,  -12 },   // 0x29 ')'
+  {   103,   5,   5,   7,    1,  -12 },   // 0x2A '*'
+  {   107,   6,   8,  11,    3,   -7 },   // 0x2B '+'
+  {   113,   2,   4,   5,    2,    0 },   // 0x2C ','
+  {   114,   4,   1,   6,    1,   -4 },   // 0x2D '-'
+  {   115,   2,   1,   5,    1,    0 },   // 0x2E '.'
+  {   116,   5,  13,   5,    0,  -12 },   // 0x2F '/'
+  {   125,   8,  13,  10,    1,  -12 },   // 0x30 '0'
+  {   138,   4,  13,  10,    3,  -12 },   // 0x31 '1'
+  {   145,   9,  13,  10,    1,  -12 },   // 0x32 '2'
+  {   160,   8,  13,  10,    1,  -12 },   // 0x33 '3'
+  {   173,   7,  13,  10,    2,  -12 },   // 0x34 '4'
+  {   185,   9,  13,  10,    1,  -12 },   // 0x35 '5'
+  {   200,   9,  13,  10,    1,  -12 },   // 0x36 '6'
+  {   215,   8,  13,  10,    0,  -12 },   // 0x37 '7'
+  {   228,   9,  13,  10,    1,  -12 },   // 0x38 '8'
+  {   243,   8,  13,  10,    1,  -12 },   // 0x39 '9'
+  {   256,   2,  10,   5,    1,   -9 },   // 0x3A ':'
+  {   259,   3,  12,   5,    1,   -8 },   // 0x3B ';'
+  {   264,   9,   9,  11,    1,   -8 },   // 0x3C '<'
+  {   275,   9,   4,  11,    1,   -5 },   // 0x3D '='
+  {   280,   9,   9,  11,    1,   -8 },   // 0x3E '>'
+  {   291,   9,  13,  10,    1,  -12 },   // 0x3F '?'
+  {   306,  17,  16,  18,    1,  -12 },   // 0x40 '@'
+  {   340,  12,  13,  12,    0,  -12 },   // 0x41 'A'
+  {   360,  11,  13,  12,    1,  -12 },   // 0x42 'B'
+  {   378,  11,  13,  13,    1,  -12 },   // 0x43 'C'
+  {   396,  11,  13,  13,    1,  -12 },   // 0x44 'D'
+  {   414,   9,  13,  11,    1,  -12 },   // 0x45 'E'
+  {   429,   8,  13,  11,    1,  -12 },   // 0x46 'F'
+  {   442,  12,  13,  14,    1,  -12 },   // 0x47 'G'
+  {   462,  11,  13,  13,    1,  -12 },   // 0x48 'H'
+  {   480,   2,  13,   5,    2,  -12 },   // 0x49 'I'
+  {   484,   7,  13,  10,    1,  -12 },   // 0x4A 'J'
+  {   496,  11,  13,  12,    1,  -12 },   // 0x4B 'K'
+  {   514,   8,  13,  10,    1,  -12 },   // 0x4C 'L'
+  {   527,  13,  13,  15,    1,  -12 },   // 0x4D 'M'
+  {   549,  11,  13,  13,    1,  -12 },   // 0x4E 'N'
+  {   567,  13,  13,  14,    1,  -12 },   // 0x4F 'O'
+  {   589,  10,  13,  12,    1,  -12 },   // 0x50 'P'
+  {   606,  13,  14,  14,    1,  -12 },   // 0x51 'Q'
+  {   629,  12,  13,  13,    1,  -12 },   // 0x52 'R'
+  {   649,  10,  13,  12,    1,  -12 },   // 0x53 'S'
+  {   666,   9,  13,  11,    1,  -12 },   // 0x54 'T'
+  {   681,  11,  13,  13,    1,  -12 },   // 0x55 'U'
+  {   699,  11,  13,  12,    0,  -12 },   // 0x56 'V'
+  {   717,  17,  13,  17,    0,  -12 },   // 0x57 'W'
+  {   745,  12,  13,  12,    0,  -12 },   // 0x58 'X'
+  {   765,  12,  13,  12,    0,  -12 },   // 0x59 'Y'
+  {   785,  10,  13,  11,    1,  -12 },   // 0x5A 'Z'
+  {   802,   3,  17,   5,    1,  -12 },   // 0x5B '['
+  {   809,   5,  13,   5,    0,  -12 },   // 0x5C '\'
+  {   818,   3,  17,   5,    0,  -12 },   // 0x5D ']'
+  {   825,   7,   7,   8,    1,  -12 },   // 0x5E '^'
+  {   832,  10,   1,  10,    0,    3 },   // 0x5F '_'
+  {   834,   4,   3,   5,    0,  -12 },   // 0x60 '`'
+  {   836,   9,  10,  10,    1,   -9 },   // 0x61 'a'
+  {   848,   9,  13,  10,    1,  -12 },   // 0x62 'b'
+  {   863,   8,  10,   9,    1,   -9 },   // 0x63 'c'
+  {   873,   8,  13,  10,    1,  -12 },   // 0x64 'd'
+  {   886,   8,  10,  10,    1,   -9 },   // 0x65 'e'
+  {   896,   4,  13,   5,    1,  -12 },   // 0x66 'f'
+  {   903,   8,  14,  10,    1,   -9 },   // 0x67 'g'
+  {   917,   8,  13,  10,    1,  -12 },   // 0x68 'h'
+  {   930,   2,  13,   4,    1,  -12 },   // 0x69 'i'
+  {   934,   4,  17,   4,    0,  -12 },   // 0x6A 'j'
+  {   943,   9,  13,   9,    1,  -12 },   // 0x6B 'k'
+  {   958,   2,  13,   4,    1,  -12 },   // 0x6C 'l'
+  {   962,  13,  10,  15,    1,   -9 },   // 0x6D 'm'
+  {   979,   8,  10,  10,    1,   -9 },   // 0x6E 'n'
+  {   989,   8,  10,  10,    1,   -9 },   // 0x6F 'o'
+  {   999,   9,  13,  10,    1,   -9 },   // 0x70 'p'
+  {  1014,   8,  13,  10,    1,   -9 },   // 0x71 'q'
+  {  1027,   5,  10,   6,    1,   -9 },   // 0x72 'r'
+  {  1034,   8,  10,   9,    1,   -9 },   // 0x73 's'
+  {  1044,   4,  12,   5,    1,  -11 },   // 0x74 't'
+  {  1050,   8,  10,  10,    1,   -9 },   // 0x75 'u'
+  {  1060,   9,  10,   9,    0,   -9 },   // 0x76 'v'
+  {  1072,  13,  10,  13,    0,   -9 },   // 0x77 'w'
+  {  1089,   8,  10,   9,    0,   -9 },   // 0x78 'x'
+  {  1099,   9,  14,   9,    0,   -9 },   // 0x79 'y'
+  {  1115,   7,  10,   9,    1,   -9 },   // 0x7A 'z'
+  {  1124,   4,  17,   6,    1,  -12 },   // 0x7B '{'
+  {  1133,   2,  17,   4,    2,  -12 },   // 0x7C '|'
+  {  1138,   4,  17,   6,    1,  -12 },   // 0x7D '}'
+  {  1147,   7,   3,   9,    1,   -7 } }; // 0x7E '~'
+
+const GFXfont FreeSans9pt7b PROGMEM = {
+  (uint8_t  *)FreeSans9pt7bBitmaps,
+  (GFXglyph *)FreeSans9pt7bGlyphs,
+  0x20, 0x7E, 22 };
+
+// Approx. 1822 bytes
diff -r 9442efe129e7 -r 85198abc3103 fonts/FreeSerif9pt7b.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/FreeSerif9pt7b.h	Thu Oct 11 04:10:23 2018 +0000
@@ -0,0 +1,195 @@
+const uint8_t FreeSerif9pt7bBitmaps[] PROGMEM = {
+  0xFF, 0xEA, 0x03, 0xDE, 0xF7, 0x20, 0x11, 0x09, 0x04, 0x82, 0x4F, 0xF9,
+  0x10, 0x89, 0xFF, 0x24, 0x12, 0x09, 0x0C, 0x80, 0x10, 0x7C, 0xD6, 0xD2,
+  0xD0, 0xF0, 0x38, 0x1E, 0x17, 0x93, 0x93, 0xD6, 0x7C, 0x10, 0x38, 0x43,
+  0x3C, 0x39, 0x21, 0x8A, 0x0C, 0x50, 0x65, 0x39, 0xCB, 0x20, 0xB9, 0x05,
+  0x88, 0x4C, 0x44, 0x64, 0x21, 0xC0, 0x0E, 0x00, 0xC8, 0x06, 0x40, 0x32,
+  0x01, 0xA0, 0x07, 0x78, 0x31, 0x87, 0x88, 0x46, 0x86, 0x34, 0x30, 0xC1,
+  0xC7, 0x17, 0xCF, 0x00, 0xFE, 0x08, 0x88, 0x84, 0x63, 0x18, 0xC6, 0x10,
+  0x82, 0x08, 0x20, 0x82, 0x08, 0x21, 0x0C, 0x63, 0x18, 0xC4, 0x22, 0x22,
+  0x00, 0x63, 0x9A, 0xDC, 0x72, 0xB6, 0x08, 0x08, 0x04, 0x02, 0x01, 0x0F,
+  0xF8, 0x40, 0x20, 0x10, 0x08, 0x00, 0xD8, 0xF0, 0xF0, 0x08, 0x84, 0x22,
+  0x10, 0x8C, 0x42, 0x31, 0x00, 0x1C, 0x31, 0x98, 0xD8, 0x3C, 0x1E, 0x0F,
+  0x07, 0x83, 0xC1, 0xE0, 0xD8, 0xC4, 0x61, 0xC0, 0x13, 0x8C, 0x63, 0x18,
+  0xC6, 0x31, 0x8C, 0x67, 0x80, 0x3C, 0x4E, 0x86, 0x06, 0x06, 0x04, 0x0C,
+  0x08, 0x10, 0x20, 0x41, 0xFE, 0x3C, 0xC6, 0x06, 0x04, 0x1C, 0x3E, 0x07,
+  0x03, 0x03, 0x03, 0x06, 0xF8, 0x04, 0x18, 0x71, 0x64, 0xC9, 0xA3, 0x46,
+  0xFE, 0x18, 0x30, 0x60, 0x0F, 0x10, 0x20, 0x3C, 0x0E, 0x07, 0x03, 0x03,
+  0x03, 0x02, 0x04, 0xF8, 0x07, 0x1C, 0x30, 0x60, 0x60, 0xDC, 0xE6, 0xC3,
+  0xC3, 0xC3, 0x43, 0x66, 0x3C, 0x7F, 0x82, 0x02, 0x02, 0x04, 0x04, 0x04,
+  0x08, 0x08, 0x08, 0x10, 0x10, 0x3C, 0x8F, 0x1E, 0x3E, 0x4F, 0x06, 0x36,
+  0xC7, 0x8F, 0x1B, 0x33, 0xC0, 0x3C, 0x66, 0xC2, 0xC3, 0xC3, 0xC3, 0xC3,
+  0x63, 0x3F, 0x06, 0x06, 0x0C, 0x38, 0x60, 0xF0, 0x0F, 0xD8, 0x00, 0x03,
+  0x28, 0x01, 0x87, 0x0E, 0x1C, 0x0C, 0x03, 0x80, 0x70, 0x0E, 0x00, 0x80,
+  0xFF, 0x80, 0x00, 0x00, 0x0F, 0xF8, 0x80, 0x1C, 0x01, 0xC0, 0x1C, 0x01,
+  0xC0, 0xE0, 0xE0, 0xE0, 0xC0, 0x00, 0x79, 0x1A, 0x18, 0x30, 0x60, 0x83,
+  0x04, 0x10, 0x20, 0x40, 0x03, 0x00, 0x0F, 0x83, 0x8C, 0x60, 0x26, 0x02,
+  0xC7, 0x9C, 0xC9, 0xD8, 0x9D, 0x99, 0xD9, 0x26, 0xEC, 0x60, 0x03, 0x04,
+  0x0F, 0x80, 0x02, 0x00, 0x10, 0x01, 0xC0, 0x16, 0x00, 0x98, 0x04, 0xC0,
+  0x43, 0x03, 0xF8, 0x20, 0x61, 0x03, 0x18, 0x1D, 0xE1, 0xF0, 0xFF, 0x86,
+  0x1C, 0xC1, 0x98, 0x33, 0x0C, 0x7E, 0x0C, 0x31, 0x83, 0x30, 0x66, 0x0C,
+  0xC3, 0x7F, 0xC0, 0x1F, 0x26, 0x1D, 0x81, 0xE0, 0x1C, 0x01, 0x80, 0x30,
+  0x06, 0x00, 0xC0, 0x0C, 0x00, 0xC1, 0x8F, 0xC0, 0xFF, 0x03, 0x1C, 0x30,
+  0x63, 0x07, 0x30, 0x33, 0x03, 0x30, 0x33, 0x03, 0x30, 0x33, 0x06, 0x30,
+  0xCF, 0xF0, 0xFF, 0x98, 0x26, 0x01, 0x80, 0x61, 0x1F, 0xC6, 0x11, 0x80,
+  0x60, 0x18, 0x16, 0x0F, 0xFE, 0xFF, 0xB0, 0x58, 0x0C, 0x06, 0x13, 0xF9,
+  0x84, 0xC0, 0x60, 0x30, 0x18, 0x1E, 0x00, 0x1F, 0x23, 0x0E, 0x60, 0x26,
+  0x00, 0xC0, 0x0C, 0x0F, 0xC0, 0x6C, 0x06, 0xC0, 0x66, 0x06, 0x30, 0x60,
+  0xF8, 0xF1, 0xEC, 0x19, 0x83, 0x30, 0x66, 0x0C, 0xFF, 0x98, 0x33, 0x06,
+  0x60, 0xCC, 0x19, 0x83, 0x78, 0xF0, 0xF6, 0x66, 0x66, 0x66, 0x66, 0x6F,
+  0x3C, 0x61, 0x86, 0x18, 0x61, 0x86, 0x18, 0x6D, 0xBC, 0xF3, 0xE6, 0x08,
+  0x61, 0x06, 0x20, 0x64, 0x07, 0x80, 0x6C, 0x06, 0x60, 0x63, 0x06, 0x18,
+  0x60, 0xCF, 0x3F, 0xF0, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01,
+  0x80, 0x60, 0x18, 0x16, 0x0B, 0xFE, 0xF0, 0x0E, 0x70, 0x38, 0xE0, 0x71,
+  0xE1, 0x62, 0xC2, 0xC5, 0xC9, 0x89, 0x93, 0x13, 0x26, 0x23, 0x8C, 0x47,
+  0x18, 0x84, 0x33, 0x88, 0xF0, 0xE0, 0xEE, 0x09, 0xC1, 0x2C, 0x25, 0xC4,
+  0x9C, 0x91, 0x92, 0x1A, 0x41, 0xC8, 0x19, 0x03, 0x70, 0x20, 0x1F, 0x06,
+  0x31, 0x83, 0x20, 0x2C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x68, 0x09,
+  0x83, 0x18, 0xC1, 0xF0, 0xFE, 0x31, 0x98, 0x6C, 0x36, 0x1B, 0x19, 0xF8,
+  0xC0, 0x60, 0x30, 0x18, 0x1E, 0x00, 0x1F, 0x06, 0x31, 0x83, 0x20, 0x2C,
+  0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x68, 0x19, 0x83, 0x18, 0xC0, 0xE0,
+  0x0E, 0x00, 0xE0, 0x07, 0xFE, 0x0C, 0x61, 0x86, 0x30, 0xC6, 0x18, 0xC6,
+  0x1F, 0x83, 0x70, 0x67, 0x0C, 0x71, 0x87, 0x78, 0x70, 0x1D, 0x31, 0x98,
+  0x4C, 0x07, 0x80, 0xE0, 0x1C, 0x07, 0x01, 0xA0, 0xD8, 0xCB, 0xC0, 0xFF,
+  0xF8, 0xCE, 0x18, 0x83, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00,
+  0xC0, 0x18, 0x07, 0x80, 0xF0, 0xEC, 0x09, 0x81, 0x30, 0x26, 0x04, 0xC0,
+  0x98, 0x13, 0x02, 0x60, 0x4C, 0x08, 0xC2, 0x0F, 0x80, 0xF8, 0x77, 0x02,
+  0x30, 0x23, 0x04, 0x18, 0x41, 0x84, 0x0C, 0x80, 0xC8, 0x07, 0x00, 0x70,
+  0x02, 0x00, 0x20, 0xFB, 0xE7, 0xB0, 0xC0, 0x8C, 0x20, 0x86, 0x18, 0x41,
+  0x8C, 0x40, 0xCB, 0x20, 0x65, 0x90, 0x1A, 0x70, 0x0E, 0x38, 0x03, 0x1C,
+  0x01, 0x04, 0x00, 0x82, 0x00, 0xFC, 0xF9, 0x83, 0x06, 0x10, 0x19, 0x00,
+  0xD0, 0x03, 0x00, 0x1C, 0x01, 0x30, 0x11, 0xC1, 0x86, 0x08, 0x19, 0xE3,
+  0xF0, 0xF8, 0xF6, 0x06, 0x30, 0x41, 0x88, 0x1D, 0x00, 0xD0, 0x06, 0x00,
+  0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0xF0, 0x3F, 0xCC, 0x11, 0x06, 0x01,
+  0x80, 0x70, 0x0C, 0x03, 0x00, 0xE0, 0x38, 0x06, 0x05, 0xC1, 0x7F, 0xE0,
+  0xFB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB8, 0x82, 0x10, 0x82, 0x10, 0x86, 0x10,
+  0x86, 0x10, 0xED, 0xB6, 0xDB, 0x6D, 0xB6, 0xF8, 0x18, 0x1C, 0x34, 0x26,
+  0x62, 0x42, 0xC1, 0xFF, 0x80, 0x84, 0x20, 0x79, 0x98, 0x30, 0xE6, 0xD9,
+  0xB3, 0x3F, 0x20, 0x70, 0x18, 0x0C, 0x06, 0x03, 0x71, 0xCC, 0xC3, 0x61,
+  0xB0, 0xD8, 0x6C, 0x63, 0xE0, 0x3C, 0xCF, 0x06, 0x0C, 0x18, 0x18, 0x9E,
+  0x01, 0x03, 0x80, 0xC0, 0x60, 0x31, 0xD9, 0x9D, 0x86, 0xC3, 0x61, 0xB0,
+  0xCC, 0x63, 0xF0, 0x3C, 0x46, 0xFE, 0xC0, 0xC0, 0xE1, 0x62, 0x3C, 0x1E,
+  0x41, 0x83, 0x06, 0x1E, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x0F, 0x00, 0x3C,
+  0x19, 0xF6, 0x31, 0x8C, 0x1E, 0x08, 0x04, 0x01, 0xFC, 0x40, 0xB0, 0x2E,
+  0x11, 0xF8, 0x20, 0x70, 0x18, 0x0C, 0x06, 0x03, 0x71, 0xCC, 0xC6, 0x63,
+  0x31, 0x98, 0xCC, 0x6F, 0x78, 0x60, 0x02, 0xE6, 0x66, 0x66, 0xF0, 0x18,
+  0x00, 0x33, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8B, 0x80, 0x20, 0x70, 0x18,
+  0x0C, 0x06, 0x03, 0x3D, 0x88, 0xD8, 0x78, 0x36, 0x19, 0x8C, 0x6F, 0x78,
+  0x2E, 0x66, 0x66, 0x66, 0x66, 0x66, 0xF0, 0xEE, 0x71, 0xCE, 0x66, 0x31,
+  0x98, 0xC6, 0x63, 0x19, 0x8C, 0x66, 0x31, 0xBD, 0xEF, 0xEE, 0x39, 0x98,
+  0xCC, 0x66, 0x33, 0x19, 0x8D, 0xEF, 0x3E, 0x31, 0xB0, 0x78, 0x3C, 0x1E,
+  0x0D, 0x8C, 0x7C, 0xEE, 0x39, 0x98, 0x6C, 0x36, 0x1B, 0x0D, 0x8C, 0xFC,
+  0x60, 0x30, 0x18, 0x1E, 0x00, 0x3D, 0x31, 0xB0, 0xD8, 0x6C, 0x36, 0x1B,
+  0x8C, 0xFE, 0x03, 0x01, 0x80, 0xC0, 0xF0, 0x6D, 0xC6, 0x18, 0x61, 0x86,
+  0x3C, 0x76, 0x38, 0x58, 0x3E, 0x38, 0xFE, 0x27, 0x98, 0xC6, 0x31, 0x8C,
+  0x38, 0xE7, 0x31, 0x98, 0xCC, 0x66, 0x33, 0x19, 0x8C, 0x7F, 0xF3, 0x61,
+  0x22, 0x32, 0x14, 0x1C, 0x08, 0x08, 0xEF, 0x36, 0x61, 0x62, 0x22, 0x32,
+  0x35, 0x41, 0x9C, 0x18, 0x81, 0x08, 0xF7, 0x12, 0x0E, 0x03, 0x01, 0xC1,
+  0x21, 0x09, 0xCF, 0xF3, 0x61, 0x62, 0x32, 0x34, 0x14, 0x1C, 0x08, 0x08,
+  0x08, 0x10, 0xE0, 0xFD, 0x18, 0x60, 0x83, 0x0C, 0x70, 0xFE, 0x19, 0x8C,
+  0x63, 0x18, 0xC4, 0x61, 0x8C, 0x63, 0x18, 0xC3, 0xFF, 0xF0, 0xC3, 0x18,
+  0xC6, 0x31, 0x84, 0x33, 0x18, 0xC6, 0x31, 0x98, 0x70, 0x24, 0xC1, 0xC0 };
+
+const GFXglyph FreeSerif9pt7bGlyphs[] PROGMEM = {
+  {     0,   0,   0,   5,    0,    1 },   // 0x20 ' '
+  {     0,   2,  12,   6,    2,  -11 },   // 0x21 '!'
+  {     3,   5,   4,   7,    1,  -11 },   // 0x22 '"'
+  {     6,   9,  12,   9,    0,  -11 },   // 0x23 '#'
+  {    20,   8,  14,   9,    1,  -12 },   // 0x24 '$'
+  {    34,  13,  12,  15,    1,  -11 },   // 0x25 '%'
+  {    54,  13,  13,  14,    1,  -12 },   // 0x26 '&'
+  {    76,   2,   4,   4,    1,  -11 },   // 0x27 '''
+  {    77,   5,  15,   6,    1,  -11 },   // 0x28 '('
+  {    87,   5,  15,   6,    0,  -11 },   // 0x29 ')'
+  {    97,   6,   8,   9,    3,  -11 },   // 0x2A '*'
+  {   103,   9,   9,  10,    0,   -8 },   // 0x2B '+'
+  {   114,   2,   3,   4,    2,    0 },   // 0x2C ','
+  {   115,   4,   1,   6,    1,   -3 },   // 0x2D '-'
+  {   116,   2,   2,   5,    1,   -1 },   // 0x2E '.'
+  {   117,   5,  12,   5,    0,  -11 },   // 0x2F '/'
+  {   125,   9,  13,   9,    0,  -12 },   // 0x30 '0'
+  {   140,   5,  13,   9,    2,  -12 },   // 0x31 '1'
+  {   149,   8,  12,   9,    1,  -11 },   // 0x32 '2'
+  {   161,   8,  12,   9,    0,  -11 },   // 0x33 '3'
+  {   173,   7,  12,   9,    1,  -11 },   // 0x34 '4'
+  {   184,   8,  12,   9,    0,  -11 },   // 0x35 '5'
+  {   196,   8,  13,   9,    1,  -12 },   // 0x36 '6'
+  {   209,   8,  12,   9,    0,  -11 },   // 0x37 '7'
+  {   221,   7,  13,   9,    1,  -12 },   // 0x38 '8'
+  {   233,   8,  14,   9,    1,  -12 },   // 0x39 '9'
+  {   247,   2,   8,   5,    1,   -7 },   // 0x3A ':'
+  {   249,   3,  10,   5,    1,   -7 },   // 0x3B ';'
+  {   253,   9,   9,  10,    1,   -8 },   // 0x3C '<'
+  {   264,   9,   5,  10,    1,   -6 },   // 0x3D '='
+  {   270,  10,   9,  10,    0,   -8 },   // 0x3E '>'
+  {   282,   7,  13,   8,    1,  -12 },   // 0x3F '?'
+  {   294,  12,  13,  16,    2,  -12 },   // 0x40 '@'
+  {   314,  13,  12,  13,    0,  -11 },   // 0x41 'A'
+  {   334,  11,  12,  11,    0,  -11 },   // 0x42 'B'
+  {   351,  11,  12,  12,    1,  -11 },   // 0x43 'C'
+  {   368,  12,  12,  13,    0,  -11 },   // 0x44 'D'
+  {   386,  10,  12,  11,    1,  -11 },   // 0x45 'E'
+  {   401,   9,  12,  10,    1,  -11 },   // 0x46 'F'
+  {   415,  12,  12,  13,    1,  -11 },   // 0x47 'G'
+  {   433,  11,  12,  13,    1,  -11 },   // 0x48 'H'
+  {   450,   4,  12,   6,    1,  -11 },   // 0x49 'I'
+  {   456,   6,  12,   7,    0,  -11 },   // 0x4A 'J'
+  {   465,  12,  12,  13,    1,  -11 },   // 0x4B 'K'
+  {   483,  10,  12,  11,    1,  -11 },   // 0x4C 'L'
+  {   498,  15,  12,  16,    0,  -11 },   // 0x4D 'M'
+  {   521,  11,  12,  13,    1,  -11 },   // 0x4E 'N'
+  {   538,  11,  13,  13,    1,  -12 },   // 0x4F 'O'
+  {   556,   9,  12,  10,    1,  -11 },   // 0x50 'P'
+  {   570,  11,  16,  13,    1,  -12 },   // 0x51 'Q'
+  {   592,  11,  12,  12,    1,  -11 },   // 0x52 'R'
+  {   609,   9,  12,  10,    0,  -11 },   // 0x53 'S'
+  {   623,  11,  12,  11,    0,  -11 },   // 0x54 'T'
+  {   640,  11,  12,  13,    1,  -11 },   // 0x55 'U'
+  {   657,  12,  12,  13,    0,  -11 },   // 0x56 'V'
+  {   675,  17,  12,  17,    0,  -11 },   // 0x57 'W'
+  {   701,  13,  12,  13,    0,  -11 },   // 0x58 'X'
+  {   721,  12,  12,  13,    0,  -11 },   // 0x59 'Y'
+  {   739,  11,  12,  11,    0,  -11 },   // 0x5A 'Z'
+  {   756,   3,  15,   6,    2,  -11 },   // 0x5B '['
+  {   762,   5,  12,   5,    0,  -11 },   // 0x5C '\'
+  {   770,   3,  15,   6,    1,  -11 },   // 0x5D ']'
+  {   776,   8,   7,   8,    0,  -11 },   // 0x5E '^'
+  {   783,   9,   1,   9,    0,    2 },   // 0x5F '_'
+  {   785,   4,   3,   5,    0,  -11 },   // 0x60 '`'
+  {   787,   7,   8,   8,    1,   -7 },   // 0x61 'a'
+  {   794,   9,  13,   9,    0,  -12 },   // 0x62 'b'
+  {   809,   7,   8,   8,    0,   -7 },   // 0x63 'c'
+  {   816,   9,  13,   9,    0,  -12 },   // 0x64 'd'
+  {   831,   8,   8,   8,    0,   -7 },   // 0x65 'e'
+  {   839,   7,  13,   7,    1,  -12 },   // 0x66 'f'
+  {   851,  10,  12,   8,    0,   -7 },   // 0x67 'g'
+  {   866,   9,  13,   9,    0,  -12 },   // 0x68 'h'
+  {   881,   4,  11,   5,    1,  -10 },   // 0x69 'i'
+  {   887,   5,  15,   6,    0,  -10 },   // 0x6A 'j'
+  {   897,   9,  13,   9,    1,  -12 },   // 0x6B 'k'
+  {   912,   4,  13,   5,    1,  -12 },   // 0x6C 'l'
+  {   919,  14,   8,  14,    0,   -7 },   // 0x6D 'm'
+  {   933,   9,   8,   9,    0,   -7 },   // 0x6E 'n'
+  {   942,   9,   8,   9,    0,   -7 },   // 0x6F 'o'
+  {   951,   9,  12,   9,    0,   -7 },   // 0x70 'p'
+  {   965,   9,  12,   9,    0,   -7 },   // 0x71 'q'
+  {   979,   6,   8,   6,    0,   -7 },   // 0x72 'r'
+  {   985,   6,   8,   7,    1,   -7 },   // 0x73 's'
+  {   991,   5,   9,   5,    0,   -8 },   // 0x74 't'
+  {   997,   9,   8,   9,    0,   -7 },   // 0x75 'u'
+  {  1006,   8,   8,   8,    0,   -7 },   // 0x76 'v'
+  {  1014,  12,   8,  12,    0,   -7 },   // 0x77 'w'
+  {  1026,   9,   8,   9,    0,   -7 },   // 0x78 'x'
+  {  1035,   8,  12,   8,    0,   -7 },   // 0x79 'y'
+  {  1047,   7,   8,   7,    1,   -7 },   // 0x7A 'z'
+  {  1054,   5,  16,   9,    1,  -12 },   // 0x7B '{'
+  {  1064,   1,  12,   4,    1,  -11 },   // 0x7C '|'
+  {  1066,   5,  16,   9,    3,  -11 },   // 0x7D '}'
+  {  1076,   9,   3,   9,    0,   -5 } }; // 0x7E '~'
+
+const GFXfont FreeSerif9pt7b PROGMEM = {
+  (uint8_t  *)FreeSerif9pt7bBitmaps,
+  (GFXglyph *)FreeSerif9pt7bGlyphs,
+  0x20, 0x7E, 22 };
+
+// Approx. 1752 bytes
diff -r 9442efe129e7 -r 85198abc3103 fonts/TomThumb.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fonts/TomThumb.h	Thu Oct 11 04:10:23 2018 +0000
@@ -0,0 +1,474 @@
+/**
+** The original 3x5 font is licensed under the 3-clause BSD license:
+**
+** Copyright 1999 Brian J. Swetland
+** Copyright 1999 Vassilii Khachaturov
+** Portions (of vt100.c/vt100.h) copyright Dan Marks
+** 
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions
+** are met:
+** 1. Redistributions of source code must retain the above copyright
+**    notice, this list of conditions, and the following disclaimer.
+** 2. Redistributions in binary form must reproduce the above copyright
+**    notice, this list of conditions, and the following disclaimer in the
+**    documentation and/or other materials provided with the distribution.
+** 3. The name of the authors may not be used to endorse or promote products
+**    derived from this software without specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** 
+** Modifications to Tom Thumb for improved readability are from Robey Pointer, 
+** see:
+** http://robey.lag.net/2010/01/23/tiny-monospace-font.html
+** 
+** The original author does not have any objection to relicensing of Robey 
+** Pointer's modifications (in this file) in a more permissive license.  See 
+** the discussion at the above blog, and also here:
+** http://opengameart.org/forumtopic/how-to-submit-art-using-the-3-clause-bsd-license
+**
+** Feb 21, 2016: Conversion from Linux BDF --> Adafruit GFX font,
+** with the help of this Python script:
+** https://gist.github.com/skelliam/322d421f028545f16f6d
+** William Skellenger (williamj@skellenger.net)
+** Twitter: @skelliam
+** 
+*/
+
+#define TOMTHUMB_USE_EXTENDED 0
+
+const uint8_t TomThumbBitmaps[] PROGMEM = {
+   0x00,                                /* 0x20 space */
+   0x80, 0x80, 0x80, 0x00, 0x80,        /* 0x21 exclam */
+   0xA0, 0xA0,                          /* 0x22 quotedbl */
+   0xA0, 0xE0, 0xA0, 0xE0, 0xA0,        /* 0x23 numbersign */
+   0x60, 0xC0, 0x60, 0xC0, 0x40,        /* 0x24 dollar */
+   0x80, 0x20, 0x40, 0x80, 0x20,        /* 0x25 percent */
+   0xC0, 0xC0, 0xE0, 0xA0, 0x60,        /* 0x26 ampersand */
+   0x80, 0x80,                          /* 0x27 quotesingle */
+   0x40, 0x80, 0x80, 0x80, 0x40,        /* 0x28 parenleft */
+   0x80, 0x40, 0x40, 0x40, 0x80,        /* 0x29 parenright */
+   0xA0, 0x40, 0xA0,                    /* 0x2A asterisk */
+   0x40, 0xE0, 0x40,                    /* 0x2B plus */
+   0x40, 0x80,                          /* 0x2C comma */
+   0xE0,                                /* 0x2D hyphen */
+   0x80,                                /* 0x2E period */
+   0x20, 0x20, 0x40, 0x80, 0x80,        /* 0x2F slash */
+   0x60, 0xA0, 0xA0, 0xA0, 0xC0,        /* 0x30 zero */
+   0x40, 0xC0, 0x40, 0x40, 0x40,        /* 0x31 one */
+   0xC0, 0x20, 0x40, 0x80, 0xE0,        /* 0x32 two */
+   0xC0, 0x20, 0x40, 0x20, 0xC0,        /* 0x33 three */
+   0xA0, 0xA0, 0xE0, 0x20, 0x20,        /* 0x34 four */
+   0xE0, 0x80, 0xC0, 0x20, 0xC0,        /* 0x35 five */
+   0x60, 0x80, 0xE0, 0xA0, 0xE0,        /* 0x36 six */
+   0xE0, 0x20, 0x40, 0x80, 0x80,        /* 0x37 seven */
+   0xE0, 0xA0, 0xE0, 0xA0, 0xE0,        /* 0x38 eight */
+   0xE0, 0xA0, 0xE0, 0x20, 0xC0,        /* 0x39 nine */
+   0x80, 0x00, 0x80,                    /* 0x3A colon */
+   0x40, 0x00, 0x40, 0x80,              /* 0x3B semicolon */
+   0x20, 0x40, 0x80, 0x40, 0x20,        /* 0x3C less */
+   0xE0, 0x00, 0xE0,                    /* 0x3D equal */
+   0x80, 0x40, 0x20, 0x40, 0x80,        /* 0x3E greater */
+   0xE0, 0x20, 0x40, 0x00, 0x40,        /* 0x3F question */
+   0x40, 0xA0, 0xE0, 0x80, 0x60,        /* 0x40 at */
+   0x40, 0xA0, 0xE0, 0xA0, 0xA0,        /* 0x41 A */
+   0xC0, 0xA0, 0xC0, 0xA0, 0xC0,        /* 0x42 B */
+   0x60, 0x80, 0x80, 0x80, 0x60,        /* 0x43 C */
+   0xC0, 0xA0, 0xA0, 0xA0, 0xC0,        /* 0x44 D */
+   0xE0, 0x80, 0xE0, 0x80, 0xE0,        /* 0x45 E */
+   0xE0, 0x80, 0xE0, 0x80, 0x80,        /* 0x46 F */
+   0x60, 0x80, 0xE0, 0xA0, 0x60,        /* 0x47 G */
+   0xA0, 0xA0, 0xE0, 0xA0, 0xA0,        /* 0x48 H */
+   0xE0, 0x40, 0x40, 0x40, 0xE0,        /* 0x49 I */
+   0x20, 0x20, 0x20, 0xA0, 0x40,        /* 0x4A J */
+   0xA0, 0xA0, 0xC0, 0xA0, 0xA0,        /* 0x4B K */
+   0x80, 0x80, 0x80, 0x80, 0xE0,        /* 0x4C L */
+   0xA0, 0xE0, 0xE0, 0xA0, 0xA0,        /* 0x4D M */
+   0xA0, 0xE0, 0xE0, 0xE0, 0xA0,        /* 0x4E N */
+   0x40, 0xA0, 0xA0, 0xA0, 0x40,        /* 0x4F O */
+   0xC0, 0xA0, 0xC0, 0x80, 0x80,        /* 0x50 P */
+   0x40, 0xA0, 0xA0, 0xE0, 0x60,        /* 0x51 Q */
+   0xC0, 0xA0, 0xE0, 0xC0, 0xA0,        /* 0x52 R */
+   0x60, 0x80, 0x40, 0x20, 0xC0,        /* 0x53 S */
+   0xE0, 0x40, 0x40, 0x40, 0x40,        /* 0x54 T */
+   0xA0, 0xA0, 0xA0, 0xA0, 0x60,        /* 0x55 U */
+   0xA0, 0xA0, 0xA0, 0x40, 0x40,        /* 0x56 V */
+   0xA0, 0xA0, 0xE0, 0xE0, 0xA0,        /* 0x57 W */
+   0xA0, 0xA0, 0x40, 0xA0, 0xA0,        /* 0x58 X */
+   0xA0, 0xA0, 0x40, 0x40, 0x40,        /* 0x59 Y */
+   0xE0, 0x20, 0x40, 0x80, 0xE0,        /* 0x5A Z */
+   0xE0, 0x80, 0x80, 0x80, 0xE0,        /* 0x5B bracketleft */
+   0x80, 0x40, 0x20,                    /* 0x5C backslash */
+   0xE0, 0x20, 0x20, 0x20, 0xE0,        /* 0x5D bracketright */
+   0x40, 0xA0,                          /* 0x5E asciicircum */
+   0xE0,                                /* 0x5F underscore */
+   0x80, 0x40,                          /* 0x60 grave */
+   0xC0, 0x60, 0xA0, 0xE0,              /* 0x61 a */
+   0x80, 0xC0, 0xA0, 0xA0, 0xC0,        /* 0x62 b */
+   0x60, 0x80, 0x80, 0x60,              /* 0x63 c */
+   0x20, 0x60, 0xA0, 0xA0, 0x60,        /* 0x64 d */
+   0x60, 0xA0, 0xC0, 0x60,              /* 0x65 e */
+   0x20, 0x40, 0xE0, 0x40, 0x40,        /* 0x66 f */
+   0x60, 0xA0, 0xE0, 0x20, 0x40,        /* 0x67 g */
+   0x80, 0xC0, 0xA0, 0xA0, 0xA0,        /* 0x68 h */
+   0x80, 0x00, 0x80, 0x80, 0x80,        /* 0x69 i */
+   0x20, 0x00, 0x20, 0x20, 0xA0, 0x40,  /* 0x6A j */
+   0x80, 0xA0, 0xC0, 0xC0, 0xA0,        /* 0x6B k */
+   0xC0, 0x40, 0x40, 0x40, 0xE0,        /* 0x6C l */
+   0xE0, 0xE0, 0xE0, 0xA0,              /* 0x6D m */
+   0xC0, 0xA0, 0xA0, 0xA0,              /* 0x6E n */
+   0x40, 0xA0, 0xA0, 0x40,              /* 0x6F o */
+   0xC0, 0xA0, 0xA0, 0xC0, 0x80,        /* 0x70 p */
+   0x60, 0xA0, 0xA0, 0x60, 0x20,        /* 0x71 q */
+   0x60, 0x80, 0x80, 0x80,              /* 0x72 r */
+   0x60, 0xC0, 0x60, 0xC0,              /* 0x73 s */
+   0x40, 0xE0, 0x40, 0x40, 0x60,        /* 0x74 t */
+   0xA0, 0xA0, 0xA0, 0x60,              /* 0x75 u */
+   0xA0, 0xA0, 0xE0, 0x40,              /* 0x76 v */
+   0xA0, 0xE0, 0xE0, 0xE0,              /* 0x77 w */
+   0xA0, 0x40, 0x40, 0xA0,              /* 0x78 x */
+   0xA0, 0xA0, 0x60, 0x20, 0x40,        /* 0x79 y */
+   0xE0, 0x60, 0xC0, 0xE0,              /* 0x7A z */
+   0x60, 0x40, 0x80, 0x40, 0x60,        /* 0x7B braceleft */
+   0x80, 0x80, 0x00, 0x80, 0x80,        /* 0x7C bar */
+   0xC0, 0x40, 0x20, 0x40, 0xC0,        /* 0x7D braceright */
+   0x60, 0xC0,                          /* 0x7E asciitilde */
+#if (TOMTHUMB_USE_EXTENDED)
+   0x80, 0x00, 0x80, 0x80, 0x80,        /* 0xA1 exclamdown */
+   0x40, 0xE0, 0x80, 0xE0, 0x40,        /* 0xA2 cent */
+   0x60, 0x40, 0xE0, 0x40, 0xE0,        /* 0xA3 sterling */
+   0xA0, 0x40, 0xE0, 0x40, 0xA0,        /* 0xA4 currency */
+   0xA0, 0xA0, 0x40, 0xE0, 0x40,        /* 0xA5 yen */
+   0x80, 0x80, 0x00, 0x80, 0x80,        /* 0xA6 brokenbar */
+   0x60, 0x40, 0xA0, 0x40, 0xC0,        /* 0xA7 section */
+   0xA0,                                /* 0xA8 dieresis */
+   0x60, 0x80, 0x60,                    /* 0xA9 copyright */
+   0x60, 0xA0, 0xE0, 0x00, 0xE0,        /* 0xAA ordfeminine */
+   0x40, 0x80, 0x40,                    /* 0xAB guillemotleft */
+   0xE0, 0x20,                          /* 0xAC logicalnot */
+   0xC0,                                /* 0xAD softhyphen */
+   0xC0, 0xC0, 0xA0,                    /* 0xAE registered */
+   0xE0,                                /* 0xAF macron */
+   0x40, 0xA0, 0x40,                    /* 0xB0 degree */
+   0x40, 0xE0, 0x40, 0x00, 0xE0,        /* 0xB1 plusminus */
+   0xC0, 0x40, 0x60,                    /* 0xB2 twosuperior */
+   0xE0, 0x60, 0xE0,                    /* 0xB3 threesuperior */
+   0x40, 0x80,                          /* 0xB4 acute */
+   0xA0, 0xA0, 0xA0, 0xC0, 0x80,        /* 0xB5 mu */
+   0x60, 0xA0, 0x60, 0x60, 0x60,        /* 0xB6 paragraph */
+   0xE0, 0xE0, 0xE0,                    /* 0xB7 periodcentered */
+   0x40, 0x20, 0xC0,                    /* 0xB8 cedilla */
+   0x80, 0x80, 0x80,                    /* 0xB9 onesuperior */
+   0x40, 0xA0, 0x40, 0x00, 0xE0,        /* 0xBA ordmasculine */
+   0x80, 0x40, 0x80,                    /* 0xBB guillemotright */
+   0x80, 0x80, 0x00, 0x60, 0x20,        /* 0xBC onequarter */
+   0x80, 0x80, 0x00, 0xC0, 0x60,        /* 0xBD onehalf */
+   0xC0, 0xC0, 0x00, 0x60, 0x20,        /* 0xBE threequarters */
+   0x40, 0x00, 0x40, 0x80, 0xE0,        /* 0xBF questiondown */
+   0x40, 0x20, 0x40, 0xE0, 0xA0,        /* 0xC0 Agrave */
+   0x40, 0x80, 0x40, 0xE0, 0xA0,        /* 0xC1 Aacute */
+   0xE0, 0x00, 0x40, 0xE0, 0xA0,        /* 0xC2 Acircumflex */
+   0x60, 0xC0, 0x40, 0xE0, 0xA0,        /* 0xC3 Atilde */
+   0xA0, 0x40, 0xA0, 0xE0, 0xA0,        /* 0xC4 Adieresis */
+   0xC0, 0xC0, 0xA0, 0xE0, 0xA0,        /* 0xC5 Aring */
+   0x60, 0xC0, 0xE0, 0xC0, 0xE0,        /* 0xC6 AE */
+   0x60, 0x80, 0x80, 0x60, 0x20, 0x40,  /* 0xC7 Ccedilla */
+   0x40, 0x20, 0xE0, 0xC0, 0xE0,        /* 0xC8 Egrave */
+   0x40, 0x80, 0xE0, 0xC0, 0xE0,        /* 0xC9 Eacute */
+   0xE0, 0x00, 0xE0, 0xC0, 0xE0,        /* 0xCA Ecircumflex */
+   0xA0, 0x00, 0xE0, 0xC0, 0xE0,        /* 0xCB Edieresis */
+   0x40, 0x20, 0xE0, 0x40, 0xE0,        /* 0xCC Igrave */
+   0x40, 0x80, 0xE0, 0x40, 0xE0,        /* 0xCD Iacute */
+   0xE0, 0x00, 0xE0, 0x40, 0xE0,        /* 0xCE Icircumflex */
+   0xA0, 0x00, 0xE0, 0x40, 0xE0,        /* 0xCF Idieresis */
+   0xC0, 0xA0, 0xE0, 0xA0, 0xC0,        /* 0xD0 Eth */
+   0xC0, 0x60, 0xA0, 0xE0, 0xA0,        /* 0xD1 Ntilde */
+   0x40, 0x20, 0xE0, 0xA0, 0xE0,        /* 0xD2 Ograve */
+   0x40, 0x80, 0xE0, 0xA0, 0xE0,        /* 0xD3 Oacute */
+   0xE0, 0x00, 0xE0, 0xA0, 0xE0,        /* 0xD4 Ocircumflex */
+   0xC0, 0x60, 0xE0, 0xA0, 0xE0,        /* 0xD5 Otilde */
+   0xA0, 0x00, 0xE0, 0xA0, 0xE0,        /* 0xD6 Odieresis */
+   0xA0, 0x40, 0xA0,                    /* 0xD7 multiply */
+   0x60, 0xA0, 0xE0, 0xA0, 0xC0,        /* 0xD8 Oslash */
+   0x80, 0x40, 0xA0, 0xA0, 0xE0,        /* 0xD9 Ugrave */
+   0x20, 0x40, 0xA0, 0xA0, 0xE0,        /* 0xDA Uacute */
+   0xE0, 0x00, 0xA0, 0xA0, 0xE0,        /* 0xDB Ucircumflex */
+   0xA0, 0x00, 0xA0, 0xA0, 0xE0,        /* 0xDC Udieresis */
+   0x20, 0x40, 0xA0, 0xE0, 0x40,        /* 0xDD Yacute */
+   0x80, 0xE0, 0xA0, 0xE0, 0x80,        /* 0xDE Thorn */
+   0x60, 0xA0, 0xC0, 0xA0, 0xC0, 0x80,  /* 0xDF germandbls */
+   0x40, 0x20, 0x60, 0xA0, 0xE0,        /* 0xE0 agrave */
+   0x40, 0x80, 0x60, 0xA0, 0xE0,        /* 0xE1 aacute */
+   0xE0, 0x00, 0x60, 0xA0, 0xE0,        /* 0xE2 acircumflex */
+   0x60, 0xC0, 0x60, 0xA0, 0xE0,        /* 0xE3 atilde */
+   0xA0, 0x00, 0x60, 0xA0, 0xE0,        /* 0xE4 adieresis */
+   0x60, 0x60, 0x60, 0xA0, 0xE0,        /* 0xE5 aring */
+   0x60, 0xE0, 0xE0, 0xC0,              /* 0xE6 ae */
+   0x60, 0x80, 0x60, 0x20, 0x40,        /* 0xE7 ccedilla */
+   0x40, 0x20, 0x60, 0xE0, 0x60,        /* 0xE8 egrave */
+   0x40, 0x80, 0x60, 0xE0, 0x60,        /* 0xE9 eacute */
+   0xE0, 0x00, 0x60, 0xE0, 0x60,        /* 0xEA ecircumflex */
+   0xA0, 0x00, 0x60, 0xE0, 0x60,        /* 0xEB edieresis */
+   0x80, 0x40, 0x80, 0x80, 0x80,        /* 0xEC igrave */
+   0x40, 0x80, 0x40, 0x40, 0x40,        /* 0xED iacute */
+   0xE0, 0x00, 0x40, 0x40, 0x40,        /* 0xEE icircumflex */
+   0xA0, 0x00, 0x40, 0x40, 0x40,        /* 0xEF idieresis */
+   0x60, 0xC0, 0x60, 0xA0, 0x60,        /* 0xF0 eth */
+   0xC0, 0x60, 0xC0, 0xA0, 0xA0,        /* 0xF1 ntilde */
+   0x40, 0x20, 0x40, 0xA0, 0x40,        /* 0xF2 ograve */
+   0x40, 0x80, 0x40, 0xA0, 0x40,        /* 0xF3 oacute */
+   0xE0, 0x00, 0x40, 0xA0, 0x40,        /* 0xF4 ocircumflex */
+   0xC0, 0x60, 0x40, 0xA0, 0x40,        /* 0xF5 otilde */
+   0xA0, 0x00, 0x40, 0xA0, 0x40,        /* 0xF6 odieresis */
+   0x40, 0x00, 0xE0, 0x00, 0x40,        /* 0xF7 divide */
+   0x60, 0xE0, 0xA0, 0xC0,              /* 0xF8 oslash */
+   0x80, 0x40, 0xA0, 0xA0, 0x60,        /* 0xF9 ugrave */
+   0x20, 0x40, 0xA0, 0xA0, 0x60,        /* 0xFA uacute */
+   0xE0, 0x00, 0xA0, 0xA0, 0x60,        /* 0xFB ucircumflex */
+   0xA0, 0x00, 0xA0, 0xA0, 0x60,        /* 0xFC udieresis */
+   0x20, 0x40, 0xA0, 0x60, 0x20, 0x40,  /* 0xFD yacute */
+   0x80, 0xC0, 0xA0, 0xC0, 0x80,        /* 0xFE thorn */
+   0xA0, 0x00, 0xA0, 0x60, 0x20, 0x40,  /* 0xFF ydieresis */
+   0x00,                                /* 0x11D gcircumflex */
+   0x60, 0xC0, 0xE0, 0xC0, 0x60,        /* 0x152 OE */
+   0x60, 0xE0, 0xC0, 0xE0,              /* 0x153 oe */
+   0xA0, 0x60, 0xC0, 0x60, 0xC0,        /* 0x160 Scaron */
+   0xA0, 0x60, 0xC0, 0x60, 0xC0,        /* 0x161 scaron */
+   0xA0, 0x00, 0xA0, 0x40, 0x40,        /* 0x178 Ydieresis */
+   0xA0, 0xE0, 0x60, 0xC0, 0xE0,        /* 0x17D Zcaron */
+   0xA0, 0xE0, 0x60, 0xC0, 0xE0,        /* 0x17E zcaron */
+   0x00,                                /* 0xEA4 uni0EA4 */
+   0x00,                                /* 0x13A0 uni13A0 */
+   0x80,                                /* 0x2022 bullet */
+   0xA0,                                /* 0x2026 ellipsis */
+   0x60, 0xE0, 0xE0, 0xC0, 0x60,        /* 0x20AC Euro */
+   0xE0, 0xA0, 0xA0, 0xA0, 0xE0,        /* 0xFFFD uniFFFD */
+#endif /* (TOMTHUMB_USE_EXTENDED)  */
+  };
+
+
+/* {offset, width, height, advance cursor, x offset, y offset} */
+const GFXglyph TomThumbGlyphs[] PROGMEM = {
+   { 0, 8, 1, 2, 0, -5 },    /* 0x20 space */
+   { 1, 8, 5, 2, 0, -5 },    /* 0x21 exclam */
+   { 6, 8, 2, 4, 0, -5 },    /* 0x22 quotedbl */
+   { 8, 8, 5, 4, 0, -5 },    /* 0x23 numbersign */
+   { 13, 8, 5, 4, 0, -5 },   /* 0x24 dollar */
+   { 18, 8, 5, 4, 0, -5 },   /* 0x25 percent */
+   { 23, 8, 5, 4, 0, -5 },   /* 0x26 ampersand */
+   { 28, 8, 2, 2, 0, -5 },   /* 0x27 quotesingle */
+   { 30, 8, 5, 3, 0, -5 },   /* 0x28 parenleft */
+   { 35, 8, 5, 3, 0, -5 },   /* 0x29 parenright */
+   { 40, 8, 3, 4, 0, -5 },   /* 0x2A asterisk */
+   { 43, 8, 3, 4, 0, -4 },   /* 0x2B plus */
+   { 46, 8, 2, 3, 0, -2 },   /* 0x2C comma */
+   { 48, 8, 1, 4, 0, -3 },   /* 0x2D hyphen */
+   { 49, 8, 1, 2, 0, -1 },   /* 0x2E period */
+   { 50, 8, 5, 4, 0, -5 },   /* 0x2F slash */
+   { 55, 8, 5, 4, 0, -5 },   /* 0x30 zero */
+   { 60, 8, 5, 3, 0, -5 },   /* 0x31 one */
+   { 65, 8, 5, 4, 0, -5 },   /* 0x32 two */
+   { 70, 8, 5, 4, 0, -5 },   /* 0x33 three */
+   { 75, 8, 5, 4, 0, -5 },   /* 0x34 four */
+   { 80, 8, 5, 4, 0, -5 },   /* 0x35 five */
+   { 85, 8, 5, 4, 0, -5 },   /* 0x36 six */
+   { 90, 8, 5, 4, 0, -5 },   /* 0x37 seven */
+   { 95, 8, 5, 4, 0, -5 },   /* 0x38 eight */
+   { 100, 8, 5, 4, 0, -5 },  /* 0x39 nine */
+   { 105, 8, 3, 2, 0, -4 },  /* 0x3A colon */
+   { 108, 8, 4, 3, 0, -4 },  /* 0x3B semicolon */
+   { 112, 8, 5, 4, 0, -5 },  /* 0x3C less */
+   { 117, 8, 3, 4, 0, -4 },  /* 0x3D equal */
+   { 120, 8, 5, 4, 0, -5 },  /* 0x3E greater */
+   { 125, 8, 5, 4, 0, -5 },  /* 0x3F question */
+   { 130, 8, 5, 4, 0, -5 },  /* 0x40 at */
+   { 135, 8, 5, 4, 0, -5 },  /* 0x41 A */
+   { 140, 8, 5, 4, 0, -5 },  /* 0x42 B */
+   { 145, 8, 5, 4, 0, -5 },  /* 0x43 C */
+   { 150, 8, 5, 4, 0, -5 },  /* 0x44 D */
+   { 155, 8, 5, 4, 0, -5 },  /* 0x45 E */
+   { 160, 8, 5, 4, 0, -5 },  /* 0x46 F */
+   { 165, 8, 5, 4, 0, -5 },  /* 0x47 G */
+   { 170, 8, 5, 4, 0, -5 },  /* 0x48 H */
+   { 175, 8, 5, 4, 0, -5 },  /* 0x49 I */
+   { 180, 8, 5, 4, 0, -5 },  /* 0x4A J */
+   { 185, 8, 5, 4, 0, -5 },  /* 0x4B K */
+   { 190, 8, 5, 4, 0, -5 },  /* 0x4C L */
+   { 195, 8, 5, 4, 0, -5 },  /* 0x4D M */
+   { 200, 8, 5, 4, 0, -5 },  /* 0x4E N */
+   { 205, 8, 5, 4, 0, -5 },  /* 0x4F O */
+   { 210, 8, 5, 4, 0, -5 },  /* 0x50 P */
+   { 215, 8, 5, 4, 0, -5 },  /* 0x51 Q */
+   { 220, 8, 5, 4, 0, -5 },  /* 0x52 R */
+   { 225, 8, 5, 4, 0, -5 },  /* 0x53 S */
+   { 230, 8, 5, 4, 0, -5 },  /* 0x54 T */
+   { 235, 8, 5, 4, 0, -5 },  /* 0x55 U */
+   { 240, 8, 5, 4, 0, -5 },  /* 0x56 V */
+   { 245, 8, 5, 4, 0, -5 },  /* 0x57 W */
+   { 250, 8, 5, 4, 0, -5 },  /* 0x58 X */
+   { 255, 8, 5, 4, 0, -5 },  /* 0x59 Y */
+   { 260, 8, 5, 4, 0, -5 },  /* 0x5A Z */
+   { 265, 8, 5, 4, 0, -5 },  /* 0x5B bracketleft */
+   { 270, 8, 3, 4, 0, -4 },  /* 0x5C backslash */
+   { 273, 8, 5, 4, 0, -5 },  /* 0x5D bracketright */
+   { 278, 8, 2, 4, 0, -5 },  /* 0x5E asciicircum */
+   { 280, 8, 1, 4, 0, -1 },  /* 0x5F underscore */
+   { 281, 8, 2, 3, 0, -5 },  /* 0x60 grave */
+   { 283, 8, 4, 4, 0, -4 },  /* 0x61 a */
+   { 287, 8, 5, 4, 0, -5 },  /* 0x62 b */
+   { 292, 8, 4, 4, 0, -4 },  /* 0x63 c */
+   { 296, 8, 5, 4, 0, -5 },  /* 0x64 d */
+   { 301, 8, 4, 4, 0, -4 },  /* 0x65 e */
+   { 305, 8, 5, 4, 0, -5 },  /* 0x66 f */
+   { 310, 8, 5, 4, 0, -4 },  /* 0x67 g */
+   { 315, 8, 5, 4, 0, -5 },  /* 0x68 h */
+   { 320, 8, 5, 2, 0, -5 },  /* 0x69 i */
+   { 325, 8, 6, 4, 0, -5 },  /* 0x6A j */
+   { 331, 8, 5, 4, 0, -5 },  /* 0x6B k */
+   { 336, 8, 5, 4, 0, -5 },  /* 0x6C l */
+   { 341, 8, 4, 4, 0, -4 },  /* 0x6D m */
+   { 345, 8, 4, 4, 0, -4 },  /* 0x6E n */
+   { 349, 8, 4, 4, 0, -4 },  /* 0x6F o */
+   { 353, 8, 5, 4, 0, -4 },  /* 0x70 p */
+   { 358, 8, 5, 4, 0, -4 },  /* 0x71 q */
+   { 363, 8, 4, 4, 0, -4 },  /* 0x72 r */
+   { 367, 8, 4, 4, 0, -4 },  /* 0x73 s */
+   { 371, 8, 5, 4, 0, -5 },  /* 0x74 t */
+   { 376, 8, 4, 4, 0, -4 },  /* 0x75 u */
+   { 380, 8, 4, 4, 0, -4 },  /* 0x76 v */
+   { 384, 8, 4, 4, 0, -4 },  /* 0x77 w */
+   { 388, 8, 4, 4, 0, -4 },  /* 0x78 x */
+   { 392, 8, 5, 4, 0, -4 },  /* 0x79 y */
+   { 397, 8, 4, 4, 0, -4 },  /* 0x7A z */
+   { 401, 8, 5, 4, 0, -5 },  /* 0x7B braceleft */
+   { 406, 8, 5, 2, 0, -5 },  /* 0x7C bar */
+   { 411, 8, 5, 4, 0, -5 },  /* 0x7D braceright */
+   { 416, 8, 2, 4, 0, -5 },  /* 0x7E asciitilde */
+#if (TOMTHUMB_USE_EXTENDED)
+   { 418, 8, 5, 2, 0, -5 },  /* 0xA1 exclamdown */
+   { 423, 8, 5, 4, 0, -5 },  /* 0xA2 cent */
+   { 428, 8, 5, 4, 0, -5 },  /* 0xA3 sterling */
+   { 433, 8, 5, 4, 0, -5 },  /* 0xA4 currency */
+   { 438, 8, 5, 4, 0, -5 },  /* 0xA5 yen */
+   { 443, 8, 5, 2, 0, -5 },  /* 0xA6 brokenbar */
+   { 448, 8, 5, 4, 0, -5 },  /* 0xA7 section */
+   { 453, 8, 1, 4, 0, -5 },  /* 0xA8 dieresis */
+   { 454, 8, 3, 4, 0, -5 },  /* 0xA9 copyright */
+   { 457, 8, 5, 4, 0, -5 },  /* 0xAA ordfeminine */
+   { 462, 8, 3, 3, 0, -5 },  /* 0xAB guillemotleft */
+   { 465, 8, 2, 4, 0, -4 },  /* 0xAC logicalnot */
+   { 467, 8, 1, 3, 0, -3 },  /* 0xAD softhyphen */
+   { 468, 8, 3, 4, 0, -5 },  /* 0xAE registered */
+   { 471, 8, 1, 4, 0, -5 },  /* 0xAF macron */
+   { 472, 8, 3, 4, 0, -5 },  /* 0xB0 degree */
+   { 475, 8, 5, 4, 0, -5 },  /* 0xB1 plusminus */
+   { 480, 8, 3, 4, 0, -5 },  /* 0xB2 twosuperior */
+   { 483, 8, 3, 4, 0, -5 },  /* 0xB3 threesuperior */
+   { 486, 8, 2, 3, 0, -5 },  /* 0xB4 acute */
+   { 488, 8, 5, 4, 0, -5 },  /* 0xB5 mu */
+   { 493, 8, 5, 4, 0, -5 },  /* 0xB6 paragraph */
+   { 498, 8, 3, 4, 0, -4 },  /* 0xB7 periodcentered */
+   { 501, 8, 3, 4, 0, -3 },  /* 0xB8 cedilla */
+   { 504, 8, 3, 2, 0, -5 },  /* 0xB9 onesuperior */
+   { 507, 8, 5, 4, 0, -5 },  /* 0xBA ordmasculine */
+   { 512, 8, 3, 3, 0, -5 },  /* 0xBB guillemotright */
+   { 515, 8, 5, 4, 0, -5 },  /* 0xBC onequarter */
+   { 520, 8, 5, 4, 0, -5 },  /* 0xBD onehalf */
+   { 525, 8, 5, 4, 0, -5 },  /* 0xBE threequarters */
+   { 530, 8, 5, 4, 0, -5 },  /* 0xBF questiondown */
+   { 535, 8, 5, 4, 0, -5 },  /* 0xC0 Agrave */
+   { 540, 8, 5, 4, 0, -5 },  /* 0xC1 Aacute */
+   { 545, 8, 5, 4, 0, -5 },  /* 0xC2 Acircumflex */
+   { 550, 8, 5, 4, 0, -5 },  /* 0xC3 Atilde */
+   { 555, 8, 5, 4, 0, -5 },  /* 0xC4 Adieresis */
+   { 560, 8, 5, 4, 0, -5 },  /* 0xC5 Aring */
+   { 565, 8, 5, 4, 0, -5 },  /* 0xC6 AE */
+   { 570, 8, 6, 4, 0, -5 },  /* 0xC7 Ccedilla */
+   { 576, 8, 5, 4, 0, -5 },  /* 0xC8 Egrave */
+   { 581, 8, 5, 4, 0, -5 },  /* 0xC9 Eacute */
+   { 586, 8, 5, 4, 0, -5 },  /* 0xCA Ecircumflex */
+   { 591, 8, 5, 4, 0, -5 },  /* 0xCB Edieresis */
+   { 596, 8, 5, 4, 0, -5 },  /* 0xCC Igrave */
+   { 601, 8, 5, 4, 0, -5 },  /* 0xCD Iacute */
+   { 606, 8, 5, 4, 0, -5 },  /* 0xCE Icircumflex */
+   { 611, 8, 5, 4, 0, -5 },  /* 0xCF Idieresis */
+   { 616, 8, 5, 4, 0, -5 },  /* 0xD0 Eth */
+   { 621, 8, 5, 4, 0, -5 },  /* 0xD1 Ntilde */
+   { 626, 8, 5, 4, 0, -5 },  /* 0xD2 Ograve */
+   { 631, 8, 5, 4, 0, -5 },  /* 0xD3 Oacute */
+   { 636, 8, 5, 4, 0, -5 },  /* 0xD4 Ocircumflex */
+   { 641, 8, 5, 4, 0, -5 },  /* 0xD5 Otilde */
+   { 646, 8, 5, 4, 0, -5 },  /* 0xD6 Odieresis */
+   { 651, 8, 3, 4, 0, -4 },  /* 0xD7 multiply */
+   { 654, 8, 5, 4, 0, -5 },  /* 0xD8 Oslash */
+   { 659, 8, 5, 4, 0, -5 },  /* 0xD9 Ugrave */
+   { 664, 8, 5, 4, 0, -5 },  /* 0xDA Uacute */
+   { 669, 8, 5, 4, 0, -5 },  /* 0xDB Ucircumflex */
+   { 674, 8, 5, 4, 0, -5 },  /* 0xDC Udieresis */
+   { 679, 8, 5, 4, 0, -5 },  /* 0xDD Yacute */
+   { 684, 8, 5, 4, 0, -5 },  /* 0xDE Thorn */
+   { 689, 8, 6, 4, 0, -5 },  /* 0xDF germandbls */
+   { 695, 8, 5, 4, 0, -5 },  /* 0xE0 agrave */
+   { 700, 8, 5, 4, 0, -5 },  /* 0xE1 aacute */
+   { 705, 8, 5, 4, 0, -5 },  /* 0xE2 acircumflex */
+   { 710, 8, 5, 4, 0, -5 },  /* 0xE3 atilde */
+   { 715, 8, 5, 4, 0, -5 },  /* 0xE4 adieresis */
+   { 720, 8, 5, 4, 0, -5 },  /* 0xE5 aring */
+   { 725, 8, 4, 4, 0, -4 },  /* 0xE6 ae */
+   { 729, 8, 5, 4, 0, -4 },  /* 0xE7 ccedilla */
+   { 734, 8, 5, 4, 0, -5 },  /* 0xE8 egrave */
+   { 739, 8, 5, 4, 0, -5 },  /* 0xE9 eacute */
+   { 744, 8, 5, 4, 0, -5 },  /* 0xEA ecircumflex */
+   { 749, 8, 5, 4, 0, -5 },  /* 0xEB edieresis */
+   { 754, 8, 5, 3, 0, -5 },  /* 0xEC igrave */
+   { 759, 8, 5, 3, 0, -5 },  /* 0xED iacute */
+   { 764, 8, 5, 4, 0, -5 },  /* 0xEE icircumflex */
+   { 769, 8, 5, 4, 0, -5 },  /* 0xEF idieresis */
+   { 774, 8, 5, 4, 0, -5 },  /* 0xF0 eth */
+   { 779, 8, 5, 4, 0, -5 },  /* 0xF1 ntilde */
+   { 784, 8, 5, 4, 0, -5 },  /* 0xF2 ograve */
+   { 789, 8, 5, 4, 0, -5 },  /* 0xF3 oacute */
+   { 794, 8, 5, 4, 0, -5 },  /* 0xF4 ocircumflex */
+   { 799, 8, 5, 4, 0, -5 },  /* 0xF5 otilde */
+   { 804, 8, 5, 4, 0, -5 },  /* 0xF6 odieresis */
+   { 809, 8, 5, 4, 0, -5 },  /* 0xF7 divide */
+   { 814, 8, 4, 4, 0, -4 },  /* 0xF8 oslash */
+   { 818, 8, 5, 4, 0, -5 },  /* 0xF9 ugrave */
+   { 823, 8, 5, 4, 0, -5 },  /* 0xFA uacute */
+   { 828, 8, 5, 4, 0, -5 },  /* 0xFB ucircumflex */
+   { 833, 8, 5, 4, 0, -5 },  /* 0xFC udieresis */
+   { 838, 8, 6, 4, 0, -5 },  /* 0xFD yacute */
+   { 844, 8, 5, 4, 0, -4 },  /* 0xFE thorn */
+   { 849, 8, 6, 4, 0, -5 },  /* 0xFF ydieresis */
+   { 855, 8, 1, 2, 0, -1 },  /* 0x11D gcircumflex */
+   { 856, 8, 5, 4, 0, -5 },  /* 0x152 OE */
+   { 861, 8, 4, 4, 0, -4 },  /* 0x153 oe */
+   { 865, 8, 5, 4, 0, -5 },  /* 0x160 Scaron */
+   { 870, 8, 5, 4, 0, -5 },  /* 0x161 scaron */
+   { 875, 8, 5, 4, 0, -5 },  /* 0x178 Ydieresis */
+   { 880, 8, 5, 4, 0, -5 },  /* 0x17D Zcaron */
+   { 885, 8, 5, 4, 0, -5 },  /* 0x17E zcaron */
+   { 890, 8, 1, 2, 0, -1 },  /* 0xEA4 uni0EA4 */
+   { 891, 8, 1, 2, 0, -1 },  /* 0x13A0 uni13A0 */
+   { 892, 8, 1, 2, 0, -3 },  /* 0x2022 bullet */
+   { 893, 8, 1, 4, 0, -1 },  /* 0x2026 ellipsis */
+   { 894, 8, 5, 4, 0, -5 },  /* 0x20AC Euro */
+   { 899, 8, 5, 4, 0, -5 },  /* 0xFFFD uniFFFD */
+#endif /* (TOMTHUMB_USE_EXTENDED) */
+};
+
+const GFXfont TomThumb PROGMEM = {
+  (uint8_t  *)TomThumbBitmaps,
+  (GFXglyph *)TomThumbGlyphs,
+  0x20, 0x7E, 6 };
diff -r 9442efe129e7 -r 85198abc3103 ssd1331.cpp
--- a/ssd1331.cpp	Thu Oct 11 01:58:04 2018 +0000
+++ b/ssd1331.cpp	Thu Oct 11 04:10:23 2018 +0000
@@ -31,16 +31,7 @@
     _dc =1;
     _rst =0;
     
-    FntList[7].pFnt=(GFXfont *)0;
-    FntList[6].pFnt=(GFXfont *)0;
-    FntList[5].pFnt=(GFXfont *)0;
-    FntList[4].pFnt=(GFXfont *)0;
-    FntList[3].pFnt=(GFXfont *)0;
-    FntList[2].pFnt=(GFXfont *)0;
-    FntList[1].pFnt=(GFXfont *)0;
-
-    FntList[0].pFnt=(GFXfont *)&FreeMonoBold9pt7b;
-    strcpy(FntList[0].FontName,"MonoBold9pt7b\0");
+    SetFontInf();
 }
 
 
@@ -268,5 +259,45 @@
             j=j+k;
         }
     }
-    return 0;
+//    return 0;
+}
+
+void ssd1331::GetFontInfo(int FontNo, FontList  *FntLst){
+    FntLst->pFnt =FntList[FontNo].pFnt; 
+
+    for(int i=0;i<16;i++){
+        FntLst->FontName[i] = FntList[FontNo].FontName[i];
+    }
+
+//    strcpy(FntList->FontName,FntList[0].FontName);
+
+}
+int ssd1331::GetFontNum(void){
+    return FontNum;
 }
+
+int ssd1331::SetFontInf()
+{
+    FntList[7].pFnt=(GFXfont *)0;
+    FntList[6].pFnt=(GFXfont *)0;
+    FntList[5].pFnt=(GFXfont *)0;
+    FntList[4].pFnt=(GFXfont *)0;
+    FntList[3].pFnt=(GFXfont *)0;
+    FntList[2].pFnt=(GFXfont *)0;
+    FntList[1].pFnt=(GFXfont *)0;
+    FntList[0].pFnt=(GFXfont *)0;
+
+    FntList[3].pFnt=(GFXfont *)&TomThumb;
+    strcpy(FntList[3].FontName,"TomThumb\0");
+
+    FntList[2].pFnt=(GFXfont *)&FreeSerif9pt7b;
+    strcpy(FntList[2].FontName,"Serif9pt7b\0");
+
+    FntList[1].pFnt=(GFXfont *)&FreeSans9pt7b;
+    strcpy(FntList[1].FontName,"Sans9pt7b\0");
+
+    FntList[0].pFnt=(GFXfont *)&FreeMonoBold9pt7b;
+    strcpy(FntList[0].FontName,"MonoBold9pt7b\0");
+
+    return 5;
+}
diff -r 9442efe129e7 -r 85198abc3103 ssd1331.h
--- a/ssd1331.h	Thu Oct 11 01:58:04 2018 +0000
+++ b/ssd1331.h	Thu Oct 11 04:10:23 2018 +0000
@@ -7,6 +7,9 @@
 
 #include "gfxfont.h"
 #include "./fonts/FreeMonoBold9pt7b.h"
+#include "./fonts/FreeSans9pt7b.h"
+#include "./fonts/FreeSerif9pt7b.h"
+#include "./fonts/TomThumb.h"
 
 #define NumOfFont   8
 
@@ -28,15 +31,20 @@
     void DrawRectangleFill(  uint8_t xs, uint8_t ys, uint8_t xe, uint8_t ye, uint16_t line_color,uint16_t fill_color );
     int put_charPattern(char CharCode,uint16_t CHAR_COLOR,uint16_t xs,uint16_t ys,int FontSel);
     int PutString(int x,int y,char *string,uint16_t CharColor,int FontSel);
+    void GetFontInfo(int FontNo, FontList  *FntLst);
+    int GetFontNum(void);
 
 private:
     SPI _spi;
     DigitalOut _cs;
     DigitalOut _dc;
     DigitalOut _rst;
-    FontList  FntList[NumOfFont];
 
+    FontList  FntList[NumOfFont];
+    int FontNum;
+ 
 
+    int SetFontInf();
     void DataWr(uint8_t data);
     void CmdWr(uint8_t Cmd);