// Basic5FontOli Version 03. /* Manually created by OlivierFlying747-8 https://fredrik.hubbe.net/lightsaber/proffieos.html Copyright (c) 2016-2025 Fredrik Hubinette Copyright (c) 2025 OlivierFlying747-8 (Apologies for only adding my username, I would like to remain "anonymous" for the time being) With contributions by: Fredrik Hubinette aka profezzorn, In case of problems, you can find us at: https://crucible.hubbe.net where somebody will be there to help. Distributed under the terms of the GNU General Public License v3. https://www.gnu.org/licenses/ Smallest possible but still readable text font for OLED, each character is maximum 5 pixels tall x 5 pixels wide, but the majority of digits and alphabet characters are 5 tall x 3 wide. The idea is to have a text font with a minimalist flash-memory footprint for a text based menu system. Characters supported: - digits from 0 to 9 - latin alphabet (all caps only) from A to Z - limited puntuation & special characters (let me know if you need me to add more) */ const uint8_t Basic5pt7bChar0[] = { // 0x30 '0' 0b01110UL, 0b10001UL, 0b01110UL, }; const uint8_t Basic5pt7bChar1[] = { // 0x31 '1' 0b10010UL, 0b11111UL, 0b10000UL, }; const uint8_t Basic5pt7bChar2[] = { // 0x32 '2' 0b10010UL, 0b11001UL, 0b10111UL, }; const uint8_t Basic5pt7bChar3[] = { // 0x33 '3' 0b10101UL, 0b10101UL, 0b01010UL, }; const uint8_t Basic5pt7bChar4[] = { // 0x34 '4' 0b00111UL, 0b00100UL, 0b11111UL, }; const uint8_t Basic5pt7bChar5[] = { // 0x35 '5' 0b10111UL, 0b10101UL, 0b01001UL, }; const uint8_t Basic5pt7bChar6[] = { // 0x36 '6' 0b11110UL, 0b10101UL, 0b11101UL, }; const uint8_t Basic5pt7bChar7[] = { // 0x37 '7' 0b11001UL, 0b00101UL, 0b00011UL, }; const uint8_t Basic5pt7bChar8[] = { // 0x38 '8' 0b11111UL, 0b10101UL, 0b11111UL, }; const uint8_t Basic5pt7bChar9[] = { // 0x39 '9' 0b10111UL, 0b10101UL, 0b11111UL, }; const uint8_t Basic5pt7bChar10[] = { // 0x41 'A' 0b11110UL, 0b00101UL, 0b11110UL, }; const uint8_t Basic5pt7bChar11[] = { // 0x42 'B' 0b11111UL, 0b10101UL, 0b01010UL, }; const uint8_t Basic5pt7bChar12[] = { // 0x43 'C' 0b01110UL, 0b10001UL, 0b10001UL, }; const uint8_t Basic5pt7bChar13[] = { // 0x44 'D' 0b11111UL, 0b10001UL, 0b01110UL, }; const uint8_t Basic5pt7bChar14[] = { // 0x45 'E' 0b11111UL, 0b10101UL, 0b10101UL, }; const uint8_t Basic5pt7bChar15[] = { // 0x46 'F' 0b11111UL, 0b00101UL, 0b00001UL, }; const uint8_t Basic5pt7bChar16[] = { // 0x47 'G' 0b01110UL, 0b10001UL, 0b10101UL, 0b01101UL, }; const uint8_t Basic5pt7bChar17[] = { // 0x48 'H' 0b11111UL, 0b00100UL, 0b11111UL, }; const uint8_t Basic5pt7bChar18[] = { // 0x49 'I' 0b10001UL, 0b11111UL, 0b10001UL, }; const uint8_t Basic5pt7bChar19[] = { // 0x4A 'J' 0b10001UL, 0b10001UL, 0b01111UL, }; const uint8_t Basic5pt7bChar20[] = { // 0x4B 'K' 0b11111UL, 0b00100UL, 0b01010UL, 0b10001UL, }; const uint8_t Basic5pt7bChar21[] = { // 0x4C 'L' 0b11111UL, 0b10000UL, 0b10000UL, }; const uint8_t Basic5pt7bChar22[] = { // 0x4D 'M' 0b11111UL, 0b00010UL, 0b00100UL, 0b00010UL, 0b11111UL, }; const uint8_t Basic5pt7bChar23[] = { // 0x4E 'N' 0b11111UL, 0b00010UL, 0b00100UL, 0b11111UL, }; const uint8_t Basic5pt7bChar24[] = { // 0x4F 'O' 0b01110UL, 0b10001UL, 0b10001UL, 0b01110UL, }; const uint8_t Basic5pt7bChar25[] = { // 0x50 'P' 0b11111UL, 0b00101UL, 0b00010UL, }; const uint8_t Basic5pt7bChar26[] = { // 0x51 'Q' 0b01110UL, 0b10001UL, 0b10001UL, 0b01110UL, 0b10000UL, }; const uint8_t Basic5pt7bChar27[] = { // 0x52 'R' 0b11111UL, 0b00101UL, 0b11010UL, }; const uint8_t Basic5pt7bChar28[] = { // 0x53 'S' 0b10010UL, 0b10101UL, 0b01001UL, }; const uint8_t Basic5pt7bChar29[] = { // 0x54 'T' 0b00001UL, 0b11111UL, 0b00001UL, }; const uint8_t Basic5pt7bChar30[] = { // 0x55 'U' 0b01111UL, 0b10000UL, 0b10000UL, 0b01111UL, }; const uint8_t Basic5pt7bChar31[] = { // 0x56 'V' 0b01111UL, 0b10000UL, 0b01111UL, }; const uint8_t Basic5pt7bChar32[] = { // 0x57 'W' 0b01111UL, 0b10000UL, 0b01111UL, 0b10000UL, 0b01111UL, }; const uint8_t Basic5pt7bChar33[] = { // 0x58 'X' 0b11011UL, 0b00100UL, 0b11011UL, }; const uint8_t Basic5pt7bChar34[] = { // 0x59 'Y' 0b00011UL, 0b11100UL, 0b00011UL, }; const uint8_t Basic5pt7bChar35[] = { // 0x5A 'Z' 0b11001UL, 0b10101UL, 0b10011UL, }; const uint8_t Basic5pt7bChar36[] = { // 0x20 ' ' (space) 0b0UL, }; const uint8_t Basic5pt7bChar37[] = { // 0x21 '!' 0b10111UL, }; const uint8_t Basic5pt7bChar38[] = { // 0x2B '+' 0b010UL, 0b111UL, 0b010UL, }; const uint8_t Basic5pt7bChar39[] = { // 0x2C ',' 0b001UL, 0b111UL, }; const uint8_t Basic5pt7bChar40[] = { // 0x2D '-' 0b1UL, 0b1UL, 0b1UL, }; const uint8_t Basic5pt7bChar41[] = { // 0x2E '.' 0b11UL, }; const uint8_t Basic5pt7bChar42[] = { // 0x2F '/' 0b11000UL, 0b00100UL, 0b00011UL, }; const uint8_t Basic5pt7bChar43[] = { // 0x3A ':' 0b101UL, }; const Glyph Basic5pt7bGlyphs[] = { { 5, 3, -4, GLYPHDATA(Basic5pt7bChar0) }, // 0x30 '0' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar1) }, // 0x31 '1' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar2) }, // 0x32 '2' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar3) }, // 0x33 '3' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar4) }, // 0x34 '4' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar5) }, // 0x35 '5' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar6) }, // 0x36 '6' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar7) }, // 0x37 '7' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar8) }, // 0x38 '8' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar9) }, // 0x39 '9' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar10) }, // 0x41 'A', 0x61 'a' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar11) }, // 0x42 'B', 0x62 'b' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar12) }, // 0x43 'C', 0x63 'c' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar13) }, // 0x44 'D', 0x64 'd' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar14) }, // 0x45 'E', 0x65 'e' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar15) }, // 0x46 'F', 0x66 'f' { 5, 4, -4, GLYPHDATA(Basic5pt7bChar16) }, // 0x47 'G', 0x67 'g' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar17) }, // 0x48 'H', 0x68 'h' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar18) }, // 0x49 'I', 0x69 'i' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar19) }, // 0x4A 'J', 0x6A 'j' { 5, 4, -4, GLYPHDATA(Basic5pt7bChar20) }, // 0x4B 'K', 0x6B 'k' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar21) }, // 0x4C 'L', 0x6C 'l' { 5, 5, -4, GLYPHDATA(Basic5pt7bChar22) }, // 0x4D 'M', 0x6D 'm' { 5, 4, -4, GLYPHDATA(Basic5pt7bChar23) }, // 0x4E 'N', 0x6E 'n' { 5, 4, -4, GLYPHDATA(Basic5pt7bChar24) }, // 0x4F 'O', 0x6F 'o' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar25) }, // 0x50 'P', 0x70 'p' { 5, 5, -4, GLYPHDATA(Basic5pt7bChar26) }, // 0x51 'Q', 0x71 'q' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar27) }, // 0x52 'R', 0x72 'r' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar28) }, // 0x53 'S', 0x73 's' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar29) }, // 0x54 'T', 0x74 't' { 5, 4, -4, GLYPHDATA(Basic5pt7bChar30) }, // 0x55 'U', 0x75 'u' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar31) }, // 0x56 'V', 0x76 'v' { 5, 5, -4, GLYPHDATA(Basic5pt7bChar32) }, // 0x57 'W', 0x77 'w' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar33) }, // 0x58 'X', 0x78 'x' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar34) }, // 0x59 'Y', 0x79 'y' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar35) }, // 0x5A 'Z', 0x7A 'z' { 1, 1, -4, GLYPHDATA(Basic5pt7bChar36) }, // 0x20 ' ' (space) { 5, 1, -4, GLYPHDATA(Basic5pt7bChar37) }, // 0x21 '!' { 3, 3, -3, GLYPHDATA(Basic5pt7bChar38) }, // 0x2B '+' { 2, 1, -4, GLYPHDATA(Basic5pt7bChar39) }, // 0x2C ',' { 1, 3, -3, GLYPHDATA(Basic5pt7bChar40) }, // 0x2D '-' { 1, 1, -4, GLYPHDATA(Basic5pt7bChar41) }, // 0x2E '.' { 5, 3, -4, GLYPHDATA(Basic5pt7bChar42) }, // 0x2F '/' { 3, 1, -3, GLYPHDATA(Basic5pt7bChar43) }, // 0x3A ':' };