├── .gitignore ├── .github └── FUNDING.yml ├── LICENSE ├── test ├── BangOblique24pt7b.h ├── Font_5x7_practical.h ├── RobotoMono_Thin7pt7b.h └── FreeMonoBold12pt7b.h ├── README.md └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | custom: ['https://www.paypal.me/tchap'] 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 tchap 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /test/BangOblique24pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t BangOblique24pt7bBitmaps[] PROGMEM = { 2 | 3 | 0x01,0xE0,0x3C,0x0F,0x81,0xE0,0x3C,0x07,0x80,0xF0,0x3C,0x07,0x80,0xF0,0x1E,0x03,0xC0,0xF0,0x1E,0x03,0xC0,0x78,0x0F,0x03,0xC0,0x78,0x0F,0x01,0xE0,0x38,0x07,0x00,0xE0,0x18,0x03,0x00,0x00,0x00,0x00,0x00,0xF0,0x1E,0x07,0x80,0xF0,0x1E,0x00, 4 | 5 | // { 0x21 '!' (11 x 34) @(6,-33) +13 } 6 | // [ ****] 7 | // [ ****] 8 | // [ *****] 9 | // [ **** ] 10 | // [ **** ] 11 | // [ **** ] 12 | // [ **** ] 13 | // [ **** ] 14 | // [ **** ] 15 | // [ **** ] 16 | // [ **** ] 17 | // [ **** ] 18 | // [ **** ] 19 | // [ **** ] 20 | // [ **** ] 21 | // [ **** ] 22 | // [ **** ] 23 | // [ **** ] 24 | // [ **** ] 25 | // [ **** ] 26 | // [ **** ] 27 | // [ *** ] 28 | // [ *** ] 29 | // [ *** ] 30 | // [ ** ] 31 | // [ ** ] 32 | // [ ] 33 | // [ ] 34 | // [ ] 35 | // [ **** ] 36 | // [ **** ] 37 | // [ **** ] 38 | // [ **** ] 39 | // [0 **** > ] 40 | }; 41 | 42 | const GFXglyph BangOblique24pt7bGlyphs[] PROGMEM = { 43 | {0, 11, 34, 13, 6, -33}, 44 | }; 45 | 46 | const GFXfont FreeSansOblique24pt7b PROGMEM = { 47 | (uint8_t *)BangOblique24pt7bBitmaps, 48 | (GFXglyph *)BangOblique24pt7bGlyphs, 49 | 0x21, 0x21, 56 50 | }; 51 | 52 | // Approx. 9484 bytes 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Adafruit GFX Pixel font customiser 2 | --- 3 | 4 | This is a handy utility that goes well with the original [fontconvert](https://github.com/adafruit/Adafruit-GFX-Library/tree/master/fontconvert) tool provided by [Adafruit](https://www.adafruit.com/) for converting TTF fonts to Adafruit_GFX `.h` format. 5 | 6 | Just paste the content of a `.h` font file, extract the glyphs, and you can edit them one by one by flipping the individual pixels for each glyphs, changing the advance, offset, or modifying the baseline. 7 | 8 | You can then process our changes and create the improved file. 9 | 10 | This is useful since the fontconvert utility does not always create all the characters correctly (a missing pixel here and there). It works best for small size fonts (< 12pt). 11 | 12 | 13 | ## Contributors 14 | 15 | [Chris Marrin](https://github.com/cmarrin) — added baseline, advance and offset support. 16 | 17 | [thelevelofdetail](https://github.com/thelevelofdetail) — fixes for negative xOffsets 18 | 19 | [Billy Donahue](https://github.com/BillyDonahue) — fixes for xadvance clipping when using _oblique_ fonts 20 | 21 | [Mats Engstrom](https://github.com/SmallRoomLabs) — fixes to allow generating a range of glyphs 22 | 23 | [Christof Arnosti](https://github.com/charno) — fixes to allow adding characters, improvements for disabled characters 24 | 25 | [Marcel Robitaille](https://github.com/MarcelRobitaille) — feature to allow the conservation of font preamble 26 | 27 | ## License 28 | 29 | MIT. See licence file. 30 | -------------------------------------------------------------------------------- /test/Font_5x7_practical.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | const uint8_t Font_5x7_practical8pt7bBitmaps[] PROGMEM = { 5 | 0xFA, 0xB6, 0x80, 0x57, 0xD5, 0xF5, 0x00, 0x23, 0xA3, 0x07, 0x06, 0x2E, 6 | 0x20, 0xCE, 0x44, 0x44, 0x4E, 0x60, 0x64, 0xA4, 0xCA, 0xC9, 0xA0, 0xE0, 7 | 0x6A, 0xA4, 0x95, 0x58, 0x55, 0x00, 0x21, 0x3E, 0x42, 0x00, 0xF6, 0xF8, 8 | 0xF0, 0x25, 0x25, 0x20, 0x74, 0x63, 0x58, 0xC5, 0xC0, 0x75, 0x54, 0x74, 9 | 0x62, 0x22, 0x23, 0xE0, 0xF8, 0x88, 0xE0, 0xC5, 0xC0, 0x12, 0x95, 0x2F, 10 | 0x88, 0x40, 0xFC, 0x21, 0xE0, 0x87, 0xC0, 0x74, 0x61, 0x6C, 0xC5, 0xC0, 11 | 0xF8, 0x44, 0x22, 0x10, 0x80, 0x74, 0x62, 0xE8, 0xC5, 0xC0, 0x74, 0x62, 12 | 0xF0, 0xC5, 0xC0, 0xF0, 0xF0, 0xF0, 0xF6, 0x1B, 0x20, 0xC1, 0x80, 0xF8, 13 | 0x3E, 0xC1, 0x82, 0x6C, 0x00, 0x74, 0x62, 0x22, 0x00, 0x80, 0x74, 0x67, 14 | 0x59, 0xC1, 0xC0, 0x22, 0x95, 0x1F, 0xC6, 0x20, 0xF4, 0x63, 0xE8, 0xC7, 15 | 0xC0, 0x74, 0x61, 0x08, 0x45, 0xC0, 0xF4, 0x63, 0x18, 0xC7, 0xC0, 0xFC, 16 | 0x21, 0xE8, 0x43, 0xE0, 0xFC, 0x21, 0xE8, 0x42, 0x00, 0x74, 0x61, 0x38, 17 | 0xC5, 0xE0, 0x8C, 0x63, 0xF8, 0xC6, 0x20, 0xFE, 0xF8, 0x43, 0x18, 0xC5, 18 | 0xC0, 0x8C, 0x65, 0xC9, 0x46, 0x20, 0x84, 0x21, 0x08, 0x43, 0xE0, 0x8E, 19 | 0xF7, 0x5A, 0xC6, 0x20, 0x8E, 0x73, 0x5A, 0xCE, 0x60, 0x74, 0x63, 0x18, 20 | 0xC5, 0xC0, 0xF4, 0x63, 0xE8, 0x42, 0x00, 0x74, 0x63, 0x1A, 0xC9, 0xA0, 21 | 0xF4, 0x63, 0xEA, 0x4A, 0x20, 0x74, 0x60, 0xE0, 0xC5, 0xC0, 0xF9, 0x08, 22 | 0x42, 0x10, 0x80, 0x8C, 0x63, 0x18, 0xC5, 0xE0, 0x8C, 0x63, 0x15, 0x28, 23 | 0x80, 0x8C, 0x6B, 0x5A, 0xA9, 0x40, 0x8C, 0x54, 0x45, 0x46, 0x20, 0x8C, 24 | 0x54, 0x42, 0x10, 0x80, 0xF8, 0x44, 0x44, 0x43, 0xE0, 0xEA, 0xAC, 0x91, 25 | 0x24, 0x48, 0xD5, 0x5C, 0x22, 0xA3, 0x10, 0xF8, 0x88, 0x80, 0x70, 0x5F, 26 | 0x17, 0x80, 0x84, 0x2D, 0x98, 0xC7, 0xC0, 0x7C, 0x21, 0x07, 0x80, 0x08, 27 | 0x5B, 0x38, 0xC5, 0xE0, 0x74, 0x7F, 0x07, 0x00, 0x34, 0x4F, 0x44, 0x40, 28 | 0x6C, 0xE3, 0x17, 0x85, 0xC0, 0x84, 0x2D, 0x98, 0xC6, 0x20, 0xBE, 0x45, 29 | 0x55, 0x80, 0x88, 0x9A, 0xCA, 0x90, 0xAA, 0xA4, 0xD5, 0x6B, 0x5A, 0x80, 30 | 0xB6, 0x63, 0x18, 0x80, 0x74, 0x63, 0x17, 0x00, 0xB6, 0x63, 0x1F, 0x42, 31 | 0x00, 0x6C, 0xE3, 0x17, 0x84, 0x20, 0xBC, 0x88, 0x80, 0x7C, 0x1C, 0x1F, 32 | 0x00, 0x44, 0xF4, 0x44, 0x30, 0x8C, 0x63, 0x36, 0x80, 0x8C, 0x62, 0xA2, 33 | 0x00, 0x8D, 0x6A, 0xA5, 0x00, 0x8A, 0x88, 0xA8, 0x80, 0x8C, 0x62, 0xA2, 34 | 0x22, 0x00, 0xF8, 0x88, 0x8F, 0x80, 0x69, 0x44, 0x98, 0xFE, 0xC9, 0x14, 35 | 0xB0, 0x6D, 0x80 }; 36 | 37 | const GFXglyph Font_5x7_practical8pt7bGlyphs[] PROGMEM = { 38 | { 0, 0, 0, 4, 0, 1 }, // 0x20 ' ' 39 | { 0, 1, 7, 2, 0, -6 }, // 0x21 '!' 40 | { 1, 3, 3, 4, 0, -7 }, // 0x22 '"' 41 | { 3, 5, 5, 6, 0, -5 }, // 0x23 '#' 42 | { 7, 5, 9, 6, 0, -7 }, // 0x24 '$' 43 | { 13, 5, 7, 6, 0, -6 }, // 0x25 '%' 44 | { 18, 5, 7, 6, 0, -6 }, // 0x26 '&' 45 | { 23, 1, 3, 2, 0, -7 }, // 0x27 ''' 46 | { 24, 2, 7, 4, 1, -6 }, // 0x28 '(' 47 | { 26, 2, 7, 4, 0, -6 }, // 0x29 ')' 48 | { 28, 3, 3, 5, 1, -7 }, // 0x2A '*' 49 | { 30, 5, 5, 6, 0, -5 }, // 0x2B '+' 50 | { 34, 2, 4, 5, 0, -1 }, // 0x2C ',' 51 | { 35, 5, 1, 6, 0, -3 }, // 0x2D '-' 52 | { 36, 2, 2, 5, 0, -1 }, // 0x2E '.' 53 | { 37, 3, 7, 5, 1, -6 }, // 0x2F '/' 54 | { 40, 5, 7, 6, 0, -6 }, // 0x30 '0' 55 | { 45, 2, 7, 3, 0, -6 }, // 0x31 '1' 56 | { 47, 5, 7, 6, 0, -6 }, // 0x32 '2' 57 | { 52, 5, 7, 6, 0, -6 }, // 0x33 '3' 58 | { 57, 5, 7, 6, 0, -6 }, // 0x34 '4' 59 | { 62, 5, 7, 6, 0, -6 }, // 0x35 '5' 60 | { 67, 5, 7, 6, 0, -6 }, // 0x36 '6' 61 | { 72, 5, 7, 6, 0, -6 }, // 0x37 '7' 62 | { 77, 5, 7, 6, 0, -6 }, // 0x38 '8' 63 | { 82, 5, 7, 6, 0, -6 }, // 0x39 '9' 64 | { 87, 2, 6, 5, 0, -6 }, // 0x3A ':' 65 | { 89, 2, 8, 5, 0, -6 }, // 0x3B ';' 66 | { 91, 5, 5, 6, 0, -5 }, // 0x3C '<' 67 | { 95, 5, 3, 6, 0, -4 }, // 0x3D '=' 68 | { 97, 5, 5, 6, 0, -5 }, // 0x3E '>' 69 | { 101, 5, 7, 6, 0, -6 }, // 0x3F '?' 70 | { 106, 5, 7, 6, 0, -6 }, // 0x40 '@' 71 | { 111, 5, 7, 6, 0, -6 }, // 0x41 'A' 72 | { 116, 5, 7, 6, 0, -6 }, // 0x42 'B' 73 | { 121, 5, 7, 6, 0, -6 }, // 0x43 'C' 74 | { 126, 5, 7, 6, 0, -6 }, // 0x44 'D' 75 | { 131, 5, 7, 6, 0, -6 }, // 0x45 'E' 76 | { 136, 5, 7, 6, 0, -6 }, // 0x46 'F' 77 | { 141, 5, 7, 6, 0, -6 }, // 0x47 'G' 78 | { 146, 5, 7, 6, 0, -6 }, // 0x48 'H' 79 | { 151, 1, 7, 2, 0, -6 }, // 0x49 'I' 80 | { 152, 5, 7, 6, 0, -6 }, // 0x4A 'J' 81 | { 157, 5, 7, 6, 0, -6 }, // 0x4B 'K' 82 | { 162, 5, 7, 6, 0, -6 }, // 0x4C 'L' 83 | { 167, 5, 7, 6, 0, -6 }, // 0x4D 'M' 84 | { 172, 5, 7, 6, 0, -6 }, // 0x4E 'N' 85 | { 177, 5, 7, 6, 0, -6 }, // 0x4F 'O' 86 | { 182, 5, 7, 6, 0, -6 }, // 0x50 'P' 87 | { 187, 5, 7, 6, 0, -6 }, // 0x51 'Q' 88 | { 192, 5, 7, 6, 0, -6 }, // 0x52 'R' 89 | { 197, 5, 7, 6, 0, -6 }, // 0x53 'S' 90 | { 202, 5, 7, 6, 0, -6 }, // 0x54 'T' 91 | { 207, 5, 7, 6, 0, -6 }, // 0x55 'U' 92 | { 212, 5, 7, 6, 0, -6 }, // 0x56 'V' 93 | { 217, 5, 7, 6, 0, -6 }, // 0x57 'W' 94 | { 222, 5, 7, 6, 0, -6 }, // 0x58 'X' 95 | { 227, 5, 7, 6, 0, -6 }, // 0x59 'Y' 96 | { 232, 5, 7, 6, 0, -6 }, // 0x5A 'Z' 97 | { 237, 2, 7, 4, 1, -6 }, // 0x5B '[' 98 | { 239, 3, 7, 5, 1, -6 }, // 0x5C '\' 99 | { 242, 2, 7, 4, 0, -6 }, // 0x5D ']' 100 | { 244, 5, 4, 6, 0, -7 }, // 0x5E '^' 101 | { 247, 5, 1, 6, 0, 1 }, // 0x5F '_' 102 | { 248, 3, 3, 5, 1, -7 }, // 0x60 '`' 103 | { 250, 5, 5, 6, 0, -4 }, // 0x61 'a' 104 | { 254, 5, 7, 6, 0, -6 }, // 0x62 'b' 105 | { 259, 5, 5, 6, 0, -4 }, // 0x63 'c' 106 | { 263, 5, 7, 6, 0, -6 }, // 0x64 'd' 107 | { 268, 5, 5, 6, 0, -4 }, // 0x65 'e' 108 | { 272, 4, 7, 5, 0, -6 }, // 0x66 'f' 109 | { 276, 5, 7, 6, 0, -4 }, // 0x67 'g' 110 | { 281, 5, 7, 6, 0, -6 }, // 0x68 'h' 111 | { 286, 1, 7, 2, 0, -6 }, // 0x69 'i' 112 | { 287, 2, 9, 2, -1, -6 }, // 0x6A 'j' 113 | { 290, 4, 7, 5, 0, -6 }, // 0x6B 'k' 114 | { 294, 2, 7, 3, 0, -6 }, // 0x6C 'l' 115 | { 296, 5, 5, 6, 0, -4 }, // 0x6D 'm' 116 | { 300, 5, 5, 6, 0, -4 }, // 0x6E 'n' 117 | { 304, 5, 5, 6, 0, -4 }, // 0x6F 'o' 118 | { 308, 5, 7, 6, 0, -4 }, // 0x70 'p' 119 | { 313, 5, 7, 6, 0, -4 }, // 0x71 'q' 120 | { 318, 4, 5, 5, 0, -4 }, // 0x72 'r' 121 | { 321, 5, 5, 6, 0, -4 }, // 0x73 's' 122 | { 325, 4, 7, 5, 0, -6 }, // 0x74 't' 123 | { 329, 5, 5, 6, 0, -4 }, // 0x75 'u' 124 | { 333, 5, 5, 6, 0, -4 }, // 0x76 'v' 125 | { 337, 5, 5, 6, 0, -4 }, // 0x77 'w' 126 | { 341, 5, 5, 6, 0, -4 }, // 0x78 'x' 127 | { 345, 5, 7, 6, 0, -4 }, // 0x79 'y' 128 | { 350, 5, 5, 6, 0, -4 }, // 0x7A 'z' 129 | { 354, 3, 7, 6, 2, -6 }, // 0x7B '{' 130 | { 357, 1, 7, 4, 1, -6 }, // 0x7C '|' 131 | { 358, 3, 7, 4, 0, -6 }, // 0x7D '}' 132 | { 361, 5, 2, 6, 0, -4 } }; // 0x7E '~' 133 | 134 | const GFXfont Font_5x7_practical8pt7b PROGMEM = { 135 | (uint8_t *)Font_5x7_practical8pt7bBitmaps, 136 | (GFXglyph *)Font_5x7_practical8pt7bGlyphs, 137 | 0x20, 0x7E, 10 }; 138 | 139 | // Approx. 1035 bytes 140 | -------------------------------------------------------------------------------- /test/RobotoMono_Thin7pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t RobotoMono_Thin7pt7bBitmaps[] PROGMEM = { 2 | 0x55, 0x55, 0x4, 0xFC, 0x12, 0x12, 0x12, 0x7F, 0x24, 0x24, 0x24, 0xFF, 3 | 0x24, 0x24, 0x28, 0x10, 0xA4, 0x61, 0x81, 0x3, 0x81, 0x6, 0x18, 0x5A, 4 | 0x10, 0x60, 0x92, 0x94, 0x94, 0x68, 0x8, 0x12, 0x25, 0x29, 0x5, 0x7, 5 | 0x30, 0x91, 0x22, 0x86, 0xC, 0x24, 0xC5, 0x8B, 0x9, 0xE8, 0xA8, 0x29, 6 | 0x49, 0x24, 0x92, 0x48, 0x98, 0xA5, 0x55, 0x55, 0x58, 0x10, 0x4F, 0xC4, 7 | 0x29, 0x10, 0x10, 0x20, 0x47, 0xF1, 0x2, 0x4, 0x0, 0xE0, 0xF8, 0x80, 8 | 0x8, 0x84, 0x22, 0x10, 0x88, 0x42, 0x20, 0x39, 0x18, 0x61, 0x8E, 0x5A, 9 | 0x71, 0x85, 0x13, 0x80, 0x3C, 0x92, 0x49, 0x24, 0x80, 0x72, 0x28, 0x41, 10 | 0x8, 0x21, 0x8, 0x41, 0xF, 0xC0, 0x7A, 0x18, 0x41, 0x8, 0xE0, 0x41, 11 | 0x86, 0x17, 0x80, 0x8, 0x30, 0x61, 0x44, 0x89, 0x22, 0x7F, 0x8, 0x10, 12 | 0x20, 0xFC, 0x21, 0xF, 0x44, 0x21, 0x8C, 0x5C, 0x39, 0x4, 0x20, 0xBB, 13 | 0x18, 0x61, 0x86, 0x17, 0x80, 0xFC, 0x10, 0x42, 0x8, 0x41, 0x4, 0x20, 14 | 0x84, 0x0, 0x38, 0x8A, 0xC, 0x14, 0x47, 0x11, 0x41, 0x83, 0x5, 0xF0, 15 | 0x7A, 0x18, 0x61, 0x86, 0x14, 0x4F, 0x4, 0x27, 0x0, 0x82, 0x83, 0x80, 16 | 0x4, 0x66, 0x30, 0x30, 0x30, 0xFC, 0x0, 0x3F, 0xC0, 0xC0, 0x83, 0x33, 17 | 0x0, 0x74, 0x62, 0x10, 0x88, 0x84, 0x0, 0x8, 0x1E, 0x21, 0x49, 0x95, 18 | 0xA5, 0xA5, 0xA5, 0xAD, 0x92, 0x40, 0x3C, 0x10, 0x60, 0xA1, 0x44, 0x89, 19 | 0x11, 0x3E, 0x85, 0x6, 0x8, 0xFA, 0x18, 0x61, 0x87, 0xE8, 0x61, 0x86, 20 | 0x1F, 0x80, 0x39, 0x18, 0x60, 0x82, 0x8, 0x20, 0x86, 0x17, 0x80, 0xF9, 21 | 0xA, 0x14, 0x18, 0x30, 0x60, 0xC1, 0x85, 0xB, 0xE0, 0xF8, 0x0, 0x0, 22 | 0x7C, 0x0, 0x0, 0x3E, 0xFC, 0x21, 0x8, 0x7E, 0x10, 0x84, 0x20, 0x7A, 23 | 0x18, 0x60, 0x82, 0x9, 0xE1, 0x85, 0x13, 0xC0, 0x86, 0x18, 0x61, 0x87, 24 | 0xF8, 0x61, 0x86, 0x18, 0x40, 0xFC, 0x41, 0x4, 0x10, 0x41, 0x4, 0x10, 25 | 0x4F, 0xC0, 0x4, 0x10, 0x41, 0x4, 0x10, 0x41, 0x86, 0x17, 0x80, 0x86, 26 | 0x29, 0x28, 0xC3, 0xA, 0x24, 0x92, 0x28, 0x40, 0x84, 0x21, 0x8, 0x42, 27 | 0x10, 0x84, 0x3E, 0x86, 0x1C, 0x73, 0xAE, 0xD9, 0x61, 0x86, 0x18, 0x40, 28 | 0x86, 0x1C, 0x69, 0xA6, 0x59, 0x63, 0x8E, 0x18, 0x40, 0x7A, 0x18, 0x61, 29 | 0x86, 0x18, 0x61, 0x86, 0x17, 0x80, 0xFA, 0x18, 0x61, 0x86, 0x2F, 0x20, 30 | 0x82, 0x8, 0x0, 0x79, 0xA, 0xC, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x9, 31 | 0xE0, 0x20, 0x20, 0xF2, 0x28, 0xA1, 0x8A, 0x2F, 0x24, 0x8A, 0x28, 0x40, 32 | 0x79, 0xA, 0xC, 0x4, 0x7, 0x1, 0x1, 0x83, 0x5, 0xF0, 0xFE, 0x20, 33 | 0x40, 0x81, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x86, 0x18, 0x61, 0x86, 34 | 0x18, 0x61, 0x86, 0x17, 0x80, 0x83, 0xA, 0x14, 0x24, 0x49, 0x12, 0x14, 35 | 0x30, 0x20, 0x40, 0x93, 0x26, 0xCD, 0x9A, 0xB5, 0x6B, 0x56, 0x44, 0x89, 36 | 0x10, 0x82, 0x89, 0x21, 0x41, 0x2, 0xC, 0x14, 0x45, 0xA, 0x8, 0x83, 37 | 0x9, 0x12, 0x42, 0x86, 0x4, 0x8, 0x10, 0x20, 0x40, 0xFC, 0x10, 0x82, 38 | 0x10, 0x82, 0x10, 0x42, 0xF, 0xC0, 0xEA, 0xAA, 0xAA, 0xAC, 0x88, 0x44, 39 | 0x42, 0x22, 0x11, 0x10, 0xD5, 0x55, 0x55, 0x5C, 0x23, 0x15, 0x29, 0x44, 40 | 0xFC, 0x90, 0x7A, 0x10, 0x5F, 0x86, 0x18, 0x5F, 0x84, 0x21, 0xE8, 0xC6, 41 | 0x31, 0x8C, 0x7C, 0x39, 0x18, 0x60, 0x82, 0x4, 0x4E, 0x4, 0x10, 0x5F, 42 | 0x86, 0x18, 0x61, 0x86, 0x17, 0xC0, 0x39, 0x18, 0x7F, 0x82, 0x4, 0xF, 43 | 0xE, 0x20, 0x81, 0xF, 0xC4, 0x8, 0x10, 0x20, 0x40, 0x81, 0x0, 0x7E, 44 | 0x18, 0x61, 0x86, 0x18, 0x5F, 0x6, 0x17, 0x80, 0x82, 0x8, 0x2E, 0xC6, 45 | 0x18, 0x61, 0x86, 0x18, 0x40, 0x20, 0x1, 0xC2, 0x10, 0x84, 0x21, 0x3E, 46 | 0x8, 0x0, 0xF0, 0x84, 0x21, 0x8, 0x42, 0x11, 0x70, 0x84, 0x21, 0x19, 47 | 0x53, 0x14, 0x94, 0xA2, 0xE1, 0x8, 0x42, 0x10, 0x84, 0x21, 0x3E, 0xEF, 48 | 0x26, 0x4C, 0x99, 0x32, 0x64, 0xC9, 0xBB, 0x18, 0x61, 0x86, 0x18, 0x61, 49 | 0x7A, 0x18, 0x61, 0x86, 0x18, 0x5E, 0x74, 0x42, 0x10, 0x84, 0x3E, 0x0, 50 | 0x0, 0x7E, 0x18, 0x61, 0x86, 0x18, 0x5F, 0x4, 0x10, 0x40, 0xF8, 0x88, 51 | 0x88, 0x88, 0x7A, 0x18, 0x1C, 0xC, 0x18, 0x5E, 0x20, 0x8F, 0xC8, 0x20, 52 | 0x82, 0x8, 0x20, 0x70, 0x86, 0x18, 0x61, 0x86, 0x18, 0x5F, 0x83, 0x9, 53 | 0x12, 0x44, 0x85, 0xC, 0x8, 0x93, 0x26, 0xCD, 0x5A, 0xD9, 0x91, 0x22, 54 | 0x84, 0x88, 0xA0, 0x81, 0x5, 0x11, 0x43, 0x83, 0xA, 0x12, 0x24, 0x85, 55 | 0xC, 0x8, 0x20, 0x43, 0x0, 0xFC, 0x10, 0x20, 0x82, 0x8, 0x10, 0x7F, 56 | 0x19, 0x8, 0x42, 0x10, 0x98, 0x21, 0x8, 0x42, 0xC, 0xFF, 0xF0, 0xC1, 57 | 0x8, 0x42, 0x10, 0x83, 0x21, 0x8, 0x42, 0x13, 0x0, 0x71, 0x89, 0x86 58 | }; 59 | 60 | const GFXglyph RobotoMono_Thin7pt7bGlyphs[] PROGMEM = { 61 | { 0, 0, 0, 8, 0, 1 }, // ' ' 62 | { 0, 2, 11, 8, 3, -10 }, // '!' 63 | { 3, 2, 3, 8, 3, -10 }, // '"' 64 | { 4, 8, 11, 8, 0, -10 }, // '#' 65 | { 15, 6, 13, 8, 1, -11 }, // '$' 66 | { 25, 8, 11, 8, 0, -10 }, // '%' 67 | { 36, 7, 11, 8, 1, -10 }, // '&' 68 | { 46, 2, 3, 8, 3, -10 }, // ''' 69 | { 47, 3, 15, 8, 3, -11 }, // '(' 70 | { 53, 2, 15, 8, 3, -11 }, // ')' 71 | { 57, 6, 6, 8, 1, -10 }, // '*' 72 | { 62, 7, 7, 8, 1, -7 }, // '+' 73 | { 69, 1, 3, 8, 3, 0 }, // ',' 74 | { 70, 5, 1, 8, 2, -4 }, // '-' 75 | { 71, 1, 1, 8, 4, 0 }, // '.' 76 | { 72, 5, 11, 8, 2, -10 }, // '/' 77 | { 79, 6, 11, 8, 1, -10 }, // '0' 78 | { 88, 3, 11, 8, 2, -10 }, // '1' 79 | { 93, 6, 11, 8, 1, -10 }, // '2' 80 | { 102, 6, 11, 8, 1, -10 }, // '3' 81 | { 111, 7, 11, 8, 1, -10 }, // '4' 82 | { 121, 5, 11, 8, 2, -10 }, // '5' 83 | { 128, 6, 11, 8, 1, -10 }, // '6' 84 | { 137, 6, 11, 8, 1, -10 }, // '7' 85 | { 146, 7, 11, 8, 1, -10 }, // '8' 86 | { 156, 6, 11, 8, 1, -10 }, // '9' 87 | { 165, 1, 7, 8, 4, -6 }, // ':' 88 | { 166, 1, 9, 8, 4, -6 }, // ';' 89 | { 168, 6, 6, 8, 1, -7 }, // '<' 90 | { 173, 6, 4, 8, 1, -6 }, // '=' 91 | { 176, 6, 6, 8, 1, -7 }, // '>' 92 | { 181, 5, 11, 8, 2, -10 }, // '?' 93 | { 188, 8, 11, 8, 0, -10 }, // '@' 94 | { 199, 7, 11, 8, 1, -10 }, // 'A' 95 | { 209, 6, 11, 8, 1, -10 }, // 'B' 96 | { 218, 6, 11, 8, 1, -10 }, // 'C' 97 | { 227, 7, 11, 8, 1, -10 }, // 'D' 98 | { 237, 5, 11, 8, 2, -10 }, // 'E' 99 | { 244, 5, 11, 8, 2, -10 }, // 'F' 100 | { 251, 6, 11, 8, 1, -10 }, // 'G' 101 | { 260, 6, 11, 8, 1, -10 }, // 'H' 102 | { 269, 6, 11, 8, 1, -10 }, // 'I' 103 | { 278, 6, 11, 8, 1, -10 }, // 'J' 104 | { 287, 6, 11, 8, 2, -10 }, // 'K' 105 | { 296, 5, 11, 8, 2, -10 }, // 'L' 106 | { 303, 6, 11, 8, 1, -10 }, // 'M' 107 | { 312, 6, 11, 8, 1, -10 }, // 'N' 108 | { 321, 6, 11, 8, 1, -10 }, // 'O' 109 | { 330, 6, 11, 8, 2, -10 }, // 'P' 110 | { 339, 7, 13, 8, 1, -10 }, // 'Q' 111 | { 351, 6, 11, 8, 2, -10 }, // 'R' 112 | { 360, 7, 11, 8, 1, -10 }, // 'S' 113 | { 370, 7, 11, 8, 1, -10 }, // 'T' 114 | { 380, 6, 11, 8, 1, -10 }, // 'U' 115 | { 389, 7, 11, 8, 1, -10 }, // 'V' 116 | { 399, 7, 11, 8, 1, -10 }, // 'W' 117 | { 409, 7, 11, 8, 1, -10 }, // 'X' 118 | { 419, 7, 11, 8, 1, -10 }, // 'Y' 119 | { 429, 6, 11, 8, 1, -10 }, // 'Z' 120 | { 438, 2, 15, 8, 3, -11 }, // '[' 121 | { 442, 4, 11, 8, 2, -10 }, // '\' 122 | { 448, 2, 15, 8, 3, -11 }, // ']' 123 | { 452, 5, 6, 8, 2, -10 }, // '^' 124 | { 456, 6, 1, 8, 1, 1 }, // '_' 125 | { 457, 2, 2, 8, 3, -10 }, // '`' 126 | { 458, 6, 8, 8, 1, -7 }, // 'a' 127 | { 464, 5, 11, 8, 2, -10 }, // 'b' 128 | { 471, 6, 8, 8, 1, -7 }, // 'c' 129 | { 477, 6, 11, 8, 1, -10 }, // 'd' 130 | { 486, 6, 8, 8, 1, -7 }, // 'e' 131 | { 492, 7, 12, 8, 1, -11 }, // 'f' 132 | { 503, 6, 11, 8, 1, -7 }, // 'g' 133 | { 512, 6, 11, 8, 1, -10 }, // 'h' 134 | { 521, 5, 11, 8, 2, -10 }, // 'i' 135 | { 528, 5, 14, 8, 1, -10 }, // 'j' 136 | { 537, 5, 11, 8, 2, -10 }, // 'k' 137 | { 544, 5, 11, 8, 2, -10 }, // 'l' 138 | { 551, 7, 8, 8, 1, -7 }, // 'm' 139 | { 558, 6, 8, 8, 1, -7 }, // 'n' 140 | { 564, 6, 8, 8, 1, -7 }, // 'o' 141 | { 570, 5, 11, 8, 2, -7 }, // 'p' 142 | { 577, 6, 11, 8, 1, -7 }, // 'q' 143 | { 586, 4, 8, 8, 3, -7 }, // 'r' 144 | { 590, 6, 8, 8, 1, -7 }, // 's' 145 | { 596, 6, 10, 8, 1, -9 }, // 't' 146 | { 604, 6, 8, 8, 1, -7 }, // 'u' 147 | { 610, 7, 8, 8, 1, -7 }, // 'v' 148 | { 617, 7, 8, 8, 1, -7 }, // 'w' 149 | { 624, 7, 8, 8, 1, -7 }, // 'x' 150 | { 631, 7, 11, 8, 1, -7 }, // 'y' 151 | { 641, 7, 8, 8, 1, -7 }, // 'z' 152 | { 648, 5, 14, 8, 2, -11 }, // '{' 153 | { 657, 1, 12, 8, 4, -10 }, // '|' 154 | { 659, 5, 15, 8, 2, -11 }, // '}' 155 | { 669, 8, 3, 8, 0, -5 } // '~' 156 | }; 157 | 158 | const GFXfont RobotoMono_Thin7pt7b PROGMEM = { 159 | (uint8_t *)RobotoMono_Thin7pt7bBitmaps, 160 | (GFXglyph *)RobotoMono_Thin7pt7bGlyphs, 161 | 0x20, 0x7E, 18 }; 162 | 163 | // Approx. 1344 bytes 164 | -------------------------------------------------------------------------------- /test/FreeMonoBold12pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeMonoBold12pt7bBitmaps[] PROGMEM = { 2 | 0xFF, 0xFF, 0xFF, 0xF6, 0x66, 0x60, 0x6F, 0x60, 0xE7, 0xE7, 0x62, 0x42, 3 | 0x42, 0x42, 0x42, 0x11, 0x87, 0x30, 0xC6, 0x18, 0xC3, 0x31, 0xFF, 0xFF, 4 | 0xF9, 0x98, 0x33, 0x06, 0x60, 0xCC, 0x7F, 0xEF, 0xFC, 0x66, 0x0C, 0xC3, 5 | 0x98, 0x63, 0x04, 0x40, 0x0C, 0x03, 0x00, 0xC0, 0xFE, 0x7F, 0x9C, 0x66, 6 | 0x09, 0x80, 0x78, 0x0F, 0xE0, 0x7F, 0x03, 0xE0, 0xF8, 0x7F, 0xFB, 0xFC, 7 | 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x38, 0x1F, 0x0C, 0x42, 0x10, 0xC4, 0x1F, 8 | 0x03, 0x9C, 0x3C, 0x7F, 0x33, 0xE0, 0x8C, 0x21, 0x08, 0xC3, 0xE0, 0x70, 9 | 0x3E, 0x1F, 0xC6, 0x61, 0x80, 0x70, 0x0C, 0x07, 0x83, 0xEE, 0xDF, 0xB3, 10 | 0xCC, 0x73, 0xFE, 0x7F, 0x80, 0xFD, 0x24, 0x90, 0x39, 0xDC, 0xE6, 0x73, 11 | 0x18, 0xC6, 0x31, 0x8C, 0x31, 0x8E, 0x31, 0xC4, 0xE7, 0x1C, 0xE3, 0x1C, 12 | 0x63, 0x18, 0xC6, 0x31, 0x98, 0xCE, 0x67, 0x10, 0x0C, 0x03, 0x00, 0xC3, 13 | 0xB7, 0xFF, 0xDF, 0xE1, 0xE0, 0xFC, 0x33, 0x0C, 0xC0, 0x06, 0x00, 0x60, 14 | 0x06, 0x00, 0x60, 0x06, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x06, 0x00, 0x60, 15 | 0x06, 0x00, 0x60, 0x06, 0x00, 0x3B, 0x9C, 0xCE, 0x62, 0x00, 0xFF, 0xFF, 16 | 0xFF, 0xFF, 0x80, 0x00, 0x40, 0x30, 0x1C, 0x07, 0x03, 0x80, 0xE0, 0x30, 17 | 0x1C, 0x06, 0x03, 0x80, 0xC0, 0x70, 0x18, 0x0E, 0x03, 0x01, 0xC0, 0x60, 18 | 0x38, 0x0E, 0x01, 0x00, 0x1E, 0x0F, 0xC6, 0x1B, 0x87, 0xC0, 0xF0, 0x3C, 19 | 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x87, 0x61, 0x8F, 0xC1, 0xE0, 0x1C, 20 | 0x0F, 0x0F, 0xC3, 0xB0, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 21 | 0xC0, 0x30, 0x0C, 0x3F, 0xFF, 0xFC, 0x1F, 0x1F, 0xEE, 0x1F, 0x83, 0xC0, 22 | 0xC0, 0x70, 0x38, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE3, 0xF0, 0xFF, 0xFF, 23 | 0xFC, 0x3F, 0x0F, 0xF1, 0x87, 0x00, 0x60, 0x0C, 0x03, 0x83, 0xE0, 0x7C, 24 | 0x01, 0xC0, 0x0C, 0x01, 0x80, 0x3C, 0x0F, 0xFF, 0x9F, 0xC0, 0x07, 0x07, 25 | 0x83, 0xC3, 0xE1, 0xB1, 0xD8, 0xCC, 0xC6, 0xE3, 0x7F, 0xFF, 0xE0, 0x61, 26 | 0xF8, 0xFC, 0x7F, 0x9F, 0xE6, 0x01, 0x80, 0x60, 0x1F, 0x87, 0xF9, 0x86, 27 | 0x00, 0xC0, 0x30, 0x0C, 0x03, 0xC1, 0xBF, 0xE7, 0xE0, 0x07, 0xC7, 0xF3, 28 | 0xC1, 0xC0, 0x60, 0x38, 0x0E, 0xF3, 0xFE, 0xF1, 0xF8, 0x3E, 0x0F, 0x83, 29 | 0x71, 0xCF, 0xE1, 0xF0, 0xFF, 0xFF, 0xFC, 0x1F, 0x07, 0x01, 0x80, 0x60, 30 | 0x38, 0x0C, 0x03, 0x01, 0xC0, 0x60, 0x18, 0x0E, 0x03, 0x00, 0xC0, 0x1E, 31 | 0x1F, 0xEE, 0x1F, 0x03, 0xC0, 0xF0, 0x36, 0x19, 0xFE, 0x7F, 0xB8, 0x7C, 32 | 0x0F, 0x03, 0xE1, 0xDF, 0xE3, 0xF0, 0x3E, 0x1F, 0xCE, 0x3B, 0x07, 0xC1, 33 | 0xF0, 0x7E, 0x3D, 0xFF, 0x3D, 0xC0, 0x70, 0x18, 0x0E, 0x0F, 0x3F, 0x8F, 34 | 0x80, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x77, 0x70, 0x00, 0x00, 0x76, 0x6C, 35 | 0xC8, 0x80, 0x00, 0x30, 0x0F, 0x03, 0xE0, 0xF8, 0x3E, 0x0F, 0x80, 0x3E, 36 | 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 37 | 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 38 | 0x03, 0xE0, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x0F, 0x00, 0x40, 0x00, 0x7C, 39 | 0x7F, 0xB0, 0xF8, 0x30, 0x18, 0x1C, 0x3C, 0x3C, 0x18, 0x08, 0x00, 0x07, 40 | 0x03, 0x81, 0xC0, 0x1E, 0x07, 0xF1, 0xC7, 0x30, 0x6C, 0x0D, 0x87, 0xB3, 41 | 0xF6, 0xE6, 0xD8, 0xDB, 0x1B, 0x73, 0x67, 0xFC, 0x7F, 0x80, 0x30, 0x03, 42 | 0x00, 0x71, 0xC7, 0xF8, 0x7C, 0x00, 0x3F, 0x80, 0x7F, 0x80, 0x1F, 0x00, 43 | 0x76, 0x00, 0xEE, 0x01, 0x8C, 0x07, 0x18, 0x0E, 0x38, 0x1F, 0xF0, 0x7F, 44 | 0xF0, 0xC0, 0x61, 0x80, 0xCF, 0xC7, 0xFF, 0x8F, 0xC0, 0xFF, 0xC7, 0xFF, 45 | 0x0C, 0x1C, 0x60, 0x63, 0x03, 0x18, 0x38, 0xFF, 0x87, 0xFE, 0x30, 0x39, 46 | 0x80, 0xCC, 0x06, 0x60, 0x7F, 0xFF, 0x7F, 0xF0, 0x0F, 0xF3, 0xFF, 0x70, 47 | 0x76, 0x03, 0xC0, 0x3C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0x60, 48 | 0x37, 0x07, 0x3F, 0xF0, 0xFC, 0xFF, 0x0F, 0xFC, 0x60, 0xE6, 0x06, 0x60, 49 | 0x36, 0x03, 0x60, 0x36, 0x03, 0x60, 0x36, 0x03, 0x60, 0x76, 0x0E, 0xFF, 50 | 0xCF, 0xF8, 0xFF, 0xF7, 0xFF, 0x8C, 0x0C, 0x60, 0x63, 0x1B, 0x18, 0xC0, 51 | 0xFE, 0x07, 0xF0, 0x31, 0x81, 0x8C, 0xCC, 0x06, 0x60, 0x3F, 0xFF, 0xFF, 52 | 0xFC, 0xFF, 0xFF, 0xFF, 0xCC, 0x06, 0x60, 0x33, 0x19, 0x98, 0xC0, 0xFE, 53 | 0x07, 0xF0, 0x31, 0x81, 0x8C, 0x0C, 0x00, 0x60, 0x0F, 0xF0, 0x7F, 0x80, 54 | 0x0F, 0xF1, 0xFF, 0x9C, 0x1C, 0xC0, 0x6C, 0x03, 0x60, 0x03, 0x00, 0x18, 55 | 0x7F, 0xC3, 0xFE, 0x01, 0xB8, 0x0C, 0xE0, 0xE3, 0xFF, 0x07, 0xE0, 0x7C, 56 | 0xF9, 0xF3, 0xE3, 0x03, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 0xFF, 0x0F, 57 | 0xFC, 0x30, 0x30, 0xC0, 0xC3, 0x03, 0x0C, 0x0C, 0xFC, 0xFF, 0xF3, 0xF0, 58 | 0xFF, 0xFF, 0xF0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 59 | 0x00, 0xC0, 0x30, 0xFF, 0xFF, 0xF0, 0x0F, 0xF8, 0x7F, 0xC0, 0x30, 0x01, 60 | 0x80, 0x0C, 0x00, 0x60, 0x03, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x30, 0x31, 61 | 0xC3, 0x0F, 0xF8, 0x1F, 0x00, 0xFC, 0xFB, 0xF3, 0xE3, 0x0E, 0x0C, 0x70, 62 | 0x33, 0x80, 0xFC, 0x03, 0xF0, 0x0F, 0xE0, 0x39, 0xC0, 0xC3, 0x03, 0x0E, 63 | 0x0C, 0x18, 0xFC, 0x7F, 0xF0, 0xF0, 0xFF, 0x0F, 0xF0, 0x18, 0x01, 0x80, 64 | 0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x31, 0x83, 0x18, 0x31, 0x83, 65 | 0xFF, 0xFF, 0xFF, 0xF0, 0x3F, 0xC0, 0xF7, 0x87, 0x9E, 0x1E, 0x7C, 0xF9, 66 | 0xB3, 0xE6, 0xFD, 0x99, 0xF6, 0x67, 0x99, 0x8E, 0x66, 0x31, 0x98, 0x06, 67 | 0xFC, 0xFF, 0xF3, 0xF0, 0xF1, 0xFF, 0xCF, 0xCF, 0x0C, 0x78, 0x63, 0xE3, 68 | 0x1B, 0x18, 0xDC, 0xC6, 0x76, 0x31, 0xB1, 0x8F, 0x8C, 0x3C, 0x61, 0xE7, 69 | 0xE7, 0x3F, 0x18, 0x0F, 0x03, 0xFC, 0x70, 0xE6, 0x06, 0xE0, 0x7C, 0x03, 70 | 0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07, 0x60, 0x67, 0x0E, 0x3F, 0xC0, 0xF0, 71 | 0xFF, 0x8F, 0xFE, 0x30, 0x73, 0x03, 0x30, 0x33, 0x03, 0x30, 0x73, 0xFE, 72 | 0x3F, 0x83, 0x00, 0x30, 0x03, 0x00, 0xFF, 0x0F, 0xF0, 0x0F, 0x03, 0xFC, 73 | 0x70, 0xE6, 0x06, 0xE0, 0x7C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07, 74 | 0x60, 0x67, 0x0E, 0x3F, 0xC1, 0xF0, 0x18, 0x33, 0xFF, 0x3F, 0xE0, 0xFF, 75 | 0x83, 0xFF, 0x83, 0x07, 0x0C, 0x0C, 0x30, 0x30, 0xC1, 0xC3, 0xFE, 0x0F, 76 | 0xF0, 0x31, 0xE0, 0xC3, 0x83, 0x07, 0x0C, 0x0C, 0xFE, 0x3F, 0xF8, 0x70, 77 | 0x3F, 0xDF, 0xFE, 0x1F, 0x03, 0xC0, 0xF8, 0x07, 0xE0, 0x7E, 0x01, 0xF0, 78 | 0x3C, 0x0F, 0x87, 0xFF, 0xBF, 0xC0, 0xFF, 0xFF, 0xFF, 0xC6, 0x3C, 0x63, 79 | 0xC6, 0x3C, 0x63, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 80 | 0x3F, 0xC3, 0xFC, 0xFF, 0xFF, 0xFF, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 81 | 0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 0x60, 0x63, 0x9C, 0x1F, 0xC0, 0xF0, 82 | 0xFC, 0x3F, 0xFC, 0x3F, 0x30, 0x0C, 0x38, 0x1C, 0x18, 0x18, 0x1C, 0x38, 83 | 0x1C, 0x38, 0x0E, 0x70, 0x0E, 0x70, 0x0F, 0x60, 0x07, 0xE0, 0x07, 0xE0, 84 | 0x03, 0xC0, 0x03, 0xC0, 0xFC, 0xFF, 0xF3, 0xF6, 0x01, 0xDC, 0xC6, 0x77, 85 | 0x99, 0xDE, 0x67, 0x79, 0x8D, 0xFE, 0x3F, 0xF8, 0xF3, 0xE3, 0xCF, 0x8F, 86 | 0x3C, 0x38, 0x70, 0xE1, 0xC0, 0xF8, 0xFB, 0xE3, 0xE3, 0x86, 0x0F, 0x38, 87 | 0x1F, 0xC0, 0x3E, 0x00, 0x70, 0x03, 0xE0, 0x0F, 0x80, 0x77, 0x03, 0x8E, 88 | 0x1E, 0x1C, 0xFC, 0xFF, 0xF3, 0xF0, 0xF9, 0xFF, 0x9F, 0x30, 0xC3, 0x9C, 89 | 0x19, 0x81, 0xF8, 0x0F, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 90 | 0x3F, 0xC3, 0xFC, 0xFF, 0xBF, 0xEC, 0x3B, 0x0C, 0xC6, 0x33, 0x80, 0xC0, 91 | 0x60, 0x38, 0xCC, 0x36, 0x0F, 0x03, 0xFF, 0xFF, 0xF0, 0xFF, 0xF1, 0x8C, 92 | 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC7, 0xFE, 0x40, 0x30, 0x0E, 93 | 0x01, 0x80, 0x70, 0x0C, 0x03, 0x80, 0x60, 0x1C, 0x03, 0x00, 0xE0, 0x18, 94 | 0x07, 0x00, 0xC0, 0x38, 0x0E, 0x01, 0xC0, 0x70, 0x0C, 0x01, 0xFF, 0xC6, 95 | 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x1F, 0xFE, 0x04, 0x03, 96 | 0x01, 0xE0, 0xFC, 0x7B, 0x9C, 0x7E, 0x1F, 0x03, 0xFF, 0xFF, 0xFF, 0xF0, 97 | 0xCE, 0x73, 0x3F, 0x07, 0xF8, 0x00, 0xC0, 0x0C, 0x1F, 0xC7, 0xFC, 0x60, 98 | 0xCC, 0x0C, 0xC1, 0xCF, 0xFF, 0x3F, 0xF0, 0xF0, 0x07, 0x80, 0x0C, 0x00, 99 | 0x60, 0x03, 0x7C, 0x1F, 0xF8, 0xF1, 0xC7, 0x07, 0x30, 0x19, 0x80, 0xCC, 100 | 0x06, 0x60, 0x73, 0xC7, 0x7F, 0xFB, 0xDF, 0x00, 0x1F, 0xB3, 0xFF, 0x70, 101 | 0xFE, 0x07, 0xC0, 0x3C, 0x00, 0xC0, 0x0C, 0x00, 0x70, 0x77, 0xFF, 0x1F, 102 | 0xC0, 0x01, 0xE0, 0x0F, 0x00, 0x18, 0x00, 0xC1, 0xF6, 0x3F, 0xF1, 0xC7, 103 | 0x9C, 0x1C, 0xC0, 0x66, 0x03, 0x30, 0x19, 0x81, 0xC7, 0x1E, 0x3F, 0xFC, 104 | 0x7D, 0xE0, 0x1F, 0x83, 0xFC, 0x70, 0xEE, 0x07, 0xFF, 0xFF, 0xFF, 0xE0, 105 | 0x0E, 0x00, 0x70, 0x73, 0xFF, 0x1F, 0xC0, 0x07, 0xC3, 0xFC, 0x60, 0x0C, 106 | 0x0F, 0xFD, 0xFF, 0x86, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 107 | 0x81, 0xFF, 0xBF, 0xF0, 0x1F, 0x79, 0xFF, 0xDC, 0x79, 0x81, 0xCC, 0x06, 108 | 0x60, 0x33, 0x01, 0x9C, 0x1C, 0x71, 0xE1, 0xFF, 0x07, 0xD8, 0x00, 0xC0, 109 | 0x06, 0x00, 0x70, 0x7F, 0x03, 0xF0, 0xF0, 0x03, 0xC0, 0x03, 0x00, 0x0C, 110 | 0x00, 0x37, 0xC0, 0xFF, 0x83, 0xC7, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 111 | 0x03, 0x0C, 0x0C, 0x30, 0x33, 0xF3, 0xFF, 0xCF, 0xC0, 0x06, 0x00, 0xC0, 112 | 0x00, 0x3F, 0x07, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 113 | 0x03, 0x0F, 0xFF, 0xFF, 0xC0, 0x06, 0x06, 0x00, 0xFF, 0xFF, 0x03, 0x03, 114 | 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0xFE, 0xFC, 115 | 0xF0, 0x07, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x3F, 0x19, 0xF8, 0xDE, 0x07, 116 | 0xE0, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x6F, 0x03, 0x1C, 0x78, 0xFF, 0xC7, 117 | 0xE0, 0x7E, 0x0F, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 118 | 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x61, 0xFF, 0xFF, 0xF8, 0xFE, 0xF1, 119 | 0xFF, 0xF1, 0xCE, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 120 | 0x8C, 0x63, 0x19, 0xF7, 0xBF, 0xEF, 0x78, 0x77, 0xC1, 0xFF, 0x83, 0xC7, 121 | 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 0x03, 0x0C, 0x0C, 0x30, 0x33, 0xF1, 122 | 0xFF, 0xC7, 0xC0, 0x1F, 0x83, 0xFC, 0x70, 0xEE, 0x07, 0xC0, 0x3C, 0x03, 123 | 0xC0, 0x3E, 0x07, 0x70, 0xE3, 0xFC, 0x1F, 0x80, 0xF7, 0xE3, 0xFF, 0xC3, 124 | 0xC3, 0x8E, 0x07, 0x30, 0x0C, 0xC0, 0x33, 0x00, 0xCE, 0x07, 0x3C, 0x38, 125 | 0xFF, 0xC3, 0x7E, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x0F, 0xE0, 0x3F, 0x80, 126 | 0x1F, 0xBC, 0xFF, 0xF7, 0x0F, 0x38, 0x1C, 0xC0, 0x33, 0x00, 0xCC, 0x03, 127 | 0x38, 0x1C, 0x70, 0xF0, 0xFF, 0xC1, 0xFB, 0x00, 0x0C, 0x00, 0x30, 0x00, 128 | 0xC0, 0x1F, 0xC0, 0x7F, 0x79, 0xE7, 0xFF, 0x1F, 0x31, 0xC0, 0x18, 0x01, 129 | 0x80, 0x18, 0x01, 0x80, 0x18, 0x0F, 0xFC, 0xFF, 0xC0, 0x3F, 0x9F, 0xFE, 130 | 0x1F, 0x82, 0xFE, 0x1F, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0xFF, 0xF0, 0x30, 131 | 0x06, 0x00, 0xC0, 0x7F, 0xEF, 0xFC, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 132 | 0x00, 0xC0, 0x18, 0x71, 0xFE, 0x1F, 0x00, 0xF1, 0xF7, 0x8F, 0x8C, 0x0C, 133 | 0x60, 0x63, 0x03, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x38, 0xF0, 0xFF, 0xC3, 134 | 0xEE, 0xFC, 0xFF, 0xF3, 0xF3, 0x87, 0x0E, 0x1C, 0x1C, 0x60, 0x73, 0x80, 135 | 0xEC, 0x03, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x00, 0xF8, 0x7F, 0xE1, 136 | 0xF7, 0x39, 0x8C, 0xE6, 0x37, 0xB0, 0xFF, 0xC3, 0xFF, 0x07, 0xBC, 0x1C, 137 | 0xF0, 0x73, 0x81, 0x86, 0x00, 0x7C, 0xF9, 0xF3, 0xE3, 0xCF, 0x07, 0xF8, 138 | 0x0F, 0xC0, 0x1E, 0x00, 0xFC, 0x07, 0x38, 0x38, 0x73, 0xF3, 0xFF, 0xCF, 139 | 0xC0, 0xF9, 0xFF, 0x9F, 0x70, 0xE3, 0x0C, 0x39, 0xC1, 0x98, 0x19, 0x81, 140 | 0xF8, 0x0F, 0x00, 0xF0, 0x06, 0x00, 0x60, 0x0E, 0x00, 0xC0, 0xFF, 0x0F, 141 | 0xF0, 0x7F, 0xCF, 0xF9, 0x8E, 0x33, 0x80, 0x70, 0x1C, 0x07, 0x01, 0xC6, 142 | 0x70, 0xFF, 0xFF, 0xFF, 0x80, 0x0E, 0x3C, 0x60, 0xC1, 0x83, 0x06, 0x0C, 143 | 0x39, 0xE3, 0xC0, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x3C, 0x38, 0xFF, 0xFF, 144 | 0xFF, 0xFF, 0xF0, 0xE1, 0xC0, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x3C, 145 | 0x79, 0x83, 0x06, 0x0C, 0x18, 0x31, 0xE3, 0x80, 0x3C, 0x37, 0xE7, 0x67, 146 | 0xE6, 0x1C }; 147 | 148 | const GFXglyph FreeMonoBold12pt7bGlyphs[] PROGMEM = { 149 | { 0, 0, 0, 14, 0, 1 }, // 0x20 ' ' 150 | { 0, 4, 15, 14, 5, -14 }, // 0x21 '!' 151 | { 8, 8, 7, 14, 3, -13 }, // 0x22 '"' 152 | { 15, 11, 18, 14, 2, -15 }, // 0x23 '#' 153 | { 40, 10, 20, 14, 2, -16 }, // 0x24 '$' 154 | { 65, 10, 15, 14, 2, -14 }, // 0x25 '%' 155 | { 84, 10, 13, 14, 2, -12 }, // 0x26 '&' 156 | { 101, 3, 7, 14, 5, -13 }, // 0x27 ''' 157 | { 104, 5, 19, 14, 6, -14 }, // 0x28 '(' 158 | { 116, 5, 19, 14, 3, -14 }, // 0x29 ')' 159 | { 128, 10, 10, 14, 2, -14 }, // 0x2A '*' 160 | { 141, 12, 13, 14, 1, -12 }, // 0x2B '+' 161 | { 161, 5, 7, 14, 4, -2 }, // 0x2C ',' 162 | { 166, 12, 2, 14, 1, -7 }, // 0x2D '-' 163 | { 169, 3, 3, 14, 5, -2 }, // 0x2E '.' 164 | { 171, 10, 20, 14, 2, -16 }, // 0x2F '/' 165 | { 196, 10, 15, 14, 2, -14 }, // 0x30 '0' 166 | { 215, 10, 15, 14, 2, -14 }, // 0x31 '1' 167 | { 234, 10, 15, 14, 2, -14 }, // 0x32 '2' 168 | { 253, 11, 15, 14, 1, -14 }, // 0x33 '3' 169 | { 274, 9, 14, 14, 2, -13 }, // 0x34 '4' 170 | { 290, 10, 15, 14, 2, -14 }, // 0x35 '5' 171 | { 309, 10, 15, 14, 2, -14 }, // 0x36 '6' 172 | { 328, 10, 15, 14, 2, -14 }, // 0x37 '7' 173 | { 347, 10, 15, 14, 2, -14 }, // 0x38 '8' 174 | { 366, 10, 15, 14, 3, -14 }, // 0x39 '9' 175 | { 385, 3, 11, 14, 5, -10 }, // 0x3A ':' 176 | { 390, 4, 15, 14, 4, -10 }, // 0x3B ';' 177 | { 398, 12, 11, 14, 1, -11 }, // 0x3C '<' 178 | { 415, 12, 7, 14, 1, -9 }, // 0x3D '=' 179 | { 426, 12, 11, 14, 1, -11 }, // 0x3E '>' 180 | { 443, 9, 14, 14, 3, -13 }, // 0x3F '?' 181 | { 459, 11, 19, 14, 2, -14 }, // 0x40 '@' 182 | { 486, 15, 14, 14, -1, -13 }, // 0x41 'A' 183 | { 513, 13, 14, 14, 0, -13 }, // 0x42 'B' 184 | { 536, 12, 14, 14, 1, -13 }, // 0x43 'C' 185 | { 557, 12, 14, 14, 1, -13 }, // 0x44 'D' 186 | { 578, 13, 14, 14, 0, -13 }, // 0x45 'E' 187 | { 601, 13, 14, 14, 0, -13 }, // 0x46 'F' 188 | { 624, 13, 14, 14, 1, -13 }, // 0x47 'G' 189 | { 647, 14, 14, 14, 0, -13 }, // 0x48 'H' 190 | { 672, 10, 14, 14, 2, -13 }, // 0x49 'I' 191 | { 690, 13, 14, 14, 1, -13 }, // 0x4A 'J' 192 | { 713, 14, 14, 14, 0, -13 }, // 0x4B 'K' 193 | { 738, 12, 14, 14, 1, -13 }, // 0x4C 'L' 194 | { 759, 14, 14, 14, 0, -13 }, // 0x4D 'M' 195 | { 784, 13, 14, 14, 0, -13 }, // 0x4E 'N' 196 | { 807, 12, 14, 14, 1, -13 }, // 0x4F 'O' 197 | { 828, 12, 14, 14, 0, -13 }, // 0x50 'P' 198 | { 849, 12, 17, 14, 1, -13 }, // 0x51 'Q' 199 | { 875, 14, 14, 14, 0, -13 }, // 0x52 'R' 200 | { 900, 10, 14, 14, 2, -13 }, // 0x53 'S' 201 | { 918, 12, 14, 14, 1, -13 }, // 0x54 'T' 202 | { 939, 12, 14, 14, 1, -13 }, // 0x55 'U' 203 | { 960, 16, 14, 14, -1, -13 }, // 0x56 'V' 204 | { 988, 14, 14, 14, 0, -13 }, // 0x57 'W' 205 | { 1013, 14, 14, 14, 0, -13 }, // 0x58 'X' 206 | { 1038, 12, 14, 14, 1, -13 }, // 0x59 'Y' 207 | { 1059, 10, 14, 14, 2, -13 }, // 0x5A 'Z' 208 | { 1077, 5, 19, 14, 6, -14 }, // 0x5B '[' 209 | { 1089, 10, 20, 14, 2, -16 }, // 0x5C '\' 210 | { 1114, 5, 19, 14, 3, -14 }, // 0x5D ']' 211 | { 1126, 10, 8, 14, 2, -15 }, // 0x5E '^' 212 | { 1136, 14, 2, 14, 0, 4 }, // 0x5F '_' 213 | { 1140, 4, 4, 14, 4, -15 }, // 0x60 '`' 214 | { 1142, 12, 11, 14, 1, -10 }, // 0x61 'a' 215 | { 1159, 13, 15, 14, 0, -14 }, // 0x62 'b' 216 | { 1184, 12, 11, 14, 1, -10 }, // 0x63 'c' 217 | { 1201, 13, 15, 14, 1, -14 }, // 0x64 'd' 218 | { 1226, 12, 11, 14, 1, -10 }, // 0x65 'e' 219 | { 1243, 11, 15, 14, 2, -14 }, // 0x66 'f' 220 | { 1264, 13, 16, 14, 1, -10 }, // 0x67 'g' 221 | { 1290, 14, 15, 14, 0, -14 }, // 0x68 'h' 222 | { 1317, 11, 14, 14, 1, -13 }, // 0x69 'i' 223 | { 1337, 8, 19, 15, 3, -13 }, // 0x6A 'j' 224 | { 1356, 13, 15, 14, 1, -14 }, // 0x6B 'k' 225 | { 1381, 11, 15, 14, 1, -14 }, // 0x6C 'l' 226 | { 1402, 15, 11, 14, 0, -10 }, // 0x6D 'm' 227 | { 1423, 14, 11, 14, 0, -10 }, // 0x6E 'n' 228 | { 1443, 12, 11, 14, 1, -10 }, // 0x6F 'o' 229 | { 1460, 14, 16, 14, 0, -10 }, // 0x70 'p' 230 | { 1488, 14, 16, 14, 0, -10 }, // 0x71 'q' 231 | { 1516, 12, 11, 14, 1, -10 }, // 0x72 'r' 232 | { 1533, 10, 11, 14, 2, -10 }, // 0x73 's' 233 | { 1547, 11, 14, 14, 1, -13 }, // 0x74 't' 234 | { 1567, 13, 11, 14, 0, -10 }, // 0x75 'u' 235 | { 1585, 14, 11, 14, 0, -10 }, // 0x76 'v' 236 | { 1605, 14, 11, 14, 0, -10 }, // 0x77 'w' 237 | { 1625, 14, 11, 14, 0, -10 }, // 0x78 'x' 238 | { 1645, 12, 16, 14, 1, -10 }, // 0x79 'y' 239 | { 1669, 11, 11, 14, 1, -10 }, // 0x7A 'z' 240 | { 1685, 7, 19, 14, 3, -14 }, // 0x7B '{' 241 | { 1702, 2, 19, 14, 6, -14 }, // 0x7C '|' 242 | { 1707, 7, 19, 14, 4, -14 }, // 0x7D '}' 243 | { 1724, 12, 4, 14, 1, -7 } }; // 0x7E '~' 244 | 245 | const GFXfont FreeMonoBold12pt7b PROGMEM = { 246 | (uint8_t *)FreeMonoBold12pt7bBitmaps, 247 | (GFXglyph *)FreeMonoBold12pt7bGlyphs, 248 | 0x20, 0x7E, 24 }; 249 | 250 | // Approx. 2402 bytes 251 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 148 | 149 | 150 | Fork me on GitHub 151 | 152 |

Adafruit GFX Pixel font customiser

153 |

154 | Created by tchapi, major improvements by cmarrin and charno - Source code available on Github. 155 |

156 | 157 |
158 | 159 |
160 |
161 |
162 |
163 |
164 | 165 | 166 |
167 | 168 | 169 | 170 |
171 |
172 |
173 | 174 | 204 | 205 | 206 | 248 | 249 | 258 | 259 | 269 | 270 |
271 |
272 |
273 |
274 | 275 | 276 |
277 |
278 |
279 | 280 | 281 |
282 |
283 | 284 | 285 |
286 |
287 | 288 |
289 |
290 |
291 |
292 | 293 |
294 | 295 |

How to use it

296 |
297 |
298 |
299 |
Importing or creating a font:
300 | You can either: 301 |
    302 |
  • Extract a font by copying & pasting the existing font source (a .h file) in the textarea above
  • 303 |
  • Create a new font with a single character
  • 304 |
305 |
Adding characters:
306 |

You can easily add new characters to the font afterwards. Interval characters will be added automatically as disabled glyphs.

307 |
308 |
309 |
310 |
311 |
Editing glyphs:
312 | Glyphs can be edited individually. You can: 313 |
    314 |
  • Enable or disable the glyph
  • 315 |
  • Edit each pixel of the glyph
  • 316 |
  • Edit all values present in the GFXglyph data structure (See Adafruit documentation for more information)
  • 317 |
318 |
When exporting, you can either :
319 |
    320 |
  • Select a range of characters to include in the output. Characters outside of this range will not be included in the bitmap nor in the glyphs table.
  • 321 |
  • Disable individual characters. The disabled characters get all values set to 0. There still are entries for the disabled characters in the glyphs table, but no data in the bitmap for them — this keeps the characters in their correct places in the ASCII table.
  • 322 |
323 |
324 |
325 |
326 | 327 |
328 | 329 |

Glyphs

330 |

331 | 332 |
333 |
334 | Loading and extracting font ... 335 |
336 |
Please open or create a font first.
337 | 338 | 1282 | --------------------------------------------------------------------------------