diff --git a/app/display/fonts/font_16x16.py b/app/display/fonts/font_16x16.py index c716db0..d486230 100644 --- a/app/display/fonts/font_16x16.py +++ b/app/display/fonts/font_16x16.py @@ -1,1762 +1,1892 @@ -# 16x16 Font - High resolution for LED matrix displays font_16x16 = { - # Uppercase Letters (A-Z) - 'A': [ - 0x0000, - 0x0000, - 0x0F00, - 0x1F80, - 0x3FC0, - 0x39C0, - 0x79E0, - 0x70E0, - 0x70E0, - 0x7FE0, - 0x7FE0, - 0x7FE0, - 0x70E0, - 0x70E0, - 0x70E0, - 0x0000, - ], - 'B': [ - 0x0000, - 0x0000, - 0x7F80, - 0x7FC0, - 0x71E0, - 0x70E0, - 0x71E0, - 0x7FC0, - 0x7FC0, - 0x71E0, - 0x70E0, - 0x70E0, - 0x71E0, - 0x7FC0, - 0x7F80, - 0x0000, - ], - 'C': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7070, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - 'D': [ - 0x0000, - 0x0000, - 0x7F00, - 0x7F80, - 0x73C0, - 0x71E0, - 0x70E0, - 0x70E0, - 0x70E0, - 0x70E0, - 0x71E0, - 0x73C0, - 0x7F80, - 0x7F00, - 0x0000, - 0x0000, - ], - 'E': [ - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x7000, - 0x7000, - 0x7000, - 0x7FE0, - 0x7FE0, - 0x7000, - 0x7000, - 0x7000, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - ], - 'F': [ - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x7000, - 0x7000, - 0x7000, - 0x7FE0, - 0x7FE0, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x0000, - 0x0000, - ], - 'G': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7070, - 0x7000, - 0x73E0, - 0x73E0, - 0x7070, - 0x7070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - 'H': [ - 0x0000, - 0x0000, - 0x70E0, - 0x70E0, - 0x70E0, - 0x70E0, - 0x70E0, - 0x7FE0, - 0x7FE0, - 0x70E0, - 0x70E0, - 0x70E0, - 0x70E0, - 0x70E0, - 0x0000, - 0x0000, - ], - 'I': [ - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - ], - 'J': [ - 0x0000, - 0x0000, - 0x07E0, - 0x07E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x70E0, - 0x70E0, - 0x70E0, - 0x79E0, - 0x3FC0, - 0x1F80, - 0x0000, - 0x0000, - ], - 'K': [ - 0x0000, - 0x0000, - 0x70E0, - 0x71E0, - 0x73C0, - 0x7780, - 0x7F00, - 0x7E00, - 0x7E00, - 0x7F00, - 0x7780, - 0x73C0, - 0x71E0, - 0x70E0, - 0x0000, - 0x0000, - ], - 'L': [ - 0x0000, - 0x0000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - ], - 'M': [ - 0x0000, - 0x0000, - 0x7070, - 0x78F0, - 0x7CF0, - 0x7EF0, - 0x77F0, - 0x73F0, - 0x71F0, - 0x70F0, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x0000, - 0x0000, - ], - 'N': [ - 0x0000, - 0x0000, - 0x7070, - 0x7870, - 0x7C70, - 0x7E70, - 0x7F70, - 0x7770, - 0x7370, - 0x71F0, - 0x70F0, - 0x7070, - 0x7070, - 0x7070, - 0x0000, - 0x0000, - ], - 'O': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - 'P': [ - 0x0000, - 0x0000, - 0x7FC0, - 0x7FE0, - 0x70F0, - 0x7070, - 0x7070, - 0x70F0, - 0x7FE0, - 0x7FC0, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x0000, - 0x0000, - ], - 'Q': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7370, - 0x73F0, - 0x79F0, - 0x3FE0, - 0x1FF0, - 0x0000, - 0x0000, - ], - 'R': [ - 0x0000, - 0x0000, - 0x7FC0, - 0x7FE0, - 0x70F0, - 0x7070, - 0x7070, - 0x70F0, - 0x7FE0, - 0x7FC0, - 0x73C0, - 0x71E0, - 0x70F0, - 0x7070, - 0x0000, - 0x0000, - ], - 'S': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7000, - 0x7800, - 0x3FC0, - 0x0FE0, - 0x00F0, - 0x0070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - 'T': [ - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - ], - 'U': [ - 0x0000, - 0x0000, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - 'V': [ - 0x0000, - 0x0000, - 0x7070, - 0x7070, - 0x7070, - 0x78F0, - 0x38E0, - 0x3CE0, - 0x1DC0, - 0x1FC0, - 0x0F80, - 0x0F80, - 0x0700, - 0x0700, - 0x0000, - 0x0000, - ], - 'W': [ - 0x0000, - 0x0000, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x71F0, - 0x71F0, - 0x7FF0, - 0x7EF0, - 0x7CF0, - 0x7870, - 0x7070, - 0x0000, - 0x0000, - ], - 'X': [ - 0x0000, - 0x0000, - 0x7070, - 0x78F0, - 0x38E0, - 0x1DC0, - 0x0F80, - 0x0700, - 0x0700, - 0x0F80, - 0x1DC0, - 0x38E0, - 0x78F0, - 0x7070, - 0x0000, - 0x0000, - ], - 'Y': [ - 0x0000, - 0x0000, - 0x7070, - 0x78F0, - 0x38E0, - 0x1DC0, - 0x0F80, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0000, - 0x0000, - ], - 'Z': [ - 0x0000, - 0x0000, - 0x7FF0, - 0x7FF0, - 0x00E0, - 0x01C0, - 0x0380, - 0x0700, - 0x0E00, - 0x1C00, - 0x3800, - 0x7000, - 0x7FF0, - 0x7FF0, - 0x0000, - 0x0000, - ], - # Numbers (0-9) - '0': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x70F0, - 0x71F0, - 0x73F0, - 0x7770, - 0x7E70, - 0x7C70, - 0x7870, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - ], - '1': [ - 0x0000, - 0x0000, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0700, - 0x0000, - 0x0000, - ], - '2': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x0070, - 0x00F0, - 0x01E0, - 0x03C0, - 0x0780, - 0x0F00, - 0x1E00, - 0x3FF0, - 0x7FF0, - 0x0000, - 0x0000, - ], - '3': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x0070, - 0x0070, - 0x03E0, - 0x03E0, - 0x0070, - 0x0070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - '4': [ - 0x0000, - 0x0000, - 0x01E0, - 0x03E0, - 0x07E0, - 0x0EE0, - 0x1CE0, - 0x38E0, - 0x70E0, - 0x7FF0, - 0x7FF0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x0000, - 0x0000, - ], - '5': [ - 0x0000, - 0x0000, - 0x7FF0, - 0x7FF0, - 0x7000, - 0x7000, - 0x7FC0, - 0x7FE0, - 0x00F0, - 0x0070, - 0x0070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - '6': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7000, - 0x7000, - 0x7FC0, - 0x7FE0, - 0x70F0, - 0x7070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - '7': [ - 0x0000, - 0x0000, - 0x7FF0, - 0x7FF0, - 0x00E0, - 0x01C0, - 0x0380, - 0x0700, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - ], - '8': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7070, - 0x78F0, - 0x3FE0, - 0x3FE0, - 0x78F0, - 0x7070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - '9': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7070, - 0x78F0, - 0x3FE0, - 0x1FE0, - 0x0070, - 0x0070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - ], - # Lowercase Letters (a-z) - 'a': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x00F0, - 0x1FF0, - 0x3FF0, - 0x78F0, - 0x70F0, - 0x79F0, - 0x3FF0, - 0x1F70, - 0x0000, - 0x0000, - ], - 'b': [ - 0x0000, - 0x0000, - 0x7000, - 0x7000, - 0x7000, - 0x7FC0, - 0x7FE0, - 0x78F0, - 0x7070, - 0x7070, - 0x7070, - 0x78F0, - 0x7FE0, - 0x77C0, - 0x0000, - 0x0000, - ], - 'c': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7000, - 0x7000, - 0x7000, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - 0x0000, - ], - 'd': [ - 0x0000, - 0x0000, - 0x00F0, - 0x00F0, - 0x00F0, - 0x1FF0, - 0x3FF0, - 0x78F0, - 0x70F0, - 0x70F0, - 0x70F0, - 0x78F0, - 0x3FF0, - 0x1F70, - 0x0000, - 0x0000, - ], - 'e': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7FF0, - 0x7FF0, - 0x7000, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - 0x0000, - ], - 'f': [ - 0x0000, - 0x0000, - 0x07E0, - 0x0FF0, - 0x0E00, - 0x7FE0, - 0x7FE0, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - ], - 'g': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x1F70, - 0x3FF0, - 0x78F0, - 0x70F0, - 0x70F0, - 0x78F0, - 0x3FF0, - 0x1FF0, - 0x00F0, - 0x78F0, - 0x3FE0, - 0x1FC0, - ], - 'h': [ - 0x0000, - 0x0000, - 0x7000, - 0x7000, - 0x7000, - 0x77C0, - 0x7FE0, - 0x78F0, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x0000, - 0x0000, - ], - 'i': [ - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x0000, - 0x7E00, - 0x7E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - ], - 'j': [ - 0x0000, - 0x0000, - 0x00E0, - 0x00E0, - 0x0000, - 0x07E0, - 0x07E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x70E0, - 0x78E0, - 0x3FC0, - 0x1F80, - ], - 'k': [ - 0x0000, - 0x0000, - 0x7000, - 0x7000, - 0x7000, - 0x71E0, - 0x73C0, - 0x7780, - 0x7F00, - 0x7F00, - 0x7780, - 0x73C0, - 0x71E0, - 0x70F0, - 0x0000, - 0x0000, - ], - 'l': [ - 0x0000, - 0x0000, - 0x7E00, - 0x7E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - ], - 'm': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7F7C, - 0x7FFE, - 0x73CE, - 0x738E, - 0x738E, - 0x738E, - 0x738E, - 0x738E, - 0x738E, - 0x738E, - 0x0000, - 0x0000, - ], - 'n': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x77C0, - 0x7FE0, - 0x78F0, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x0000, - 0x0000, - ], - 'o': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x7070, - 0x7070, - 0x7070, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - 0x0000, - ], - 'p': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x77C0, - 0x7FE0, - 0x78F0, - 0x7070, - 0x7070, - 0x7070, - 0x78F0, - 0x7FE0, - 0x7FC0, - 0x7000, - 0x7000, - 0x7000, - ], - 'q': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x1F70, - 0x3FF0, - 0x78F0, - 0x70F0, - 0x70F0, - 0x70F0, - 0x78F0, - 0x3FF0, - 0x1FF0, - 0x00F0, - 0x00F0, - 0x00F0, - ], - 'r': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x77C0, - 0x7FE0, - 0x78F0, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x0000, - 0x0000, - ], - 's': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x7800, - 0x3FC0, - 0x0FE0, - 0x00F0, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - 0x0000, - 0x0000, - ], - 't': [ - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x7FE0, - 0x7FE0, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0F00, - 0x07E0, - 0x03E0, - 0x0000, - 0x0000, - ], - 'u': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x7070, - 0x78F0, - 0x3FF0, - 0x1F70, - 0x0000, - 0x0000, - 0x0000, - ], - 'v': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7070, - 0x7070, - 0x78F0, - 0x38E0, - 0x3CE0, - 0x1DC0, - 0x1FC0, - 0x0F80, - 0x0F80, - 0x0700, - 0x0000, - 0x0000, - ], - 'w': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x738E, - 0x738E, - 0x738E, - 0x738E, - 0x738E, - 0x7BDE, - 0x7FFE, - 0x3FFC, - 0x1EF8, - 0x0000, - 0x0000, - 0x0000, - ], - 'x': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7070, - 0x78F0, - 0x3CE0, - 0x1FC0, - 0x0F80, - 0x0F80, - 0x1FC0, - 0x3CE0, - 0x78F0, - 0x7070, - 0x0000, - 0x0000, - ], - 'y': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7070, - 0x7070, - 0x78F0, - 0x38E0, - 0x3CE0, - 0x1DC0, - 0x1FC0, - 0x0F80, - 0x0F80, - 0x0700, - 0x0E00, - 0x1C00, - ], - 'z': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7FF0, - 0x7FF0, - 0x01E0, - 0x03C0, - 0x0780, - 0x0F00, - 0x1E00, - 0x3C00, - 0x7FF0, - 0x7FF0, - 0x0000, - 0x0000, - ], - # Punctuation and Symbols ' ': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, ], '!': [ - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - ], - '?': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x00F0, - 0x01E0, - 0x03C0, - 0x0700, - 0x0700, - 0x0000, - 0x0000, - 0x0700, - 0x0700, - 0x0000, - 0x0000, - ], - '.': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - ], - ',': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x1C00, - 0x0000, - 0x0000, - ], - ':': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - ], - ';': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x1C00, - 0x0000, - 0x0000, - 0x0000, - ], - '-': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - ], - '_': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x0000, - ], - '+': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0700, - 0x0700, - 0x0700, - 0x7FE0, - 0x7FE0, - 0x0700, - 0x0700, - 0x0700, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - ], - '=': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - ], - '*': [ - 0x0000, - 0x0000, - 0x0000, - 0x1DC0, - 0x1DC0, - 0x0F80, - 0x7FE0, - 0x7FE0, - 0x0F80, - 0x1DC0, - 0x1DC0, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - ], - '/': [ - 0x0000, - 0x0000, - 0x00F0, - 0x01E0, - 0x01E0, - 0x03C0, - 0x0780, - 0x0780, - 0x0F00, - 0x1E00, - 0x1E00, - 0x3C00, - 0x7800, - 0x7800, - 0x0000, - 0x0000, - ], - '\\': [ - 0x0000, - 0x0000, - 0x7800, - 0x3C00, - 0x3C00, - 0x1E00, - 0x0F00, - 0x0F00, - 0x0780, - 0x03C0, - 0x03C0, - 0x01E0, - 0x00F0, - 0x00F0, - 0x0000, - 0x0000, - ], - '(': [ - 0x0000, - 0x0000, - 0x03E0, - 0x07C0, - 0x0F80, - 0x0F00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0F00, - 0x0F80, - 0x07C0, - 0x03E0, - 0x0000, - 0x0000, - ], - ')': [ - 0x0000, - 0x0000, - 0x3E00, - 0x1F00, - 0x0F80, - 0x0780, - 0x0380, - 0x0380, - 0x0380, - 0x0380, - 0x0780, - 0x0F80, - 0x1F00, - 0x3E00, - 0x0000, - 0x0000, - ], - '[': [ - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7000, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - ], - ']': [ - 0x0000, - 0x0000, - 0x7FE0, - 0x7FE0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x00E0, - 0x7FE0, - 0x7FE0, - 0x0000, - 0x0000, - ], - '{': [ - 0x0000, - 0x0000, - 0x03E0, - 0x07C0, - 0x0F80, - 0x0E00, - 0x0E00, - 0x1E00, - 0x1E00, - 0x0E00, - 0x0E00, - 0x0F80, - 0x07C0, - 0x03E0, - 0x0000, - 0x0000, - ], - '}': [ - 0x0000, - 0x0000, - 0x3E00, - 0x1F00, - 0x0F80, - 0x0380, - 0x0380, - 0x03C0, - 0x03C0, - 0x0380, - 0x0380, - 0x0F80, - 0x1F00, - 0x3E00, - 0x0000, - 0x0000, - ], - '<': [ - 0x0000, - 0x0000, - 0x0000, - 0x00F0, - 0x01E0, - 0x03C0, - 0x0780, - 0x0F00, - 0x0F00, - 0x0780, - 0x03C0, - 0x01E0, - 0x00F0, - 0x0000, - 0x0000, - 0x0000, - ], - '>': [ - 0x0000, - 0x0000, - 0x0000, - 0x7800, - 0x3C00, - 0x1E00, - 0x0F00, - 0x0780, - 0x0780, - 0x0F00, - 0x1E00, - 0x3C00, - 0x7800, - 0x0000, - 0x0000, - 0x0000, - ], - '@': [ - 0x0000, - 0x0000, - 0x1FC0, - 0x3FE0, - 0x78F0, - 0x73F0, - 0x77F0, - 0x7770, - 0x7770, - 0x77F0, - 0x73F0, - 0x7000, - 0x78F0, - 0x3FE0, - 0x1FC0, - 0x0000, - ], - '#': [ - 0x0000, - 0x0000, - 0x1DC0, - 0x1DC0, - 0x1DC0, - 0x7FE0, - 0x7FE0, - 0x1DC0, - 0x1DC0, - 0x7FE0, - 0x7FE0, - 0x1DC0, - 0x1DC0, - 0x1DC0, - 0x0000, - 0x0000, - ], - '$': [ - 0x0000, - 0x0000, - 0x0E00, - 0x1FE0, - 0x3FE0, - 0x7A00, - 0x7FC0, - 0x3FE0, - 0x0FE0, - 0x02F0, - 0x7FF0, - 0x7FE0, - 0x3FC0, - 0x0E00, - 0x0000, - 0x0000, - ], - '%': [ - 0x0000, - 0x0000, - 0x78F0, - 0x7DE0, - 0x3DE0, - 0x03C0, - 0x0780, - 0x0F00, - 0x1E00, - 0x3C00, - 0x3BC0, - 0x7BC0, - 0x79E0, - 0x70F0, - 0x0000, - 0x0000, - ], - '&': [ - 0x0000, - 0x0000, - 0x1F00, - 0x3F80, - 0x79C0, - 0x71C0, - 0x3B80, - 0x1F00, - 0x3F80, - 0x77C0, - 0x71E0, - 0x70E0, - 0x79E0, - 0x3FC0, - 0x1F80, - 0x0000, - ], - '^': [ - 0x0000, - 0x0000, - 0x0700, - 0x0F80, - 0x1DC0, - 0x38E0, - 0x7070, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - ], - '~': [ - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x1F38, - 0x3FF8, - 0x73F0, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - ], - '`': [ - 0x0000, - 0x0000, - 0x3800, - 0x1C00, - 0x0E00, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - ], - "'": [ - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x06, + 0x0F, + 0x0F, + 0x0F, + 0x0F, + 0x0F, + 0x0F, + 0x0F, + 0x0F, + 0x0F, + 0x06, + 0x00, + 0x0F, + 0x0F, + 0x00, + 0x00, ], '"': [ - 0x0000, - 0x0000, - 0x1DC0, - 0x1DC0, - 0x1DC0, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x363, + 0x363, + 0x363, + 0x363, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '#': [ + 0x318, + 0x318, + 0x318, + 0xFFF, + 0xFFF, + 0x318, + 0x318, + 0x318, + 0x318, + 0xFFF, + 0xFFF, + 0x318, + 0x318, + 0x318, + 0x00, + 0x00, + ], + '$': [ + 0x78, + 0xFE, + 0x1CF, + 0x1C7, + 0x1C0, + 0xF8, + 0x7C, + 0x0F, + 0x07, + 0x1C7, + 0x1CF, + 0xFE, + 0x78, + 0x10, + 0x00, + 0x00, + ], + '%': [ + 0xE0E, + 0x1B0E, + 0x1B1C, + 0xE38, + 0x70, + 0xE0, + 0x1C0, + 0x380, + 0x70E, + 0xE1B, + 0x1C1B, + 0x380E, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '&': [ + 0x7C0, + 0xEE0, + 0x1C70, + 0x1C70, + 0xEE0, + 0x7C0, + 0xFC7, + 0x1CE7, + 0x387E, + 0x383C, + 0x387E, + 0x1CFF, + 0xFE7, + 0x7C0, + 0x00, + 0x00, + ], + "'": [ + 0x03, + 0x03, + 0x03, + 0x03, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '(': [ + 0x07, + 0x0E, + 0x1C, + 0x1C, + 0x38, + 0x38, + 0x38, + 0x38, + 0x38, + 0x38, + 0x1C, + 0x1C, + 0x0E, + 0x07, + 0x00, + 0x00, + ], + ')': [ + 0x38, + 0x1C, + 0x0E, + 0x0E, + 0x07, + 0x07, + 0x07, + 0x07, + 0x07, + 0x07, + 0x0E, + 0x0E, + 0x1C, + 0x38, + 0x00, + 0x00, + ], + '*': [ + 0x30, + 0x1B3, + 0xFC, + 0x78, + 0xFC, + 0x1B3, + 0x30, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '+': [ + 0x00, + 0x00, + 0x60, + 0x60, + 0x60, + 0x60, + 0x3FF, + 0x3FF, + 0x60, + 0x60, + 0x60, + 0x60, + 0x00, + 0x00, + 0x00, + 0x00, + ], + ',': [ + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x07, + 0x07, + 0x03, + 0x06, + 0x00, + 0x00, + ], + '-': [ + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x3FF, + 0x3FF, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '.': [ + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x06, + 0x06, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '/': [ + 0x03, + 0x07, + 0x0E, + 0x1C, + 0x38, + 0x70, + 0xE0, + 0x1C0, + 0x380, + 0x700, + 0xE00, + 0xC00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '0': [ + 0x1F8, + 0x3FC, + 0x70E, + 0x606, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0x606, + 0x70E, + 0x3FC, + 0x1F8, + 0x00, + 0x00, + ], + '1': [ + 0x0C, + 0x1C, + 0x3C, + 0x7C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x7F, + 0x7F, + 0x00, + 0x00, + ], + '2': [ + 0xFC, + 0x1FE, + 0x387, + 0x303, + 0x03, + 0x07, + 0x0E, + 0x1C, + 0x38, + 0x70, + 0xE0, + 0x1C0, + 0x3FF, + 0x3FF, + 0x00, + 0x00, + ], + '3': [ + 0xFC, + 0x1FE, + 0x387, + 0x303, + 0x03, + 0x07, + 0x7E, + 0x7E, + 0x07, + 0x03, + 0x303, + 0x387, + 0x1FE, + 0xFC, + 0x00, + 0x00, + ], + '4': [ + 0x0E, + 0x1E, + 0x3E, + 0x6E, + 0xCE, + 0x18E, + 0x30E, + 0x60E, + 0x7FF, + 0x7FF, + 0x0E, + 0x0E, + 0x0E, + 0x0E, + 0x00, + 0x00, + ], + '5': [ + 0x3FF, + 0x3FF, + 0x300, + 0x300, + 0x300, + 0x3FC, + 0x3FE, + 0x07, + 0x03, + 0x03, + 0x303, + 0x387, + 0x1FE, + 0xFC, + 0x00, + 0x00, + ], + '6': [ + 0xFC, + 0x1FE, + 0x387, + 0x303, + 0x300, + 0x37C, + 0x3FE, + 0x387, + 0x303, + 0x303, + 0x303, + 0x387, + 0x1FE, + 0xFC, + 0x00, + 0x00, + ], + '7': [ + 0x3FF, + 0x3FF, + 0x03, + 0x07, + 0x0E, + 0x1C, + 0x38, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x00, + 0x00, + ], + '8': [ + 0xFC, + 0x1FE, + 0x387, + 0x303, + 0x303, + 0x387, + 0x1FE, + 0xFC, + 0x1FE, + 0x387, + 0x303, + 0x303, + 0x387, + 0x1FE, + 0xFC, + 0x00, + ], + '9': [ + 0xFC, + 0x1FE, + 0x387, + 0x303, + 0x303, + 0x387, + 0x1FF, + 0xFF, + 0x03, + 0x03, + 0x303, + 0x387, + 0x1FE, + 0xFC, + 0x00, + 0x00, + ], + ':': [ + 0x00, + 0x00, + 0x00, + 0x06, + 0x06, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x06, + 0x06, + 0x00, + 0x00, + 0x00, + 0x00, + ], + ';': [ + 0x00, + 0x00, + 0x00, + 0x06, + 0x06, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x06, + 0x06, + 0x03, + 0x06, + 0x00, + 0x00, + ], + '<': [ + 0x03, + 0x0F, + 0x3C, + 0xF0, + 0x3C0, + 0x700, + 0x3C0, + 0xF0, + 0x3C, + 0x0F, + 0x03, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '=': [ + 0x00, + 0x00, + 0x00, + 0x00, + 0x3FF, + 0x3FF, + 0x00, + 0x00, + 0x3FF, + 0x3FF, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '>': [ + 0x600, + 0x780, + 0x1E0, + 0x78, + 0x1E, + 0x07, + 0x1E, + 0x78, + 0x1E0, + 0x780, + 0x600, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '?': [ + 0x7C, + 0xFE, + 0x1C7, + 0x183, + 0x03, + 0x07, + 0x0E, + 0x1C, + 0x18, + 0x00, + 0x18, + 0x18, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '@': [ + 0x1F8, + 0x3FC, + 0x70E, + 0x606, + 0xE3F, + 0xE7F, + 0xE67, + 0xE67, + 0xE67, + 0xE7F, + 0xE3E, + 0x600, + 0x70E, + 0x3FC, + 0x1F8, + 0x00, + ], + 'A': [ + 0x70, + 0xF8, + 0xF8, + 0x1DC, + 0x1DC, + 0x38E, + 0x38E, + 0x38E, + 0x3FE, + 0x7FF, + 0x707, + 0x707, + 0x707, + 0x707, + 0x00, + 0x00, + ], + 'B': [ + 0x7F8, + 0x7FC, + 0x70E, + 0x70E, + 0x70E, + 0x71C, + 0x7F8, + 0x7FC, + 0x70E, + 0x707, + 0x707, + 0x707, + 0x70E, + 0x7FE, + 0x7FC, + 0x00, + ], + 'C': [ + 0x1FC, + 0x3FE, + 0x787, + 0x703, + 0xE00, + 0xE00, + 0xE00, + 0xE00, + 0xE00, + 0xE00, + 0x703, + 0x787, + 0x3FE, + 0x1FC, + 0x00, + 0x00, + ], + 'D': [ + 0xFF0, + 0xFFC, + 0xE1E, + 0xE0E, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE0E, + 0xE1E, + 0xFFC, + 0xFF0, + 0x00, + 0x00, + ], + 'E': [ + 0x7FF, + 0x7FF, + 0x700, + 0x700, + 0x700, + 0x700, + 0x7FC, + 0x7FC, + 0x700, + 0x700, + 0x700, + 0x700, + 0x7FF, + 0x7FF, + 0x00, + 0x00, + ], + 'F': [ + 0x7FF, + 0x7FF, + 0x700, + 0x700, + 0x700, + 0x700, + 0x7FC, + 0x7FC, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x00, + 0x00, + ], + 'G': [ + 0x1FC, + 0x3FE, + 0x787, + 0x703, + 0xE00, + 0xE00, + 0xE3F, + 0xE3F, + 0xE07, + 0xE07, + 0x707, + 0x787, + 0x3FF, + 0x1FF, + 0x00, + 0x00, + ], + 'H': [ + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xFFF, + 0xFFF, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0x00, + 0x00, + ], + 'I': [ + 0x7F, + 0x7F, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x7F, + 0x7F, + 0x00, + 0x00, + ], + 'J': [ + 0x7F, + 0x7F, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x71C, + 0x71C, + 0x738, + 0x3F8, + 0x1F0, + 0x00, + 0x00, + ], + 'K': [ + 0xE0E, + 0xE1C, + 0xE38, + 0xE70, + 0xEE0, + 0xFC0, + 0xFC0, + 0xFE0, + 0xEF0, + 0xE78, + 0xE3C, + 0xE1C, + 0xE0E, + 0xE07, + 0x00, + 0x00, + ], + 'L': [ + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x7FF, + 0x7FF, + 0x00, + 0x00, + ], + 'M': [ + 0x1C07, + 0x1E0F, + 0x1E0F, + 0x1F1F, + 0x1F1F, + 0x1DB7, + 0x1DB7, + 0x1DB7, + 0x1CE7, + 0x1CE7, + 0x1CE7, + 0x1C07, + 0x1C07, + 0x1C07, + 0x00, + 0x00, + ], + 'N': [ + 0xE07, + 0xF07, + 0xF07, + 0xF87, + 0xFC7, + 0xEE7, + 0xE77, + 0xE77, + 0xE3F, + 0xE1F, + 0xE1F, + 0xE0F, + 0xE07, + 0xE07, + 0x00, + 0x00, + ], + 'O': [ + 0x1F8, + 0x3FC, + 0x78E, + 0x706, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0x706, + 0x78E, + 0x3FC, + 0x1F8, + 0x00, + 0x00, + ], + 'P': [ + 0x7F8, + 0x7FC, + 0x70E, + 0x707, + 0x707, + 0x707, + 0x70E, + 0x7FC, + 0x7F8, + 0x700, + 0x700, + 0x700, + 0x700, + 0x700, + 0x00, + 0x00, + ], + 'Q': [ + 0x1F8, + 0x3FC, + 0x78E, + 0x706, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE67, + 0x77E, + 0x7BE, + 0x3FC, + 0x1F7, + 0x00, + 0x00, + ], + 'R': [ + 0xFF0, + 0xFF8, + 0xE1C, + 0xE0E, + 0xE0E, + 0xE0E, + 0xE1C, + 0xFF8, + 0xFF0, + 0xE78, + 0xE3C, + 0xE1E, + 0xE0E, + 0xE07, + 0x00, + 0x00, + ], + 'S': [ + 0x1FC, + 0x3FE, + 0x787, + 0x703, + 0x700, + 0x780, + 0x3FC, + 0xFE, + 0x07, + 0x03, + 0x703, + 0x787, + 0x3FE, + 0x1FC, + 0x00, + 0x00, + ], + 'T': [ + 0x7FF, + 0x7FF, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x00, + 0x00, + ], + 'U': [ + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0x70E, + 0x7FE, + 0x1F8, + 0x00, + 0x00, + ], + 'V': [ + 0xE07, + 0xE07, + 0xE07, + 0x70E, + 0x70E, + 0x70E, + 0x39C, + 0x39C, + 0x39C, + 0x1F8, + 0x1F8, + 0x1F8, + 0xF0, + 0xF0, + 0x00, + 0x00, + ], + 'W': [ + 0xE0E, + 0xE0E, + 0xE0E, + 0xE0E, + 0xE0E, + 0xE0E, + 0x6B6, + 0x6B6, + 0x6B6, + 0x7F7, + 0x7F7, + 0x7F7, + 0x3E3, + 0x3E3, + 0x00, + 0x00, + ], + 'X': [ + 0xE07, + 0x70E, + 0x70E, + 0x39C, + 0x1F8, + 0x1F8, + 0xF0, + 0xF0, + 0x1F8, + 0x1F8, + 0x39C, + 0x70E, + 0x70E, + 0xE07, + 0x00, + 0x00, + ], + 'Y': [ + 0xE07, + 0x70E, + 0x70E, + 0x39C, + 0x39C, + 0x1F8, + 0x1F8, + 0xF0, + 0xF0, + 0xF0, + 0xF0, + 0xF0, + 0xF0, + 0xF0, + 0x00, + 0x00, + ], + 'Z': [ + 0x7FF, + 0x7FF, + 0x0E, + 0x1C, + 0x38, + 0x70, + 0xE0, + 0x1C0, + 0x380, + 0x700, + 0xE00, + 0xE00, + 0x7FF, + 0x7FF, + 0x00, + 0x00, + ], + '[': [ + 0x3F, + 0x3F, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x30, + 0x3F, + 0x3F, + 0x00, + ], + '\\': [ + 0x3000, + 0x3800, + 0x1C00, + 0xE00, + 0x700, + 0x380, + 0x1C0, + 0xE0, + 0x70, + 0x38, + 0x1C, + 0x0E, + 0x07, + 0x03, + 0x00, + 0x00, + ], + ']': [ + 0x3F, + 0x3F, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0x3F, + 0x3F, + 0x00, + ], + '^': [ + 0x30, + 0x78, + 0xFC, + 0x1CE, + 0x387, + 0x303, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '_': [ + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xFFFF, + 0xFFFF, + ], + '`': [ + 0x18, + 0x0C, + 0x06, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + 'a': [ + 0x00, + 0x00, + 0x00, + 0x7C, + 0xFE, + 0x1C7, + 0x07, + 0x7F, + 0xFF, + 0x1C7, + 0x387, + 0x387, + 0x1FF, + 0xF7, + 0x00, + 0x00, + ], + 'b': [ + 0x380, + 0x380, + 0x380, + 0x3BC, + 0x3FE, + 0x3CF, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x3CF, + 0x3FE, + 0x3BC, + 0x00, + 0x00, + ], + 'c': [ + 0x00, + 0x00, + 0x00, + 0x7C, + 0xFE, + 0x1C7, + 0x383, + 0x380, + 0x380, + 0x380, + 0x383, + 0x1C7, + 0xFE, + 0x7C, + 0x00, + 0x00, + ], + 'd': [ + 0x07, + 0x07, + 0x07, + 0x77, + 0xFF, + 0x1CF, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x1CF, + 0xFF, + 0x77, + 0x00, + 0x00, + ], + 'e': [ + 0x00, + 0x00, + 0x00, + 0x7C, + 0xFE, + 0x1C7, + 0x383, + 0x3FF, + 0x3FF, + 0x380, + 0x381, + 0x1C3, + 0xFF, + 0x7C, + 0x00, + 0x00, + ], + 'f': [ + 0x1F, + 0x3F, + 0x78, + 0x70, + 0x1FE, + 0x1FE, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x70, + 0x00, + 0x00, + ], + 'g': [ + 0x00, + 0x00, + 0x00, + 0x77, + 0xFF, + 0x1CF, + 0x387, + 0x387, + 0x387, + 0x387, + 0x1CF, + 0xFF, + 0x77, + 0x07, + 0x1FE, + 0x1FC, + ], + 'h': [ + 0x380, + 0x380, + 0x380, + 0x3BC, + 0x3FE, + 0x3CF, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x00, + 0x00, + ], + 'i': [ + 0x0C, + 0x0C, + 0x00, + 0x3C, + 0x3C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x3F, + 0x3F, + 0x00, + 0x00, + ], + 'j': [ + 0x03, + 0x03, + 0x00, + 0x0F, + 0x0F, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0x03, + 0xE3, + 0xE3, + 0x7E, + 0x3C, + ], + 'k': [ + 0x700, + 0x700, + 0x700, + 0x70E, + 0x71C, + 0x738, + 0x770, + 0x7E0, + 0x7E0, + 0x770, + 0x738, + 0x71C, + 0x70E, + 0x707, + 0x00, + 0x00, + ], + 'l': [ + 0x3C, + 0x3C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x0C, + 0x3F, + 0x3F, + 0x00, + 0x00, + ], + 'm': [ + 0x00, + 0x00, + 0x00, + 0xEE7, + 0xFFF, + 0xF3B, + 0xE3B, + 0xE3B, + 0xE3B, + 0xE3B, + 0xE3B, + 0xE3B, + 0xE3B, + 0xE3B, + 0x00, + 0x00, + ], + 'n': [ + 0x00, + 0x00, + 0x00, + 0x3BC, + 0x3FE, + 0x3CF, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x00, + 0x00, + ], + 'o': [ + 0x00, + 0x00, + 0x00, + 0x7C, + 0xFE, + 0x1C7, + 0x383, + 0x383, + 0x383, + 0x383, + 0x383, + 0x1C7, + 0xFE, + 0x7C, + 0x00, + 0x00, + ], + 'p': [ + 0x00, + 0x00, + 0x00, + 0x3BC, + 0x3FE, + 0x3CF, + 0x387, + 0x387, + 0x387, + 0x387, + 0x3CF, + 0x3FE, + 0x3BC, + 0x380, + 0x380, + 0x380, + ], + 'q': [ + 0x00, + 0x00, + 0x00, + 0x77, + 0xFF, + 0x1CF, + 0x387, + 0x387, + 0x387, + 0x387, + 0x1CF, + 0xFF, + 0x77, + 0x07, + 0x07, + 0x07, + ], + 'r': [ + 0x00, + 0x00, + 0x00, + 0x3BC, + 0x3FE, + 0x3CF, + 0x387, + 0x380, + 0x380, + 0x380, + 0x380, + 0x380, + 0x380, + 0x380, + 0x00, + 0x00, + ], + 's': [ + 0x00, + 0x00, + 0x00, + 0xFC, + 0x1FE, + 0x387, + 0x380, + 0x1F8, + 0xFE, + 0x07, + 0x07, + 0x387, + 0x3FE, + 0x1FC, + 0x00, + 0x00, + ], + 't': [ + 0x38, + 0x38, + 0x38, + 0xFF, + 0xFF, + 0x38, + 0x38, + 0x38, + 0x38, + 0x38, + 0x38, + 0x38, + 0x1F, + 0x0F, + 0x00, + 0x00, + ], + 'u': [ + 0x00, + 0x00, + 0x00, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x1CF, + 0x1FF, + 0x77, + 0x00, + 0x00, + ], + 'v': [ + 0x00, + 0x00, + 0x00, + 0x707, + 0x707, + 0x38E, + 0x38E, + 0x38E, + 0x1DC, + 0x1DC, + 0xF8, + 0xF8, + 0x70, + 0x70, + 0x00, + 0x00, + ], + 'w': [ + 0x00, + 0x00, + 0x00, + 0xE0E, + 0xE0E, + 0xE0E, + 0x6B6, + 0x6B6, + 0x6B6, + 0x7F7, + 0x7F7, + 0x3E3, + 0x3E3, + 0x1C1, + 0x00, + 0x00, + ], + 'x': [ + 0x00, + 0x00, + 0x00, + 0x707, + 0x38E, + 0x1DC, + 0xF8, + 0x70, + 0x70, + 0xF8, + 0x1DC, + 0x38E, + 0x707, + 0x707, + 0x00, + 0x00, + ], + 'y': [ + 0x00, + 0x00, + 0x00, + 0x707, + 0x707, + 0x38E, + 0x38E, + 0x1DC, + 0x1DC, + 0xF8, + 0xF8, + 0x70, + 0x70, + 0xE0, + 0x1C0, + 0x00, + ], + 'z': [ + 0x00, + 0x00, + 0x00, + 0x3FF, + 0x3FF, + 0x0E, + 0x1C, + 0x38, + 0x70, + 0xE0, + 0x1C0, + 0x380, + 0x3FF, + 0x3FF, + 0x00, + 0x00, + ], + '{': [ + 0x0F, + 0x1E, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x38, + 0x70, + 0x38, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x1E, + 0x0F, + 0x00, ], '|': [ - 0x0000, - 0x0000, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0E00, - 0x0000, - 0x0000, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x06, + 0x00, + ], + '}': [ + 0x78, + 0x3C, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x0E, + 0x07, + 0x0E, + 0x1C, + 0x1C, + 0x1C, + 0x1C, + 0x3C, + 0x78, + 0x00, + ], + '~': [ + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x1C7, + 0x3EF, + 0x77E, + 0x738, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, ], '°': [ - 0x0000, - 0x0000, - 0x1F00, - 0x3F80, - 0x3F80, - 0x1F00, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, - 0x0000, + 0x0E, + 0x1F, + 0x1F, + 0x1F, + 0x0E, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ], + 'Ä': [ + 0x18C, + 0x18C, + 0x00, + 0xF8, + 0x1FC, + 0x38E, + 0x38E, + 0x38E, + 0x3FE, + 0x7FF, + 0x707, + 0x707, + 0x707, + 0x707, + 0x00, + 0x00, + ], + 'Ö': [ + 0x318, + 0x318, + 0x00, + 0x1F8, + 0x3FC, + 0x78E, + 0x706, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0x706, + 0x78E, + 0x3FC, + 0x1F8, + 0x00, + ], + 'Ü': [ + 0x318, + 0x318, + 0x00, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0xE07, + 0x70E, + 0x7FE, + 0x1F8, + 0x00, + ], + 'ß': [ + 0x7C, + 0xFE, + 0x1C7, + 0x1C7, + 0x1C7, + 0x1CE, + 0x1FC, + 0x1FE, + 0x1CF, + 0x1C7, + 0x1C7, + 0x1CF, + 0x1FE, + 0x1BC, + 0x180, + 0x180, + ], + 'ä': [ + 0xC6, + 0xC6, + 0x00, + 0x7C, + 0xFE, + 0x1C7, + 0x07, + 0x7F, + 0xFF, + 0x1C7, + 0x387, + 0x387, + 0x1FF, + 0xF7, + 0x00, + 0x00, + ], + 'ö': [ + 0xC6, + 0xC6, + 0x00, + 0x7C, + 0xFE, + 0x1C7, + 0x383, + 0x383, + 0x383, + 0x383, + 0x383, + 0x1C7, + 0xFE, + 0x7C, + 0x00, + 0x00, + ], + 'ü': [ + 0xC6, + 0xC6, + 0x00, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x387, + 0x1CF, + 0x1FF, + 0x77, + 0x00, + 0x00, + ], + '•': [ + 0x00, + 0x00, + 0x00, + 0x00, + 0x3C, + 0x7E, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0x7E, + 0x3C, + 0x00, + 0x00, + 0x00, + 0x00, + ], + '€': [ + 0x1F8, + 0x7FC, + 0xF0E, + 0x1C07, + 0x1FC0, + 0x1FC0, + 0x3800, + 0x1FC0, + 0x1FC0, + 0x3800, + 0x1FC0, + 0x1FC0, + 0x1C07, + 0xF0E, + 0x7FC, + 0x1F8, ], } - - -# Usage function for 16x16 display -def display_16x16_char(char): - """Display a 16x16 character with ASCII art visualization""" - if char in font_16x16: - pattern = font_16x16[char] - for row in pattern: - line = '' - for bit in range(16): - if row & (1 << (15 - bit)): - line += '██' - else: - line += ' ' - print(line) - else: - print(f"Character '{char}' not found in font_16x16") - - -# Example usage -if __name__ == '__main__': - # Test the font - display_16x16_char('A') - print('\n') - display_16x16_char('1') - print('\n') - display_16x16_char('!') diff --git a/app/display/fonts/font_8x8.py b/app/display/fonts/font_8x8.py index c7d8595..2008951 100644 --- a/app/display/fonts/font_8x8.py +++ b/app/display/fonts/font_8x8.py @@ -1,109 +1,104 @@ font_8x8 = { - # Uppercase Letters - 'A': [0x18, 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00], - 'B': [0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C, 0x00], - 'C': [0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x00], - 'D': [0x78, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0x78, 0x00], - 'E': [0x7E, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7E, 0x00], - 'F': [0x7E, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00], - 'G': [0x3C, 0x66, 0x60, 0x6E, 0x66, 0x66, 0x3C, 0x00], - 'H': [0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00], - 'I': [0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00], - 'J': [0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x6C, 0x38, 0x00], - 'K': [0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x66, 0x00], - 'L': [0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00], - 'M': [0x63, 0x77, 0x7F, 0x6B, 0x63, 0x63, 0x63, 0x00], - 'N': [0x66, 0x76, 0x7E, 0x7E, 0x6E, 0x66, 0x66, 0x00], - 'O': [0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00], - 'P': [0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x00], - 'Q': [0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x0E, 0x00], - 'R': [0x7C, 0x66, 0x66, 0x7C, 0x78, 0x6C, 0x66, 0x00], - 'S': [0x3C, 0x66, 0x60, 0x3C, 0x06, 0x66, 0x3C, 0x00], - 'T': [0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00], - 'U': [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00], - 'V': [0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00], - 'W': [0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00], - 'X': [0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00], - 'Y': [0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00], - 'Z': [0x7E, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x7E, 0x00], - # Lowercase Letters - 'a': [0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00], - 'b': [0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00], - 'c': [0x00, 0x00, 0x3C, 0x66, 0x60, 0x66, 0x3C, 0x00], - 'd': [0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00], - 'e': [0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00], - 'f': [0x1C, 0x36, 0x30, 0x78, 0x30, 0x30, 0x30, 0x00], - 'g': [0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x7C], - 'h': [0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00], - 'i': [0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00], - 'j': [0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x66, 0x3C], - 'k': [0x60, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0x00], - 'l': [0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00], - 'm': [0x00, 0x00, 0x66, 0x7F, 0x7F, 0x6B, 0x63, 0x00], - 'n': [0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00], - 'o': [0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00], - 'p': [0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60], - 'q': [0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06], - 'r': [0x00, 0x00, 0x7C, 0x66, 0x60, 0x60, 0x60, 0x00], - 's': [0x00, 0x00, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x00], - 't': [0x30, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x1C, 0x00], - 'u': [0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00], - 'v': [0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00], - 'w': [0x00, 0x00, 0x63, 0x6B, 0x7F, 0x3E, 0x36, 0x00], - 'x': [0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00], - 'y': [0x00, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x0C, 0x78], - 'z': [0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00], - # Numbers - '0': [0x3C, 0x66, 0x6E, 0x76, 0x66, 0x66, 0x3C, 0x00], - '1': [0x18, 0x38, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00], - '2': [0x3C, 0x66, 0x06, 0x0C, 0x18, 0x30, 0x7E, 0x00], - '3': [0x3C, 0x66, 0x06, 0x1C, 0x06, 0x66, 0x3C, 0x00], - '4': [0x0C, 0x1C, 0x3C, 0x6C, 0x7E, 0x0C, 0x0C, 0x00], - '5': [0x7E, 0x60, 0x7C, 0x06, 0x06, 0x66, 0x3C, 0x00], - '6': [0x3C, 0x66, 0x60, 0x7C, 0x66, 0x66, 0x3C, 0x00], - '7': [0x7E, 0x06, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00], - '8': [0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00], - '9': [0x3C, 0x66, 0x66, 0x3E, 0x06, 0x66, 0x3C, 0x00], - # Punctuation and Symbols ' ': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], - '!': [0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00], - '?': [0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00], - '.': [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00], - ',': [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30], - ':': [0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00], - ';': [0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30], - "'": [0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], - '"': [0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], - '-': [0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00], - '_': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E], - '+': [0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00], - '=': [0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00], - '*': [0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00], - '/': [0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00], - '\\': [0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00], - '(': [0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00], - ')': [0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00], - '[': [0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00], - ']': [0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00], - '{': [0x0E, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0E, 0x00], - '}': [0x70, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x70, 0x00], - '<': [0x00, 0x06, 0x0C, 0x18, 0x0C, 0x06, 0x00, 0x00], - '>': [0x00, 0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0x00], - '@': [0x3C, 0x42, 0x99, 0xA5, 0xA5, 0x9E, 0x40, 0x3C], - '#': [0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00], - '$': [0x18, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x18, 0x00], - '%': [0x62, 0x66, 0x0C, 0x18, 0x30, 0x66, 0x46, 0x00], + '!': [0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x03, 0x00], + '"': [0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], + '#': [0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00], + '$': [0x0C, 0x1F, 0x30, 0x1E, 0x03, 0x3E, 0x0C, 0x00], + '%': [0x31, 0x33, 0x06, 0x0C, 0x18, 0x33, 0x23, 0x00], '&': [0x3C, 0x66, 0x3C, 0x38, 0x67, 0x66, 0x3F, 0x00], - '^': [0x18, 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00], - '~': [0x00, 0x00, 0x00, 0x36, 0x6C, 0x00, 0x00, 0x00], - # Special Characters - '°': [0x1C, 0x22, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00], # Degree - '|': [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00], # Vertical bar - '`': [0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], # Backtick - '¶': [0x3E, 0x7A, 0x7A, 0x7A, 0x3A, 0x0A, 0x0A, 0x00], # Paragraph - '•': [0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00], # Bullet - '♥': [0x36, 0x7F, 0x7F, 0x7F, 0x3E, 0x1C, 0x08, 0x00], # Heart - '♦': [0x08, 0x1C, 0x3E, 0x7F, 0x3E, 0x1C, 0x08, 0x00], # Diamond - '♣': [0x1C, 0x1C, 0x3E, 0x7F, 0x36, 0x1C, 0x3E, 0x00], # Club - '♠': [0x1C, 0x3E, 0x7F, 0x7F, 0x1C, 0x1C, 0x3E, 0x00], # Spade + "'": [0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], + '(': [0x03, 0x06, 0x0C, 0x0C, 0x0C, 0x06, 0x03, 0x00], + ')': [0x0C, 0x06, 0x03, 0x03, 0x03, 0x06, 0x0C, 0x00], + '*': [0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00], + '+': [0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00], + ',': [0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x06], + '-': [0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00], + '.': [0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00], + '/': [0x00, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00], + '0': [0x1E, 0x33, 0x37, 0x3B, 0x33, 0x33, 0x1E, 0x00], + '1': [0x0C, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00], + '2': [0x1E, 0x33, 0x03, 0x06, 0x0C, 0x18, 0x3F, 0x00], + '3': [0x1E, 0x33, 0x03, 0x0E, 0x03, 0x33, 0x1E, 0x00], + '4': [0x06, 0x0E, 0x1E, 0x36, 0x3F, 0x06, 0x06, 0x00], + '5': [0x3F, 0x30, 0x3E, 0x03, 0x03, 0x33, 0x1E, 0x00], + '6': [0x1E, 0x33, 0x30, 0x3E, 0x33, 0x33, 0x1E, 0x00], + '7': [0x3F, 0x03, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x00], + '8': [0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00], + '9': [0x1E, 0x33, 0x33, 0x1F, 0x03, 0x33, 0x1E, 0x00], + ':': [0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00], + ';': [0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03, 0x06], + '<': [0x00, 0x03, 0x06, 0x0C, 0x06, 0x03, 0x00, 0x00], + '=': [0x00, 0x00, 0x3F, 0x00, 0x3F, 0x00, 0x00, 0x00], + '>': [0x00, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x00, 0x00], + '?': [0x1E, 0x33, 0x06, 0x0C, 0x0C, 0x00, 0x0C, 0x00], + '@': [0x3C, 0x42, 0x99, 0xA5, 0xA5, 0x9E, 0x40, 0x3C], + 'A': [0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00], + 'B': [0x3E, 0x33, 0x33, 0x3E, 0x33, 0x33, 0x3E, 0x00], + 'C': [0x1E, 0x33, 0x30, 0x30, 0x30, 0x33, 0x1E, 0x00], + 'D': [0x3C, 0x36, 0x33, 0x33, 0x33, 0x36, 0x3C, 0x00], + 'E': [0x3F, 0x30, 0x30, 0x3C, 0x30, 0x30, 0x3F, 0x00], + 'F': [0x3F, 0x30, 0x30, 0x3C, 0x30, 0x30, 0x30, 0x00], + 'G': [0x1E, 0x33, 0x30, 0x37, 0x33, 0x33, 0x1E, 0x00], + 'H': [0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00], + 'I': [0x0F, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0F, 0x00], + 'J': [0x0F, 0x06, 0x06, 0x06, 0x06, 0x36, 0x1C, 0x00], + 'K': [0x33, 0x36, 0x3C, 0x38, 0x3C, 0x36, 0x33, 0x00], + 'L': [0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3F, 0x00], + 'M': [0x63, 0x77, 0x7F, 0x6B, 0x63, 0x63, 0x63, 0x00], + 'N': [0x33, 0x3B, 0x3F, 0x3F, 0x37, 0x33, 0x33, 0x00], + 'O': [0x1E, 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x00], + 'P': [0x3E, 0x33, 0x33, 0x3E, 0x30, 0x30, 0x30, 0x00], + 'Q': [0x1E, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x07, 0x00], + 'R': [0x3E, 0x33, 0x33, 0x3E, 0x3C, 0x36, 0x33, 0x00], + 'S': [0x1E, 0x33, 0x30, 0x1E, 0x03, 0x33, 0x1E, 0x00], + 'T': [0x3F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00], + 'U': [0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x00], + 'V': [0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00], + 'W': [0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00], + 'X': [0x33, 0x33, 0x1E, 0x0C, 0x1E, 0x33, 0x33, 0x00], + 'Y': [0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x0C, 0x00], + 'Z': [0x3F, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x3F, 0x00], + '[': [0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0F, 0x00], + '\\': [0x00, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x00, 0x00], + ']': [0x0F, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0F, 0x00], + '^': [0x0C, 0x1E, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00], + '_': [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F], + '`': [0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], + 'a': [0x00, 0x00, 0x1E, 0x03, 0x1F, 0x33, 0x1F, 0x00], + 'b': [0x30, 0x30, 0x3E, 0x33, 0x33, 0x33, 0x3E, 0x00], + 'c': [0x00, 0x00, 0x1E, 0x33, 0x30, 0x33, 0x1E, 0x00], + 'd': [0x03, 0x03, 0x1F, 0x33, 0x33, 0x33, 0x1F, 0x00], + 'e': [0x00, 0x00, 0x1E, 0x33, 0x3F, 0x30, 0x1E, 0x00], + 'f': [0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0x18, 0x00], + 'g': [0x00, 0x00, 0x1F, 0x33, 0x33, 0x1F, 0x03, 0x3E], + 'h': [0x30, 0x30, 0x3E, 0x33, 0x33, 0x33, 0x33, 0x00], + 'i': [0x06, 0x00, 0x0E, 0x06, 0x06, 0x06, 0x0F, 0x00], + 'j': [0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x33, 0x1E], + 'k': [0x30, 0x30, 0x33, 0x36, 0x3C, 0x36, 0x33, 0x00], + 'l': [0x0E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0F, 0x00], + 'm': [0x00, 0x00, 0x66, 0x7F, 0x7F, 0x6B, 0x63, 0x00], + 'n': [0x00, 0x00, 0x3E, 0x33, 0x33, 0x33, 0x33, 0x00], + 'o': [0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00], + 'p': [0x00, 0x00, 0x3E, 0x33, 0x33, 0x3E, 0x30, 0x30], + 'q': [0x00, 0x00, 0x1F, 0x33, 0x33, 0x1F, 0x03, 0x03], + 'r': [0x00, 0x00, 0x3E, 0x33, 0x30, 0x30, 0x30, 0x00], + 's': [0x00, 0x00, 0x1F, 0x30, 0x1E, 0x03, 0x3E, 0x00], + 't': [0x0C, 0x0C, 0x1F, 0x0C, 0x0C, 0x0C, 0x07, 0x00], + 'u': [0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x1F, 0x00], + 'v': [0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00], + 'w': [0x00, 0x00, 0x63, 0x6B, 0x7F, 0x3E, 0x36, 0x00], + 'x': [0x00, 0x00, 0x33, 0x1E, 0x0C, 0x1E, 0x33, 0x00], + 'y': [0x00, 0x00, 0x33, 0x33, 0x33, 0x1F, 0x06, 0x3C], + 'z': [0x00, 0x00, 0x3F, 0x06, 0x0C, 0x18, 0x3F, 0x00], + '{': [0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00], + '|': [0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00], + '}': [0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00], + '~': [0x00, 0x00, 0x00, 0x1B, 0x36, 0x00, 0x00, 0x00], + '°': [0x0E, 0x11, 0x11, 0x0E, 0x00, 0x00, 0x00, 0x00], + '¶': [0x1F, 0x3D, 0x3D, 0x3D, 0x1D, 0x05, 0x05, 0x00], + '•': [0x00, 0x00, 0x06, 0x0F, 0x0F, 0x06, 0x00, 0x00], + '♠': [0x1C, 0x3E, 0x7F, 0x7F, 0x1C, 0x1C, 0x3E, 0x00], + '♣': [0x1C, 0x1C, 0x3E, 0x7F, 0x36, 0x1C, 0x3E, 0x00], + '♥': [0x36, 0x7F, 0x7F, 0x7F, 0x3E, 0x1C, 0x08, 0x00], + '♦': [0x08, 0x1C, 0x3E, 0x7F, 0x3E, 0x1C, 0x08, 0x00], } diff --git a/app/display/fonts/fonts_utils.py b/app/display/fonts/fonts_utils.py index d8a8879..4bdb04b 100644 --- a/app/display/fonts/fonts_utils.py +++ b/app/display/fonts/fonts_utils.py @@ -22,6 +22,21 @@ def char_width(char_matrix) -> int: return cw +def font_height(font) -> int: + """Höhe in Pixeln eines Fonts + + Args: + font ([int]): der Font für den die Höhe bestimmt wird + + Returns: + int: Höhe in Pixeln + """ + + # wir nehmen uns ein Zeichen des Fonts + # die Anzahl der Werte entspricht der Höhe in Pixeln + return len(font['a']) + + def shift_letter_right(char, letter, debug=False) -> bool: """Prüfe ob das Zeichen auch komplett nach rechts gezogen ist diff --git a/main.py b/main.py index b233444..19b6efc 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,7 @@ # from machine import Pin, ADC # type: ignore from app.display.fonts.font_3x5 import font_3x5 from app.display.fonts.font_5x7 import font_5x7 -from app.display.fonts.fonts_utils import align_font +from app.display.fonts.fonts_utils import align_font, font_height from app.display.neopixel_64x64 import NeoPixel_64x64 from app.utils.colors import BLUE, GREEN, ORANGE, RAINBOW, RED, WHITE, YELLOW, GOLD from app.utils.system_load import show_system_load @@ -44,15 +44,15 @@ def weather_check(test_mode: bool = False): try: display.clear() - display.write_text('search wlan', 0, 0, color=YELLOW) + display.write_text('search wlan', 0, 0, color=WHITE) display.clear_row(0, effect=False) display.clear() display.set_font(font_3x5) - display.write_text('wlan connected', 0, 0, color=RAINBOW[1]) + display.write_text('wlan connected', 0, 0, color=RAINBOW[0]) display.write_text('querying', 0, 8, color=RAINBOW[1]) - display.write_text('weather data', 0, 16, color=RAINBOW[1]) + display.write_text('weather data', 0, 16, color=RAINBOW[2]) w_resp = wlan.actual_weather(lang='en', test_mode=test_mode) @@ -85,6 +85,8 @@ def weather_check(test_mode: bool = False): def font_test(font) -> None: display.set_font(font) + height = font_height(font) + alphabet: str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' char_line_1 = alphabet[:11] char_line_2 = alphabet[11:22] @@ -92,7 +94,7 @@ def font_test(font) -> None: num_line = '0123456789' row = 0 - incr = 6 + incr = height + 1 display.write_text(num_line, 0, row) row += incr display.write_text(char_line_1.upper(), 0, row, YELLOW) @@ -139,8 +141,8 @@ def bit_arrays(): if __name__ == '__main__': # emoji_test() - # font_test(font_3x5) + font_test(font_16x16) # bit_arrays() # show_system_load() - # font_pretty(font_3x5) - weather_check(test_mode=True) + font_pretty(font_16x16) + # weather_check(test_mode=True) diff --git a/restapi/mock-weather.json b/restapi/mock-weather.json index 1263191..1baddce 100644 --- a/restapi/mock-weather.json +++ b/restapi/mock-weather.json @@ -6,50 +6,50 @@ "lat": 53.6667, "lon": 10.2833, "tz_id": "Europe/Berlin", - "localtime_epoch": 1761209139, - "localtime": "2025-10-23 10:45" + "localtime_epoch": 1761296721, + "localtime": "2025-10-24 11:05" }, "current": { - "last_updated_epoch": 1761209100, - "last_updated": "2025-10-23 10:45", - "temp_c": 12.4, - "temp_f": 54.3, + "last_updated_epoch": 1761296400, + "last_updated": "2025-10-24 11:00", + "temp_c": 11.3, + "temp_f": 52.3, "is_day": 1, "condition": { - "text": "Light rain shower", - "icon": "//cdn.weatherapi.com/weather/64x64/day/353.png", - "code": 1240 + "text": "Overcast", + "icon": "//cdn.weatherapi.com/weather/64x64/day/122.png", + "code": 1009 }, - "wind_mph": 13.6, - "wind_kph": 22.0, - "wind_degree": 147, - "wind_dir": "SSE", - "pressure_mb": 983.0, - "pressure_in": 29.03, - "precip_mm": 2.34, - "precip_in": 0.09, - "humidity": 100, - "cloud": 75, - "feelslike_c": 10.3, - "feelslike_f": 50.5, - "windchill_c": 10.5, - "windchill_f": 50.9, - "heatindex_c": 12.6, - "heatindex_f": 54.6, - "dewpoint_c": 12.0, - "dewpoint_f": 53.6, - "vis_km": 8.0, - "vis_miles": 4.0, - "uv": 0.0, - "gust_mph": 21.1, - "gust_kph": 33.9, + "wind_mph": 21.3, + "wind_kph": 34.2, + "wind_degree": 233, + "wind_dir": "SW", + "pressure_mb": 989.0, + "pressure_in": 29.21, + "precip_mm": 0.01, + "precip_in": 0.0, + "humidity": 76, + "cloud": 100, + "feelslike_c": 8.0, + "feelslike_f": 46.4, + "windchill_c": 5.9, + "windchill_f": 42.7, + "heatindex_c": 9.7, + "heatindex_f": 49.5, + "dewpoint_c": 5.0, + "dewpoint_f": 41.0, + "vis_km": 10.0, + "vis_miles": 6.0, + "uv": 0.1, + "gust_mph": 30.5, + "gust_kph": 49.1, "air_quality": { "co": 152.678, - "no2": 8.378, - "o3": 35.0, - "so2": 0.878, - "pm2_5": 7.878, - "pm10": 8.978, + "no2": 13.578, + "o3": 40.0, + "so2": 2.678, + "pm2_5": 6.678, + "pm10": 7.078, "us-epa-index": 1, "gb-defra-index": 1 }