// // Font data for Tahoma 8pt // // // Generated by The Dot Factory: // http://www.eran.io/the-dot-factory-an-lcd-font-and-image-generator/ // ///////////////////////////////////////////////////////////////////////////////////////////////////// // // Dot Factory Settings // // Flip/Rotate Padding Removal Line Wrap Descriptors // [X] Flip X Height(Y): None (O) At column [X] Generate descriptor array // [ ] Flip Y Width(X): Tightest ( ) At bitmap Char Width: In Bits // 90deg Char Height: In Bits // Font Height: In Bits // Comments Byte [ ] Multiple descriptor arrays // [X] Variable Name Bit layout: RowMajor // [X] BMP visualise [#] Order: MSBfirst Create new when exceeds [80] // [X] Char descriptor Format: Hex // Style: Cpp Leading: 0x Image width: In Bits // Image height: In Bits // Variable name format // Bitmaps: const uint8_t PROGMEM {0}Bitmaps Space char generation // Char Info: const FONT_CHAR_INFO PROGMEM {0}Descriptors [ ] Generate space bitmap // Font Info: const FONT_INFO {0}FontInfo [2] pixels for space char // Width: const uint8_t {0}Width // Height: const uint8_t {0}Height // ///////////////////////////////////////////////////////////////////////////////////////////////////// #include "Tahoma8.h" // Character bitmaps for Tahoma 8pt const uint8_t PROGMEM tahoma_8ptBitmaps [] = { // @0 ' ' (2 pixels wide) 0x00, 0x00, // 0x00, 0x00, // // @4 '!' (1 pixels wide) 0x1F, 0xA0, // ###### # // @6 '"' (3 pixels wide) 0x38, 0x00, // ### 0x00, 0x00, // 0x38, 0x00, // ### // @12 '#' (7 pixels wide) 0x00, 0x80, // # 0x04, 0xE0, // # ### 0x07, 0x80, // #### 0x1C, 0xE0, // ### ### 0x07, 0x80, // #### 0x1C, 0x80, // ### # 0x04, 0x00, // # // @26 '$' (5 pixels wide) 0x06, 0x20, // ## # 0x09, 0x20, // # # # 0x3F, 0xF8, // ########### 0x09, 0x20, // # # # 0x08, 0xC0, // # ## // @36 '%' (10 pixels wide) 0x0C, 0x00, // ## 0x12, 0x00, // # # 0x12, 0x00, // # # 0x0C, 0x60, // ## ## 0x01, 0x80, // ## 0x06, 0x00, // ## 0x18, 0xC0, // ## ## 0x01, 0x20, // # # 0x01, 0x20, // # # 0x00, 0xC0, // ## // @56 '&' (7 pixels wide) 0x0D, 0xC0, // ## ### 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x0D, 0x20, // ## # # 0x00, 0xC0, // ## 0x03, 0x40, // ## # 0x00, 0x20, // # // @70 ''' (1 pixels wide) 0x38, 0x00, // ### // @72 '(' (3 pixels wide) 0x07, 0xC0, // ##### 0x18, 0x30, // ## ## 0x20, 0x08, // # # // @78 ')' (3 pixels wide) 0x20, 0x08, // # # 0x18, 0x30, // ## ## 0x07, 0xC0, // ##### // @84 '*' (5 pixels wide) 0x14, 0x00, // # # 0x08, 0x00, // # 0x3E, 0x00, // ##### 0x08, 0x00, // # 0x14, 0x00, // # # // @94 '+' (7 pixels wide) 0x01, 0x00, // # 0x01, 0x00, // # 0x01, 0x00, // # 0x0F, 0xE0, // ####### 0x01, 0x00, // # 0x01, 0x00, // # 0x01, 0x00, // # // @108 ',' (2 pixels wide) 0x00, 0x08, // # 0x00, 0x70, // ### // @112 '-' (3 pixels wide) 0x01, 0x00, // # 0x01, 0x00, // # 0x01, 0x00, // # // @118 '.' (1 pixels wide) 0x00, 0x60, // ## // @120 '/' (3 pixels wide) 0x00, 0x38, // ### 0x07, 0xC0, // ##### 0x38, 0x00, // ### // @126 '0' (5 pixels wide) 0x0F, 0xC0, // ###### 0x10, 0x20, // # # 0x10, 0x20, // # # 0x10, 0x20, // # # 0x0F, 0xC0, // ###### // @136 '1' (3 pixels wide) 0x08, 0x20, // # # 0x1F, 0xE0, // ######## 0x00, 0x20, // # // @142 '2' (5 pixels wide) 0x08, 0x60, // # ## 0x10, 0xA0, // # # # 0x11, 0x20, // # # # 0x12, 0x20, // # # # 0x0C, 0x20, // ## # // @152 '3' (5 pixels wide) 0x08, 0x40, // # # 0x10, 0x20, // # # 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x0D, 0xC0, // ## ### // @162 '4' (5 pixels wide) 0x03, 0x00, // ## 0x05, 0x00, // # # 0x09, 0x00, // # # 0x1F, 0xE0, // ######## 0x01, 0x00, // # // @172 '5' (5 pixels wide) 0x1E, 0x40, // #### # 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x11, 0xC0, // # ### // @182 '6' (5 pixels wide) 0x07, 0xC0, // ##### 0x0A, 0x20, // # # # 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x01, 0xC0, // ### // @192 '7' (5 pixels wide) 0x10, 0x00, // # 0x10, 0x60, // # ## 0x11, 0x80, // # ## 0x16, 0x00, // # ## 0x18, 0x00, // ## // @202 '8' (5 pixels wide) 0x0D, 0xC0, // ## ### 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x0D, 0xC0, // ## ### // @212 '9' (5 pixels wide) 0x0E, 0x00, // ### 0x11, 0x20, // # # # 0x11, 0x20, // # # # 0x11, 0x40, // # # # 0x0F, 0x80, // ##### // @222 ':' (1 pixels wide) 0x06, 0x60, // ## ## // @224 ';' (2 pixels wide) 0x00, 0x08, // # 0x06, 0x70, // ## ### // @228 '<' (6 pixels wide) 0x01, 0x00, // # 0x02, 0x80, // # # 0x02, 0x80, // # # 0x04, 0x40, // # # 0x04, 0x40, // # # 0x08, 0x20, // # # // @240 '=' (7 pixels wide) 0x02, 0x80, // # # 0x02, 0x80, // # # 0x02, 0x80, // # # 0x02, 0x80, // # # 0x02, 0x80, // # # 0x02, 0x80, // # # 0x02, 0x80, // # # // @254 '>' (6 pixels wide) 0x08, 0x20, // # # 0x04, 0x40, // # # 0x04, 0x40, // # # 0x02, 0x80, // # # 0x02, 0x80, // # # 0x01, 0x00, // # // @266 '?' (4 pixels wide) 0x10, 0x00, // # 0x11, 0xA0, // # ## # 0x12, 0x00, // # # 0x0C, 0x00, // ## // @274 '@' (9 pixels wide) 0x07, 0xC0, // ##### 0x08, 0x20, // # # 0x13, 0x90, // # ### # 0x14, 0x50, // # # # # 0x14, 0x50, // # # # # 0x17, 0xD0, // # ##### # 0x10, 0x40, // # # 0x08, 0x40, // # # 0x07, 0x80, // #### // @292 'A' (6 pixels wide) 0x00, 0xE0, // ### 0x07, 0x80, // #### 0x18, 0x80, // ## # 0x18, 0x80, // ## # 0x07, 0x80, // #### 0x00, 0xE0, // ### // @304 'B' (5 pixels wide) 0x1F, 0xE0, // ######## 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x0D, 0xC0, // ## ### // @314 'C' (6 pixels wide) 0x07, 0x80, // #### 0x08, 0x40, // # # 0x10, 0x20, // # # 0x10, 0x20, // # # 0x10, 0x20, // # # 0x10, 0x20, // # # // @326 'D' (6 pixels wide) 0x1F, 0xE0, // ######## 0x10, 0x20, // # # 0x10, 0x20, // # # 0x10, 0x20, // # # 0x08, 0x40, // # # 0x07, 0x80, // #### // @338 'E' (5 pixels wide) 0x1F, 0xE0, // ######## 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x10, 0x20, // # # // @348 'F' (5 pixels wide) 0x1F, 0xE0, // ######## 0x12, 0x00, // # # 0x12, 0x00, // # # 0x12, 0x00, // # # 0x12, 0x00, // # # // @358 'G' (6 pixels wide) 0x07, 0x80, // #### 0x08, 0x40, // # # 0x10, 0x20, // # # 0x11, 0x20, // # # # 0x11, 0x20, // # # # 0x11, 0xE0, // # #### // @370 'H' (6 pixels wide) 0x1F, 0xE0, // ######## 0x02, 0x00, // # 0x02, 0x00, // # 0x02, 0x00, // # 0x02, 0x00, // # 0x1F, 0xE0, // ######## // @382 'I' (3 pixels wide) 0x10, 0x20, // # # 0x1F, 0xE0, // ######## 0x10, 0x20, // # # // @388 'J' (4 pixels wide) 0x00, 0x20, // # 0x10, 0x20, // # # 0x10, 0x20, // # # 0x1F, 0xC0, // ####### // @396 'K' (5 pixels wide) 0x1F, 0xE0, // ######## 0x03, 0x00, // ## 0x04, 0x80, // # # 0x08, 0x40, // # # 0x10, 0x20, // # # // @406 'L' (4 pixels wide) 0x1F, 0xE0, // ######## 0x00, 0x20, // # 0x00, 0x20, // # 0x00, 0x20, // # // @414 'M' (7 pixels wide) 0x1F, 0xE0, // ######## 0x18, 0x00, // ## 0x06, 0x00, // ## 0x01, 0x80, // ## 0x06, 0x00, // ## 0x18, 0x00, // ## 0x1F, 0xE0, // ######## // @428 'N' (6 pixels wide) 0x1F, 0xE0, // ######## 0x18, 0x00, // ## 0x06, 0x00, // ## 0x01, 0x80, // ## 0x00, 0x60, // ## 0x1F, 0xE0, // ######## // @440 'O' (7 pixels wide) 0x07, 0x80, // #### 0x08, 0x40, // # # 0x10, 0x20, // # # 0x10, 0x20, // # # 0x10, 0x20, // # # 0x08, 0x40, // # # 0x07, 0x80, // #### // @454 'P' (5 pixels wide) 0x1F, 0xE0, // ######## 0x11, 0x00, // # # 0x11, 0x00, // # # 0x11, 0x00, // # # 0x0E, 0x00, // ### // @464 'Q' (7 pixels wide) 0x07, 0x80, // #### 0x08, 0x40, // # # 0x10, 0x20, // # # 0x10, 0x20, // # # 0x10, 0x30, // # ## 0x08, 0x48, // # # # 0x07, 0x88, // #### # // @478 'R' (6 pixels wide) 0x1F, 0xE0, // ######## 0x11, 0x00, // # # 0x11, 0x00, // # # 0x11, 0x80, // # ## 0x0E, 0x40, // ### # 0x00, 0x20, // # // @490 'S' (5 pixels wide) 0x0C, 0x20, // ## # 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x12, 0x20, // # # # 0x11, 0xC0, // # ### // @500 'T' (5 pixels wide) 0x10, 0x00, // # 0x10, 0x00, // # 0x1F, 0xE0, // ######## 0x10, 0x00, // # 0x10, 0x00, // # // @510 'U' (6 pixels wide) 0x1F, 0xC0, // ####### 0x00, 0x20, // # 0x00, 0x20, // # 0x00, 0x20, // # 0x00, 0x20, // # 0x1F, 0xC0, // ####### // @522 'V' (5 pixels wide) 0x1C, 0x00, // ### 0x03, 0x80, // ### 0x00, 0x60, // ## 0x03, 0x80, // ### 0x1C, 0x00, // ### // @532 'W' (9 pixels wide) 0x1C, 0x00, // ### 0x03, 0x80, // ### 0x00, 0x60, // ## 0x03, 0x80, // ### 0x1C, 0x00, // ### 0x03, 0x80, // ### 0x00, 0x60, // ## 0x03, 0x80, // ### 0x1C, 0x00, // ### // @550 'X' (5 pixels wide) 0x18, 0x60, // ## ## 0x04, 0x80, // # # 0x03, 0x00, // ## 0x04, 0x80, // # # 0x18, 0x60, // ## ## // @560 'Y' (5 pixels wide) 0x18, 0x00, // ## 0x06, 0x00, // ## 0x01, 0xE0, // #### 0x06, 0x00, // ## 0x18, 0x00, // ## // @570 'Z' (5 pixels wide) 0x10, 0x60, // # ## 0x10, 0xA0, // # # # 0x13, 0x20, // # ## # 0x14, 0x20, // # # # 0x18, 0x20, // ## # // @580 '[' (3 pixels wide) 0x3F, 0xF8, // ########### 0x20, 0x08, // # # 0x20, 0x08, // # # // @586 '\' (3 pixels wide) 0x38, 0x00, // ### 0x07, 0xC0, // ##### 0x00, 0x38, // ### // @592 ']' (3 pixels wide) 0x20, 0x08, // # # 0x20, 0x08, // # # 0x3F, 0xF8, // ########### // @598 '^' (7 pixels wide) 0x02, 0x00, // # 0x04, 0x00, // # 0x08, 0x00, // # 0x10, 0x00, // # 0x08, 0x00, // # 0x04, 0x00, // # 0x02, 0x00, // # // @612 '_' (6 pixels wide) 0x00, 0x08, // # 0x00, 0x08, // # 0x00, 0x08, // # 0x00, 0x08, // # 0x00, 0x08, // # 0x00, 0x08, // # // @624 '`' (2 pixels wide) 0x20, 0x00, // # 0x10, 0x00, // # // @628 'a' (5 pixels wide) 0x00, 0xC0, // ## 0x05, 0x20, // # # # 0x05, 0x20, // # # # 0x05, 0x20, // # # # 0x03, 0xE0, // ##### // @638 'b' (5 pixels wide) 0x3F, 0xE0, // ######### 0x04, 0x20, // # # 0x04, 0x20, // # # 0x04, 0x20, // # # 0x03, 0xC0, // #### // @648 'c' (4 pixels wide) 0x03, 0xC0, // #### 0x04, 0x20, // # # 0x04, 0x20, // # # 0x04, 0x20, // # # // @656 'd' (5 pixels wide) 0x03, 0xC0, // #### 0x04, 0x20, // # # 0x04, 0x20, // # # 0x04, 0x20, // # # 0x3F, 0xE0, // ######### // @666 'e' (5 pixels wide) 0x03, 0xC0, // #### 0x05, 0x20, // # # # 0x05, 0x20, // # # # 0x05, 0x20, // # # # 0x03, 0x40, // ## # // @676 'f' (3 pixels wide) 0x1F, 0xE0, // ######## 0x24, 0x00, // # # 0x24, 0x00, // # # // @682 'g' (5 pixels wide) 0x03, 0xC0, // #### 0x04, 0x28, // # # # 0x04, 0x28, // # # # 0x04, 0x28, // # # # 0x07, 0xF0, // ####### // @692 'h' (5 pixels wide) 0x3F, 0xE0, // ######### 0x04, 0x00, // # 0x04, 0x00, // # 0x04, 0x00, // # 0x03, 0xE0, // ##### // @702 'i' (1 pixels wide) 0x17, 0xE0, // # ###### // @704 'j' (2 pixels wide) 0x04, 0x08, // # # 0x17, 0xF0, // # ####### // @708 'k' (5 pixels wide) 0x3F, 0xE0, // ######### 0x01, 0x00, // # 0x02, 0x80, // # # 0x04, 0x40, // # # 0x00, 0x20, // # // @718 'l' (1 pixels wide) 0x3F, 0xE0, // ######### // @720 'm' (7 pixels wide) 0x07, 0xE0, // ###### 0x04, 0x00, // # 0x04, 0x00, // # 0x03, 0xE0, // ##### 0x04, 0x00, // # 0x04, 0x00, // # 0x03, 0xE0, // ##### // @734 'n' (5 pixels wide) 0x07, 0xE0, // ###### 0x04, 0x00, // # 0x04, 0x00, // # 0x04, 0x00, // # 0x03, 0xE0, // ##### // @744 'o' (5 pixels wide) 0x03, 0xC0, // #### 0x04, 0x20, // # # 0x04, 0x20, // # # 0x04, 0x20, // # # 0x03, 0xC0, // #### // @754 'p' (5 pixels wide) 0x07, 0xF8, // ######## 0x04, 0x20, // # # 0x04, 0x20, // # # 0x04, 0x20, // # # 0x03, 0xC0, // #### // @764 'q' (5 pixels wide) 0x03, 0xC0, // #### 0x04, 0x20, // # # 0x04, 0x20, // # # 0x04, 0x20, // # # 0x07, 0xF8, // ######## // @774 'r' (3 pixels wide) 0x07, 0xE0, // ###### 0x02, 0x00, // # 0x04, 0x00, // # // @780 's' (4 pixels wide) 0x03, 0x20, // ## # 0x05, 0x20, // # # # 0x04, 0xA0, // # # # 0x04, 0xC0, // # ## // @788 't' (3 pixels wide) 0x1F, 0xC0, // ####### 0x04, 0x20, // # # 0x04, 0x20, // # # // @794 'u' (5 pixels wide) 0x07, 0xC0, // ##### 0x00, 0x20, // # 0x00, 0x20, // # 0x00, 0x20, // # 0x07, 0xE0, // ###### // @804 'v' (5 pixels wide) 0x06, 0x00, // ## 0x01, 0x80, // ## 0x00, 0x60, // ## 0x01, 0x80, // ## 0x06, 0x00, // ## // @814 'w' (7 pixels wide) 0x07, 0x80, // #### 0x00, 0x60, // ## 0x01, 0x80, // ## 0x06, 0x00, // ## 0x01, 0x80, // ## 0x00, 0x60, // ## 0x07, 0x80, // #### // @828 'x' (5 pixels wide) 0x04, 0x20, // # # 0x02, 0x40, // # # 0x01, 0x80, // ## 0x02, 0x40, // # # 0x04, 0x20, // # # // @838 'y' (5 pixels wide) 0x06, 0x00, // ## 0x01, 0x98, // ## ## 0x00, 0x60, // ## 0x01, 0x80, // ## 0x06, 0x00, // ## // @848 'z' (4 pixels wide) 0x04, 0x60, // # ## 0x04, 0xA0, // # # # 0x05, 0x20, // # # # 0x06, 0x20, // ## # // @856 '{' (4 pixels wide) 0x01, 0x00, // # 0x01, 0x00, // # 0x1E, 0xF0, // #### #### 0x20, 0x08, // # # // @864 '|' (1 pixels wide) 0x3F, 0xF8, // ########### // @866 '}' (4 pixels wide) 0x20, 0x08, // # # 0x1E, 0xF0, // #### #### 0x01, 0x00, // # 0x01, 0x00, // # // @874 '~' (7 pixels wide) 0x01, 0x80, // ## 0x02, 0x00, // # 0x02, 0x00, // # 0x01, 0x00, // # 0x00, 0x80, // # 0x00, 0x80, // # 0x03, 0x00, // ## }; // Character descriptors for Tahoma 8pt // { [Char width in bits], [Char height in bits], [Offset into tahoma_8ptCharBitmaps in bytes] } const FONT_CHAR_INFO PROGMEM tahoma_8ptDescriptors[] = { {2, 13, 0}, // {1, 13, 4}, // ! {3, 13, 6}, // " {7, 13, 12}, // # {5, 13, 26}, // $ {10, 13, 36}, // % {7, 13, 56}, // & {1, 13, 70}, // ' {3, 13, 72}, // ( {3, 13, 78}, // ) {5, 13, 84}, // * {7, 13, 94}, // + {2, 13, 108}, // , {3, 13, 112}, // - {1, 13, 118}, // . {3, 13, 120}, // / {5, 13, 126}, // 0 {3, 13, 136}, // 1 {5, 13, 142}, // 2 {5, 13, 152}, // 3 {5, 13, 162}, // 4 {5, 13, 172}, // 5 {5, 13, 182}, // 6 {5, 13, 192}, // 7 {5, 13, 202}, // 8 {5, 13, 212}, // 9 {1, 13, 222}, // : {2, 13, 224}, // ; {6, 13, 228}, // < {7, 13, 240}, // = {6, 13, 254}, // > {4, 13, 266}, // ? {9, 13, 274}, // @ {6, 13, 292}, // A {5, 13, 304}, // B {6, 13, 314}, // C {6, 13, 326}, // D {5, 13, 338}, // E {5, 13, 348}, // F {6, 13, 358}, // G {6, 13, 370}, // H {3, 13, 382}, // I {4, 13, 388}, // J {5, 13, 396}, // K {4, 13, 406}, // L {7, 13, 414}, // M {6, 13, 428}, // N {7, 13, 440}, // O {5, 13, 454}, // P {7, 13, 464}, // Q {6, 13, 478}, // R {5, 13, 490}, // S {5, 13, 500}, // T {6, 13, 510}, // U {5, 13, 522}, // V {9, 13, 532}, // W {5, 13, 550}, // X {5, 13, 560}, // Y {5, 13, 570}, // Z {3, 13, 580}, // [ {3, 13, 586}, // \ . {3, 13, 592}, // ] {7, 13, 598}, // ^ {6, 13, 612}, // _ {2, 13, 624}, // ` {5, 13, 628}, // a {5, 13, 638}, // b {4, 13, 648}, // c {5, 13, 656}, // d {5, 13, 666}, // e {3, 13, 676}, // f {5, 13, 682}, // g {5, 13, 692}, // h {1, 13, 702}, // i {2, 13, 704}, // j {5, 13, 708}, // k {1, 13, 718}, // l {7, 13, 720}, // m {5, 13, 734}, // n {5, 13, 744}, // o {5, 13, 754}, // p {5, 13, 764}, // q {3, 13, 774}, // r {4, 13, 780}, // s {3, 13, 788}, // t {5, 13, 794}, // u {5, 13, 804}, // v {7, 13, 814}, // w {5, 13, 828}, // x {5, 13, 838}, // y {4, 13, 848}, // z {4, 13, 856}, // { {1, 13, 864}, // | {4, 13, 866}, // } {7, 13, 874}, // ~ }; // Font information for Tahoma 8pt const FONT_INFO tahoma_8ptFontInfo = { 13, // Character height ' ', // Start character '~', // End character 2, // Width, in pixels, of space character tahoma_8ptDescriptors, // Character descriptor array tahoma_8ptBitmaps, // Character bitmap array };