From 7c348f3ca15a5d40aff44c5a9b8c986b943dbf79 Mon Sep 17 00:00:00 2001 From: lilian Date: Fri, 9 Dec 2016 10:00:12 +0100 Subject: [PATCH] Replaces proprietary fonts --- examples/ssd1306_fps/Makefile | 2 +- extras/fonts/font_roboto_10.c | 1623 +++++++++++++++++++++++++++++++++ extras/fonts/font_roboto_8.c | 1341 +++++++++++++++++++++++++++ extras/fonts/fonts.c | 8 +- 4 files changed, 2969 insertions(+), 5 deletions(-) create mode 100644 extras/fonts/font_roboto_10.c create mode 100644 extras/fonts/font_roboto_8.c diff --git a/examples/ssd1306_fps/Makefile b/examples/ssd1306_fps/Makefile index 659d204..8e9c71b 100644 --- a/examples/ssd1306_fps/Makefile +++ b/examples/ssd1306_fps/Makefile @@ -1,3 +1,3 @@ PROGRAM=SSD1306_fps EXTRA_COMPONENTS = extras/ssd1306 extras/i2c extras/fonts -include ../../common.mk \ No newline at end of file +include ../../common.mk diff --git a/extras/fonts/font_roboto_10.c b/extras/fonts/font_roboto_10.c new file mode 100644 index 0000000..698d997 --- /dev/null +++ b/extras/fonts/font_roboto_10.c @@ -0,0 +1,1623 @@ +// +// Font data for Roboto 10pt +// +#include "fonts.h" + +// Character bitmaps for Roboto 10pt +const uint8_t roboto_10ptBitmaps[] = +{ + // @0 '!' (1 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @14 '"' (3 pixels wide) + 0x00, // + 0x00, // + 0xA0, // # # + 0xA0, // # # + 0xA0, // # # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @28 '#' (8 pixels wide) + 0x00, // + 0x00, // + 0x12, // # # + 0x14, // # # + 0x7F, // ####### + 0x24, // # # + 0x24, // # # + 0xFE, // ####### + 0x28, // # # + 0x28, // # # + 0x08, // # + 0x00, // + 0x00, // + 0x00, // + + // @42 '$' (6 pixels wide) + 0x20, // # + 0x30, // ## + 0x58, // # ## + 0x8C, // # ## + 0xC0, // ## + 0x60, // ## + 0x38, // ### + 0x0C, // ## + 0x8C, // # ## + 0xCC, // ## ## + 0x70, // ### + 0x20, // # + 0x00, // + 0x00, // + + // @56 '%' (8 pixels wide) + 0x00, // + 0x00, // + 0xE0, // ### + 0xA4, // # # # + 0x84, // # # + 0xA8, // # # # + 0x10, // # + 0x19, // ## # + 0x29, // # # # + 0x49, // # # # + 0x06, // ## + 0x00, // + 0x00, // + 0x00, // + + // @70 '&' (8 pixels wide) + 0x00, // + 0x00, // + 0x38, // ### + 0x64, // ## # + 0x64, // ## # + 0x38, // ### + 0x30, // ## + 0x5B, // # ## ## + 0xCE, // ## ### + 0x46, // # ## + 0x7A, // #### # + 0x00, // + 0x00, // + 0x00, // + + // @84 ''' (1 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @98 '(' (3 pixels wide) + 0x00, // + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xC0, // ## + 0x40, // # + 0x60, // ## + 0x20, // # + + // @112 ')' (3 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x60, // ## + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + + // @126 '*' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0xD0, // ## # + 0x60, // ## + 0xA0, // # # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @140 '+' (7 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x10, // # + 0x10, // # + 0x10, // # + 0xFE, // ####### + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @154 ',' (2 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + + // @168 '-' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @182 '.' (1 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @196 '/' (5 pixels wide) + 0x00, // + 0x00, // + 0x08, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x20, // # + 0x20, // # + 0x60, // ## + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + 0x00, // + + // @210 '0' (6 pixels wide) + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + 0x00, // + + // @224 '1' (4 pixels wide) + 0x00, // + 0x00, // + 0xF0, // #### + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @238 '2' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x08, // # + 0x10, // # + 0x30, // ## + 0x60, // ## + 0x40, // # + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @252 '3' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x08, // # + 0x38, // ### + 0x08, // # + 0x8C, // # ## + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @266 '4' (7 pixels wide) + 0x00, // + 0x00, // + 0x0C, // ## + 0x1C, // ### + 0x1C, // ### + 0x2C, // # ## + 0x2C, // # ## + 0x4C, // # ## + 0xFE, // ####### + 0x0C, // ## + 0x0C, // ## + 0x00, // + 0x00, // + 0x00, // + + // @280 '5' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC0, // ## + 0xC0, // ## + 0xF8, // ##### + 0x88, // # # + 0x0C, // ## + 0x8C, // # ## + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @294 '6' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC0, // ## + 0x80, // # + 0xB0, // # ## + 0x88, // # # + 0x8C, // # ## + 0x8C, // # ## + 0xC8, // ## # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @308 '7' (6 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x08, // # + 0x18, // ## + 0x10, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x00, // + 0x00, // + 0x00, // + + // @322 '8' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x70, // ### + 0x88, // # # + 0x8C, // # ## + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @336 '9' (5 pixels wide) + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x08, // # + 0x08, // # + 0xF0, // #### + 0x00, // + 0x00, // + 0x00, // + + // @350 ':' (1 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @364 ';' (2 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + + // @378 '<' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x0C, // ## + 0x70, // ### + 0xC0, // ## + 0x30, // ## + 0x0C, // ## + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @392 '=' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + 0xF8, // ##### + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @406 '>' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xC0, // ## + 0x70, // ### + 0x08, // # + 0x30, // ## + 0xC0, // ## + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @420 '?' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC8, // ## # + 0x0C, // ## + 0x08, // # + 0x18, // ## + 0x30, // ## + 0x30, // ## + 0x00, // + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @434 '@' (10 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0x1F, 0x00, // ##### + 0x61, 0x80, // ## ## + 0x4C, 0x80, // # ## # + 0x9A, 0x40, // # ## # # + 0x92, 0x40, // # # # # + 0x92, 0x40, // # # # # + 0xB2, 0x40, // # ## # # + 0x92, 0x40, // # # # # + 0x9B, 0x80, // # ## ### + 0x80, 0x00, // # + 0x60, 0x00, // ## + 0x3E, 0x00, // ##### + + // @462 'A' (8 pixels wide) + 0x00, // + 0x00, // + 0x18, // ## + 0x18, // ## + 0x1C, // ### + 0x24, // # # + 0x24, // # # + 0x26, // # ## + 0x7E, // ###### + 0x42, // # # + 0xC1, // ## # + 0x00, // + 0x00, // + 0x00, // + + // @476 'B' (7 pixels wide) + 0x00, // + 0x00, // + 0xF8, // ##### + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0xFC, // ###### + 0x86, // # ## + 0x82, // # # + 0x86, // # ## + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @490 'C' (7 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC4, // ## # + 0x86, // # ## + 0x80, // # + 0x80, // # + 0x80, // # + 0x86, // # ## + 0xC4, // ## # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @504 'D' (7 pixels wide) + 0x00, // + 0x00, // + 0xF8, // ##### + 0x84, // # # + 0x86, // # ## + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x86, // # ## + 0x84, // # # + 0xF8, // ##### + 0x00, // + 0x00, // + 0x00, // + + // @518 'E' (6 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0x80, // # + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @532 'F' (6 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @546 'G' (7 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC4, // ## # + 0x86, // # ## + 0x80, // # + 0x9E, // # #### + 0x86, // # ## + 0x86, // # ## + 0xC6, // ## ## + 0x7C, // ##### + 0x00, // + 0x00, // + 0x00, // + + // @560 'H' (7 pixels wide) + 0x00, // + 0x00, // + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0xFE, // ####### + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x00, // + 0x00, // + 0x00, // + + // @574 'I' (1 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @588 'J' (6 pixels wide) + 0x00, // + 0x00, // + 0x04, // # + 0x04, // # + 0x04, // # + 0x04, // # + 0x04, // # + 0x04, // # + 0xC4, // ## # + 0x4C, // # ## + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @602 'K' (7 pixels wide) + 0x00, // + 0x00, // + 0x84, // # # + 0x8C, // # ## + 0x98, // # ## + 0x90, // # # + 0xE0, // ### + 0x90, // # # + 0x88, // # # + 0x8C, // # ## + 0x86, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @616 'L' (6 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @630 'M' (9 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0xC1, 0x80, // ## ## + 0xC1, 0x80, // ## ## + 0xA1, 0x80, // # # ## + 0xA2, 0x80, // # # # # + 0xB2, 0x80, // # ## # # + 0x96, 0x80, // # # ## # + 0x94, 0x80, // # # # # + 0x8C, 0x80, // # ## # + 0x88, 0x80, // # # # + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + + // @658 'N' (7 pixels wide) + 0x00, // + 0x00, // + 0xC2, // ## # + 0xC2, // ## # + 0xA2, // # # # + 0xB2, // # ## # + 0x92, // # # # + 0x8A, // # # # + 0x8E, // # ### + 0x86, // # ## + 0x86, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @672 'O' (7 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC4, // ## # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0xC4, // ## # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @686 'P' (7 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x84, // # # + 0x86, // # ## + 0x86, // # ## + 0x8C, // # ## + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @700 'Q' (7 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xC4, // ## # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0xC4, // ## # + 0x7E, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @714 'R' (6 pixels wide) + 0x00, // + 0x00, // + 0xF8, // ##### + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0xF8, // ##### + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x00, // + 0x00, // + 0x00, // + + // @728 'S' (6 pixels wide) + 0x00, // + 0x00, // + 0x78, // #### + 0xCC, // ## ## + 0x84, // # # + 0xC0, // ## + 0x38, // ### + 0x0C, // ## + 0x84, // # # + 0x84, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @742 'T' (8 pixels wide) + 0x00, // + 0x00, // + 0xFF, // ######## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x18, // ## + 0x00, // + 0x00, // + 0x00, // + + // @756 'U' (7 pixels wide) + 0x00, // + 0x00, // + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0x82, // # # + 0xC4, // ## # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @770 'V' (8 pixels wide) + 0x00, // + 0x00, // + 0xC1, // ## # + 0x43, // # ## + 0x42, // # # + 0x66, // ## ## + 0x24, // # # + 0x24, // # # + 0x1C, // ### + 0x18, // ## + 0x18, // ## + 0x00, // + 0x00, // + 0x00, // + + // @784 'W' (11 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0xC4, 0x60, // ## # ## + 0x46, 0x60, // # ## ## + 0x4A, 0x40, // # # # # + 0x4A, 0x40, // # # # # + 0x6A, 0x40, // ## # # # + 0x39, 0xC0, // ### ### + 0x31, 0x80, // ## ## + 0x31, 0x80, // ## ## + 0x31, 0x80, // ## ## + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + + // @812 'X' (7 pixels wide) + 0x00, // + 0x00, // + 0x84, // # # + 0xCC, // ## ## + 0x48, // # # + 0x38, // ### + 0x30, // ## + 0x38, // ### + 0x48, // # # + 0xCC, // ## ## + 0x86, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @826 'Y' (7 pixels wide) + 0x00, // + 0x00, // + 0x86, // # ## + 0x84, // # # + 0x4C, // # ## + 0x68, // ## # + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @840 'Z' (6 pixels wide) + 0x00, // + 0x00, // + 0xFC, // ###### + 0x0C, // ## + 0x18, // ## + 0x10, // # + 0x20, // # + 0x60, // ## + 0x40, // # + 0x80, // # + 0xFC, // ###### + 0x00, // + 0x00, // + 0x00, // + + // @854 '[' (2 pixels wide) + 0xC0, // ## + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xC0, // ## + 0x00, // + + // @868 '\' (5 pixels wide) + 0x00, // + 0x00, // + 0xC0, // ## + 0x40, // # + 0x40, // # + 0x20, // # + 0x20, // # + 0x30, // ## + 0x10, // # + 0x10, // # + 0x08, // # + 0x08, // # + 0x00, // + 0x00, // + + // @882 ']' (3 pixels wide) + 0xE0, // ### + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0xE0, // ### + 0x00, // + + // @896 '^' (5 pixels wide) + 0x00, // + 0x00, // + 0x20, // # + 0x30, // ## + 0x50, // # # + 0x58, // # ## + 0xC8, // ## # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @910 '_' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xFC, // ###### + 0x00, // + 0x00, // + + // @924 '`' (2 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @938 'a' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x08, // # + 0xF8, // ##### + 0x88, // # # + 0x88, // # # + 0xE8, // ### # + 0x00, // + 0x00, // + 0x00, // + + // @952 'b' (6 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0xB8, // # ### + 0xC8, // ## # + 0x8C, // # ## + 0x84, // # # + 0x8C, // # ## + 0xC8, // ## # + 0xB8, // # ### + 0x00, // + 0x00, // + 0x00, // + + // @966 'c' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x80, // # + 0x80, // # + 0x80, // # + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + 0x00, // + + // @980 'd' (5 pixels wide) + 0x00, // + 0x08, // # + 0x08, // # + 0x08, // # + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @994 'e' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x88, // # # + 0xF8, // ##### + 0x80, // # + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @1008 'f' (4 pixels wide) + 0x00, // + 0x30, // ## + 0x60, // ## + 0x60, // ## + 0xF0, // #### + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x00, // + 0x00, // + 0x00, // + + // @1022 'g' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x7C, // ##### + 0xCC, // ## ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x7C, // ##### + 0x08, // # + 0x08, // # + 0xF0, // #### + + // @1036 'h' (6 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0xB8, // # ### + 0x88, // # # + 0x88, // # # + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x8C, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @1050 'i' (1 pixels wide) + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @1064 'j' (2 pixels wide) + 0x00, // + 0x40, // # + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0xC0, // ## + + // @1078 'k' (5 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x98, // # ## + 0x90, // # # + 0xA0, // # # + 0xE0, // ### + 0xB0, // # ## + 0x90, // # # + 0x88, // # # + 0x00, // + 0x00, // + 0x00, // + + // @1092 'l' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @1106 'm' (9 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + 0xBB, 0x80, // # ### ### + 0x8C, 0x80, // # ## # + 0x88, 0x80, // # # # + 0x88, 0x80, // # # # + 0x88, 0x80, // # # # + 0x88, 0x80, // # # # + 0x88, 0x80, // # # # + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + + // @1134 'n' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xB8, // # ### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x00, // + 0x00, // + 0x00, // + + // @1148 'o' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x8C, // # ## + 0x84, // # # + 0x8C, // # ## + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + 0x00, // + + // @1162 'p' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xB8, // # ### + 0x88, // # # + 0x8C, // # ## + 0x84, // # # + 0x8C, // # ## + 0x88, // # # + 0xB8, // # ### + 0x80, // # + 0x80, // # + 0x80, // # + + // @1176 'q' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x78, // #### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x08, // # + 0x08, // # + 0x08, // # + + // @1190 'r' (3 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xA0, // # # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + + // @1204 's' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x88, // # # + 0x80, // # + 0x70, // ### + 0x08, // # + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + 0x00, // + + // @1218 't' (4 pixels wide) + 0x00, // + 0x00, // + 0x60, // ## + 0x60, // ## + 0xF0, // #### + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @1232 'u' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + 0x00, // + + // @1246 'v' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xC4, // ## # + 0x44, // # # + 0x48, // # # + 0x28, // # # + 0x28, // # # + 0x30, // ## + 0x10, // # + 0x00, // + 0x00, // + 0x00, // + + // @1260 'w' (9 pixels wide) + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + 0xCC, 0x80, // ## ## # + 0x4C, 0x80, // # ## # + 0x4C, 0x80, // # ## # + 0x57, 0x80, // # # #### + 0x33, 0x00, // ## ## + 0x33, 0x00, // ## ## + 0x23, 0x00, // # ## + 0x00, 0x00, // + 0x00, 0x00, // + 0x00, 0x00, // + + // @1288 'x' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x98, // # ## + 0xD0, // ## # + 0x70, // ### + 0x20, // # + 0x70, // ### + 0xD0, // ## # + 0x98, // # ## + 0x00, // + 0x00, // + 0x00, // + + // @1302 'y' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xC4, // ## # + 0x4C, // # ## + 0x48, // # # + 0x68, // ## # + 0x28, // # # + 0x30, // ## + 0x10, // # + 0x10, // # + 0x20, // # + 0x60, // ## + + // @1316 'z' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x10, // # + 0x30, // ## + 0x60, // ## + 0x40, // # + 0x80, // # + 0xF8, // ##### + 0x00, // + 0x00, // + 0x00, // + + // @1330 '{' (4 pixels wide) + 0x00, // + 0x10, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x60, // ## + 0xC0, // ## + 0x60, // ## + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x10, // # + + // @1344 '|' (1 pixels wide) + 0x00, // + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + + // @1358 '}' (4 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x20, // # + 0x10, // # + 0x20, // # + 0x60, // ## + 0x60, // ## + 0x60, // ## + 0x40, // # + 0x80, // # + + // @1372 '~' (7 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF2, // #### # + 0x8C, // # ## + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // +}; + +// Character descriptors for Roboto 10pt +// { [Char width in bits], [Offset into roboto_10ptCharBitmaps in bytes] } +const font_char_desc_t roboto_10ptDescriptors[] = +{ + {1, 0}, // ! + {3, 14}, // " + {8, 28}, // # + {6, 42}, // $ + {8, 56}, // % + {8, 70}, // & + {1, 84}, // ' + {3, 98}, // ( + {3, 112}, // ) + {4, 126}, // * + {7, 140}, // + + {2, 154}, // , + {4, 168}, // - + {1, 182}, // . + {5, 196}, // / + {6, 210}, // 0 + {4, 224}, // 1 + {6, 238}, // 2 + {6, 252}, // 3 + {7, 266}, // 4 + {6, 280}, // 5 + {6, 294}, // 6 + {6, 308}, // 7 + {6, 322}, // 8 + {5, 336}, // 9 + {1, 350}, // : + {2, 364}, // ; + {6, 378}, // < + {5, 392}, // = + {5, 406}, // > + {6, 420}, // ? + {10, 434}, // @ + {8, 462}, // A + {7, 476}, // B + {7, 490}, // C + {7, 504}, // D + {6, 518}, // E + {6, 532}, // F + {7, 546}, // G + {7, 560}, // H + {1, 574}, // I + {6, 588}, // J + {7, 602}, // K + {6, 616}, // L + {9, 630}, // M + {7, 658}, // N + {7, 672}, // O + {7, 686}, // P + {7, 700}, // Q + {6, 714}, // R + {6, 728}, // S + {8, 742}, // T + {7, 756}, // U + {8, 770}, // V + {11, 784}, // W + {7, 812}, // X + {7, 826}, // Y + {6, 840}, // Z + {2, 854}, // [ + {5, 868}, /* \ */ + {3, 882}, // ] + {5, 896}, // ^ + {6, 910}, // _ + {2, 924}, // ` + {5, 938}, // a + {6, 952}, // b + {5, 966}, // c + {5, 980}, // d + {5, 994}, // e + {4, 1008}, // f + {6, 1022}, // g + {6, 1036}, // h + {1, 1050}, // i + {2, 1064}, // j + {5, 1078}, // k + {1, 1092}, // l + {9, 1106}, // m + {5, 1134}, // n + {6, 1148}, // o + {6, 1162}, // p + {5, 1176}, // q + {3, 1190}, // r + {5, 1204}, // s + {4, 1218}, // t + {5, 1232}, // u + {6, 1246}, // v + {9, 1260}, // w + {5, 1288}, // x + {6, 1302}, // y + {5, 1316}, // z + {4, 1330}, // { + {1, 1344}, // | + {4, 1358}, // } + {7, 1372}, // ~ +}; + +// Font information for Roboto 10pt +const font_info_t roboto_10ptFontInfo = +{ + 2, // Character height + '!', // Start character + '~', // End character + 2, // Width, in pixels, of space character + roboto_10ptDescriptors, // Character descriptor array + roboto_10ptBitmaps, // Character bitmap array +}; diff --git a/extras/fonts/font_roboto_8.c b/extras/fonts/font_roboto_8.c new file mode 100644 index 0000000..f3ad025 --- /dev/null +++ b/extras/fonts/font_roboto_8.c @@ -0,0 +1,1341 @@ +// +// Font data for Roboto 8pt +// +#include "fonts.h" + +// Character bitmaps for Roboto 8pt +const uint8_t roboto_8ptBitmaps[] = +{ + // @0 '!' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + + // @11 '"' (2 pixels wide) + 0x00, // + 0xC0, // ## + 0xC0, // ## + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @22 '#' (6 pixels wide) + 0x00, // + 0x04, // # + 0x20, // # + 0x7C, // ##### + 0x28, // # # + 0x28, // # # + 0xFC, // ###### + 0x40, // # + 0x50, // # # + 0x00, // + 0x00, // + + // @33 '$' (5 pixels wide) + 0x20, // # + 0x70, // ### + 0x98, // # ## + 0x80, // # + 0xC0, // ## + 0x30, // ## + 0x08, // # + 0x98, // # ## + 0x70, // ### + 0x20, // # + 0x00, // + + // @44 '%' (7 pixels wide) + 0x00, // + 0xC0, // ## + 0x28, // # # + 0x28, // # # + 0xD0, // ## # + 0x2C, // # ## + 0x32, // ## # + 0x52, // # # # + 0x0C, // ## + 0x00, // + 0x00, // + + // @55 '&' (6 pixels wide) + 0x00, // + 0x30, // ## + 0x48, // # # + 0x58, // # ## + 0x20, // # + 0x54, // # # # + 0x8C, // # ## + 0xCC, // ## ## + 0x7C, // ##### + 0x00, // + 0x00, // + + // @66 ''' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @77 '(' (3 pixels wide) + 0x40, // # + 0x40, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x40, // # + 0x20, // # + + // @88 ')' (3 pixels wide) + 0x80, // # + 0x40, // # + 0x40, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + + // @99 '*' (3 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0xE0, // ### + 0xC0, // ## + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @110 '+' (6 pixels wide) + 0x00, // + 0x00, // + 0x10, // # + 0x10, // # + 0xFC, // ###### + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + 0x00, // + 0x00, // + + // @121 ',' (2 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + + // @132 '-' (3 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xE0, // ### + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @143 '.' (1 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + + // @154 '/' (4 pixels wide) + 0x00, // + 0x10, // # + 0x10, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + 0x80, // # + 0x00, // + + // @165 '0' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x90, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @176 '1' (3 pixels wide) + 0x00, // + 0xE0, // ### + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x00, // + 0x00, // + + // @187 '2' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x90, // # # + 0x10, // # + 0x10, // # + 0x20, // # + 0x40, // # + 0xC0, // ## + 0xF8, // ##### + 0x00, // + 0x00, // + + // @198 '3' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x90, // # # + 0x10, // # + 0x70, // ### + 0x10, // # + 0x08, // # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @209 '4' (6 pixels wide) + 0x00, // + 0x18, // ## + 0x18, // ## + 0x28, // # # + 0x28, // # # + 0x48, // # # + 0xFC, // ###### + 0x08, // # + 0x08, // # + 0x00, // + 0x00, // + + // @220 '5' (5 pixels wide) + 0x00, // + 0xF0, // #### + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x18, // ## + 0x08, // # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @231 '6' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x98, // # ## + 0x88, // # # + 0x98, // # ## + 0x70, // ### + 0x00, // + 0x00, // + + // @242 '7' (5 pixels wide) + 0x00, // + 0xF8, // ##### + 0x10, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x00, // + 0x00, // + + // @253 '8' (5 pixels wide) + 0x00, // + 0xF0, // #### + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x90, // # # + 0x88, // # # + 0x98, // # ## + 0xF0, // #### + 0x00, // + 0x00, // + + // @264 '9' (4 pixels wide) + 0x00, // + 0xE0, // ### + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x10, // # + 0x10, // # + 0xE0, // ### + 0x00, // + 0x00, // + + // @275 ':' (1 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x80, // # + 0x00, // + 0x00, // + + // @286 ';' (2 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x40, // # + 0x40, // # + 0x80, // # + 0x00, // + + // @297 '<' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x30, // ## + 0xC0, // ## + 0xC0, // ## + 0x30, // ## + 0x00, // + 0x00, // + 0x00, // + + // @308 '=' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x00, // + 0xF0, // #### + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @319 '>' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xC0, // ## + 0x30, // ## + 0x30, // ## + 0xC0, // ## + 0x00, // + 0x00, // + 0x00, // + + // @330 '?' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x08, // # + 0x10, // # + 0x30, // ## + 0x20, // # + 0x00, // + 0x20, // # + 0x00, // + 0x00, // + + // @341 '@' (8 pixels wide) + 0x00, // + 0x3C, // #### + 0x42, // # # + 0x89, // # # # + 0xB4, // # ## # + 0x24, // # # + 0x24, // # # + 0x25, // # # # + 0xBE, // # ##### + 0x40, // # + 0x3C, // #### + + // @352 'A' (7 pixels wide) + 0x00, // + 0x10, // # + 0x10, // # + 0x28, // # # + 0x28, // # # + 0x6C, // ## ## + 0x7C, // ##### + 0x44, // # # + 0x86, // # ## + 0x00, // + 0x00, // + + // @363 'B' (6 pixels wide) + 0x00, // + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0xF0, // #### + 0x88, // # # + 0x84, // # # + 0x88, // # # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @374 'C' (6 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x8C, // # ## + 0x80, // # + 0x80, // # + 0x8C, // # ## + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @385 'D' (6 pixels wide) + 0x00, // + 0xF0, // #### + 0x88, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x88, // # # + 0xF0, // #### + 0x00, // + 0x00, // + + // @396 'E' (5 pixels wide) + 0x00, // + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @407 'F' (5 pixels wide) + 0x00, // + 0xF8, // ##### + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @418 'G' (6 pixels wide) + 0x00, // + 0x78, // #### + 0x88, // # # + 0x80, // # + 0x80, // # + 0x9C, // # ### + 0x8C, // # ## + 0x8C, // # ## + 0x78, // #### + 0x00, // + 0x00, // + + // @429 'H' (6 pixels wide) + 0x00, // + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0xFC, // ###### + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x00, // + 0x00, // + + // @440 'I' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @451 'J' (5 pixels wide) + 0x00, // + 0x08, // # + 0x08, // # + 0x08, // # + 0x08, // # + 0x08, // # + 0x08, // # + 0xC8, // ## # + 0x70, // ### + 0x00, // + 0x00, // + + // @462 'K' (5 pixels wide) + 0x00, // + 0x88, // # # + 0x90, // # # + 0xB0, // # ## + 0xE0, // ### + 0xA0, // # # + 0x90, // # # + 0x98, // # ## + 0x88, // # # + 0x00, // + 0x00, // + + // @473 'L' (5 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @484 'M' (8 pixels wide) + 0x00, // + 0x83, // # ## + 0xC3, // ## ## + 0xC5, // ## # # + 0xA5, // # # # # + 0xA5, // # # # # + 0xA9, // # # # # + 0x99, // # ## # + 0x91, // # # # + 0x00, // + 0x00, // + + // @495 'N' (6 pixels wide) + 0x00, // + 0x84, // # # + 0xC4, // ## # + 0xE4, // ### # + 0xA4, // # # # + 0x94, // # # # + 0x94, // # # # + 0x8C, // # ## + 0x8C, // # ## + 0x00, // + 0x00, // + + // @506 'O' (6 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @517 'P' (6 pixels wide) + 0x00, // + 0xF8, // ##### + 0x88, // # # + 0x8C, // # ## + 0x88, // # # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @528 'Q' (6 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x88, // # # + 0x7C, // ##### + 0x04, // # + 0x00, // + + // @539 'R' (5 pixels wide) + 0x00, // + 0xF0, // #### + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0xF8, // ##### + 0x88, // # # + 0x88, // # # + 0x88, // # # + 0x00, // + 0x00, // + + // @550 'S' (5 pixels wide) + 0x00, // + 0x70, // ### + 0x88, // # # + 0x80, // # + 0xE0, // ### + 0x18, // ## + 0x08, // # + 0x88, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @561 'T' (6 pixels wide) + 0x00, // + 0xFC, // ###### + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + 0x00, // + + // @572 'U' (6 pixels wide) + 0x00, // + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x84, // # # + 0x88, // # # + 0x78, // #### + 0x00, // + 0x00, // + + // @583 'V' (7 pixels wide) + 0x00, // + 0x82, // # # + 0x44, // # # + 0x44, // # # + 0x4C, // # ## + 0x28, // # # + 0x28, // # # + 0x20, // # + 0x10, // # + 0x00, // + 0x00, // + + // @594 'W' (9 pixels wide) + 0x00, 0x00, // + 0x88, 0x80, // # # # + 0x4C, 0x80, // # ## # + 0x4C, 0x80, // # ## # + 0x55, 0x00, // # # # # + 0x55, 0x00, // # # # # + 0x73, 0x00, // ### ## + 0x23, 0x00, // # ## + 0x23, 0x00, // # ## + 0x00, 0x00, // + 0x00, 0x00, // + + // @616 'X' (5 pixels wide) + 0x00, // + 0x88, // # # + 0xD8, // ## ## + 0x50, // # # + 0x20, // # + 0x20, // # + 0x50, // # # + 0xD8, // ## ## + 0x88, // # # + 0x00, // + 0x00, // + + // @627 'Y' (6 pixels wide) + 0x00, // + 0xC4, // ## # + 0x44, // # # + 0x28, // # # + 0x28, // # # + 0x10, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + 0x00, // + + // @638 'Z' (5 pixels wide) + 0x00, // + 0xF8, // ##### + 0x10, // # + 0x10, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x80, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @649 '[' (2 pixels wide) + 0xC0, // ## + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0xC0, // ## + + // @660 '\' (4 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x40, // # + 0x20, // # + 0x20, // # + 0x20, // # + 0x10, // # + 0x10, // # + 0x10, // # + 0x00, // + + // @671 ']' (2 pixels wide) + 0xC0, // ## + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0xC0, // ## + + // @682 '^' (3 pixels wide) + 0x00, // + 0x40, // # + 0xC0, // ## + 0xA0, // # # + 0xA0, // # # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @693 '_' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xF8, // ##### + 0x00, // + + // @704 '`' (2 pixels wide) + 0x00, // + 0x80, // # + 0x40, // # + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + + // @715 'a' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x90, // # # + 0x30, // ## + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x00, // + 0x00, // + + // @726 'b' (5 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x90, // # # + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0xF0, // #### + 0x00, // + 0x00, // + + // @737 'c' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x90, // # # + 0x80, // # + 0x80, // # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @748 'd' (4 pixels wide) + 0x00, // + 0x10, // # + 0x10, // # + 0xF0, // #### + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0xE0, // ### + 0x00, // + 0x00, // + + // @759 'e' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x90, // # # + 0xF0, // #### + 0x80, // # + 0x80, // # + 0x70, // ### + 0x00, // + 0x00, // + + // @770 'f' (4 pixels wide) + 0x00, // + 0x30, // ## + 0x40, // # + 0xE0, // ### + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x00, // + 0x00, // + + // @781 'g' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xE8, // ### # + 0x98, // # ## + 0x98, // # ## + 0x98, // # ## + 0x98, // # ## + 0xF8, // ##### + 0x10, // # + 0xF0, // #### + + // @792 'h' (5 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0xF0, // #### + 0x90, // # # + 0x98, // # ## + 0x98, // # ## + 0x98, // # ## + 0x98, // # ## + 0x00, // + 0x00, // + + // @803 'i' (1 pixels wide) + 0x00, // + 0x80, // # + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @814 'j' (2 pixels wide) + 0x00, // + 0x40, // # + 0x00, // + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0xC0, // ## + + // @825 'k' (4 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x90, // # # + 0xA0, // # # + 0xC0, // ## + 0xA0, // # # + 0xA0, // # # + 0x90, // # # + 0x00, // + 0x00, // + + // @836 'l' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @847 'm' (8 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xF6, // #### ## + 0x99, // # ## # + 0x91, // # # # + 0x91, // # # # + 0x91, // # # # + 0x91, // # # # + 0x00, // + 0x00, // + + // @858 'n' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x00, // + 0x00, // + + // @869 'o' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x70, // ### + 0x90, // # # + 0x88, // # # + 0x88, // # # + 0x90, // # # + 0x70, // ### + 0x00, // + 0x00, // + + // @880 'p' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x90, // # # + 0x88, // # # + 0x88, // # # + 0x98, // # ## + 0xF0, // #### + 0x80, // # + 0x80, // # + + // @891 'q' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xF0, // #### + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x10, // # + 0x10, // # + + // @902 'r' (3 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xE0, // ### + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + 0x00, // + + // @913 's' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0xE0, // ### + 0x90, // # # + 0xC0, // ## + 0x30, // ## + 0x90, // # # + 0xF0, // #### + 0x00, // + 0x00, // + + // @924 't' (3 pixels wide) + 0x00, // + 0x40, // # + 0x40, // # + 0xE0, // ### + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x60, // ## + 0x00, // + 0x00, // + + // @935 'u' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0x90, // # # + 0xF0, // #### + 0x00, // + 0x00, // + + // @946 'v' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x88, // # # + 0x48, // # # + 0x50, // # # + 0x10, // # + 0x30, // ## + 0x20, // # + 0x00, // + 0x00, // + + // @957 'w' (8 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x89, // # # # + 0x59, // # ## # + 0x5A, // # ## # + 0x56, // # # ## + 0x66, // ## ## + 0x26, // # ## + 0x00, // + 0x00, // + + // @968 'x' (4 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x90, // # # + 0xA0, // # # + 0x60, // ## + 0x60, // ## + 0xA0, // # # + 0x90, // # # + 0x00, // + 0x00, // + + // @979 'y' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x88, // # # + 0x48, // # # + 0x50, // # # + 0x70, // ### + 0x30, // ## + 0x20, // # + 0x20, // # + 0x40, // # + + // @990 'z' (5 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x78, // #### + 0x10, // # + 0x30, // ## + 0x20, // # + 0x40, // # + 0xF8, // ##### + 0x00, // + 0x00, // + + // @1001 '{' (3 pixels wide) + 0x00, // + 0x20, // # + 0x60, // ## + 0x60, // ## + 0x40, // # + 0xC0, // ## + 0x40, // # + 0x60, // ## + 0x60, // ## + 0x20, // # + 0x00, // + + // @1012 '|' (1 pixels wide) + 0x00, // + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x80, // # + 0x00, // + + // @1023 '}' (3 pixels wide) + 0x80, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x20, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x40, // # + 0x80, // # + + // @1034 '~' (6 pixels wide) + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0x00, // + 0xE4, // ### # + 0x18, // ## + 0x00, // + 0x00, // + 0x00, // + 0x00, // +}; + +// Character descriptors for Roboto 8pt +// { [Char width in bits], [Offset into roboto_8ptCharBitmaps in bytes] } +const font_char_desc_t roboto_8ptDescriptors[] = +{ + {1, 0}, // ! + {2, 11}, // " + {6, 22}, // # + {5, 33}, // $ + {7, 44}, // % + {6, 55}, // & + {1, 66}, // ' + {3, 77}, // ( + {3, 88}, // ) + {3, 99}, // * + {6, 110}, // + + {2, 121}, // , + {3, 132}, // - + {1, 143}, // . + {4, 154}, // / + {5, 165}, // 0 + {3, 176}, // 1 + {5, 187}, // 2 + {5, 198}, // 3 + {6, 209}, // 4 + {5, 220}, // 5 + {5, 231}, // 6 + {5, 242}, // 7 + {5, 253}, // 8 + {4, 264}, // 9 + {1, 275}, // : + {2, 286}, // ; + {4, 297}, // < + {4, 308}, // = + {4, 319}, // > + {5, 330}, // ? + {8, 341}, // @ + {7, 352}, // A + {6, 363}, // B + {6, 374}, // C + {6, 385}, // D + {5, 396}, // E + {5, 407}, // F + {6, 418}, // G + {6, 429}, // H + {1, 440}, // I + {5, 451}, // J + {5, 462}, // K + {5, 473}, // L + {8, 484}, // M + {6, 495}, // N + {6, 506}, // O + {6, 517}, // P + {6, 528}, // Q + {5, 539}, // R + {5, 550}, // S + {6, 561}, // T + {6, 572}, // U + {7, 583}, // V + {9, 594}, // W + {5, 616}, // X + {6, 627}, // Y + {5, 638}, // Z + {2, 649}, // [ + {4, 660}, /* \ */ + {2, 671}, // ] + {3, 682}, // ^ + {5, 693}, // _ + {2, 704}, // ` + {4, 715}, // a + {5, 726}, // b + {4, 737}, // c + {4, 748}, // d + {4, 759}, // e + {4, 770}, // f + {5, 781}, // g + {5, 792}, // h + {1, 803}, // i + {2, 814}, // j + {4, 825}, // k + {1, 836}, // l + {8, 847}, // m + {4, 858}, // n + {5, 869}, // o + {5, 880}, // p + {4, 891}, // q + {3, 902}, // r + {4, 913}, // s + {3, 924}, // t + {4, 935}, // u + {5, 946}, // v + {8, 957}, // w + {4, 968}, // x + {5, 979}, // y + {5, 990}, // z + {3, 1001}, // { + {1, 1012}, // | + {3, 1023}, // } + {6, 1034}, // ~ +}; + +// Font information for Roboto 8pt +const font_info_t roboto_8ptFontInfo = +{ + 2, // Character height + '!', // Start character + '~', // End character + 2, // Width, in pixels, of space character + roboto_8ptDescriptors, // Character descriptor array + roboto_8ptBitmaps, // Character bitmap array +}; diff --git a/extras/fonts/fonts.c b/extras/fonts/fonts.c index c7a45a6..472590a 100644 --- a/extras/fonts/fonts.c +++ b/extras/fonts/fonts.c @@ -7,12 +7,12 @@ #include "fonts.h" extern const font_info_t glcd_5x7_font_info; -extern const font_info_t tahoma_8pt_font_info; -extern const font_info_t tahoma_16ptFontInfo; +extern const font_info_t roboto_8ptFontInfo; +extern const font_info_t roboto_10ptFontInfo; const font_info_t* fonts[NUM_FONTS] = { &glcd_5x7_font_info, - &tahoma_8pt_font_info, - &tahoma_16ptFontInfo, + &roboto_8ptFontInfo, + &roboto_10ptFontInfo, };