Skip to content
Snippets Groups Projects
font.h 17.14 KiB
#pragma once

#define cords(width, offset, bytes) offset + bytes * 7 + (width - 1) * 49

// Example char
// const uint8_t char[] PROGMEM = {cords(x, y, b),  0b11111110, 0b11110111, 0b01011101, 0b11101111, 0b11100000};

const uint8_t font_notdef[] PROGMEM =       {cords(5, 0, 5), 0b11111110, 0b11110111, 0b01011101, 0b11101111, 0b11100000};
const uint8_t font_space[] PROGMEM =        {cords(1, 6, 1), 0b00000000};
const uint8_t font_exclamation[] PROGMEM =  {cords(1, 0, 1), 0b11110100};
const uint8_t font_quote[] PROGMEM =        {cords(3, 0, 1), 0b10110100};
const uint8_t font_hashtag[] PROGMEM =      {cords(5, 2, 3), 0b01010111, 0b11010101, 0b11110101};
const uint8_t font_promt[] PROGMEM =        {cords(5, 0, 5), 0b00100011, 0b10101000, 0b11100010, 0b10111000, 0b10000000};
const uint8_t font_percent[] PROGMEM =      {cords(5, 0, 5), 0b11101101, 0b01110100, 0b01000101, 0b11010110, 0b11100000};
const uint8_t font_octopus[] PROGMEM =      {cords(5, 0, 5), 0b01100100, 0b10100000, 0b11001001, 0b11001001, 0b10100000};
const uint8_t font_singlequote[] PROGMEM =  {cords(1, 0, 1), 0b11000000};
const uint8_t font_bracketO[] PROGMEM =     {cords(2, 0, 2), 0b01101010, 0b10100100};
const uint8_t font_bracketC[] PROGMEM =     {cords(2, 0, 2), 0b10010101, 0b01011000};
const uint8_t font_multiply[] PROGMEM =     {cords(3, 2, 2), 0b10101010, 0b10000000};
const uint8_t font_plus[] PROGMEM =         {cords(3, 2, 1), 0b01011101};
const uint8_t font_comma[] PROGMEM =        {cords(2, 4, 1), 0b11011001};
const uint8_t font_minus[] PROGMEM =        {cords(3, 3, 1), 0b11100000};
const uint8_t font_dot[] PROGMEM =          {cords(2, 4, 1), 0b11011000};
const uint8_t font_slash[] PROGMEM =        {cords(3, 0, 3), 0b00100101, 0b00100101, 0b00100000};
const uint8_t font_colon[] PROGMEM =        {cords(1, 2, 1), 0b10100000};
const uint8_t font_semicolon[] PROGMEM =    {cords(2, 2, 1), 0b01000110};
const uint8_t font_less[] PROGMEM =         {cords(3, 1, 2), 0b00101010, 0b00100010};
const uint8_t font_equal[] PROGMEM =        {cords(3, 2, 2), 0b11100011, 0b10000000};
const uint8_t font_greater[] PROGMEM =      {cords(3, 1, 2), 0b10001000, 0b10101000};
const uint8_t font_question[] PROGMEM =     {cords(3, 0, 3), 0b01010100, 0b10100100, 0b00010000};
const uint8_t font_mail[] PROGMEM =         {cords(5, 0, 5), 0b01110100, 0b01011000, 0b10100111, 0b01000101, 0b10000000};
const uint8_t font_sbracketO[] PROGMEM =    {cords(2, 0, 2), 0b11101010, 0b10101100};
const uint8_t font_bslash[] PROGMEM =       {cords(3, 0, 3), 0b10010001, 0b00100100, 0b01000000};
const uint8_t font_sbracketC[] PROGMEM =    {cords(2, 0, 2), 0b11010101, 0b01011100};
const uint8_t font_caret[] PROGMEM =        {cords(3, 0, 1), 0b01010100};
const uint8_t font_underscore[] PROGMEM =   {cords(3, 6, 1), 0b11100000};
const uint8_t font_grave[] PROGMEM =        {cords(2, 0, 1), 0b10010000};
const uint8_t font_fbracketO[] PROGMEM =    {cords(3, 0, 2), 0b00101001, 0b01000100, 0b1000100};
const uint8_t font_pipe[] PROGMEM =         {cords(1, 0, 1), 0b11111110};
const uint8_t font_fbracketC[] PROGMEM =    {cords(2, 0, 2), 0b10001001, 0b00010100, 0b1010000};
const uint8_t font_tilda[] PROGMEM =        {cords(5, 2, 2), 0b01000101, 0b01000100};
// Numbers
const uint8_t font_num0[] PROGMEM =         {cords(5, 0, 5), 0b01110100, 0b11101011, 0b01011010, 0b11100101, 0b11000000};
const uint8_t font_num1[] PROGMEM =         {cords(3, 0, 3), 0b01011001, 0b00100100, 0b10111000};
const uint8_t font_num2[] PROGMEM =         {cords(4, 0, 4), 0b01101001, 0b00010010, 0b01001000, 0b11110000};
const uint8_t font_num3[] PROGMEM =         {cords(4, 0, 4), 0b01101001, 0b00010110, 0b00011001, 0b01100000};
const uint8_t font_num4[] PROGMEM =         {cords(5, 0, 5), 0b00110010, 0b10010101, 0b00101111, 0b10001000, 0b01000000};
const uint8_t font_num5[] PROGMEM =         {cords(4, 0, 4), 0b11111000, 0b10001110, 0b00011001, 0b01100000};
const uint8_t font_num6[] PROGMEM =         {cords(4, 0, 4), 0b00110100, 0b10001110, 0b10011001, 0b01100000};
const uint8_t font_num7[] PROGMEM =         {cords(3, 0, 3), 0b11100100, 0b10010100, 0b10010000};
const uint8_t font_num8[] PROGMEM =         {cords(4, 0, 4), 0b01101001, 0b10010110, 0b10011001, 0b01100000};
const uint8_t font_num9[] PROGMEM =         {cords(4, 0, 4), 0b01101001, 0b10010111, 0b00010001, 0b01100000};
// English
const uint8_t font_A[] PROGMEM =            {cords(5, 0, 5), 0b01101101, 0b11000110, 0b00111111, 0b10001100, 0b01000000};
const uint8_t font_B[] PROGMEM =            {cords(5, 0, 5), 0b11100100, 0b10100101, 0b11101000, 0b11000111, 0b11000000};
const uint8_t font_C[] PROGMEM =            {cords(5, 0, 5), 0b01110100, 0b01100001, 0b00001000, 0b01000101, 0b11000000};
const uint8_t font_D[] PROGMEM =            {cords(5, 0, 5), 0b11100100, 0b10100011, 0b00011000, 0b11001011, 0b10000000};
const uint8_t font_E[] PROGMEM =            {cords(4, 0, 4), 0b11111000, 0b10001111, 0b10001000, 0b11110000};
const uint8_t font_F[] PROGMEM =            {cords(4, 0, 4), 0b11111000, 0b10001111, 0b10001000, 0b10000000};
const uint8_t font_G[] PROGMEM =            {cords(5, 0, 5), 0b01110100, 0b01100001, 0b00001001, 0b11000101, 0b11000000};
const uint8_t font_H[] PROGMEM =            {cords(4, 0, 4), 0b10011001, 0b10011111, 0b10011001, 0b10010000};
const uint8_t font_I[] PROGMEM =            {cords(1, 0, 1), 0b11111110};
const uint8_t font_J[] PROGMEM =            {cords(3, 0, 3), 0b00100100, 0b10010011, 0b01010000};
const uint8_t font_K[] PROGMEM =            {cords(4, 0, 4), 0b10011010, 0b10101100, 0b10101010, 0b10010000};
const uint8_t font_L[] PROGMEM =            {cords(4, 0, 4), 0b10001000, 0b10001000, 0b10001000, 0b11110000};
const uint8_t font_M[] PROGMEM =            {cords(5, 0, 5), 0b10001110, 0b11101011, 0b01011000, 0b11000110, 0b00100000};
const uint8_t font_N[] PROGMEM =            {cords(5, 0, 5), 0b10001110, 0b01101011, 0b01011010, 0b11001110, 0b00100000};
const uint8_t font_O[] PROGMEM =            {cords(4, 0, 4), 0b01101001, 0b10011001, 0b10011001, 0b01100000};
const uint8_t font_P[] PROGMEM =            {cords(4, 0, 4), 0b11101001, 0b10011110, 0b10001000, 0b10000000};
const uint8_t font_Q[] PROGMEM =            {cords(5, 0, 5), 0b01100100, 0b10100101, 0b00101001, 0b01011001, 0b10100000};
const uint8_t font_R[] PROGMEM =            {cords(4, 0, 4), 0b11101001, 0b10011110, 0b11001010, 0b10010000};
const uint8_t font_S[] PROGMEM =            {cords(4, 0, 4), 0b01101000, 0b10000110, 0b00010001, 0b01100000};
const uint8_t font_T[] PROGMEM =            {cords(5, 0, 5), 0b11111001, 0b00001000, 0b01000010, 0b00010000, 0b10000000};
const uint8_t font_U[] PROGMEM =            {cords(4, 0, 4), 0b10011001, 0b10011001, 0b10011001, 0b01100000};
const uint8_t font_V[] PROGMEM =            {cords(3, 0, 3), 0b10110110, 0b11011011, 0b01010000};
const uint8_t font_W[] PROGMEM =            {cords(5, 0, 5), 0b10001100, 0b01101011, 0b01011010, 0b11010101, 0b01000000};
const uint8_t font_X[] PROGMEM =            {cords(5, 0, 5), 0b10001010, 0b10010100, 0b01000101, 0b00101010, 0b00100000};
const uint8_t font_Y[] PROGMEM =            {cords(5, 0, 5), 0b10001010, 0b10010100, 0b01000010, 0b00010000, 0b10000000};
const uint8_t font_Z[] PROGMEM =            {cords(5, 0, 5), 0b11111000, 0b01000100, 0b01000100, 0b01000011, 0b11100000};
const uint8_t font_a[] PROGMEM =            {cords(4, 2, 3), 0b01100001, 0b01111001, 0b01110000};
const uint8_t font_b[] PROGMEM =            {cords(4, 0, 4), 0b10001000, 0b10001110, 0b10011001, 0b11100000};
const uint8_t font_c[] PROGMEM =            {cords(3, 2, 2), 0b01110010, 0b01000110};
const uint8_t font_d[] PROGMEM =            {cords(4, 0, 4), 0b00010001, 0b00010111, 0b10011001, 0b01110000};
const uint8_t font_e[] PROGMEM =            {cords(4, 2, 3), 0b01101001, 0b11101000, 0b01100000};
const uint8_t font_f[] PROGMEM =            {cords(4, 0, 4), 0b00100101, 0b01000100, 0b11100100, 0b01000000};
const uint8_t font_g[] PROGMEM =            {cords(4, 2, 3), 0b01111001, 0b01110001, 0b01100000};
const uint8_t font_h[] PROGMEM =            {cords(3, 0, 3), 0b10010010, 0b01101011, 0b01101000};
const uint8_t font_i[] PROGMEM =            {cords(1, 2, 1), 0b10111000};
const uint8_t font_j[] PROGMEM =            {cords(3, 2, 2), 0b00100000, 0b11010100};
const uint8_t font_k[] PROGMEM =            {cords(3, 0, 3), 0b10010010, 0b01011101, 0b01101000};
const uint8_t font_l[] PROGMEM =            {cords(2, 0, 2), 0b10101010, 0b10100100};
const uint8_t font_m[] PROGMEM =            {cords(5, 2, 4), 0b11110101, 0b01101011, 0b01011010, 0b10000000};
const uint8_t font_n[] PROGMEM =            {cords(4, 2, 3), 0b11101001, 0b10011001, 0b10010000};
const uint8_t font_o[] PROGMEM =            {cords(4, 2, 3), 0b01101001, 0b10011001, 0b01100000};
const uint8_t font_p[] PROGMEM =            {cords(4, 2, 3), 0b11101001, 0b11101000, 0b10000000};
const uint8_t font_q[] PROGMEM =            {cords(4, 2, 3), 0b01111001, 0b01110001, 0b00010000};
const uint8_t font_r[] PROGMEM =            {cords(4, 2, 3), 0b10101101, 0b10001000, 0b10000000};
const uint8_t font_s[] PROGMEM =            {cords(4, 2, 3), 0b01101000, 0b01100001, 0b01100000};
const uint8_t font_t[] PROGMEM =            {cords(4, 0, 4), 0b01000100, 0b11100100, 0b01000101, 0b00100000};
const uint8_t font_u[] PROGMEM =            {cords(4, 2, 3), 0b10011001, 0b10011001, 0b01110000};
const uint8_t font_v[] PROGMEM =            {cords(3, 2, 2), 0b10110110, 0b11010100};
const uint8_t font_w[] PROGMEM =            {cords(5, 2, 3), 0b10001100, 0b01101011, 0b01010101};
const uint8_t font_x[] PROGMEM =            {cords(3, 2, 2), 0b10110101, 0b01011010};
const uint8_t font_y[] PROGMEM =            {cords(3, 2, 2), 0b10110101, 0b10011100};
const uint8_t font_z[] PROGMEM =            {cords(3, 2, 2), 0b11100101, 0b01001110};

