// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later WITH BSD-2-Clause #include "progmem.h" /** * QMK 6x8 Font for LCD and OLED displays * * Derived from the first half of the Adafruit GFX Library font: * https://github.com/adafruit/Adafruit-GFX-Library * * The first 128 characters match that of code page 437, the character set used by the original IBM PC, which includes all printable ASCII characters. * Each byte represents a column of 8 pixels, with the least significant bit being the top of the glyph. * * A large 21x3 character QMK Firmware logo is encoded from 0x80-0x94, 0xA0-0xB4, and 0xC0-0xD4. * 2x2 character OS logos for Apple, Windows, Linux and Android are encoded from 0x95-0x9C and 0xB5-0xBC. */ static const unsigned char font[] PROGMEM = { 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, // 0x00 NUL / Ψ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, // 0x01 SOH / ☺︎ 0xC1, 0x94, 0xB0, 0x94, 0xC1, 0x00, // 0x02 STX / ☻ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, // 0x03 ETX / ♥︎ 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, // 0x04 EOT / ♦︎ 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, // 0x05 ENQ / ♣︎ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, // 0x06 ACK / ♠︎ 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, // 0x07 BEL / • 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, // 0x08 BS / ◘ 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, // 0x09 HT / ○ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, // 0x0A LF / ◙ 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, // 0x0B VT / ♂︎ 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, // 0x0C FF / ♀︎ 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, // 0x0D CR / ♪ 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, // 0x0E SO / ♫ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, // 0x0F SI / ☼ 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, // 0x10 DLE / ► 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, // 0x11 DC1 / ◄ 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, // 0x12 DC2 / ↕︎ 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, // 0x13 DC3 / ‼︎ 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, // 0x14 DC4 / ¶ 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, // 0x15 NAK / § 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // 0x16 SYN / ▬ 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, // 0x17 ETB / ↨ 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, // 0x18 CAN / ↑ 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, // 0x19 EM / ↓ 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, // 0x1A SUB / → 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, // 0x1B ESC / ← 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, // 0x1C FS / ∟ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D GS / ↔︎ 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E RS / ▲ 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F US / ▼ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 Space 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 ! 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 " 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, // 0x23 # 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, // 0x24 $ 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, // 0x25 % 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, // 0x26 & 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, // 0x27 ' 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, // 0x28 ( 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, // 0x29 ) 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, // 0x2A * 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, // 0x2B + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, // 0x2C , 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // 0x2D - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // 0x2E . 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // 0x2F / 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, // 0x30 0 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, // 0x31 1 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, // 0x32 2 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, // 0x33 3 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, // 0x34 4 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, // 0x35 5 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, // 0x36 6 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, // 0x37 7 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x38 8 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, // 0x39 9 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, // 0x3A : 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, // 0x3B ; 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x3C < 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, // 0x3D = 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, // 0x3E > 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, // 0x3F ? 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, // 0x40 @ 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, // 0x41 A 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x42 B 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, // 0x43 C 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x44 D 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, // 0x45 E 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, // 0x46 F 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, // 0x47 G 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, // 0x48 H 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, // 0x49 I 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, // 0x4A J 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x4B K 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x4C L 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, // 0x4D M 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, // 0x4E N 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x4F O 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, // 0x50 P 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, // 0x51 Q 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, // 0x52 R 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, // 0x53 S 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, // 0x54 T 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, // 0x55 U 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, // 0x56 V 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, // 0x57 W 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, // 0x58 X 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, // 0x59 Y 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, // 0x5A Z 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, // 0x5B [ 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, // 0x5C Backslash 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x5D ] 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, // 0x5E ^ 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x5F _ 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, // 0x60 ` 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, // 0x61 a 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, // 0x62 b 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, // 0x63 c 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, // 0x64 d 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, // 0x65 e 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, // 0x66 f 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, // 0x67 g 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x68 h 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, // 0x69 i 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, // 0x6A j 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, // 0x6B k 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, // 0x6C l 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, // 0x6D m 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x6E n 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // 0x6F o 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, // 0x70 p 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, // 0x71 q 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, // 0x72 r 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, // 0x73 s 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, // 0x74 t 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, // 0x75 u 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, // 0x76 v 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, // 0x77 w 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // 0x78 x 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, // 0x79 y 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, // 0x7A z 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, // 0x7B { 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, // 0x7C | 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D } 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E ~ 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F DEL / ⌂ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 QMK Logo Top 1 0x00, 0x00, 0x80, 0x80, 0xE0, 0xF0, // 0x81 QMK Logo Top 2 0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0x7C, // 0x82 QMK Logo Top 3 0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0xF0, // 0x83 QMK Logo Top 4 0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x84 QMK Logo Top 5 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x85 QMK Logo Top 6 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x86 QMK Logo Top 7 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, // 0x87 QMK Logo Top 8 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x88 QMK Logo Top 9 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, // 0x89 QMK Logo Top 10 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, // 0x8A QMK Logo Top 11 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x8B QMK Logo Top 12 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8C QMK Logo Top 13 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8D QMK Logo Top 14 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8E QMK Logo Top 15 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8F QMK Logo Top 16 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x90 QMK Logo Top 17 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x91 QMK Logo Top 18 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x92 QMK Logo Top 19 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x93 QMK Logo Top 20 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x94 QMK Logo Top 21 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E, // 0x95 Apple Logo TL 0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, // 0x96 Apple Logo TR 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x97 Windows Logo TL 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x98 Windows Logo TR 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, // 0x99 Linux Logo TL 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, // 0x9A Linux Logo TR 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, // 0x9B Android Logo TL 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, // 0x9C Android Logo TR 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9D 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9E 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9F 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xA0 QMK Logo Middle 1 0x00, 0x00, 0xAA, 0xAA, 0xFF, 0xFF, // 0xA1 QMK Logo Middle 2 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0x00, // 0xA2 QMK Logo Middle 3 0xDF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, // 0xA3 QMK Logo Middle 4 0xFF, 0xAA, 0xAA, 0x00, 0x00, 0x00, // 0xA4 QMK Logo Middle 5 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, // 0xA5 QMK Logo Middle 6 0xC1, 0xC1, 0xC1, 0x7F, 0x3E, 0x00, // 0xA6 QMK Logo Middle 7 0xFF, 0xFF, 0x0F, 0x3C, 0x78, 0x3C, // 0xA7 QMK Logo Middle 8 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, // 0xA8 QMK Logo Middle 9 0x1C, 0x3E, 0x77, 0xE3, 0xC1, 0x00, // 0xA9 QMK Logo Middle 10 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0xAA QMK Logo Middle 11 0x19, 0x19, 0x19, 0x00, 0xFD, 0xFD, // 0xAB QMK Logo Middle 12 0x00, 0xFE, 0xFC, 0x06, 0x06, 0x00, // 0xAC QMK Logo Middle 13 0xFE, 0xFC, 0x06, 0x06, 0xFC, 0xFC, // 0xAD QMK Logo Middle 14 0x06, 0x06, 0xFE, 0xFC, 0x00, 0x1E, // 0xAE QMK Logo Middle 15 0x7C, 0xE0, 0x78, 0x0C, 0x78, 0xE0, // 0xAF QMK Logo Middle 16 0x7C, 0x1E, 0x00, 0x64, 0xF6, 0x92, // 0xB0 QMK Logo Middle 17 0x92, 0x7E, 0xFC, 0x00, 0xFE, 0xFC, // 0xB1 QMK Logo Middle 18 0x06, 0x06, 0x00, 0x3C, 0x7E, 0xD2, // 0xB2 QMK Logo Middle 19 0xD2, 0xDE, 0x4C, 0x00, 0x00, 0x00, // 0xB3 QMK Logo Middle 20 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xB4 QMK Logo Middle 21 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, // 0xB5 Apple Logo BL 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, // 0xB6 Apple Logo BR 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB7 Windows Logo BL 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB8 Windows Logo BR 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, // 0xB9 Linux Logo BL 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, // 0xBA Linux Logo BR 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, // 0xBB Android Logo BL 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, // 0xBC Android Logo BR 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBD 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBF 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 QMK Logo Bottom 1 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, // 0xC1 QMK Logo Bottom 2 0x07, 0x1F, 0x07, 0x1F, 0x07, 0x1F, // 0xC2 QMK Logo Bottom 3 0x07, 0x1F, 0x07, 0x1F, 0x07, 0x07, // 0xC3 QMK Logo Bottom 4 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC4 QMK Logo Bottom 5 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC5 QMK Logo Bottom 6 0x00, 0x00, 0x01, 0x03, 0x02, 0x00, // 0xC6 QMK Logo Bottom 7 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC7 QMK Logo Bottom 8 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC8 QMK Logo Bottom 9 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC9 QMK Logo Bottom 10 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCA QMK Logo Bottom 11 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCB QMK Logo Bottom 12 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCC QMK Logo Bottom 13 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCD QMK Logo Bottom 14 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCE QMK Logo Bottom 15 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCF QMK Logo Bottom 16 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD0 QMK Logo Bottom 17 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD1 QMK Logo Bottom 18 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD2 QMK Logo Bottom 19 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD3 QMK Logo Bottom 10 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD4 QMK Logo Bottom 21 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD5 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD6 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD7 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD8 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD9 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDA 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDC 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDD 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDE 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // 0xDF };