// Font dictionary                              Location            Char    Addres
const uint8_t* const font[] /*PROGMEM*/ =   {   font_notdef, //     NONE    NONE
                                                font_space, //              32
                                                font_exclamation, //!       33
                                                font_quote, //      "       34
                                                font_hashtag, //    #       35
                                                font_promt, //      $       36
                                                font_percent, //    %       37
                                                font_octopus, //    &       38
                                                font_singlequote, //'       39
                                                font_bracketO, //   (       40
                                                font_bracketC, //   )       41
                                                font_multiply, //   *       42
                                                font_plus, //       +       43
                                                font_comma, //      ,       44
                                                font_minus, //      -       45
                                                font_dot, //        .       46
                                                font_slash, //      /       47
                                                font_num0, //       0       48
                                                font_num1, //       1       49
                                                font_num2, //       2       50
                                                font_num3, //       3       51
                                                font_num4, //       4       52
                                                font_num5, //       5       53
                                                font_num6, //       6       54
                                                font_num7, //       7       55
                                                font_num8, //       8       56
                                                font_num9, //       9       57
                                                font_colon, //      :       58
                                                font_semicolon, //  ;       59
                                                font_less, //       <       60
                                                font_equal, //      =       61
                                                font_greater, //    >       62
                                                font_question, //   ?       63
                                                font_mail, //       @       64
                                                font_A, //          A       65
                                                font_B, //          B       66
                                                font_C, //          C       67
                                                font_D, //          D       68
                                                font_E, //          E       69
                                                font_F, //          F       70
                                                font_G, //          G       71
                                                font_H, //          H       72
                                                font_I, //          I       73
                                                font_J, //          J       74
                                                font_K, //          K       75
                                                font_L, //          L       76
                                                font_M, //          M       77
                                                font_N, //          N       78
                                                font_O, //          O       79
                                                font_P, //          P       80
                                                font_Q, //          Q       81
                                                font_R, //          R       82
                                                font_S, //          S       83
                                                font_T, //          T       84
                                                font_U, //          U       85
                                                font_V, //          V       86
                                                font_W, //          W       87
                                                font_X, //          X       88
                                                font_Y, //          Y       89
                                                font_Z, //          Z       90
                                                font_sbracketO, //  [       91
                                                font_bslash, //     \       92
                                                font_sbracketC, //  ]       93
                                                font_caret, //      ^       94
                                                font_underscore, // _       95
                                                font_grave, //      `       96
                                                font_a, //          a       97
                                                font_b, //          b       98
                                                font_c, //          c       99
                                                font_d, //          d       100
                                                font_e, //          e       101
                                                font_f, //          f       102
                                                font_g, //          g       103
                                                font_h, //          h       104
                                                font_i, //          i       105
                                                font_j, //          j       106
                                                font_k, //          k       107
                                                font_l, //          l       108
                                                font_m, //          m       100
                                                font_n, //          n       110
                                                font_o, //          o       111
                                                font_p, //          p       112
                                                font_q, //          q       113
                                                font_r, //          r       114
                                                font_s, //          s       115
                                                font_t, //          t       116
                                                font_u, //          u       117
                                                font_v, //          v       118
                                                font_w, //          w       119
                                                font_x, //          x       120
                                                font_y, //          y       121
                                                font_z, //          z       122
                                                font_fbracketO, //  {       123
                                                font_pipe, //       |       124
                                                font_fbracketC, //  }       125
                                                font_tilda //       ~       126
};