├── .gitignore ├── fontconvert ├── Makefile ├── makefonts.sh ├── fontconvert_win.md └── fontconvert.c ├── Adafruit_SPITFT_Macros.h ├── library.properties ├── .travis.yml ├── gfxfont.h ├── license.txt ├── README.md ├── Fonts ├── Picopixel.h ├── Tiny3x3a2pt7b.h ├── Org_01.h ├── FreeMono9pt7b.h ├── FreeMonoOblique9pt7b.h ├── FreeMonoBold9pt7b.h ├── FreeSerif9pt7b.h ├── FreeSans9pt7b.h ├── FreeSerifBold9pt7b.h ├── FreeSerifItalic9pt7b.h ├── FreeMonoBoldOblique9pt7b.h ├── FreeSansBold9pt7b.h ├── FreeSerifBoldItalic9pt7b.h ├── FreeSansOblique9pt7b.h └── FreeMono12pt7b.h ├── glcdfont.c └── examples └── mock_ili9341 └── mock_ili9341.ino /.gitignore: -------------------------------------------------------------------------------- 1 | default.vim 2 | fontconvert/fontconvert 3 | # Our handy .gitignore for automation ease 4 | Doxyfile* 5 | doxygen_sqlite3.db 6 | html -------------------------------------------------------------------------------- /fontconvert/Makefile: -------------------------------------------------------------------------------- 1 | all: fontconvert 2 | 3 | CC = gcc 4 | CFLAGS = -Wall -I/usr/local/include/freetype2 -I/usr/include/freetype2 -I/usr/include 5 | LIBS = -lfreetype 6 | 7 | fontconvert: fontconvert.c 8 | $(CC) $(CFLAGS) $< $(LIBS) -o $@ 9 | strip $@ 10 | 11 | clean: 12 | rm -f fontconvert 13 | -------------------------------------------------------------------------------- /Adafruit_SPITFT_Macros.h: -------------------------------------------------------------------------------- 1 | // THIS FILE INTENTIONALLY LEFT BLANK. 2 | 3 | // Macros previously #defined here have been made into (mostly) inline 4 | // functions in the Adafruit_SPITFT class. Other libraries might still 5 | // contain code trying to #include this header file, so until everything's 6 | // updated this file still exists (but doing nothing) to avoid trouble. 7 | -------------------------------------------------------------------------------- /library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit GFX Library 2 | version=1.5.7 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Adafruit GFX graphics core library, this is the 'core' class that all our other graphics libraries derive from. 6 | paragraph=Install this library in addition to the display library for your hardware. 7 | category=Display 8 | url=https://github.com/adafruit/Adafruit-GFX-Library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | sudo: false 3 | cache: 4 | directories: 5 | - ~/arduino_ide 6 | - ~/.arduino15/packages/ 7 | git: 8 | depth: false 9 | quiet: true 10 | env: 11 | global: 12 | - PRETTYNAME="Adafruit GFX Library" 13 | 14 | before_install: 15 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) 16 | 17 | install: 18 | - arduino --install-library "Adafruit ILI9341" 19 | 20 | script: 21 | - build_main_platforms 22 | 23 | # Generate and deploy documentation 24 | after_success: 25 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) 26 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) 27 | -------------------------------------------------------------------------------- /gfxfont.h: -------------------------------------------------------------------------------- 1 | // Font structures for newer Adafruit_GFX (1.1 and later). 2 | // Example fonts are included in 'Fonts' directory. 3 | // To use a font in your Arduino sketch, #include the corresponding .h 4 | // file and pass address of GFXfont struct to setFont(). Pass NULL to 5 | // revert to 'classic' fixed-space bitmap font. 6 | 7 | #ifndef _GFXFONT_H_ 8 | #define _GFXFONT_H_ 9 | 10 | /// Font data stored PER GLYPH 11 | typedef struct { 12 | uint16_t bitmapOffset; ///< Pointer into GFXfont->bitmap 13 | uint8_t width; ///< Bitmap dimensions in pixels 14 | uint8_t height; ///< Bitmap dimensions in pixels 15 | uint8_t xAdvance; ///< Distance to advance cursor (x axis) 16 | int8_t xOffset; ///< X dist from cursor pos to UL corner 17 | int8_t yOffset; ///< Y dist from cursor pos to UL corner 18 | } GFXglyph; 19 | 20 | /// Data stored for FONT AS A WHOLE 21 | typedef struct { 22 | uint8_t *bitmap; ///< Glyph bitmaps, concatenated 23 | GFXglyph *glyph; ///< Glyph array 24 | uint8_t first; ///< ASCII extents (first char) 25 | uint8_t last; ///< ASCII extents (last char) 26 | uint8_t yAdvance; ///< Newline distance (y axis) 27 | } GFXfont; 28 | 29 | #endif // _GFXFONT_H_ 30 | -------------------------------------------------------------------------------- /fontconvert/makefonts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Ugly little Bash script, generates a set of .h files for GFX using 4 | # GNU FreeFont sources. There are three fonts: 'Mono' (Courier-like), 5 | # 'Sans' (Helvetica-like) and 'Serif' (Times-like); four styles: regular, 6 | # bold, oblique or italic, and bold+oblique or bold+italic; and four 7 | # sizes: 9, 12, 18 and 24 point. No real error checking or anything, 8 | # this just powers through all the combinations, calling the fontconvert 9 | # utility and redirecting the output to a .h file for each combo. 10 | 11 | # Adafruit_GFX repository does not include the source outline fonts 12 | # (huge zipfile, different license) but they're easily acquired: 13 | # http://savannah.gnu.org/projects/freefont/ 14 | 15 | convert=./fontconvert 16 | inpath=~/Desktop/freefont/ 17 | outpath=../Fonts/ 18 | fonts=(FreeMono FreeSans FreeSerif) 19 | styles=("" Bold Italic BoldItalic Oblique BoldOblique) 20 | sizes=(9 12 18 24) 21 | 22 | for f in ${fonts[*]} 23 | do 24 | for index in ${!styles[*]} 25 | do 26 | st=${styles[$index]} 27 | for si in ${sizes[*]} 28 | do 29 | infile=$inpath$f$st".ttf" 30 | if [ -f $infile ] # Does source combination exist? 31 | then 32 | outfile=$outpath$f$st$si"pt7b.h" 33 | # printf "%s %s %s > %s\n" $convert $infile $si $outfile 34 | $convert $infile $si > $outfile 35 | fi 36 | done 37 | done 38 | done 39 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | Software License Agreement (BSD License) 2 | 3 | Copyright (c) 2012 Adafruit Industries. All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | - Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | - Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 18 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 | POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Adafruit GFX Library [![Build Status](https://travis-ci.com/adafruit/Adafruit-GFX-Library.svg?branch=master)](https://travis-ci.com/adafruit/Adafruit-GFX-Library) 2 | 3 | This is the core graphics library for all our displays, providing a common set of graphics primitives (points, lines, circles, etc.). It needs to be paired with a hardware-specific library for each display device we carry (to handle the lower-level functions). 4 | 5 | Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit! 6 | 7 | Written by Limor Fried/Ladyada for Adafruit Industries. 8 | BSD license, check license.txt for more information. 9 | All text above must be included in any redistribution. 10 | 11 | Recent Arduino IDE releases include the Library Manager for easy installation. Otherwise, to download, click the DOWNLOAD ZIP button, uncompress and rename the uncompressed folder Adafruit_GFX. Confirm that the Adafruit_GFX folder contains Adafruit_GFX.cpp and Adafruit_GFX.h. Place the Adafruit_GFX library folder your ArduinoSketchFolder/Libraries/ folder. You may need to create the Libraries subfolder if its your first library. Restart the IDE. 12 | 13 | # Useful Resources 14 | 15 | - Image2Code: This is a handy Java GUI utility to convert a BMP file into the array code necessary to display the image with the drawBitmap function. Check out the code at ehubin's GitHub repository: https://github.com/ehubin/Adafruit-GFX-Library/tree/master/Img2Code 16 | 17 | - drawXBitmap function: You can use the GIMP photo editor to save a .xbm file and use the array saved in the file to draw a bitmap with the drawXBitmap function. See the pull request here for more details: https://github.com/adafruit/Adafruit-GFX-Library/pull/31 18 | 19 | - 'Fonts' folder contains bitmap fonts for use with recent (1.1 and later) Adafruit_GFX. To use a font in your Arduino sketch, \#include the corresponding .h file and pass address of GFXfont struct to setFont(). Pass NULL to revert to 'classic' fixed-space bitmap font. 20 | 21 | - 'fontconvert' folder contains a command-line tool for converting TTF fonts to Adafruit_GFX header format. 22 | 23 | --- 24 | 25 | ### Roadmap 26 | 27 | The PRIME DIRECTIVE is to maintain backward compatibility with existing Arduino sketches -- many are hosted elsewhere and don't track changes here, some are in print and can never be changed! This "little" library has grown organically over time and sometimes we paint ourselves into a design corner and just have to live with it or add ungainly workarounds. 28 | 29 | Highly unlikely to merge any changes for additional or incompatible font formats (see Prime Directive above). There are already two formats and the code is quite bloaty there as it is (this also creates liabilities for tools and documentation). If you *must* have a more sophisticated font format, consider creating a fork with the features required for your project. For similar reasons, also unlikely to add any more bitmap formats, it's getting messy. 30 | 31 | Please don't reformat code for the sake of reformatting code. The resulting large "visual diff" makes it impossible to untangle actual bug fixes from merely rearranged lines. 32 | -------------------------------------------------------------------------------- /fontconvert/fontconvert_win.md: -------------------------------------------------------------------------------- 1 | ### A short guide to use fontconvert.c to create your own fonts using MinGW. 2 | 3 | #### STEP 1: INSTALL MinGW 4 | 5 | Install MinGW (Minimalist GNU for Windows) from [MinGW.org](http://www.mingw.org/). 6 | Please read carefully the instructions found on [Getting started page](http://www.mingw.org/wiki/Getting_Started). 7 | I suggest installing with the "Graphical User Interface Installer". 8 | To complete your initial installation you should further install some "packages". 9 | For our purpose you should only install the "Basic Setup" packages. 10 | To do that: 11 | 12 | 1. Open the MinGW Installation Manager 13 | 2. From the left panel click "Basic Setup". 14 | 3. On the right panel choose "mingw32-base", "mingw-gcc-g++", "mingw-gcc-objc" and "msys-base" 15 | and click "Mark for installation" 16 | 4. From the Menu click "Installation" and then "Apply changes". In the pop-up window select "Apply". 17 | 18 | 19 | #### STEP 2: INSTALL Freetype Library 20 | 21 | To read about the freetype project visit [freetype.org](https://www.freetype.org/). 22 | To Download the latest version of freetype go to [download page](http://download.savannah.gnu.org/releases/freetype/) 23 | and choose "freetype-2.7.tar.gz" file (or a newer version if available). 24 | To avoid long cd commands later in the command prompt, I suggest you unzip the file in the C:\ directory. 25 | (I also renamed the folder to "ft27") 26 | Before you build the library it's good to read these articles: 27 | * [Using MSYS with MinGW](http://www.mingw.org/wiki/MSYS) 28 | * [Installation and Use of Supplementary Libraries with MinGW](http://www.mingw.org/wiki/LibraryPathHOWTO) 29 | * [Include Path](http://www.mingw.org/wiki/IncludePathHOWTO) 30 | 31 | Inside the unzipped folder there is another folder named "docs". Open it and read the INSTALL.UNIX (using notepad). 32 | Pay attention to paragraph 3 (Build and Install the Library). So, let's begin the installation. 33 | To give the appropriate commands we will use the MSYS command prompt (not cmd.exe of windows) which is UNIX like. 34 | Follow the path C:\MinGW\msys\1.0 and double click "msys.bat". The command prompt environment appears. 35 | Enter "ft27" directory using the cd commands: 36 | ``` 37 | cd /c 38 | cd ft27 39 | ``` 40 | 41 | and then type one by one the commands: 42 | ``` 43 | ./configure --prefix=/mingw 44 | make 45 | make install 46 | ``` 47 | Once you're finished, go inside "C:\MinGW\include" and there should be a new folder named "freetype2". 48 | That, hopefully, means that you have installed the library correctly !! 49 | 50 | #### STEP 3: Build fontconvert.c 51 | 52 | Before proceeding I suggest you make a copy of Adafruit_GFX_library folder in C:\ directory. 53 | Then, inside "fontconvert" folder open the "makefile" with an editor ( I used notepad++). 54 | Change the commands so in the end the program looks like : 55 | ``` 56 | all: fontconvert 57 | 58 | CC = gcc 59 | CFLAGS = -Wall -I c:/mingw/include/freetype2 60 | LIBS = -lfreetype 61 | 62 | fontconvert: fontconvert.c 63 | $(CC) $(CFLAGS) $< $(LIBS) -o $@ 64 | 65 | clean: 66 | rm -f fontconvert 67 | ``` 68 | Go back in the command prompt and with a cd command enter the fontconvert directory. 69 | ``` 70 | cd /c/adafruit_gfx_library\fontconvert 71 | ``` 72 | Give the command: 73 | ``` 74 | make 75 | ``` 76 | This command will, eventually, create a "fontconvert.exe" file inside fontconvert directory. 77 | 78 | #### STEP 4: Create your own font header files 79 | 80 | Now that you have an executable file, you can use it to create your own fonts to work with Adafruit GFX lib. 81 | So, if we suppose that you already have a .ttf file with your favorite fonts, jump to the command prompt and type: 82 | ``` 83 | ./fontconvert yourfonts.ttf 9 > yourfonts9pt7b.h 84 | ``` 85 | You can read more details at: [learn.adafruit](https://learn.adafruit.com/adafruit-gfx-graphics-library/using-fonts). 86 | 87 | Taraaaaaammm !! you've just created your new font header file. Put it inside the "Fonts" folder, grab a cup of coffee 88 | and start playing with your Arduino (or whatever else ....)+ display module project. 89 | -------------------------------------------------------------------------------- /Fonts/Picopixel.h: -------------------------------------------------------------------------------- 1 | // Picopixel by Sebastian Weber. A tiny font 2 | // with all characters within a 6 pixel height. 3 | 4 | const uint8_t PicopixelBitmaps[] PROGMEM = { 5 | 0xE8, 0xB4, 0x57, 0xD5, 0xF5, 0x00, 0x4E, 0x3E, 0x80, 0xA5, 0x4A, 0x4A, 6 | 0x5A, 0x50, 0xC0, 0x6A, 0x40, 0x95, 0x80, 0xAA, 0x80, 0x5D, 0x00, 0x60, 7 | 0xE0, 0x80, 0x25, 0x48, 0x56, 0xD4, 0x75, 0x40, 0xC5, 0x4E, 0xC5, 0x1C, 8 | 0x97, 0x92, 0xF3, 0x1C, 0x53, 0x54, 0xE5, 0x48, 0x55, 0x54, 0x55, 0x94, 9 | 0xA0, 0x46, 0x64, 0xE3, 0x80, 0x98, 0xC5, 0x04, 0x56, 0xC6, 0x57, 0xDA, 10 | 0xD7, 0x5C, 0x72, 0x46, 0xD6, 0xDC, 0xF3, 0xCE, 0xF3, 0x48, 0x72, 0xD4, 11 | 0xB7, 0xDA, 0xF8, 0x24, 0xD4, 0xBB, 0x5A, 0x92, 0x4E, 0x8E, 0xEB, 0x58, 12 | 0x80, 0x9D, 0xB9, 0x90, 0x56, 0xD4, 0xD7, 0x48, 0x56, 0xD4, 0x40, 0xD7, 13 | 0x5A, 0x71, 0x1C, 0xE9, 0x24, 0xB6, 0xD4, 0xB6, 0xA4, 0x8C, 0x6B, 0x55, 14 | 0x00, 0xB5, 0x5A, 0xB5, 0x24, 0xE5, 0x4E, 0xEA, 0xC0, 0x91, 0x12, 0xD5, 15 | 0xC0, 0x54, 0xF0, 0x90, 0xC7, 0xF0, 0x93, 0x5E, 0x71, 0x80, 0x25, 0xDE, 16 | 0x5E, 0x30, 0x6E, 0x80, 0x77, 0x9C, 0x93, 0x5A, 0xB8, 0x45, 0x60, 0x92, 17 | 0xEA, 0xAA, 0x40, 0xD5, 0x6A, 0xD6, 0x80, 0x55, 0x00, 0xD7, 0x40, 0x75, 18 | 0x90, 0xE8, 0x71, 0xE0, 0xBA, 0x40, 0xB5, 0x80, 0xB5, 0x00, 0x8D, 0x54, 19 | 0xAA, 0x80, 0xAC, 0xE0, 0xE5, 0x70, 0x6A, 0x26, 0xFC, 0xC8, 0xAC, 0x5A }; 20 | 21 | const GFXglyph PicopixelGlyphs[] PROGMEM = { 22 | { 0, 0, 0, 2, 0, 1 }, // 0x20 ' ' 23 | { 0, 1, 5, 2, 0, -4 }, // 0x21 '!' 24 | { 1, 3, 2, 4, 0, -4 }, // 0x22 '"' 25 | { 2, 5, 5, 6, 0, -4 }, // 0x23 '#' 26 | { 6, 3, 6, 4, 0, -4 }, // 0x24 '$' 27 | { 9, 3, 5, 4, 0, -4 }, // 0x25 '%' 28 | { 11, 4, 5, 5, 0, -4 }, // 0x26 '&' 29 | { 14, 1, 2, 2, 0, -4 }, // 0x27 ''' 30 | { 15, 2, 5, 3, 0, -4 }, // 0x28 '(' 31 | { 17, 2, 5, 3, 0, -4 }, // 0x29 ')' 32 | { 19, 3, 3, 4, 0, -3 }, // 0x2A '*' 33 | { 21, 3, 3, 4, 0, -3 }, // 0x2B '+' 34 | { 23, 2, 2, 3, 0, 0 }, // 0x2C ',' 35 | { 24, 3, 1, 4, 0, -2 }, // 0x2D '-' 36 | { 25, 1, 1, 2, 0, 0 }, // 0x2E '.' 37 | { 26, 3, 5, 4, 0, -4 }, // 0x2F '/' 38 | { 28, 3, 5, 4, 0, -4 }, // 0x30 '0' 39 | { 30, 2, 5, 3, 0, -4 }, // 0x31 '1' 40 | { 32, 3, 5, 4, 0, -4 }, // 0x32 '2' 41 | { 34, 3, 5, 4, 0, -4 }, // 0x33 '3' 42 | { 36, 3, 5, 4, 0, -4 }, // 0x34 '4' 43 | { 38, 3, 5, 4, 0, -4 }, // 0x35 '5' 44 | { 40, 3, 5, 4, 0, -4 }, // 0x36 '6' 45 | { 42, 3, 5, 4, 0, -4 }, // 0x37 '7' 46 | { 44, 3, 5, 4, 0, -4 }, // 0x38 '8' 47 | { 46, 3, 5, 4, 0, -4 }, // 0x39 '9' 48 | { 48, 1, 3, 2, 0, -3 }, // 0x3A ':' 49 | { 49, 2, 4, 3, 0, -3 }, // 0x3B ';' 50 | { 50, 2, 3, 3, 0, -3 }, // 0x3C '<' 51 | { 51, 3, 3, 4, 0, -3 }, // 0x3D '=' 52 | { 53, 2, 3, 3, 0, -3 }, // 0x3E '>' 53 | { 54, 3, 5, 4, 0, -4 }, // 0x3F '?' 54 | { 56, 3, 5, 4, 0, -4 }, // 0x40 '@' 55 | { 58, 3, 5, 4, 0, -4 }, // 0x41 'A' 56 | { 60, 3, 5, 4, 0, -4 }, // 0x42 'B' 57 | { 62, 3, 5, 4, 0, -4 }, // 0x43 'C' 58 | { 64, 3, 5, 4, 0, -4 }, // 0x44 'D' 59 | { 66, 3, 5, 4, 0, -4 }, // 0x45 'E' 60 | { 68, 3, 5, 4, 0, -4 }, // 0x46 'F' 61 | { 70, 3, 5, 4, 0, -4 }, // 0x47 'G' 62 | { 72, 3, 5, 4, 0, -4 }, // 0x48 'H' 63 | { 74, 1, 5, 2, 0, -4 }, // 0x49 'I' 64 | { 75, 3, 5, 4, 0, -4 }, // 0x4A 'J' 65 | { 77, 3, 5, 4, 0, -4 }, // 0x4B 'K' 66 | { 79, 3, 5, 4, 0, -4 }, // 0x4C 'L' 67 | { 81, 5, 5, 6, 0, -4 }, // 0x4D 'M' 68 | { 85, 4, 5, 5, 0, -4 }, // 0x4E 'N' 69 | { 88, 3, 5, 4, 0, -4 }, // 0x4F 'O' 70 | { 90, 3, 5, 4, 0, -4 }, // 0x50 'P' 71 | { 92, 3, 6, 4, 0, -4 }, // 0x51 'Q' 72 | { 95, 3, 5, 4, 0, -4 }, // 0x52 'R' 73 | { 97, 3, 5, 4, 0, -4 }, // 0x53 'S' 74 | { 99, 3, 5, 4, 0, -4 }, // 0x54 'T' 75 | { 101, 3, 5, 4, 0, -4 }, // 0x55 'U' 76 | { 103, 3, 5, 4, 0, -4 }, // 0x56 'V' 77 | { 105, 5, 5, 6, 0, -4 }, // 0x57 'W' 78 | { 109, 3, 5, 4, 0, -4 }, // 0x58 'X' 79 | { 111, 3, 5, 4, 0, -4 }, // 0x59 'Y' 80 | { 113, 3, 5, 4, 0, -4 }, // 0x5A 'Z' 81 | { 115, 2, 5, 3, 0, -4 }, // 0x5B '[' 82 | { 117, 3, 5, 4, 0, -4 }, // 0x5C '\' 83 | { 119, 2, 5, 3, 0, -4 }, // 0x5D ']' 84 | { 121, 3, 2, 4, 0, -4 }, // 0x5E '^' 85 | { 122, 4, 1, 4, 0, 1 }, // 0x5F '_' 86 | { 123, 2, 2, 3, 0, -4 }, // 0x60 '`' 87 | { 124, 3, 4, 4, 0, -3 }, // 0x61 'a' 88 | { 126, 3, 5, 4, 0, -4 }, // 0x62 'b' 89 | { 128, 3, 3, 4, 0, -2 }, // 0x63 'c' 90 | { 130, 3, 5, 4, 0, -4 }, // 0x64 'd' 91 | { 132, 3, 4, 4, 0, -3 }, // 0x65 'e' 92 | { 134, 2, 5, 3, 0, -4 }, // 0x66 'f' 93 | { 136, 3, 5, 4, 0, -3 }, // 0x67 'g' 94 | { 138, 3, 5, 4, 0, -4 }, // 0x68 'h' 95 | { 140, 1, 5, 2, 0, -4 }, // 0x69 'i' 96 | { 141, 2, 6, 3, 0, -4 }, // 0x6A 'j' 97 | { 143, 3, 5, 4, 0, -4 }, // 0x6B 'k' 98 | { 145, 2, 5, 3, 0, -4 }, // 0x6C 'l' 99 | { 147, 5, 3, 6, 0, -2 }, // 0x6D 'm' 100 | { 149, 3, 3, 4, 0, -2 }, // 0x6E 'n' 101 | { 151, 3, 3, 4, 0, -2 }, // 0x6F 'o' 102 | { 153, 3, 4, 4, 0, -2 }, // 0x70 'p' 103 | { 155, 3, 4, 4, 0, -2 }, // 0x71 'q' 104 | { 157, 2, 3, 3, 0, -2 }, // 0x72 'r' 105 | { 158, 3, 4, 4, 0, -3 }, // 0x73 's' 106 | { 160, 2, 5, 3, 0, -4 }, // 0x74 't' 107 | { 162, 3, 3, 4, 0, -2 }, // 0x75 'u' 108 | { 164, 3, 3, 4, 0, -2 }, // 0x76 'v' 109 | { 166, 5, 3, 6, 0, -2 }, // 0x77 'w' 110 | { 168, 3, 3, 4, 0, -2 }, // 0x78 'x' 111 | { 170, 3, 4, 4, 0, -2 }, // 0x79 'y' 112 | { 172, 3, 4, 4, 0, -3 }, // 0x7A 'z' 113 | { 174, 3, 5, 4, 0, -4 }, // 0x7B '{' 114 | { 176, 1, 6, 2, 0, -4 }, // 0x7C '|' 115 | { 177, 3, 5, 4, 0, -4 }, // 0x7D '}' 116 | { 179, 4, 2, 5, 0, -3 } }; // 0x7E '~' 117 | 118 | const GFXfont Picopixel PROGMEM = { 119 | (uint8_t *)PicopixelBitmaps, 120 | (GFXglyph *)PicopixelGlyphs, 121 | 0x20, 0x7E, 7 }; 122 | 123 | // Approx. 852 bytes 124 | -------------------------------------------------------------------------------- /Fonts/Tiny3x3a2pt7b.h: -------------------------------------------------------------------------------- 1 | /** 2 | ** The FontStruction “Tiny3x3a” 3 | ** (https://fontstruct.com/fontstructions/show/670512) by “Michaelangel007” is 4 | ** licensed under a Creative Commons Attribution Non-commercial Share Alike license 5 | ** (http://creativecommons.org/licenses/by-nc-sa/3.0/). 6 | ** “Tiny3x3a” was originally cloned (copied) from the FontStruction 7 | ** “CHECKER” (https://fontstruct.com/fontstructions/show/2391) by Wolf grant 8 | ** Grant, which is licensed under a Creative Commons Attribution Non-commercial 9 | ** Share Alike license (http://creativecommons.org/licenses/by-nc-sa/3.0/). 10 | * 11 | * Converted by eadmaster with fontconvert 12 | **/ 13 | 14 | const uint8_t Tiny3x3a2pt7bBitmaps[] PROGMEM = { 15 | 0xC0, 0xB4, 0xBF, 0x80, 0x6B, 0x00, 0xDD, 0x80, 0x59, 0x80, 0x80, 0x64, 16 | 0x98, 0xF0, 0x5D, 0x00, 0xC0, 0xE0, 0x80, 0x2A, 0x00, 0x55, 0x00, 0x94, 17 | 0xC9, 0x80, 0xEF, 0x80, 0xBC, 0x80, 0x6B, 0x00, 0x9F, 0x80, 0xE4, 0x80, 18 | 0x7F, 0x00, 0xFC, 0x80, 0xA0, 0x58, 0x64, 0xE3, 0x80, 0x98, 0xD8, 0xD8, 19 | 0x80, 0x5E, 0x80, 0xDF, 0x80, 0x71, 0x80, 0xD7, 0x00, 0xFB, 0x80, 0xFA, 20 | 0x00, 0xD7, 0x80, 0xBE, 0x80, 0xE0, 0x27, 0x00, 0xBA, 0x80, 0x93, 0x80, 21 | 0xFE, 0x80, 0xF6, 0x80, 0xF7, 0x80, 0xFE, 0x00, 0xF7, 0x00, 0xDE, 0x80, 22 | 0x6B, 0x00, 0xE9, 0x00, 0xB7, 0x80, 0xB5, 0x00, 0xBF, 0x80, 0xAA, 0x80, 23 | 0xA9, 0x00, 0xEB, 0x80, 0xEC, 0x88, 0x80, 0xDC, 0x54, 0xE0, 0x90, 0x70, 24 | 0xBC, 0xF0, 0x7C, 0xB0, 0x68, 0xFC, 0xBC, 0xC0, 0x58, 0x9A, 0x80, 0xA4, 25 | 0xDC, 0xD4, 0xF0, 0xF8, 0xF4, 0xE0, 0x60, 0x59, 0x80, 0xBC, 0xA8, 0xEC, 26 | 0xF0, 0xAC, 0x80, 0x90, 0x79, 0x80, 0xF0, 0xCF, 0x00, 0x78 }; 27 | 28 | const GFXglyph Tiny3x3a2pt7bGlyphs[] PROGMEM = { 29 | { 0, 0, 0, 4, 0, 1 }, // 0x20 ' ' 30 | { 0, 1, 2, 3, 1, -2 }, // 0x21 '!' 31 | { 1, 3, 2, 4, 0, -2 }, // 0x22 '"' 32 | { 2, 3, 3, 4, 0, -2 }, // 0x23 '#' 33 | { 4, 3, 3, 4, 0, -2 }, // 0x24 '$' 34 | { 6, 3, 3, 4, 0, -2 }, // 0x25 '%' 35 | { 8, 3, 3, 4, 0, -2 }, // 0x26 '&' 36 | { 10, 1, 1, 3, 1, -2 }, // 0x27 ''' 37 | { 11, 2, 3, 3, 0, -2 }, // 0x28 '(' 38 | { 12, 2, 3, 4, 1, -2 }, // 0x29 ')' 39 | { 13, 2, 2, 4, 1, -2 }, // 0x2A '*' 40 | { 14, 3, 3, 4, 0, -2 }, // 0x2B '+' 41 | { 16, 1, 2, 2, 0, 0 }, // 0x2C ',' 42 | { 17, 3, 1, 4, 0, -1 }, // 0x2D '-' 43 | { 18, 1, 1, 2, 0, 0 }, // 0x2E '.' 44 | { 19, 3, 3, 4, 0, -2 }, // 0x2F '/' 45 | { 21, 3, 3, 4, 0, -2 }, // 0x30 '0' 46 | { 23, 2, 3, 3, 0, -2 }, // 0x31 '1' 47 | { 24, 3, 3, 4, 0, -2 }, // 0x32 '2' 48 | { 26, 3, 3, 4, 0, -2 }, // 0x33 '3' 49 | { 28, 3, 3, 4, 0, -2 }, // 0x34 '4' 50 | { 30, 3, 3, 4, 0, -2 }, // 0x35 '5' 51 | { 32, 3, 3, 4, 0, -2 }, // 0x36 '6' 52 | { 34, 3, 3, 4, 0, -2 }, // 0x37 '7' 53 | { 36, 3, 3, 4, 0, -2 }, // 0x38 '8' 54 | { 38, 3, 3, 4, 0, -2 }, // 0x39 '9' 55 | { 40, 1, 3, 3, 1, -2 }, // 0x3A ':' 56 | { 41, 2, 3, 3, 0, -1 }, // 0x3B ';' 57 | { 42, 2, 3, 3, 0, -2 }, // 0x3C '<' 58 | { 43, 3, 3, 4, 0, -2 }, // 0x3D '=' 59 | { 45, 2, 3, 4, 1, -2 }, // 0x3E '>' 60 | { 46, 2, 3, 4, 1, -2 }, // 0x3F '?' 61 | { 47, 3, 3, 4, 0, -2 }, // 0x40 '@' 62 | { 49, 3, 3, 4, 0, -2 }, // 0x41 'A' 63 | { 51, 3, 3, 4, 0, -2 }, // 0x42 'B' 64 | { 53, 3, 3, 4, 0, -2 }, // 0x43 'C' 65 | { 55, 3, 3, 4, 0, -2 }, // 0x44 'D' 66 | { 57, 3, 3, 4, 0, -2 }, // 0x45 'E' 67 | { 59, 3, 3, 4, 0, -2 }, // 0x46 'F' 68 | { 61, 3, 3, 4, 0, -2 }, // 0x47 'G' 69 | { 63, 3, 3, 4, 0, -2 }, // 0x48 'H' 70 | { 65, 1, 3, 3, 1, -2 }, // 0x49 'I' 71 | { 66, 3, 3, 4, 0, -2 }, // 0x4A 'J' 72 | { 68, 3, 3, 4, 0, -2 }, // 0x4B 'K' 73 | { 70, 3, 3, 4, 0, -2 }, // 0x4C 'L' 74 | { 72, 3, 3, 4, 0, -2 }, // 0x4D 'M' 75 | { 74, 3, 3, 4, 0, -2 }, // 0x4E 'N' 76 | { 76, 3, 3, 4, 0, -2 }, // 0x4F 'O' 77 | { 78, 3, 3, 4, 0, -2 }, // 0x50 'P' 78 | { 80, 3, 3, 4, 0, -2 }, // 0x51 'Q' 79 | { 82, 3, 3, 4, 0, -2 }, // 0x52 'R' 80 | { 84, 3, 3, 4, 0, -2 }, // 0x53 'S' 81 | { 86, 3, 3, 4, 0, -2 }, // 0x54 'T' 82 | { 88, 3, 3, 4, 0, -2 }, // 0x55 'U' 83 | { 90, 3, 3, 4, 0, -2 }, // 0x56 'V' 84 | { 92, 3, 3, 4, 0, -2 }, // 0x57 'W' 85 | { 94, 3, 3, 4, 0, -2 }, // 0x58 'X' 86 | { 96, 3, 3, 4, 0, -2 }, // 0x59 'Y' 87 | { 98, 3, 3, 4, 0, -2 }, // 0x5A 'Z' 88 | { 100, 2, 3, 3, 0, -2 }, // 0x5B '[' 89 | { 101, 3, 3, 4, 0, -2 }, // 0x5C '\' 90 | { 103, 2, 3, 4, 1, -2 }, // 0x5D ']' 91 | { 104, 3, 2, 4, 0, -2 }, // 0x5E '^' 92 | { 105, 3, 1, 4, 0, 0 }, // 0x5F '_' 93 | { 106, 2, 2, 3, 0, -2 }, // 0x60 '`' 94 | { 107, 2, 2, 3, 0, -1 }, // 0x61 'a' 95 | { 108, 2, 3, 3, 0, -2 }, // 0x62 'b' 96 | { 109, 2, 2, 3, 0, -1 }, // 0x63 'c' 97 | { 110, 2, 3, 3, 0, -2 }, // 0x64 'd' 98 | { 111, 2, 2, 3, 0, -1 }, // 0x65 'e' 99 | { 112, 2, 3, 3, 0, -2 }, // 0x66 'f' 100 | { 113, 2, 3, 3, 0, -1 }, // 0x67 'g' 101 | { 114, 2, 3, 3, 0, -2 }, // 0x68 'h' 102 | { 115, 1, 2, 2, 0, -1 }, // 0x69 'i' 103 | { 116, 2, 3, 3, 0, -1 }, // 0x6A 'j' 104 | { 117, 3, 3, 4, 0, -2 }, // 0x6B 'k' 105 | { 119, 2, 3, 3, 0, -2 }, // 0x6C 'l' 106 | { 120, 3, 2, 4, 0, -1 }, // 0x6D 'm' 107 | { 121, 3, 2, 4, 0, -1 }, // 0x6E 'n' 108 | { 122, 2, 2, 3, 0, -1 }, // 0x6F 'o' 109 | { 123, 2, 3, 3, 0, -1 }, // 0x70 'p' 110 | { 124, 2, 3, 3, 0, -1 }, // 0x71 'q' 111 | { 125, 2, 2, 3, 0, -1 }, // 0x72 'r' 112 | { 126, 2, 2, 3, 0, -1 }, // 0x73 's' 113 | { 127, 3, 3, 4, 0, -2 }, // 0x74 't' 114 | { 129, 3, 2, 4, 0, -1 }, // 0x75 'u' 115 | { 130, 3, 2, 4, 0, -1 }, // 0x76 'v' 116 | { 131, 3, 2, 4, 0, -1 }, // 0x77 'w' 117 | { 132, 2, 2, 3, 0, -1 }, // 0x78 'x' 118 | { 133, 3, 3, 4, 0, -1 }, // 0x79 'y' 119 | { 135, 2, 2, 3, 0, -1 }, // 0x7A 'z' 120 | { 136, 3, 3, 4, 0, -2 }, // 0x7B '{' 121 | { 138, 1, 4, 3, 1, -2 }, // 0x7C '|' 122 | { 139, 3, 3, 4, 0, -2 }, // 0x7D '}' 123 | { 141, 3, 2, 4, 0, -2 } }; // 0x7E '~' 124 | 125 | const GFXfont Tiny3x3a2pt7b PROGMEM = { 126 | (uint8_t *)Tiny3x3a2pt7bBitmaps, 127 | (GFXglyph *)Tiny3x3a2pt7bGlyphs, 128 | 0x20, 0x7E, 4 }; 129 | 130 | // Approx. 814 bytes 131 | -------------------------------------------------------------------------------- /Fonts/Org_01.h: -------------------------------------------------------------------------------- 1 | // Org_v01 by Orgdot (www.orgdot.com/aliasfonts). A tiny, 2 | // stylized font with all characters within a 6 pixel height. 3 | 4 | const uint8_t Org_01Bitmaps[] PROGMEM = { 5 | 0xE8, 0xA0, 0x57, 0xD5, 0xF5, 0x00, 0xFD, 0x3E, 0x5F, 0x80, 0x88, 0x88, 6 | 0x88, 0x80, 0xF4, 0xBF, 0x2E, 0x80, 0x80, 0x6A, 0x40, 0x95, 0x80, 0xAA, 7 | 0x80, 0x5D, 0x00, 0xC0, 0xF0, 0x80, 0x08, 0x88, 0x88, 0x00, 0xFC, 0x63, 8 | 0x1F, 0x80, 0xF8, 0xF8, 0x7F, 0x0F, 0x80, 0xF8, 0x7E, 0x1F, 0x80, 0x8C, 9 | 0x7E, 0x10, 0x80, 0xFC, 0x3E, 0x1F, 0x80, 0xFC, 0x3F, 0x1F, 0x80, 0xF8, 10 | 0x42, 0x10, 0x80, 0xFC, 0x7F, 0x1F, 0x80, 0xFC, 0x7E, 0x1F, 0x80, 0x90, 11 | 0xB0, 0x2A, 0x22, 0xF0, 0xF0, 0x88, 0xA8, 0xF8, 0x4E, 0x02, 0x00, 0xFD, 12 | 0x6F, 0x0F, 0x80, 0xFC, 0x7F, 0x18, 0x80, 0xF4, 0x7D, 0x1F, 0x00, 0xFC, 13 | 0x21, 0x0F, 0x80, 0xF4, 0x63, 0x1F, 0x00, 0xFC, 0x3F, 0x0F, 0x80, 0xFC, 14 | 0x3F, 0x08, 0x00, 0xFC, 0x2F, 0x1F, 0x80, 0x8C, 0x7F, 0x18, 0x80, 0xF9, 15 | 0x08, 0x4F, 0x80, 0x78, 0x85, 0x2F, 0x80, 0x8D, 0xB1, 0x68, 0x80, 0x84, 16 | 0x21, 0x0F, 0x80, 0xFD, 0x6B, 0x5A, 0x80, 0xFC, 0x63, 0x18, 0x80, 0xFC, 17 | 0x63, 0x1F, 0x80, 0xFC, 0x7F, 0x08, 0x00, 0xFC, 0x63, 0x3F, 0x80, 0xFC, 18 | 0x7F, 0x29, 0x00, 0xFC, 0x3E, 0x1F, 0x80, 0xF9, 0x08, 0x42, 0x00, 0x8C, 19 | 0x63, 0x1F, 0x80, 0x8C, 0x62, 0xA2, 0x00, 0xAD, 0x6B, 0x5F, 0x80, 0x8A, 20 | 0x88, 0xA8, 0x80, 0x8C, 0x54, 0x42, 0x00, 0xF8, 0x7F, 0x0F, 0x80, 0xEA, 21 | 0xC0, 0x82, 0x08, 0x20, 0x80, 0xD5, 0xC0, 0x54, 0xF8, 0x80, 0xF1, 0xFF, 22 | 0x8F, 0x99, 0xF0, 0xF8, 0x8F, 0x1F, 0x99, 0xF0, 0xFF, 0x8F, 0x6B, 0xA4, 23 | 0xF9, 0x9F, 0x10, 0x8F, 0x99, 0x90, 0xF0, 0x55, 0xC0, 0x8A, 0xF9, 0x90, 24 | 0xF8, 0xFD, 0x63, 0x10, 0xF9, 0x99, 0xF9, 0x9F, 0xF9, 0x9F, 0x80, 0xF9, 25 | 0x9F, 0x20, 0xF8, 0x88, 0x47, 0x1F, 0x27, 0xC8, 0x42, 0x00, 0x99, 0x9F, 26 | 0x99, 0x97, 0x8C, 0x6B, 0xF0, 0x96, 0x69, 0x99, 0x9F, 0x10, 0x2E, 0x8F, 27 | 0x2B, 0x22, 0xF8, 0x89, 0xA8, 0x0F, 0xE0 }; 28 | 29 | const GFXglyph Org_01Glyphs[] PROGMEM = { 30 | { 0, 0, 0, 6, 0, 1 }, // 0x20 ' ' 31 | { 0, 1, 5, 2, 0, -4 }, // 0x21 '!' 32 | { 1, 3, 1, 4, 0, -4 }, // 0x22 '"' 33 | { 2, 5, 5, 6, 0, -4 }, // 0x23 '#' 34 | { 6, 5, 5, 6, 0, -4 }, // 0x24 '$' 35 | { 10, 5, 5, 6, 0, -4 }, // 0x25 '%' 36 | { 14, 5, 5, 6, 0, -4 }, // 0x26 '&' 37 | { 18, 1, 1, 2, 0, -4 }, // 0x27 ''' 38 | { 19, 2, 5, 3, 0, -4 }, // 0x28 '(' 39 | { 21, 2, 5, 3, 0, -4 }, // 0x29 ')' 40 | { 23, 3, 3, 4, 0, -3 }, // 0x2A '*' 41 | { 25, 3, 3, 4, 0, -3 }, // 0x2B '+' 42 | { 27, 1, 2, 2, 0, 0 }, // 0x2C ',' 43 | { 28, 4, 1, 5, 0, -2 }, // 0x2D '-' 44 | { 29, 1, 1, 2, 0, 0 }, // 0x2E '.' 45 | { 30, 5, 5, 6, 0, -4 }, // 0x2F '/' 46 | { 34, 5, 5, 6, 0, -4 }, // 0x30 '0' 47 | { 38, 1, 5, 2, 0, -4 }, // 0x31 '1' 48 | { 39, 5, 5, 6, 0, -4 }, // 0x32 '2' 49 | { 43, 5, 5, 6, 0, -4 }, // 0x33 '3' 50 | { 47, 5, 5, 6, 0, -4 }, // 0x34 '4' 51 | { 51, 5, 5, 6, 0, -4 }, // 0x35 '5' 52 | { 55, 5, 5, 6, 0, -4 }, // 0x36 '6' 53 | { 59, 5, 5, 6, 0, -4 }, // 0x37 '7' 54 | { 63, 5, 5, 6, 0, -4 }, // 0x38 '8' 55 | { 67, 5, 5, 6, 0, -4 }, // 0x39 '9' 56 | { 71, 1, 4, 2, 0, -3 }, // 0x3A ':' 57 | { 72, 1, 4, 2, 0, -3 }, // 0x3B ';' 58 | { 73, 3, 5, 4, 0, -4 }, // 0x3C '<' 59 | { 75, 4, 3, 5, 0, -3 }, // 0x3D '=' 60 | { 77, 3, 5, 4, 0, -4 }, // 0x3E '>' 61 | { 79, 5, 5, 6, 0, -4 }, // 0x3F '?' 62 | { 83, 5, 5, 6, 0, -4 }, // 0x40 '@' 63 | { 87, 5, 5, 6, 0, -4 }, // 0x41 'A' 64 | { 91, 5, 5, 6, 0, -4 }, // 0x42 'B' 65 | { 95, 5, 5, 6, 0, -4 }, // 0x43 'C' 66 | { 99, 5, 5, 6, 0, -4 }, // 0x44 'D' 67 | { 103, 5, 5, 6, 0, -4 }, // 0x45 'E' 68 | { 107, 5, 5, 6, 0, -4 }, // 0x46 'F' 69 | { 111, 5, 5, 6, 0, -4 }, // 0x47 'G' 70 | { 115, 5, 5, 6, 0, -4 }, // 0x48 'H' 71 | { 119, 5, 5, 6, 0, -4 }, // 0x49 'I' 72 | { 123, 5, 5, 6, 0, -4 }, // 0x4A 'J' 73 | { 127, 5, 5, 6, 0, -4 }, // 0x4B 'K' 74 | { 131, 5, 5, 6, 0, -4 }, // 0x4C 'L' 75 | { 135, 5, 5, 6, 0, -4 }, // 0x4D 'M' 76 | { 139, 5, 5, 6, 0, -4 }, // 0x4E 'N' 77 | { 143, 5, 5, 6, 0, -4 }, // 0x4F 'O' 78 | { 147, 5, 5, 6, 0, -4 }, // 0x50 'P' 79 | { 151, 5, 5, 6, 0, -4 }, // 0x51 'Q' 80 | { 155, 5, 5, 6, 0, -4 }, // 0x52 'R' 81 | { 159, 5, 5, 6, 0, -4 }, // 0x53 'S' 82 | { 163, 5, 5, 6, 0, -4 }, // 0x54 'T' 83 | { 167, 5, 5, 6, 0, -4 }, // 0x55 'U' 84 | { 171, 5, 5, 6, 0, -4 }, // 0x56 'V' 85 | { 175, 5, 5, 6, 0, -4 }, // 0x57 'W' 86 | { 179, 5, 5, 6, 0, -4 }, // 0x58 'X' 87 | { 183, 5, 5, 6, 0, -4 }, // 0x59 'Y' 88 | { 187, 5, 5, 6, 0, -4 }, // 0x5A 'Z' 89 | { 191, 2, 5, 3, 0, -4 }, // 0x5B '[' 90 | { 193, 5, 5, 6, 0, -4 }, // 0x5C '\' 91 | { 197, 2, 5, 3, 0, -4 }, // 0x5D ']' 92 | { 199, 3, 2, 4, 0, -4 }, // 0x5E '^' 93 | { 200, 5, 1, 6, 0, 1 }, // 0x5F '_' 94 | { 201, 1, 1, 2, 0, -4 }, // 0x60 '`' 95 | { 202, 4, 4, 5, 0, -3 }, // 0x61 'a' 96 | { 204, 4, 5, 5, 0, -4 }, // 0x62 'b' 97 | { 207, 4, 4, 5, 0, -3 }, // 0x63 'c' 98 | { 209, 4, 5, 5, 0, -4 }, // 0x64 'd' 99 | { 212, 4, 4, 5, 0, -3 }, // 0x65 'e' 100 | { 214, 3, 5, 4, 0, -4 }, // 0x66 'f' 101 | { 216, 4, 5, 5, 0, -3 }, // 0x67 'g' 102 | { 219, 4, 5, 5, 0, -4 }, // 0x68 'h' 103 | { 222, 1, 4, 2, 0, -3 }, // 0x69 'i' 104 | { 223, 2, 5, 3, 0, -3 }, // 0x6A 'j' 105 | { 225, 4, 5, 5, 0, -4 }, // 0x6B 'k' 106 | { 228, 1, 5, 2, 0, -4 }, // 0x6C 'l' 107 | { 229, 5, 4, 6, 0, -3 }, // 0x6D 'm' 108 | { 232, 4, 4, 5, 0, -3 }, // 0x6E 'n' 109 | { 234, 4, 4, 5, 0, -3 }, // 0x6F 'o' 110 | { 236, 4, 5, 5, 0, -3 }, // 0x70 'p' 111 | { 239, 4, 5, 5, 0, -3 }, // 0x71 'q' 112 | { 242, 4, 4, 5, 0, -3 }, // 0x72 'r' 113 | { 244, 4, 4, 5, 0, -3 }, // 0x73 's' 114 | { 246, 5, 5, 6, 0, -4 }, // 0x74 't' 115 | { 250, 4, 4, 5, 0, -3 }, // 0x75 'u' 116 | { 252, 4, 4, 5, 0, -3 }, // 0x76 'v' 117 | { 254, 5, 4, 6, 0, -3 }, // 0x77 'w' 118 | { 257, 4, 4, 5, 0, -3 }, // 0x78 'x' 119 | { 259, 4, 5, 5, 0, -3 }, // 0x79 'y' 120 | { 262, 4, 4, 5, 0, -3 }, // 0x7A 'z' 121 | { 264, 3, 5, 4, 0, -4 }, // 0x7B '{' 122 | { 266, 1, 5, 2, 0, -4 }, // 0x7C '|' 123 | { 267, 3, 5, 4, 0, -4 }, // 0x7D '}' 124 | { 269, 5, 3, 6, 0, -3 } }; // 0x7E '~' 125 | 126 | const GFXfont Org_01 PROGMEM = { 127 | (uint8_t *)Org_01Bitmaps, 128 | (GFXglyph *)Org_01Glyphs, 129 | 0x20, 0x7E, 7 }; 130 | 131 | // Approx. 943 bytes 132 | -------------------------------------------------------------------------------- /glcdfont.c: -------------------------------------------------------------------------------- 1 | // This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. 2 | // See gfxfont.h for newer custom bitmap font info. 3 | 4 | #ifndef FONT5X7_H 5 | #define FONT5X7_H 6 | 7 | #ifdef __AVR__ 8 | #include 9 | #include 10 | #elif defined(ESP8266) 11 | #include 12 | #elif defined(__IMXRT1052__) || defined(__IMXRT1062__) 13 | // PROGMEM is defefind for T4 to place data in specific memory section 14 | #undef PROGMEM 15 | #define PROGMEM 16 | #else 17 | #define PROGMEM 18 | #endif 19 | 20 | // Standard ASCII 5x7 font 21 | 22 | static const unsigned char font[] PROGMEM = { 23 | 0x00, 0x00, 0x00, 0x00, 0x00, 24 | 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 25 | 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 26 | 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 27 | 0x18, 0x3C, 0x7E, 0x3C, 0x18, 28 | 0x1C, 0x57, 0x7D, 0x57, 0x1C, 29 | 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 30 | 0x00, 0x18, 0x3C, 0x18, 0x00, 31 | 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 32 | 0x00, 0x18, 0x24, 0x18, 0x00, 33 | 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 34 | 0x30, 0x48, 0x3A, 0x06, 0x0E, 35 | 0x26, 0x29, 0x79, 0x29, 0x26, 36 | 0x40, 0x7F, 0x05, 0x05, 0x07, 37 | 0x40, 0x7F, 0x05, 0x25, 0x3F, 38 | 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 39 | 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 40 | 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 41 | 0x14, 0x22, 0x7F, 0x22, 0x14, 42 | 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 43 | 0x06, 0x09, 0x7F, 0x01, 0x7F, 44 | 0x00, 0x66, 0x89, 0x95, 0x6A, 45 | 0x60, 0x60, 0x60, 0x60, 0x60, 46 | 0x94, 0xA2, 0xFF, 0xA2, 0x94, 47 | 0x08, 0x04, 0x7E, 0x04, 0x08, 48 | 0x10, 0x20, 0x7E, 0x20, 0x10, 49 | 0x08, 0x08, 0x2A, 0x1C, 0x08, 50 | 0x08, 0x1C, 0x2A, 0x08, 0x08, 51 | 0x1E, 0x10, 0x10, 0x10, 0x10, 52 | 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 53 | 0x30, 0x38, 0x3E, 0x38, 0x30, 54 | 0x06, 0x0E, 0x3E, 0x0E, 0x06, 55 | 0x00, 0x00, 0x00, 0x00, 0x00, 56 | 0x00, 0x00, 0x5F, 0x00, 0x00, 57 | 0x00, 0x07, 0x00, 0x07, 0x00, 58 | 0x14, 0x7F, 0x14, 0x7F, 0x14, 59 | 0x24, 0x2A, 0x7F, 0x2A, 0x12, 60 | 0x23, 0x13, 0x08, 0x64, 0x62, 61 | 0x36, 0x49, 0x56, 0x20, 0x50, 62 | 0x00, 0x08, 0x07, 0x03, 0x00, 63 | 0x00, 0x1C, 0x22, 0x41, 0x00, 64 | 0x00, 0x41, 0x22, 0x1C, 0x00, 65 | 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 66 | 0x08, 0x08, 0x3E, 0x08, 0x08, 67 | 0x00, 0x80, 0x70, 0x30, 0x00, 68 | 0x08, 0x08, 0x08, 0x08, 0x08, 69 | 0x00, 0x00, 0x60, 0x60, 0x00, 70 | 0x20, 0x10, 0x08, 0x04, 0x02, 71 | 0x3E, 0x51, 0x49, 0x45, 0x3E, 72 | 0x00, 0x42, 0x7F, 0x40, 0x00, 73 | 0x72, 0x49, 0x49, 0x49, 0x46, 74 | 0x21, 0x41, 0x49, 0x4D, 0x33, 75 | 0x18, 0x14, 0x12, 0x7F, 0x10, 76 | 0x27, 0x45, 0x45, 0x45, 0x39, 77 | 0x3C, 0x4A, 0x49, 0x49, 0x31, 78 | 0x41, 0x21, 0x11, 0x09, 0x07, 79 | 0x36, 0x49, 0x49, 0x49, 0x36, 80 | 0x46, 0x49, 0x49, 0x29, 0x1E, 81 | 0x00, 0x00, 0x14, 0x00, 0x00, 82 | 0x00, 0x40, 0x34, 0x00, 0x00, 83 | 0x00, 0x08, 0x14, 0x22, 0x41, 84 | 0x14, 0x14, 0x14, 0x14, 0x14, 85 | 0x00, 0x41, 0x22, 0x14, 0x08, 86 | 0x02, 0x01, 0x59, 0x09, 0x06, 87 | 0x3E, 0x41, 0x5D, 0x59, 0x4E, 88 | 0x7C, 0x12, 0x11, 0x12, 0x7C, 89 | 0x7F, 0x49, 0x49, 0x49, 0x36, 90 | 0x3E, 0x41, 0x41, 0x41, 0x22, 91 | 0x7F, 0x41, 0x41, 0x41, 0x3E, 92 | 0x7F, 0x49, 0x49, 0x49, 0x41, 93 | 0x7F, 0x09, 0x09, 0x09, 0x01, 94 | 0x3E, 0x41, 0x41, 0x51, 0x73, 95 | 0x7F, 0x08, 0x08, 0x08, 0x7F, 96 | 0x00, 0x41, 0x7F, 0x41, 0x00, 97 | 0x20, 0x40, 0x41, 0x3F, 0x01, 98 | 0x7F, 0x08, 0x14, 0x22, 0x41, 99 | 0x7F, 0x40, 0x40, 0x40, 0x40, 100 | 0x7F, 0x02, 0x1C, 0x02, 0x7F, 101 | 0x7F, 0x04, 0x08, 0x10, 0x7F, 102 | 0x3E, 0x41, 0x41, 0x41, 0x3E, 103 | 0x7F, 0x09, 0x09, 0x09, 0x06, 104 | 0x3E, 0x41, 0x51, 0x21, 0x5E, 105 | 0x7F, 0x09, 0x19, 0x29, 0x46, 106 | 0x26, 0x49, 0x49, 0x49, 0x32, 107 | 0x03, 0x01, 0x7F, 0x01, 0x03, 108 | 0x3F, 0x40, 0x40, 0x40, 0x3F, 109 | 0x1F, 0x20, 0x40, 0x20, 0x1F, 110 | 0x3F, 0x40, 0x38, 0x40, 0x3F, 111 | 0x63, 0x14, 0x08, 0x14, 0x63, 112 | 0x03, 0x04, 0x78, 0x04, 0x03, 113 | 0x61, 0x59, 0x49, 0x4D, 0x43, 114 | 0x00, 0x7F, 0x41, 0x41, 0x41, 115 | 0x02, 0x04, 0x08, 0x10, 0x20, 116 | 0x00, 0x41, 0x41, 0x41, 0x7F, 117 | 0x04, 0x02, 0x01, 0x02, 0x04, 118 | 0x40, 0x40, 0x40, 0x40, 0x40, 119 | 0x00, 0x03, 0x07, 0x08, 0x00, 120 | 0x20, 0x54, 0x54, 0x78, 0x40, 121 | 0x7F, 0x28, 0x44, 0x44, 0x38, 122 | 0x38, 0x44, 0x44, 0x44, 0x28, 123 | 0x38, 0x44, 0x44, 0x28, 0x7F, 124 | 0x38, 0x54, 0x54, 0x54, 0x18, 125 | 0x00, 0x08, 0x7E, 0x09, 0x02, 126 | 0x18, 0xA4, 0xA4, 0x9C, 0x78, 127 | 0x7F, 0x08, 0x04, 0x04, 0x78, 128 | 0x00, 0x44, 0x7D, 0x40, 0x00, 129 | 0x20, 0x40, 0x40, 0x3D, 0x00, 130 | 0x7F, 0x10, 0x28, 0x44, 0x00, 131 | 0x00, 0x41, 0x7F, 0x40, 0x00, 132 | 0x7C, 0x04, 0x78, 0x04, 0x78, 133 | 0x7C, 0x08, 0x04, 0x04, 0x78, 134 | 0x38, 0x44, 0x44, 0x44, 0x38, 135 | 0xFC, 0x18, 0x24, 0x24, 0x18, 136 | 0x18, 0x24, 0x24, 0x18, 0xFC, 137 | 0x7C, 0x08, 0x04, 0x04, 0x08, 138 | 0x48, 0x54, 0x54, 0x54, 0x24, 139 | 0x04, 0x04, 0x3F, 0x44, 0x24, 140 | 0x3C, 0x40, 0x40, 0x20, 0x7C, 141 | 0x1C, 0x20, 0x40, 0x20, 0x1C, 142 | 0x3C, 0x40, 0x30, 0x40, 0x3C, 143 | 0x44, 0x28, 0x10, 0x28, 0x44, 144 | 0x4C, 0x90, 0x90, 0x90, 0x7C, 145 | 0x44, 0x64, 0x54, 0x4C, 0x44, 146 | 0x00, 0x08, 0x36, 0x41, 0x00, 147 | 0x00, 0x00, 0x77, 0x00, 0x00, 148 | 0x00, 0x41, 0x36, 0x08, 0x00, 149 | 0x02, 0x01, 0x02, 0x04, 0x02, 150 | 0x3C, 0x26, 0x23, 0x26, 0x3C, 151 | 0x1E, 0xA1, 0xA1, 0x61, 0x12, 152 | 0x3A, 0x40, 0x40, 0x20, 0x7A, 153 | 0x38, 0x54, 0x54, 0x55, 0x59, 154 | 0x21, 0x55, 0x55, 0x79, 0x41, 155 | 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut 156 | 0x21, 0x55, 0x54, 0x78, 0x40, 157 | 0x20, 0x54, 0x55, 0x79, 0x40, 158 | 0x0C, 0x1E, 0x52, 0x72, 0x12, 159 | 0x39, 0x55, 0x55, 0x55, 0x59, 160 | 0x39, 0x54, 0x54, 0x54, 0x59, 161 | 0x39, 0x55, 0x54, 0x54, 0x58, 162 | 0x00, 0x00, 0x45, 0x7C, 0x41, 163 | 0x00, 0x02, 0x45, 0x7D, 0x42, 164 | 0x00, 0x01, 0x45, 0x7C, 0x40, 165 | 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut 166 | 0xF0, 0x28, 0x25, 0x28, 0xF0, 167 | 0x7C, 0x54, 0x55, 0x45, 0x00, 168 | 0x20, 0x54, 0x54, 0x7C, 0x54, 169 | 0x7C, 0x0A, 0x09, 0x7F, 0x49, 170 | 0x32, 0x49, 0x49, 0x49, 0x32, 171 | 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut 172 | 0x32, 0x4A, 0x48, 0x48, 0x30, 173 | 0x3A, 0x41, 0x41, 0x21, 0x7A, 174 | 0x3A, 0x42, 0x40, 0x20, 0x78, 175 | 0x00, 0x9D, 0xA0, 0xA0, 0x7D, 176 | 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut 177 | 0x3D, 0x40, 0x40, 0x40, 0x3D, 178 | 0x3C, 0x24, 0xFF, 0x24, 0x24, 179 | 0x48, 0x7E, 0x49, 0x43, 0x66, 180 | 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, 181 | 0xFF, 0x09, 0x29, 0xF6, 0x20, 182 | 0xC0, 0x88, 0x7E, 0x09, 0x03, 183 | 0x20, 0x54, 0x54, 0x79, 0x41, 184 | 0x00, 0x00, 0x44, 0x7D, 0x41, 185 | 0x30, 0x48, 0x48, 0x4A, 0x32, 186 | 0x38, 0x40, 0x40, 0x22, 0x7A, 187 | 0x00, 0x7A, 0x0A, 0x0A, 0x72, 188 | 0x7D, 0x0D, 0x19, 0x31, 0x7D, 189 | 0x26, 0x29, 0x29, 0x2F, 0x28, 190 | 0x26, 0x29, 0x29, 0x29, 0x26, 191 | 0x30, 0x48, 0x4D, 0x40, 0x20, 192 | 0x38, 0x08, 0x08, 0x08, 0x08, 193 | 0x08, 0x08, 0x08, 0x08, 0x38, 194 | 0x2F, 0x10, 0xC8, 0xAC, 0xBA, 195 | 0x2F, 0x10, 0x28, 0x34, 0xFA, 196 | 0x00, 0x00, 0x7B, 0x00, 0x00, 197 | 0x08, 0x14, 0x2A, 0x14, 0x22, 198 | 0x22, 0x14, 0x2A, 0x14, 0x08, 199 | 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code 200 | 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block 201 | 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block 202 | 0x00, 0x00, 0x00, 0xFF, 0x00, 203 | 0x10, 0x10, 0x10, 0xFF, 0x00, 204 | 0x14, 0x14, 0x14, 0xFF, 0x00, 205 | 0x10, 0x10, 0xFF, 0x00, 0xFF, 206 | 0x10, 0x10, 0xF0, 0x10, 0xF0, 207 | 0x14, 0x14, 0x14, 0xFC, 0x00, 208 | 0x14, 0x14, 0xF7, 0x00, 0xFF, 209 | 0x00, 0x00, 0xFF, 0x00, 0xFF, 210 | 0x14, 0x14, 0xF4, 0x04, 0xFC, 211 | 0x14, 0x14, 0x17, 0x10, 0x1F, 212 | 0x10, 0x10, 0x1F, 0x10, 0x1F, 213 | 0x14, 0x14, 0x14, 0x1F, 0x00, 214 | 0x10, 0x10, 0x10, 0xF0, 0x00, 215 | 0x00, 0x00, 0x00, 0x1F, 0x10, 216 | 0x10, 0x10, 0x10, 0x1F, 0x10, 217 | 0x10, 0x10, 0x10, 0xF0, 0x10, 218 | 0x00, 0x00, 0x00, 0xFF, 0x10, 219 | 0x10, 0x10, 0x10, 0x10, 0x10, 220 | 0x10, 0x10, 0x10, 0xFF, 0x10, 221 | 0x00, 0x00, 0x00, 0xFF, 0x14, 222 | 0x00, 0x00, 0xFF, 0x00, 0xFF, 223 | 0x00, 0x00, 0x1F, 0x10, 0x17, 224 | 0x00, 0x00, 0xFC, 0x04, 0xF4, 225 | 0x14, 0x14, 0x17, 0x10, 0x17, 226 | 0x14, 0x14, 0xF4, 0x04, 0xF4, 227 | 0x00, 0x00, 0xFF, 0x00, 0xF7, 228 | 0x14, 0x14, 0x14, 0x14, 0x14, 229 | 0x14, 0x14, 0xF7, 0x00, 0xF7, 230 | 0x14, 0x14, 0x14, 0x17, 0x14, 231 | 0x10, 0x10, 0x1F, 0x10, 0x1F, 232 | 0x14, 0x14, 0x14, 0xF4, 0x14, 233 | 0x10, 0x10, 0xF0, 0x10, 0xF0, 234 | 0x00, 0x00, 0x1F, 0x10, 0x1F, 235 | 0x00, 0x00, 0x00, 0x1F, 0x14, 236 | 0x00, 0x00, 0x00, 0xFC, 0x14, 237 | 0x00, 0x00, 0xF0, 0x10, 0xF0, 238 | 0x10, 0x10, 0xFF, 0x10, 0xFF, 239 | 0x14, 0x14, 0x14, 0xFF, 0x14, 240 | 0x10, 0x10, 0x10, 0x1F, 0x00, 241 | 0x00, 0x00, 0x00, 0xF0, 0x10, 242 | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 243 | 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 244 | 0xFF, 0xFF, 0xFF, 0x00, 0x00, 245 | 0x00, 0x00, 0x00, 0xFF, 0xFF, 246 | 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 247 | 0x38, 0x44, 0x44, 0x38, 0x44, 248 | 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta 249 | 0x7E, 0x02, 0x02, 0x06, 0x06, 250 | 0x02, 0x7E, 0x02, 0x7E, 0x02, 251 | 0x63, 0x55, 0x49, 0x41, 0x63, 252 | 0x38, 0x44, 0x44, 0x3C, 0x04, 253 | 0x40, 0x7E, 0x20, 0x1E, 0x20, 254 | 0x06, 0x02, 0x7E, 0x02, 0x02, 255 | 0x99, 0xA5, 0xE7, 0xA5, 0x99, 256 | 0x1C, 0x2A, 0x49, 0x2A, 0x1C, 257 | 0x4C, 0x72, 0x01, 0x72, 0x4C, 258 | 0x30, 0x4A, 0x4D, 0x4D, 0x30, 259 | 0x30, 0x48, 0x78, 0x48, 0x30, 260 | 0xBC, 0x62, 0x5A, 0x46, 0x3D, 261 | 0x3E, 0x49, 0x49, 0x49, 0x00, 262 | 0x7E, 0x01, 0x01, 0x01, 0x7E, 263 | 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 264 | 0x44, 0x44, 0x5F, 0x44, 0x44, 265 | 0x40, 0x51, 0x4A, 0x44, 0x40, 266 | 0x40, 0x44, 0x4A, 0x51, 0x40, 267 | 0x00, 0x00, 0xFF, 0x01, 0x03, 268 | 0xE0, 0x80, 0xFF, 0x00, 0x00, 269 | 0x08, 0x08, 0x6B, 0x6B, 0x08, 270 | 0x36, 0x12, 0x36, 0x24, 0x36, 271 | 0x06, 0x0F, 0x09, 0x0F, 0x06, 272 | 0x00, 0x00, 0x18, 0x18, 0x00, 273 | 0x00, 0x00, 0x10, 0x10, 0x00, 274 | 0x30, 0x40, 0xFF, 0x01, 0x01, 275 | 0x00, 0x1F, 0x01, 0x01, 0x1E, 276 | 0x00, 0x19, 0x1D, 0x17, 0x12, 277 | 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 278 | 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP 279 | }; 280 | #endif // FONT5X7_H 281 | -------------------------------------------------------------------------------- /Fonts/FreeMono9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeMono9pt7bBitmaps[] PROGMEM = { 2 | 0xAA, 0xA8, 0x0C, 0xED, 0x24, 0x92, 0x48, 0x24, 0x48, 0x91, 0x2F, 0xE4, 3 | 0x89, 0x7F, 0x28, 0x51, 0x22, 0x40, 0x08, 0x3E, 0x62, 0x40, 0x30, 0x0E, 4 | 0x01, 0x81, 0xC3, 0xBE, 0x08, 0x08, 0x71, 0x12, 0x23, 0x80, 0x23, 0xB8, 5 | 0x0E, 0x22, 0x44, 0x70, 0x38, 0x81, 0x02, 0x06, 0x1A, 0x65, 0x46, 0xC8, 6 | 0xEC, 0xE9, 0x24, 0x5A, 0xAA, 0xA9, 0x40, 0xA9, 0x55, 0x5A, 0x80, 0x10, 7 | 0x22, 0x4B, 0xE3, 0x05, 0x11, 0x00, 0x10, 0x20, 0x47, 0xF1, 0x02, 0x04, 8 | 0x00, 0x6B, 0x48, 0xFF, 0x00, 0xF0, 0x02, 0x08, 0x10, 0x60, 0x81, 0x04, 9 | 0x08, 0x20, 0x41, 0x02, 0x08, 0x00, 0x38, 0x8A, 0x0C, 0x18, 0x30, 0x60, 10 | 0xC1, 0x82, 0x88, 0xE0, 0x27, 0x28, 0x42, 0x10, 0x84, 0x21, 0x3E, 0x38, 11 | 0x8A, 0x08, 0x10, 0x20, 0x82, 0x08, 0x61, 0x03, 0xF8, 0x7C, 0x06, 0x02, 12 | 0x02, 0x1C, 0x06, 0x01, 0x01, 0x01, 0x42, 0x3C, 0x18, 0xA2, 0x92, 0x8A, 13 | 0x28, 0xBF, 0x08, 0x21, 0xC0, 0x7C, 0x81, 0x03, 0xE4, 0x40, 0x40, 0x81, 14 | 0x03, 0x88, 0xE0, 0x1E, 0x41, 0x04, 0x0B, 0x98, 0xB0, 0xC1, 0xC2, 0x88, 15 | 0xE0, 0xFE, 0x04, 0x08, 0x20, 0x40, 0x82, 0x04, 0x08, 0x20, 0x40, 0x38, 16 | 0x8A, 0x0C, 0x14, 0x47, 0x11, 0x41, 0x83, 0x8C, 0xE0, 0x38, 0x8A, 0x1C, 17 | 0x18, 0x68, 0xCE, 0x81, 0x04, 0x13, 0xC0, 0xF0, 0x0F, 0x6C, 0x00, 0xD2, 18 | 0xD2, 0x00, 0x03, 0x04, 0x18, 0x60, 0x60, 0x18, 0x04, 0x03, 0xFF, 0x80, 19 | 0x00, 0x1F, 0xF0, 0x40, 0x18, 0x03, 0x00, 0x60, 0x20, 0x60, 0xC0, 0x80, 20 | 0x3D, 0x84, 0x08, 0x30, 0xC2, 0x00, 0x00, 0x00, 0x30, 0x3C, 0x46, 0x82, 21 | 0x8E, 0xB2, 0xA2, 0xA2, 0x9F, 0x80, 0x80, 0x40, 0x3C, 0x3C, 0x01, 0x40, 22 | 0x28, 0x09, 0x01, 0x10, 0x42, 0x0F, 0xC1, 0x04, 0x40, 0x9E, 0x3C, 0xFE, 23 | 0x21, 0x90, 0x48, 0x67, 0xE2, 0x09, 0x02, 0x81, 0x41, 0xFF, 0x80, 0x3E, 24 | 0xB0, 0xF0, 0x30, 0x08, 0x04, 0x02, 0x00, 0x80, 0x60, 0x8F, 0x80, 0xFE, 25 | 0x21, 0x90, 0x68, 0x14, 0x0A, 0x05, 0x02, 0x83, 0x43, 0x7F, 0x00, 0xFF, 26 | 0x20, 0x90, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x81, 0x40, 0xFF, 0xC0, 0xFF, 27 | 0xA0, 0x50, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x80, 0x40, 0x78, 0x00, 0x1E, 28 | 0x98, 0x6C, 0x0A, 0x00, 0x80, 0x20, 0xF8, 0x0B, 0x02, 0x60, 0x87, 0xC0, 29 | 0xE3, 0xA0, 0x90, 0x48, 0x27, 0xF2, 0x09, 0x04, 0x82, 0x41, 0x71, 0xC0, 30 | 0xF9, 0x08, 0x42, 0x10, 0x84, 0x27, 0xC0, 0x1F, 0x02, 0x02, 0x02, 0x02, 31 | 0x02, 0x82, 0x82, 0xC6, 0x78, 0xE3, 0xA1, 0x11, 0x09, 0x05, 0x83, 0x21, 32 | 0x08, 0x84, 0x41, 0x70, 0xC0, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 33 | 0x41, 0x41, 0xFF, 0xE0, 0xEC, 0x19, 0x45, 0x28, 0xA4, 0xA4, 0x94, 0x91, 34 | 0x12, 0x02, 0x40, 0x5C, 0x1C, 0xC3, 0xB0, 0x94, 0x4A, 0x24, 0x92, 0x49, 35 | 0x14, 0x8A, 0x43, 0x70, 0x80, 0x1E, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06, 36 | 0x02, 0x82, 0x63, 0x0F, 0x00, 0xFE, 0x43, 0x41, 0x41, 0x42, 0x7C, 0x40, 37 | 0x40, 0x40, 0xF0, 0x1C, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06, 0x02, 0x82, 38 | 0x63, 0x1F, 0x04, 0x07, 0x92, 0x30, 0xFE, 0x21, 0x90, 0x48, 0x24, 0x23, 39 | 0xE1, 0x10, 0x84, 0x41, 0x70, 0xC0, 0x3A, 0xCD, 0x0A, 0x03, 0x01, 0x80, 40 | 0xC1, 0xC7, 0x78, 0xFF, 0xC4, 0x62, 0x21, 0x00, 0x80, 0x40, 0x20, 0x10, 41 | 0x08, 0x1F, 0x00, 0xE3, 0xA0, 0x90, 0x48, 0x24, 0x12, 0x09, 0x04, 0x82, 42 | 0x22, 0x0E, 0x00, 0xF1, 0xE8, 0x10, 0x82, 0x10, 0x42, 0x10, 0x22, 0x04, 43 | 0x80, 0x50, 0x0C, 0x00, 0x80, 0xF1, 0xE8, 0x09, 0x11, 0x25, 0x44, 0xA8, 44 | 0x55, 0x0C, 0xA1, 0x8C, 0x31, 0x84, 0x30, 0xE3, 0xA0, 0x88, 0x82, 0x80, 45 | 0x80, 0xC0, 0x90, 0x44, 0x41, 0x71, 0xC0, 0xE3, 0xA0, 0x88, 0x82, 0x81, 46 | 0x40, 0x40, 0x20, 0x10, 0x08, 0x1F, 0x00, 0xFD, 0x0A, 0x20, 0x81, 0x04, 47 | 0x10, 0x21, 0x83, 0xFC, 0xEA, 0xAA, 0xAA, 0xC0, 0x80, 0x81, 0x03, 0x02, 48 | 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0xD5, 0x55, 0x55, 0xC0, 49 | 0x10, 0x51, 0x22, 0x28, 0x20, 0xFF, 0xE0, 0x88, 0x80, 0x7E, 0x00, 0x80, 50 | 0x47, 0xEC, 0x14, 0x0A, 0x0C, 0xFB, 0xC0, 0x20, 0x10, 0x0B, 0xC6, 0x12, 51 | 0x05, 0x02, 0x81, 0x40, 0xB0, 0xB7, 0x80, 0x3A, 0x8E, 0x0C, 0x08, 0x10, 52 | 0x10, 0x9E, 0x03, 0x00, 0x80, 0x47, 0xA4, 0x34, 0x0A, 0x05, 0x02, 0x81, 53 | 0x21, 0x8F, 0x60, 0x3C, 0x43, 0x81, 0xFF, 0x80, 0x80, 0x61, 0x3E, 0x3D, 54 | 0x04, 0x3E, 0x41, 0x04, 0x10, 0x41, 0x0F, 0x80, 0x3D, 0xA1, 0xA0, 0x50, 55 | 0x28, 0x14, 0x09, 0x0C, 0x7A, 0x01, 0x01, 0x87, 0x80, 0xC0, 0x20, 0x10, 56 | 0x0B, 0xC6, 0x32, 0x09, 0x04, 0x82, 0x41, 0x20, 0xB8, 0xE0, 0x10, 0x01, 57 | 0xC0, 0x81, 0x02, 0x04, 0x08, 0x11, 0xFC, 0x10, 0x3E, 0x10, 0x84, 0x21, 58 | 0x08, 0x42, 0x3F, 0x00, 0xC0, 0x40, 0x40, 0x4F, 0x44, 0x58, 0x70, 0x48, 59 | 0x44, 0x42, 0xC7, 0x70, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, 0x10, 0x23, 60 | 0xF8, 0xB7, 0x64, 0x62, 0x31, 0x18, 0x8C, 0x46, 0x23, 0x91, 0x5E, 0x31, 61 | 0x90, 0x48, 0x24, 0x12, 0x09, 0x05, 0xC7, 0x3E, 0x31, 0xA0, 0x30, 0x18, 62 | 0x0C, 0x05, 0x8C, 0x7C, 0xDE, 0x30, 0x90, 0x28, 0x14, 0x0A, 0x05, 0x84, 63 | 0xBC, 0x40, 0x20, 0x38, 0x00, 0x3D, 0xA1, 0xA0, 0x50, 0x28, 0x14, 0x09, 64 | 0x0C, 0x7A, 0x01, 0x00, 0x80, 0xE0, 0xCE, 0xA1, 0x82, 0x04, 0x08, 0x10, 65 | 0x7C, 0x3A, 0x8D, 0x0B, 0x80, 0xF0, 0x70, 0xDE, 0x40, 0x40, 0xFC, 0x40, 66 | 0x40, 0x40, 0x40, 0x40, 0x41, 0x3E, 0xC3, 0x41, 0x41, 0x41, 0x41, 0x41, 67 | 0x43, 0x3D, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x20, 0xA0, 0x50, 0x10, 0xE3, 68 | 0xC0, 0x92, 0x4B, 0x25, 0x92, 0xA9, 0x98, 0x44, 0xE3, 0x31, 0x05, 0x01, 69 | 0x01, 0x41, 0x11, 0x05, 0xC7, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x40, 0xA0, 70 | 0x60, 0x10, 0x10, 0x08, 0x3E, 0x00, 0xFD, 0x08, 0x20, 0x82, 0x08, 0x10, 71 | 0xBF, 0x29, 0x24, 0xA2, 0x49, 0x26, 0xFF, 0xF8, 0x89, 0x24, 0x8A, 0x49, 72 | 0x2C, 0x61, 0x24, 0x30 }; 73 | 74 | const GFXglyph FreeMono9pt7bGlyphs[] PROGMEM = { 75 | { 0, 0, 0, 11, 0, 1 }, // 0x20 ' ' 76 | { 0, 2, 11, 11, 4, -10 }, // 0x21 '!' 77 | { 3, 6, 5, 11, 2, -10 }, // 0x22 '"' 78 | { 7, 7, 12, 11, 2, -10 }, // 0x23 '#' 79 | { 18, 8, 12, 11, 1, -10 }, // 0x24 '$' 80 | { 30, 7, 11, 11, 2, -10 }, // 0x25 '%' 81 | { 40, 7, 10, 11, 2, -9 }, // 0x26 '&' 82 | { 49, 3, 5, 11, 4, -10 }, // 0x27 ''' 83 | { 51, 2, 13, 11, 5, -10 }, // 0x28 '(' 84 | { 55, 2, 13, 11, 4, -10 }, // 0x29 ')' 85 | { 59, 7, 7, 11, 2, -10 }, // 0x2A '*' 86 | { 66, 7, 7, 11, 2, -8 }, // 0x2B '+' 87 | { 73, 3, 5, 11, 2, -1 }, // 0x2C ',' 88 | { 75, 9, 1, 11, 1, -5 }, // 0x2D '-' 89 | { 77, 2, 2, 11, 4, -1 }, // 0x2E '.' 90 | { 78, 7, 13, 11, 2, -11 }, // 0x2F '/' 91 | { 90, 7, 11, 11, 2, -10 }, // 0x30 '0' 92 | { 100, 5, 11, 11, 3, -10 }, // 0x31 '1' 93 | { 107, 7, 11, 11, 2, -10 }, // 0x32 '2' 94 | { 117, 8, 11, 11, 1, -10 }, // 0x33 '3' 95 | { 128, 6, 11, 11, 3, -10 }, // 0x34 '4' 96 | { 137, 7, 11, 11, 2, -10 }, // 0x35 '5' 97 | { 147, 7, 11, 11, 2, -10 }, // 0x36 '6' 98 | { 157, 7, 11, 11, 2, -10 }, // 0x37 '7' 99 | { 167, 7, 11, 11, 2, -10 }, // 0x38 '8' 100 | { 177, 7, 11, 11, 2, -10 }, // 0x39 '9' 101 | { 187, 2, 8, 11, 4, -7 }, // 0x3A ':' 102 | { 189, 3, 11, 11, 3, -7 }, // 0x3B ';' 103 | { 194, 8, 8, 11, 1, -8 }, // 0x3C '<' 104 | { 202, 9, 4, 11, 1, -6 }, // 0x3D '=' 105 | { 207, 9, 8, 11, 1, -8 }, // 0x3E '>' 106 | { 216, 7, 10, 11, 2, -9 }, // 0x3F '?' 107 | { 225, 8, 12, 11, 2, -10 }, // 0x40 '@' 108 | { 237, 11, 10, 11, 0, -9 }, // 0x41 'A' 109 | { 251, 9, 10, 11, 1, -9 }, // 0x42 'B' 110 | { 263, 9, 10, 11, 1, -9 }, // 0x43 'C' 111 | { 275, 9, 10, 11, 1, -9 }, // 0x44 'D' 112 | { 287, 9, 10, 11, 1, -9 }, // 0x45 'E' 113 | { 299, 9, 10, 11, 1, -9 }, // 0x46 'F' 114 | { 311, 10, 10, 11, 1, -9 }, // 0x47 'G' 115 | { 324, 9, 10, 11, 1, -9 }, // 0x48 'H' 116 | { 336, 5, 10, 11, 3, -9 }, // 0x49 'I' 117 | { 343, 8, 10, 11, 2, -9 }, // 0x4A 'J' 118 | { 353, 9, 10, 11, 1, -9 }, // 0x4B 'K' 119 | { 365, 8, 10, 11, 2, -9 }, // 0x4C 'L' 120 | { 375, 11, 10, 11, 0, -9 }, // 0x4D 'M' 121 | { 389, 9, 10, 11, 1, -9 }, // 0x4E 'N' 122 | { 401, 9, 10, 11, 1, -9 }, // 0x4F 'O' 123 | { 413, 8, 10, 11, 1, -9 }, // 0x50 'P' 124 | { 423, 9, 13, 11, 1, -9 }, // 0x51 'Q' 125 | { 438, 9, 10, 11, 1, -9 }, // 0x52 'R' 126 | { 450, 7, 10, 11, 2, -9 }, // 0x53 'S' 127 | { 459, 9, 10, 11, 1, -9 }, // 0x54 'T' 128 | { 471, 9, 10, 11, 1, -9 }, // 0x55 'U' 129 | { 483, 11, 10, 11, 0, -9 }, // 0x56 'V' 130 | { 497, 11, 10, 11, 0, -9 }, // 0x57 'W' 131 | { 511, 9, 10, 11, 1, -9 }, // 0x58 'X' 132 | { 523, 9, 10, 11, 1, -9 }, // 0x59 'Y' 133 | { 535, 7, 10, 11, 2, -9 }, // 0x5A 'Z' 134 | { 544, 2, 13, 11, 5, -10 }, // 0x5B '[' 135 | { 548, 7, 13, 11, 2, -11 }, // 0x5C '\' 136 | { 560, 2, 13, 11, 4, -10 }, // 0x5D ']' 137 | { 564, 7, 5, 11, 2, -10 }, // 0x5E '^' 138 | { 569, 11, 1, 11, 0, 2 }, // 0x5F '_' 139 | { 571, 3, 3, 11, 3, -11 }, // 0x60 '`' 140 | { 573, 9, 8, 11, 1, -7 }, // 0x61 'a' 141 | { 582, 9, 11, 11, 1, -10 }, // 0x62 'b' 142 | { 595, 7, 8, 11, 2, -7 }, // 0x63 'c' 143 | { 602, 9, 11, 11, 1, -10 }, // 0x64 'd' 144 | { 615, 8, 8, 11, 1, -7 }, // 0x65 'e' 145 | { 623, 6, 11, 11, 3, -10 }, // 0x66 'f' 146 | { 632, 9, 11, 11, 1, -7 }, // 0x67 'g' 147 | { 645, 9, 11, 11, 1, -10 }, // 0x68 'h' 148 | { 658, 7, 10, 11, 2, -9 }, // 0x69 'i' 149 | { 667, 5, 13, 11, 3, -9 }, // 0x6A 'j' 150 | { 676, 8, 11, 11, 2, -10 }, // 0x6B 'k' 151 | { 687, 7, 11, 11, 2, -10 }, // 0x6C 'l' 152 | { 697, 9, 8, 11, 1, -7 }, // 0x6D 'm' 153 | { 706, 9, 8, 11, 1, -7 }, // 0x6E 'n' 154 | { 715, 9, 8, 11, 1, -7 }, // 0x6F 'o' 155 | { 724, 9, 11, 11, 1, -7 }, // 0x70 'p' 156 | { 737, 9, 11, 11, 1, -7 }, // 0x71 'q' 157 | { 750, 7, 8, 11, 3, -7 }, // 0x72 'r' 158 | { 757, 7, 8, 11, 2, -7 }, // 0x73 's' 159 | { 764, 8, 10, 11, 2, -9 }, // 0x74 't' 160 | { 774, 8, 8, 11, 1, -7 }, // 0x75 'u' 161 | { 782, 9, 8, 11, 1, -7 }, // 0x76 'v' 162 | { 791, 9, 8, 11, 1, -7 }, // 0x77 'w' 163 | { 800, 9, 8, 11, 1, -7 }, // 0x78 'x' 164 | { 809, 9, 11, 11, 1, -7 }, // 0x79 'y' 165 | { 822, 7, 8, 11, 2, -7 }, // 0x7A 'z' 166 | { 829, 3, 13, 11, 4, -10 }, // 0x7B '{' 167 | { 834, 1, 13, 11, 5, -10 }, // 0x7C '|' 168 | { 836, 3, 13, 11, 4, -10 }, // 0x7D '}' 169 | { 841, 7, 3, 11, 2, -6 } }; // 0x7E '~' 170 | 171 | const GFXfont FreeMono9pt7b PROGMEM = { 172 | (uint8_t *)FreeMono9pt7bBitmaps, 173 | (GFXglyph *)FreeMono9pt7bGlyphs, 174 | 0x20, 0x7E, 18 }; 175 | 176 | // Approx. 1516 bytes 177 | -------------------------------------------------------------------------------- /fontconvert/fontconvert.c: -------------------------------------------------------------------------------- 1 | /* 2 | TrueType to Adafruit_GFX font converter. Derived from Peter Jakobs' 3 | Adafruit_ftGFX fork & makefont tool, and Paul Kourany's Adafruit_mfGFX. 4 | 5 | NOT AN ARDUINO SKETCH. This is a command-line tool for preprocessing 6 | fonts to be used with the Adafruit_GFX Arduino library. 7 | 8 | For UNIX-like systems. Outputs to stdout; redirect to header file, e.g.: 9 | ./fontconvert ~/Library/Fonts/FreeSans.ttf 18 > FreeSans18pt7b.h 10 | 11 | REQUIRES FREETYPE LIBRARY. www.freetype.org 12 | 13 | Currently this only extracts the printable 7-bit ASCII chars of a font. 14 | Will eventually extend with some int'l chars a la ftGFX, not there yet. 15 | Keep 7-bit fonts around as an option in that case, more compact. 16 | 17 | See notes at end for glyph nomenclature & other tidbits. 18 | */ 19 | #ifndef ARDUINO 20 | 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include FT_GLYPH_H 26 | #include FT_TRUETYPE_DRIVER_H 27 | #include "../gfxfont.h" // Adafruit_GFX font structures 28 | 29 | #define DPI 141 // Approximate res. of Adafruit 2.8" TFT 30 | 31 | // Accumulate bits for output, with periodic hexadecimal byte write 32 | void enbit(uint8_t value) { 33 | static uint8_t row = 0, sum = 0, bit = 0x80, firstCall = 1; 34 | if(value) sum |= bit; // Set bit if needed 35 | if(!(bit >>= 1)) { // Advance to next bit, end of byte reached? 36 | if(!firstCall) { // Format output table nicely 37 | if(++row >= 12) { // Last entry on line? 38 | printf(",\n "); // Newline format output 39 | row = 0; // Reset row counter 40 | } else { // Not end of line 41 | printf(", "); // Simple comma delim 42 | } 43 | } 44 | printf("0x%02X", sum); // Write byte value 45 | sum = 0; // Clear for next byte 46 | bit = 0x80; // Reset bit counter 47 | firstCall = 0; // Formatting flag 48 | } 49 | } 50 | 51 | int main(int argc, char *argv[]) { 52 | int i, j, err, size, first=' ', last='~', 53 | bitmapOffset = 0, x, y, byte; 54 | char *fontName, c, *ptr; 55 | FT_Library library; 56 | FT_Face face; 57 | FT_Glyph glyph; 58 | FT_Bitmap *bitmap; 59 | FT_BitmapGlyphRec *g; 60 | GFXglyph *table; 61 | uint8_t bit; 62 | 63 | // Parse command line. Valid syntaxes are: 64 | // fontconvert [filename] [size] 65 | // fontconvert [filename] [size] [last char] 66 | // fontconvert [filename] [size] [first char] [last char] 67 | // Unless overridden, default first and last chars are 68 | // ' ' (space) and '~', respectively 69 | 70 | if(argc < 3) { 71 | fprintf(stderr, "Usage: %s fontfile size [first] [last]\n", 72 | argv[0]); 73 | return 1; 74 | } 75 | 76 | size = atoi(argv[2]); 77 | 78 | if(argc == 4) { 79 | last = atoi(argv[3]); 80 | } else if(argc == 5) { 81 | first = atoi(argv[3]); 82 | last = atoi(argv[4]); 83 | } 84 | 85 | if(last < first) { 86 | i = first; 87 | first = last; 88 | last = i; 89 | } 90 | 91 | ptr = strrchr(argv[1], '/'); // Find last slash in filename 92 | if(ptr) ptr++; // First character of filename (path stripped) 93 | else ptr = argv[1]; // No path; font in local dir. 94 | 95 | // Allocate space for font name and glyph table 96 | if((!(fontName = malloc(strlen(ptr) + 20))) || 97 | (!(table = (GFXglyph *)malloc((last - first + 1) * 98 | sizeof(GFXglyph))))) { 99 | fprintf(stderr, "Malloc error\n"); 100 | return 1; 101 | } 102 | 103 | // Derive font table names from filename. Period (filename 104 | // extension) is truncated and replaced with the font size & bits. 105 | strcpy(fontName, ptr); 106 | ptr = strrchr(fontName, '.'); // Find last period (file ext) 107 | if(!ptr) ptr = &fontName[strlen(fontName)]; // If none, append 108 | // Insert font size and 7/8 bit. fontName was alloc'd w/extra 109 | // space to allow this, we're not sprintfing into Forbidden Zone. 110 | sprintf(ptr, "%dpt%db", size, (last > 127) ? 8 : 7); 111 | // Space and punctuation chars in name replaced w/ underscores. 112 | for(i=0; (c=fontName[i]); i++) { 113 | if(isspace(c) || ispunct(c)) fontName[i] = '_'; 114 | } 115 | 116 | // Init FreeType lib, load font 117 | if((err = FT_Init_FreeType(&library))) { 118 | fprintf(stderr, "FreeType init error: %d", err); 119 | return err; 120 | } 121 | 122 | // Use TrueType engine version 35, without subpixel rendering. 123 | // This improves clarity of fonts since this library does not 124 | // support rendering multiple levels of gray in a glyph. 125 | // See https://github.com/adafruit/Adafruit-GFX-Library/issues/103 126 | FT_UInt interpreter_version = TT_INTERPRETER_VERSION_35; 127 | FT_Property_Set( library, "truetype", 128 | "interpreter-version", 129 | &interpreter_version ); 130 | 131 | if((err = FT_New_Face(library, argv[1], 0, &face))) { 132 | fprintf(stderr, "Font load error: %d", err); 133 | FT_Done_FreeType(library); 134 | return err; 135 | } 136 | 137 | // << 6 because '26dot6' fixed-point format 138 | FT_Set_Char_Size(face, size << 6, 0, DPI, 0); 139 | 140 | // Currently all symbols from 'first' to 'last' are processed. 141 | // Fonts may contain WAY more glyphs than that, but this code 142 | // will need to handle encoding stuff to deal with extracting 143 | // the right symbols, and that's not done yet. 144 | // fprintf(stderr, "%ld glyphs\n", face->num_glyphs); 145 | 146 | printf("const uint8_t %sBitmaps[] PROGMEM = {\n ", fontName); 147 | 148 | // Process glyphs and output huge bitmap data array 149 | for(i=first, j=0; i<=last; i++, j++) { 150 | // MONO renderer provides clean image with perfect crop 151 | // (no wasted pixels) via bitmap struct. 152 | if((err = FT_Load_Char(face, i, FT_LOAD_TARGET_MONO))) { 153 | fprintf(stderr, "Error %d loading char '%c'\n", 154 | err, i); 155 | continue; 156 | } 157 | 158 | if((err = FT_Render_Glyph(face->glyph, 159 | FT_RENDER_MODE_MONO))) { 160 | fprintf(stderr, "Error %d rendering char '%c'\n", 161 | err, i); 162 | continue; 163 | } 164 | 165 | if((err = FT_Get_Glyph(face->glyph, &glyph))) { 166 | fprintf(stderr, "Error %d getting glyph '%c'\n", 167 | err, i); 168 | continue; 169 | } 170 | 171 | bitmap = &face->glyph->bitmap; 172 | g = (FT_BitmapGlyphRec *)glyph; 173 | 174 | // Minimal font and per-glyph information is stored to 175 | // reduce flash space requirements. Glyph bitmaps are 176 | // fully bit-packed; no per-scanline pad, though end of 177 | // each character may be padded to next byte boundary 178 | // when needed. 16-bit offset means 64K max for bitmaps, 179 | // code currently doesn't check for overflow. (Doesn't 180 | // check that size & offsets are within bounds either for 181 | // that matter...please convert fonts responsibly.) 182 | table[j].bitmapOffset = bitmapOffset; 183 | table[j].width = bitmap->width; 184 | table[j].height = bitmap->rows; 185 | table[j].xAdvance = face->glyph->advance.x >> 6; 186 | table[j].xOffset = g->left; 187 | table[j].yOffset = 1 - g->top; 188 | 189 | for(y=0; y < bitmap->rows; y++) { 190 | for(x=0;x < bitmap->width; x++) { 191 | byte = x / 8; 192 | bit = 0x80 >> (x & 7); 193 | enbit(bitmap->buffer[ 194 | y * bitmap->pitch + byte] & bit); 195 | } 196 | } 197 | 198 | // Pad end of char bitmap to next byte boundary if needed 199 | int n = (bitmap->width * bitmap->rows) & 7; 200 | if(n) { // Pixel count not an even multiple of 8? 201 | n = 8 - n; // # bits to next multiple 202 | while(n--) enbit(0); 203 | } 204 | bitmapOffset += (bitmap->width * bitmap->rows + 7) / 8; 205 | 206 | FT_Done_Glyph(glyph); 207 | } 208 | 209 | printf(" };\n\n"); // End bitmap array 210 | 211 | // Output glyph attributes table (one per character) 212 | printf("const GFXglyph %sGlyphs[] PROGMEM = {\n", fontName); 213 | for(i=first, j=0; i<=last; i++, j++) { 214 | printf(" { %5d, %3d, %3d, %3d, %4d, %4d }", 215 | table[j].bitmapOffset, 216 | table[j].width, 217 | table[j].height, 218 | table[j].xAdvance, 219 | table[j].xOffset, 220 | table[j].yOffset); 221 | if(i < last) { 222 | printf(", // 0x%02X", i); 223 | if((i >= ' ') && (i <= '~')) { 224 | printf(" '%c'", i); 225 | } 226 | putchar('\n'); 227 | } 228 | } 229 | printf(" }; // 0x%02X", last); 230 | if((last >= ' ') && (last <= '~')) printf(" '%c'", last); 231 | printf("\n\n"); 232 | 233 | // Output font structure 234 | printf("const GFXfont %s PROGMEM = {\n", fontName); 235 | printf(" (uint8_t *)%sBitmaps,\n", fontName); 236 | printf(" (GFXglyph *)%sGlyphs,\n", fontName); 237 | if (face->size->metrics.height == 0) { 238 | // No face height info, assume fixed width and get from a glyph. 239 | printf(" 0x%02X, 0x%02X, %d };\n\n", 240 | first, last, table[0].height); 241 | } else { 242 | printf(" 0x%02X, 0x%02X, %ld };\n\n", 243 | first, last, face->size->metrics.height >> 6); 244 | } 245 | printf("// Approx. %d bytes\n", 246 | bitmapOffset + (last - first + 1) * 7 + 7); 247 | // Size estimate is based on AVR struct and pointer sizes; 248 | // actual size may vary. 249 | 250 | FT_Done_FreeType(library); 251 | 252 | return 0; 253 | } 254 | 255 | /* ------------------------------------------------------------------------- 256 | 257 | Character metrics are slightly different from classic GFX & ftGFX. 258 | In classic GFX: cursor position is the upper-left pixel of each 5x7 259 | character; lower extent of most glyphs (except those w/descenders) 260 | is +6 pixels in Y direction. 261 | W/new GFX fonts: cursor position is on baseline, where baseline is 262 | 'inclusive' (containing the bottom-most row of pixels in most symbols, 263 | except those with descenders; ftGFX is one pixel lower). 264 | 265 | Cursor Y will be moved automatically when switching between classic 266 | and new fonts. If you switch fonts, any print() calls will continue 267 | along the same baseline. 268 | 269 | ...........#####.. -- yOffset 270 | ..........######.. 271 | ..........######.. 272 | .........#######.. 273 | ........#########. 274 | * = Cursor pos. ........#########. 275 | .......##########. 276 | ......#####..####. 277 | ......#####..####. 278 | *.#.. .....#####...####. 279 | .#.#. ....############## 280 | #...# ...############### 281 | #...# ...############### 282 | ##### ..#####......##### 283 | #...# .#####.......##### 284 | ====== #...# ====== #*###.........#### ======= Baseline 285 | || xOffset 286 | 287 | glyph->xOffset and yOffset are pixel offsets, in GFX coordinate space 288 | (+Y is down), from the cursor position to the top-left pixel of the 289 | glyph bitmap. i.e. yOffset is typically negative, xOffset is typically 290 | zero but a few glyphs will have other values (even negative xOffsets 291 | sometimes, totally normal). glyph->xAdvance is the distance to move 292 | the cursor on the X axis after drawing the corresponding symbol. 293 | 294 | There's also some changes with regard to 'background' color and new GFX 295 | fonts (classic fonts unchanged). See Adafruit_GFX.cpp for explanation. 296 | */ 297 | 298 | #endif /* !ARDUINO */ 299 | -------------------------------------------------------------------------------- /examples/mock_ili9341/mock_ili9341.ino: -------------------------------------------------------------------------------- 1 | /*************************************************** 2 | This is our GFX example for the Adafruit ILI9341 Breakout and Shield 3 | ----> http://www.adafruit.com/products/1651 4 | 5 | Check out the links above for our tutorials and wiring diagrams 6 | These displays use SPI to communicate, 4 or 5 pins are required to 7 | interface (RST is optional) 8 | Adafruit invests time and resources providing this open source code, 9 | please support Adafruit and open-source hardware by purchasing 10 | products from Adafruit! 11 | 12 | Written by Limor Fried/Ladyada for Adafruit Industries. 13 | MIT license, all text above must be included in any redistribution 14 | ****************************************************/ 15 | 16 | 17 | #include "SPI.h" 18 | #include "Adafruit_GFX.h" 19 | #include "Adafruit_ILI9341.h" 20 | 21 | // For the Adafruit shield, these are the default. 22 | #define TFT_DC 9 23 | #define TFT_CS 10 24 | 25 | // Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC 26 | Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); 27 | // If using the breakout, change pins as desired 28 | //Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO); 29 | 30 | void setup() { 31 | Serial.begin(9600); 32 | Serial.println("ILI9341 Test!"); 33 | 34 | tft.begin(); 35 | 36 | // read diagnostics (optional but can help debug problems) 37 | uint8_t x = tft.readcommand8(ILI9341_RDMODE); 38 | Serial.print("Display Power Mode: 0x"); Serial.println(x, HEX); 39 | x = tft.readcommand8(ILI9341_RDMADCTL); 40 | Serial.print("MADCTL Mode: 0x"); Serial.println(x, HEX); 41 | x = tft.readcommand8(ILI9341_RDPIXFMT); 42 | Serial.print("Pixel Format: 0x"); Serial.println(x, HEX); 43 | x = tft.readcommand8(ILI9341_RDIMGFMT); 44 | Serial.print("Image Format: 0x"); Serial.println(x, HEX); 45 | x = tft.readcommand8(ILI9341_RDSELFDIAG); 46 | Serial.print("Self Diagnostic: 0x"); Serial.println(x, HEX); 47 | 48 | Serial.println(F("Benchmark Time (microseconds)")); 49 | delay(10); 50 | Serial.print(F("Screen fill ")); 51 | Serial.println(testFillScreen()); 52 | delay(500); 53 | 54 | Serial.print(F("Text ")); 55 | Serial.println(testText()); 56 | delay(3000); 57 | 58 | Serial.print(F("Lines ")); 59 | Serial.println(testLines(ILI9341_CYAN)); 60 | delay(500); 61 | 62 | Serial.print(F("Horiz/Vert Lines ")); 63 | Serial.println(testFastLines(ILI9341_RED, ILI9341_BLUE)); 64 | delay(500); 65 | 66 | Serial.print(F("Rectangles (outline) ")); 67 | Serial.println(testRects(ILI9341_GREEN)); 68 | delay(500); 69 | 70 | Serial.print(F("Rectangles (filled) ")); 71 | Serial.println(testFilledRects(ILI9341_YELLOW, ILI9341_MAGENTA)); 72 | delay(500); 73 | 74 | Serial.print(F("Circles (filled) ")); 75 | Serial.println(testFilledCircles(10, ILI9341_MAGENTA)); 76 | 77 | Serial.print(F("Circles (outline) ")); 78 | Serial.println(testCircles(10, ILI9341_WHITE)); 79 | delay(500); 80 | 81 | Serial.print(F("Triangles (outline) ")); 82 | Serial.println(testTriangles()); 83 | delay(500); 84 | 85 | Serial.print(F("Triangles (filled) ")); 86 | Serial.println(testFilledTriangles()); 87 | delay(500); 88 | 89 | Serial.print(F("Rounded rects (outline) ")); 90 | Serial.println(testRoundRects()); 91 | delay(500); 92 | 93 | Serial.print(F("Rounded rects (filled) ")); 94 | Serial.println(testFilledRoundRects()); 95 | delay(500); 96 | 97 | Serial.println(F("Done!")); 98 | 99 | } 100 | 101 | 102 | void loop(void) { 103 | for(uint8_t rotation=0; rotation<4; rotation++) { 104 | tft.setRotation(rotation); 105 | testText(); 106 | delay(1000); 107 | } 108 | } 109 | 110 | unsigned long testFillScreen() { 111 | unsigned long start = micros(); 112 | tft.fillScreen(ILI9341_BLACK); 113 | yield(); 114 | tft.fillScreen(ILI9341_RED); 115 | yield(); 116 | tft.fillScreen(ILI9341_GREEN); 117 | yield(); 118 | tft.fillScreen(ILI9341_BLUE); 119 | yield(); 120 | tft.fillScreen(ILI9341_BLACK); 121 | yield(); 122 | return micros() - start; 123 | } 124 | 125 | unsigned long testText() { 126 | tft.fillScreen(ILI9341_BLACK); 127 | unsigned long start = micros(); 128 | tft.setCursor(0, 0); 129 | tft.setTextColor(ILI9341_WHITE); tft.setTextSize(1); 130 | tft.println("Hello World!"); 131 | tft.setTextColor(ILI9341_YELLOW); tft.setTextSize(2); 132 | tft.println(1234.56); 133 | tft.setTextColor(ILI9341_RED); tft.setTextSize(3); 134 | tft.println(0xDEADBEEF, HEX); 135 | tft.println(); 136 | tft.setTextColor(ILI9341_GREEN); 137 | tft.setTextSize(5); 138 | tft.println("Groop"); 139 | tft.setTextSize(2); 140 | tft.println("I implore thee,"); 141 | tft.setTextSize(1); 142 | tft.println("my foonting turlingdromes."); 143 | tft.println("And hooptiously drangle me"); 144 | tft.println("with crinkly bindlewurdles,"); 145 | tft.println("Or I will rend thee"); 146 | tft.println("in the gobberwarts"); 147 | tft.println("with my blurglecruncheon,"); 148 | tft.println("see if I don't!"); 149 | return micros() - start; 150 | } 151 | 152 | unsigned long testLines(uint16_t color) { 153 | unsigned long start, t; 154 | int x1, y1, x2, y2, 155 | w = tft.width(), 156 | h = tft.height(); 157 | 158 | tft.fillScreen(ILI9341_BLACK); 159 | yield(); 160 | 161 | x1 = y1 = 0; 162 | y2 = h - 1; 163 | start = micros(); 164 | for(x2=0; x20; i-=6) { 249 | i2 = i / 2; 250 | start = micros(); 251 | tft.fillRect(cx-i2, cy-i2, i, i, color1); 252 | t += micros() - start; 253 | // Outlines are not included in timing results 254 | tft.drawRect(cx-i2, cy-i2, i, i, color2); 255 | yield(); 256 | } 257 | 258 | return t; 259 | } 260 | 261 | unsigned long testFilledCircles(uint8_t radius, uint16_t color) { 262 | unsigned long start; 263 | int x, y, w = tft.width(), h = tft.height(), r2 = radius * 2; 264 | 265 | tft.fillScreen(ILI9341_BLACK); 266 | start = micros(); 267 | for(x=radius; x10; i-=5) { 321 | start = micros(); 322 | tft.fillTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, 323 | tft.color565(0, i*10, i*10)); 324 | t += micros() - start; 325 | tft.drawTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, 326 | tft.color565(i*10, i*10, 0)); 327 | yield(); 328 | } 329 | 330 | return t; 331 | } 332 | 333 | unsigned long testRoundRects() { 334 | unsigned long start; 335 | int w, i, i2, 336 | cx = tft.width() / 2 - 1, 337 | cy = tft.height() / 2 - 1; 338 | 339 | tft.fillScreen(ILI9341_BLACK); 340 | w = min(tft.width(), tft.height()); 341 | start = micros(); 342 | for(i=0; i20; i-=6) { 359 | i2 = i / 2; 360 | tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(0, i, 0)); 361 | yield(); 362 | } 363 | 364 | return micros() - start; 365 | } 366 | -------------------------------------------------------------------------------- /Fonts/FreeMonoOblique9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeMonoOblique9pt7bBitmaps[] PROGMEM = { 2 | 0x11, 0x22, 0x24, 0x40, 0x00, 0xC0, 0xDE, 0xE5, 0x29, 0x00, 0x09, 0x05, 3 | 0x02, 0x82, 0x47, 0xF8, 0xA0, 0x51, 0xFE, 0x28, 0x14, 0x0A, 0x09, 0x00, 4 | 0x08, 0x1D, 0x23, 0x40, 0x70, 0x1C, 0x02, 0x82, 0x84, 0x78, 0x20, 0x20, 5 | 0x1C, 0x11, 0x08, 0x83, 0x80, 0x18, 0x71, 0xC0, 0x1C, 0x11, 0x08, 0x83, 6 | 0x80, 0x1E, 0x60, 0x81, 0x03, 0x0A, 0x65, 0x46, 0x88, 0xE8, 0xFA, 0x80, 7 | 0x12, 0x24, 0x48, 0x88, 0x88, 0x88, 0x80, 0x01, 0x11, 0x11, 0x11, 0x22, 8 | 0x44, 0x80, 0x10, 0x22, 0x5B, 0xC3, 0x0A, 0x22, 0x00, 0x04, 0x02, 0x02, 9 | 0x1F, 0xF0, 0x80, 0x40, 0x20, 0x00, 0x36, 0x4C, 0x80, 0xFF, 0x80, 0xF0, 10 | 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 11 | 0x08, 0x08, 0x00, 0x1C, 0x45, 0x0A, 0x18, 0x30, 0x61, 0x42, 0x85, 0x11, 12 | 0xC0, 0x04, 0x38, 0x90, 0x20, 0x81, 0x02, 0x04, 0x08, 0x23, 0xF8, 0x07, 13 | 0x04, 0xC4, 0x20, 0x10, 0x10, 0x30, 0x20, 0x20, 0x60, 0x40, 0x3F, 0x80, 14 | 0x0F, 0x00, 0x40, 0x20, 0x20, 0x60, 0x18, 0x04, 0x02, 0x01, 0x43, 0x1E, 15 | 0x00, 0x03, 0x05, 0x0A, 0x12, 0x22, 0x22, 0x42, 0x7F, 0x04, 0x04, 0x1E, 16 | 0x1F, 0x88, 0x08, 0x05, 0xC3, 0x30, 0x08, 0x04, 0x02, 0x02, 0x42, 0x1E, 17 | 0x00, 0x07, 0x18, 0x20, 0x40, 0x5C, 0xA6, 0xC2, 0x82, 0x82, 0xC4, 0x78, 18 | 0xFF, 0x04, 0x10, 0x20, 0x82, 0x04, 0x10, 0x20, 0x81, 0x00, 0x1E, 0x23, 19 | 0x41, 0x41, 0x62, 0x1C, 0x66, 0x82, 0x82, 0x84, 0x78, 0x1E, 0x23, 0x41, 20 | 0x41, 0x43, 0x65, 0x3A, 0x02, 0x04, 0x18, 0xE0, 0x6C, 0x00, 0x36, 0x18, 21 | 0xC0, 0x00, 0x19, 0x8C, 0xC4, 0x00, 0x01, 0x83, 0x06, 0x0C, 0x06, 0x00, 22 | 0x80, 0x30, 0x04, 0xFF, 0x80, 0x00, 0x1F, 0xF0, 0x20, 0x0C, 0x01, 0x00, 23 | 0x60, 0x20, 0x60, 0xC1, 0x80, 0x3D, 0x8E, 0x08, 0x10, 0xC6, 0x08, 0x00, 24 | 0x01, 0x80, 0x1C, 0x45, 0x0A, 0x79, 0x34, 0x69, 0x4E, 0x81, 0x03, 0x03, 25 | 0xC0, 0x0F, 0x00, 0x60, 0x12, 0x02, 0x40, 0x88, 0x21, 0x07, 0xE1, 0x04, 26 | 0x20, 0x5E, 0x3C, 0x3F, 0x84, 0x11, 0x04, 0x82, 0x3F, 0x88, 0x32, 0x04, 27 | 0x81, 0x60, 0xBF, 0xC0, 0x1E, 0x98, 0xD0, 0x28, 0x08, 0x04, 0x02, 0x01, 28 | 0x00, 0x41, 0x1F, 0x00, 0x3F, 0x0C, 0x22, 0x04, 0x81, 0x20, 0x48, 0x12, 29 | 0x09, 0x02, 0x43, 0x3F, 0x00, 0x3F, 0xC4, 0x11, 0x00, 0x88, 0x3E, 0x08, 30 | 0x82, 0x00, 0x82, 0x60, 0xBF, 0xE0, 0x3F, 0xE2, 0x08, 0x40, 0x11, 0x03, 31 | 0xE0, 0x44, 0x08, 0x01, 0x00, 0x60, 0x1F, 0x00, 0x1E, 0x98, 0xD0, 0x08, 32 | 0x08, 0x04, 0x7A, 0x05, 0x02, 0x41, 0x1F, 0x00, 0x3D, 0xE2, 0x18, 0x42, 33 | 0x08, 0x43, 0xF8, 0x41, 0x08, 0x21, 0x08, 0x21, 0x1E, 0xF0, 0x3F, 0x82, 34 | 0x02, 0x01, 0x00, 0x80, 0x40, 0x20, 0x20, 0x10, 0x7F, 0x00, 0x0F, 0xE0, 35 | 0x20, 0x04, 0x00, 0x80, 0x10, 0x02, 0x20, 0x84, 0x10, 0x84, 0x0F, 0x00, 36 | 0x3C, 0xE2, 0x10, 0x44, 0x11, 0x02, 0xC0, 0x64, 0x08, 0x81, 0x08, 0x61, 37 | 0x1E, 0x38, 0x3E, 0x02, 0x00, 0x80, 0x20, 0x10, 0x04, 0x01, 0x04, 0x42, 38 | 0x10, 0xBF, 0xE0, 0x38, 0x38, 0xC3, 0x05, 0x28, 0x29, 0x42, 0x52, 0x13, 39 | 0x10, 0x99, 0x84, 0x08, 0x20, 0x47, 0x8F, 0x00, 0x70, 0xE6, 0x08, 0xA1, 40 | 0x14, 0x22, 0x48, 0x49, 0x11, 0x22, 0x14, 0x43, 0x1E, 0x20, 0x1E, 0x18, 41 | 0x90, 0x28, 0x18, 0x0C, 0x06, 0x05, 0x02, 0x46, 0x1E, 0x00, 0x3F, 0x84, 42 | 0x31, 0x04, 0x81, 0x20, 0x8F, 0xC2, 0x00, 0x80, 0x60, 0x3E, 0x00, 0x1E, 43 | 0x18, 0x90, 0x28, 0x18, 0x0C, 0x06, 0x05, 0x02, 0x46, 0x1E, 0x08, 0x0F, 44 | 0x44, 0x60, 0x3F, 0x84, 0x31, 0x04, 0x81, 0x20, 0x8F, 0xC2, 0x10, 0x84, 45 | 0x60, 0xBC, 0x10, 0x0F, 0x88, 0xC8, 0x24, 0x01, 0x80, 0x38, 0x05, 0x02, 46 | 0xC2, 0x5E, 0x00, 0xFF, 0xC4, 0x44, 0x02, 0x01, 0x00, 0x80, 0x40, 0x60, 47 | 0x20, 0x7E, 0x00, 0xF1, 0xD0, 0x24, 0x09, 0x02, 0x41, 0xA0, 0x48, 0x12, 48 | 0x04, 0xC6, 0x1F, 0x00, 0xF1, 0xE8, 0x11, 0x02, 0x20, 0x82, 0x20, 0x44, 49 | 0x09, 0x01, 0x40, 0x28, 0x02, 0x00, 0xF1, 0xE8, 0x09, 0x12, 0x26, 0x45, 50 | 0x48, 0xAA, 0x29, 0x45, 0x28, 0xC6, 0x18, 0xC0, 0x38, 0xE2, 0x08, 0x26, 51 | 0x05, 0x00, 0x40, 0x18, 0x04, 0x81, 0x08, 0x41, 0x1C, 0x70, 0xE3, 0xA0, 52 | 0x90, 0x84, 0x81, 0x80, 0x80, 0x40, 0x20, 0x20, 0x7E, 0x00, 0x3F, 0x90, 53 | 0x88, 0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x82, 0x7F, 0x00, 0x39, 0x08, 54 | 0x44, 0x21, 0x08, 0x42, 0x21, 0x0E, 0x00, 0x88, 0x44, 0x44, 0x22, 0x22, 55 | 0x11, 0x11, 0x38, 0x42, 0x11, 0x08, 0x42, 0x10, 0x84, 0x2E, 0x00, 0x08, 56 | 0x28, 0x92, 0x18, 0x20, 0xFF, 0xC0, 0xA4, 0x3E, 0x00, 0x80, 0x47, 0xA4, 57 | 0x34, 0x12, 0x18, 0xF7, 0x38, 0x01, 0x00, 0x40, 0x09, 0xE1, 0xC6, 0x20, 58 | 0x44, 0x09, 0x01, 0x30, 0x46, 0x13, 0xBC, 0x00, 0x1F, 0x48, 0x74, 0x0A, 59 | 0x00, 0x80, 0x20, 0x0C, 0x18, 0xF8, 0x01, 0x80, 0x40, 0x23, 0x96, 0x32, 60 | 0x0A, 0x05, 0x02, 0x81, 0x61, 0x1F, 0xE0, 0x1F, 0x30, 0xD0, 0x3F, 0xF8, 61 | 0x04, 0x01, 0x00, 0x7C, 0x07, 0xC3, 0x00, 0x80, 0xFE, 0x10, 0x04, 0x01, 62 | 0x00, 0x40, 0x10, 0x08, 0x0F, 0xE0, 0x1D, 0xD8, 0xC4, 0x12, 0x04, 0x82, 63 | 0x20, 0x8C, 0x61, 0xE8, 0x02, 0x01, 0x07, 0x80, 0x30, 0x04, 0x01, 0x00, 64 | 0x5C, 0x38, 0x88, 0x22, 0x08, 0x82, 0x21, 0x18, 0x4F, 0x3C, 0x04, 0x04, 65 | 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0xFF, 0x01, 0x00, 0x80, 66 | 0x03, 0xF0, 0x10, 0x08, 0x04, 0x02, 0x02, 0x01, 0x00, 0x80, 0x40, 0x47, 67 | 0xC0, 0x38, 0x08, 0x04, 0x02, 0x71, 0x20, 0xA0, 0xA0, 0x68, 0x24, 0x11, 68 | 0x38, 0xE0, 0x3C, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 69 | 0xFF, 0x3E, 0xE2, 0x64, 0x88, 0x91, 0x12, 0x24, 0x48, 0x91, 0x17, 0x33, 70 | 0x37, 0x14, 0x4C, 0x24, 0x12, 0x09, 0x08, 0x85, 0xE3, 0x1E, 0x10, 0x90, 71 | 0x30, 0x18, 0x0C, 0x0B, 0x08, 0x78, 0x33, 0xC3, 0x8C, 0x40, 0x88, 0x12, 72 | 0x02, 0x60, 0x8C, 0x31, 0x78, 0x20, 0x08, 0x03, 0xE0, 0x00, 0x1C, 0xD8, 73 | 0xC4, 0x12, 0x04, 0x81, 0x20, 0x4C, 0x21, 0xF8, 0x02, 0x00, 0x81, 0xF0, 74 | 0x73, 0x8E, 0x04, 0x04, 0x02, 0x01, 0x00, 0x81, 0xFC, 0x1F, 0x61, 0x40, 75 | 0x3C, 0x03, 0x81, 0x82, 0xFC, 0x10, 0x63, 0xF9, 0x02, 0x04, 0x10, 0x20, 76 | 0x40, 0x7C, 0xE3, 0x10, 0x90, 0x48, 0x24, 0x22, 0x11, 0x18, 0xF6, 0xF3, 77 | 0xD0, 0x44, 0x10, 0x88, 0x24, 0x09, 0x02, 0x80, 0x40, 0xE1, 0xD0, 0x24, 78 | 0x91, 0x24, 0x55, 0x19, 0x86, 0x61, 0x10, 0x39, 0xC4, 0x20, 0xB0, 0x30, 79 | 0x0C, 0x04, 0x86, 0x13, 0x8E, 0x3C, 0x71, 0x04, 0x10, 0x40, 0x88, 0x09, 80 | 0x00, 0xA0, 0x06, 0x00, 0x40, 0x08, 0x01, 0x00, 0xFC, 0x00, 0x7F, 0x42, 81 | 0x04, 0x08, 0x10, 0x20, 0x42, 0xFE, 0x0C, 0x41, 0x04, 0x30, 0x8C, 0x08, 82 | 0x21, 0x04, 0x10, 0x60, 0x24, 0x94, 0x92, 0x52, 0x40, 0x18, 0x20, 0x82, 83 | 0x10, 0x40, 0xC4, 0x10, 0x82, 0x08, 0xC0, 0x61, 0x24, 0x30 }; 84 | 85 | const GFXglyph FreeMonoOblique9pt7bGlyphs[] PROGMEM = { 86 | { 0, 0, 0, 11, 0, 1 }, // 0x20 ' ' 87 | { 0, 4, 11, 11, 4, -10 }, // 0x21 '!' 88 | { 6, 5, 5, 11, 4, -10 }, // 0x22 '"' 89 | { 10, 9, 12, 11, 2, -10 }, // 0x23 '#' 90 | { 24, 8, 12, 11, 3, -10 }, // 0x24 '$' 91 | { 36, 9, 11, 11, 2, -10 }, // 0x25 '%' 92 | { 49, 7, 10, 11, 2, -9 }, // 0x26 '&' 93 | { 58, 2, 5, 11, 6, -10 }, // 0x27 ''' 94 | { 60, 4, 13, 11, 6, -10 }, // 0x28 '(' 95 | { 67, 4, 13, 11, 3, -10 }, // 0x29 ')' 96 | { 74, 7, 7, 11, 4, -10 }, // 0x2A '*' 97 | { 81, 9, 8, 11, 2, -8 }, // 0x2B '+' 98 | { 90, 4, 5, 11, 2, -1 }, // 0x2C ',' 99 | { 93, 9, 1, 11, 2, -5 }, // 0x2D '-' 100 | { 95, 2, 2, 11, 4, -1 }, // 0x2E '.' 101 | { 96, 9, 13, 11, 2, -11 }, // 0x2F '/' 102 | { 111, 7, 11, 11, 3, -10 }, // 0x30 '0' 103 | { 121, 7, 11, 11, 2, -10 }, // 0x31 '1' 104 | { 131, 9, 11, 11, 2, -10 }, // 0x32 '2' 105 | { 144, 9, 11, 11, 2, -10 }, // 0x33 '3' 106 | { 157, 8, 11, 11, 2, -10 }, // 0x34 '4' 107 | { 168, 9, 11, 11, 2, -10 }, // 0x35 '5' 108 | { 181, 8, 11, 11, 3, -10 }, // 0x36 '6' 109 | { 192, 7, 11, 11, 4, -10 }, // 0x37 '7' 110 | { 202, 8, 11, 11, 3, -10 }, // 0x38 '8' 111 | { 213, 8, 11, 11, 3, -10 }, // 0x39 '9' 112 | { 224, 3, 8, 11, 4, -7 }, // 0x3A ':' 113 | { 227, 5, 11, 11, 2, -7 }, // 0x3B ';' 114 | { 234, 9, 8, 11, 2, -8 }, // 0x3C '<' 115 | { 243, 9, 4, 11, 2, -6 }, // 0x3D '=' 116 | { 248, 9, 8, 11, 2, -8 }, // 0x3E '>' 117 | { 257, 7, 10, 11, 4, -9 }, // 0x3F '?' 118 | { 266, 7, 12, 11, 3, -10 }, // 0x40 '@' 119 | { 277, 11, 10, 11, 0, -9 }, // 0x41 'A' 120 | { 291, 10, 10, 11, 1, -9 }, // 0x42 'B' 121 | { 304, 9, 10, 11, 2, -9 }, // 0x43 'C' 122 | { 316, 10, 10, 11, 1, -9 }, // 0x44 'D' 123 | { 329, 10, 10, 11, 1, -9 }, // 0x45 'E' 124 | { 342, 11, 10, 11, 1, -9 }, // 0x46 'F' 125 | { 356, 9, 10, 11, 2, -9 }, // 0x47 'G' 126 | { 368, 11, 10, 11, 1, -9 }, // 0x48 'H' 127 | { 382, 9, 10, 11, 2, -9 }, // 0x49 'I' 128 | { 394, 11, 10, 11, 2, -9 }, // 0x4A 'J' 129 | { 408, 11, 10, 11, 1, -9 }, // 0x4B 'K' 130 | { 422, 10, 10, 11, 1, -9 }, // 0x4C 'L' 131 | { 435, 13, 10, 11, 0, -9 }, // 0x4D 'M' 132 | { 452, 11, 10, 11, 1, -9 }, // 0x4E 'N' 133 | { 466, 9, 10, 11, 2, -9 }, // 0x4F 'O' 134 | { 478, 10, 10, 11, 1, -9 }, // 0x50 'P' 135 | { 491, 9, 13, 11, 2, -9 }, // 0x51 'Q' 136 | { 506, 10, 10, 11, 1, -9 }, // 0x52 'R' 137 | { 519, 9, 10, 11, 2, -9 }, // 0x53 'S' 138 | { 531, 9, 10, 11, 3, -9 }, // 0x54 'T' 139 | { 543, 10, 10, 11, 2, -9 }, // 0x55 'U' 140 | { 556, 11, 10, 11, 2, -9 }, // 0x56 'V' 141 | { 570, 11, 10, 11, 2, -9 }, // 0x57 'W' 142 | { 584, 11, 10, 11, 1, -9 }, // 0x58 'X' 143 | { 598, 9, 10, 11, 3, -9 }, // 0x59 'Y' 144 | { 610, 9, 10, 11, 2, -9 }, // 0x5A 'Z' 145 | { 622, 5, 13, 11, 5, -10 }, // 0x5B '[' 146 | { 631, 4, 14, 11, 4, -11 }, // 0x5C '\' 147 | { 638, 5, 13, 11, 2, -10 }, // 0x5D ']' 148 | { 647, 7, 5, 11, 3, -10 }, // 0x5E '^' 149 | { 652, 11, 1, 11, 0, 2 }, // 0x5F '_' 150 | { 654, 2, 3, 11, 5, -11 }, // 0x60 '`' 151 | { 655, 9, 8, 11, 2, -7 }, // 0x61 'a' 152 | { 664, 11, 11, 11, 0, -10 }, // 0x62 'b' 153 | { 680, 10, 8, 11, 2, -7 }, // 0x63 'c' 154 | { 690, 9, 11, 11, 2, -10 }, // 0x64 'd' 155 | { 703, 9, 8, 11, 2, -7 }, // 0x65 'e' 156 | { 712, 10, 11, 11, 2, -10 }, // 0x66 'f' 157 | { 726, 10, 11, 11, 2, -7 }, // 0x67 'g' 158 | { 740, 10, 11, 11, 1, -10 }, // 0x68 'h' 159 | { 754, 8, 11, 11, 2, -10 }, // 0x69 'i' 160 | { 765, 9, 14, 11, 1, -10 }, // 0x6A 'j' 161 | { 781, 9, 11, 11, 1, -10 }, // 0x6B 'k' 162 | { 794, 8, 11, 11, 2, -10 }, // 0x6C 'l' 163 | { 805, 11, 8, 11, 0, -7 }, // 0x6D 'm' 164 | { 816, 9, 8, 11, 1, -7 }, // 0x6E 'n' 165 | { 825, 9, 8, 11, 2, -7 }, // 0x6F 'o' 166 | { 834, 11, 11, 11, 0, -7 }, // 0x70 'p' 167 | { 850, 10, 11, 11, 2, -7 }, // 0x71 'q' 168 | { 864, 9, 8, 11, 2, -7 }, // 0x72 'r' 169 | { 873, 8, 8, 11, 2, -7 }, // 0x73 's' 170 | { 881, 7, 10, 11, 2, -9 }, // 0x74 't' 171 | { 890, 9, 8, 11, 2, -7 }, // 0x75 'u' 172 | { 899, 10, 8, 11, 2, -7 }, // 0x76 'v' 173 | { 909, 10, 8, 11, 2, -7 }, // 0x77 'w' 174 | { 919, 10, 8, 11, 1, -7 }, // 0x78 'x' 175 | { 929, 12, 11, 11, 0, -7 }, // 0x79 'y' 176 | { 946, 8, 8, 11, 2, -7 }, // 0x7A 'z' 177 | { 954, 6, 13, 11, 4, -10 }, // 0x7B '{' 178 | { 964, 3, 12, 11, 5, -9 }, // 0x7C '|' 179 | { 969, 6, 13, 11, 3, -10 }, // 0x7D '}' 180 | { 979, 7, 3, 11, 3, -6 } }; // 0x7E '~' 181 | 182 | const GFXfont FreeMonoOblique9pt7b PROGMEM = { 183 | (uint8_t *)FreeMonoOblique9pt7bBitmaps, 184 | (GFXglyph *)FreeMonoOblique9pt7bGlyphs, 185 | 0x20, 0x7E, 18 }; 186 | 187 | // Approx. 1654 bytes 188 | -------------------------------------------------------------------------------- /Fonts/FreeMonoBold9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeMonoBold9pt7bBitmaps[] PROGMEM = { 2 | 0xFF, 0xFF, 0xD2, 0x1F, 0x80, 0xEC, 0x89, 0x12, 0x24, 0x40, 0x36, 0x36, 3 | 0x36, 0x7F, 0x7F, 0x36, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, 0x00, 0x18, 0xFF, 4 | 0xFE, 0x3C, 0x1F, 0x1F, 0x83, 0x46, 0x8D, 0xF0, 0xC1, 0x83, 0x00, 0x61, 5 | 0x22, 0x44, 0x86, 0x67, 0x37, 0x11, 0x22, 0x4C, 0x70, 0x3C, 0x7E, 0x60, 6 | 0x60, 0x30, 0x7B, 0xDF, 0xCE, 0xFF, 0x7F, 0xC9, 0x24, 0x37, 0x66, 0xCC, 7 | 0xCC, 0xCC, 0x66, 0x31, 0xCE, 0x66, 0x33, 0x33, 0x33, 0x66, 0xC8, 0x18, 8 | 0x18, 0xFF, 0xFF, 0x3C, 0x3C, 0x66, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 9 | 0x18, 0x18, 0x18, 0x6B, 0x48, 0xFF, 0xFF, 0xC0, 0xF0, 0x02, 0x0C, 0x18, 10 | 0x60, 0xC3, 0x06, 0x0C, 0x30, 0x61, 0x83, 0x0C, 0x18, 0x20, 0x00, 0x38, 11 | 0xFB, 0xBE, 0x3C, 0x78, 0xF1, 0xE3, 0xC7, 0xDD, 0xF1, 0xC0, 0x38, 0xF3, 12 | 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0xFD, 0xF8, 0x3C, 0xFE, 0xC7, 0x03, 13 | 0x03, 0x06, 0x0C, 0x18, 0x70, 0xE3, 0xFF, 0xFF, 0x7C, 0xFE, 0x03, 0x03, 14 | 0x03, 0x1E, 0x1E, 0x07, 0x03, 0x03, 0xFE, 0x7C, 0x1C, 0x38, 0xB1, 0x64, 15 | 0xD9, 0xBF, 0xFF, 0x3E, 0x7C, 0x7E, 0x3F, 0x18, 0x0F, 0xC7, 0xF3, 0x1C, 16 | 0x06, 0x03, 0xC3, 0xFF, 0x9F, 0x80, 0x0F, 0x3F, 0x30, 0x60, 0x60, 0xDC, 17 | 0xFE, 0xE3, 0xC3, 0x63, 0x7E, 0x3C, 0xFF, 0xFF, 0xC3, 0x03, 0x06, 0x06, 18 | 0x06, 0x0C, 0x0C, 0x0C, 0x18, 0x38, 0xFB, 0x1E, 0x3C, 0x6F, 0x9F, 0x63, 19 | 0xC7, 0x8F, 0xF1, 0xC0, 0x3C, 0x7E, 0xE6, 0xC3, 0xC3, 0xE7, 0x7F, 0x3B, 20 | 0x06, 0x0E, 0xFC, 0xF0, 0xF0, 0x0F, 0x6C, 0x00, 0x1A, 0xD2, 0x00, 0x01, 21 | 0x83, 0x87, 0x0E, 0x0F, 0x80, 0xE0, 0x1C, 0x03, 0xFF, 0xFF, 0xC0, 0x00, 22 | 0x0F, 0xFF, 0xFC, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0xF9, 0xE3, 0xC1, 0x80, 23 | 0x7C, 0xFE, 0xC7, 0x03, 0x0E, 0x1C, 0x00, 0x00, 0x00, 0x30, 0x30, 0x1E, 24 | 0x1F, 0x1C, 0xDC, 0x6C, 0x76, 0x7B, 0x6D, 0xB6, 0xDB, 0x6F, 0xF3, 0xFC, 25 | 0x06, 0x33, 0xF8, 0x78, 0x3C, 0x07, 0xC0, 0x38, 0x05, 0x81, 0xB0, 0x36, 26 | 0x0F, 0xE1, 0xFC, 0x71, 0xDF, 0x7F, 0xEF, 0x80, 0xFF, 0x3F, 0xE6, 0x19, 27 | 0x86, 0x7F, 0x1F, 0xE6, 0x1D, 0x83, 0x60, 0xFF, 0xFF, 0xF0, 0x1F, 0xBF, 28 | 0xD8, 0xF8, 0x3C, 0x06, 0x03, 0x01, 0x80, 0x61, 0xBF, 0xC7, 0xC0, 0xFE, 29 | 0x3F, 0xE6, 0x19, 0x83, 0x60, 0xD8, 0x36, 0x0D, 0x83, 0x61, 0xBF, 0xEF, 30 | 0xE0, 0xFF, 0xFF, 0xD8, 0x6D, 0xB7, 0xC3, 0xE1, 0xB0, 0xC3, 0x61, 0xFF, 31 | 0xFF, 0xE0, 0xFF, 0xFF, 0xD8, 0x6D, 0xB7, 0xC3, 0xE1, 0xB0, 0xC0, 0x60, 32 | 0x7C, 0x3E, 0x00, 0x1F, 0x9F, 0xE6, 0x1B, 0x06, 0xC0, 0x30, 0x0C, 0x7F, 33 | 0x1F, 0xE1, 0x9F, 0xE3, 0xF0, 0xF7, 0xFB, 0xD8, 0xCC, 0x66, 0x33, 0xF9, 34 | 0xFC, 0xC6, 0x63, 0x7B, 0xFD, 0xE0, 0xFF, 0xF3, 0x0C, 0x30, 0xC3, 0x0C, 35 | 0x33, 0xFF, 0xC0, 0x1F, 0xC7, 0xF0, 0x30, 0x0C, 0x03, 0x00, 0xCC, 0x33, 36 | 0x0C, 0xC7, 0x3F, 0x87, 0xC0, 0xF7, 0xBD, 0xE6, 0x61, 0xB0, 0x78, 0x1F, 37 | 0x06, 0xE1, 0x98, 0x63, 0x3C, 0xFF, 0x3C, 0xFC, 0x7E, 0x0C, 0x06, 0x03, 38 | 0x01, 0x80, 0xC6, 0x63, 0x31, 0xFF, 0xFF, 0xE0, 0xE0, 0xFE, 0x3D, 0xC7, 39 | 0x3D, 0xE7, 0xBC, 0xD7, 0x9B, 0xB3, 0x76, 0x60, 0xDE, 0x3F, 0xC7, 0x80, 40 | 0xE1, 0xFE, 0x3D, 0xE3, 0x3C, 0x66, 0xCC, 0xDD, 0x99, 0xB3, 0x1E, 0x63, 41 | 0xDE, 0x3B, 0xC3, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x7C, 0x07, 0x80, 42 | 0xF0, 0x1F, 0x07, 0x71, 0xC7, 0xF0, 0x7C, 0x00, 0xFE, 0x7F, 0x98, 0x6C, 43 | 0x36, 0x1B, 0xF9, 0xF8, 0xC0, 0x60, 0x7C, 0x3E, 0x00, 0x1F, 0x07, 0xF1, 44 | 0xC7, 0x70, 0x7C, 0x07, 0x80, 0xF0, 0x1F, 0x07, 0x71, 0xC7, 0xF0, 0x7C, 45 | 0x0C, 0x33, 0xFE, 0x7F, 0x80, 0xFC, 0x7F, 0x18, 0xCC, 0x66, 0x73, 0xF1, 46 | 0xF0, 0xCC, 0x63, 0x7D, 0xFE, 0x60, 0x3F, 0xBF, 0xF0, 0x78, 0x0F, 0x03, 47 | 0xF8, 0x3F, 0x83, 0xC3, 0xFF, 0xBF, 0x80, 0xFF, 0xFF, 0xF6, 0x7B, 0x3D, 48 | 0x98, 0xC0, 0x60, 0x30, 0x18, 0x3F, 0x1F, 0x80, 0xF1, 0xFE, 0x3D, 0x83, 49 | 0x30, 0x66, 0x0C, 0xC1, 0x98, 0x33, 0x06, 0x60, 0xC7, 0xF0, 0x7C, 0x00, 50 | 0xFB, 0xFF, 0x7D, 0xC3, 0x18, 0xC3, 0x18, 0x36, 0x06, 0xC0, 0x50, 0x0E, 51 | 0x01, 0xC0, 0x10, 0x00, 0xFB, 0xFE, 0xF6, 0x0D, 0x93, 0x6E, 0xDB, 0xB7, 52 | 0xAD, 0xEE, 0x7B, 0x8E, 0xE3, 0x18, 0xF3, 0xFC, 0xF7, 0x38, 0xFC, 0x1E, 53 | 0x03, 0x01, 0xE0, 0xCC, 0x73, 0xBC, 0xFF, 0x3C, 0xF3, 0xFC, 0xF7, 0x38, 54 | 0xCC, 0x1E, 0x07, 0x80, 0xC0, 0x30, 0x0C, 0x0F, 0xC3, 0xF0, 0xFE, 0xFE, 55 | 0xC6, 0xCC, 0x18, 0x18, 0x30, 0x63, 0xC3, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC, 56 | 0xCC, 0xCC, 0xCC, 0xFF, 0x01, 0x03, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 57 | 0x30, 0x30, 0x60, 0x60, 0xC0, 0x80, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 58 | 0xFF, 0x10, 0x71, 0xE3, 0x6C, 0x70, 0x40, 0xFF, 0xFF, 0xFC, 0x88, 0x80, 59 | 0x7E, 0x3F, 0x8F, 0xCF, 0xEE, 0x36, 0x1B, 0xFE, 0xFF, 0xE0, 0x38, 0x06, 60 | 0x01, 0xBC, 0x7F, 0x9C, 0x76, 0x0D, 0x83, 0x71, 0xFF, 0xEE, 0xF0, 0x3F, 61 | 0xBF, 0xF8, 0x78, 0x3C, 0x07, 0x05, 0xFE, 0x7E, 0x03, 0x80, 0xE0, 0x18, 62 | 0xF6, 0x7F, 0xB8, 0xEC, 0x1B, 0x06, 0xE3, 0x9F, 0xF3, 0xFC, 0x3E, 0x3F, 63 | 0xB0, 0xFF, 0xFF, 0xFE, 0x01, 0xFE, 0x7E, 0x1F, 0x3F, 0x30, 0x7E, 0x7E, 64 | 0x30, 0x30, 0x30, 0x30, 0xFE, 0xFE, 0x3F, 0xBF, 0xF9, 0xD8, 0x6C, 0x37, 65 | 0x39, 0xFC, 0x76, 0x03, 0x01, 0x8F, 0xC7, 0xC0, 0xE0, 0x70, 0x18, 0x0D, 66 | 0xC7, 0xF3, 0x99, 0x8C, 0xC6, 0x63, 0x7B, 0xFD, 0xE0, 0x18, 0x18, 0x00, 67 | 0x78, 0x78, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x60, 0x3F, 0xFC, 68 | 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0F, 0xFF, 0x80, 0xE0, 0x70, 0x18, 0x0D, 69 | 0xE6, 0xF3, 0xE1, 0xE0, 0xF8, 0x6E, 0x73, 0xF9, 0xE0, 0x78, 0x78, 0x18, 70 | 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0xFD, 0x9F, 0xF9, 0x9B, 71 | 0x33, 0x66, 0x6C, 0xCD, 0xBD, 0xFF, 0xBF, 0xEE, 0x7F, 0x98, 0xCC, 0x66, 72 | 0x33, 0x1B, 0xDF, 0xEF, 0x3E, 0x3F, 0xB8, 0xF8, 0x3C, 0x1F, 0x1D, 0xFC, 73 | 0x7C, 0xEF, 0x1F, 0xF9, 0xC3, 0xB0, 0x36, 0x06, 0xE1, 0xDF, 0xF3, 0x78, 74 | 0x60, 0x0C, 0x03, 0xE0, 0x7C, 0x00, 0x1E, 0xEF, 0xFF, 0x87, 0x60, 0x6C, 75 | 0x0D, 0xC3, 0x9F, 0xF0, 0xF6, 0x00, 0xC0, 0x18, 0x0F, 0x81, 0xF0, 0x77, 76 | 0xBF, 0xCF, 0x06, 0x03, 0x01, 0x83, 0xF9, 0xFC, 0x3F, 0xFF, 0xC3, 0xFC, 77 | 0x3F, 0xC3, 0xFF, 0xFC, 0x60, 0x60, 0x60, 0xFE, 0xFE, 0x60, 0x60, 0x60, 78 | 0x61, 0x7F, 0x3E, 0xE7, 0x73, 0x98, 0xCC, 0x66, 0x33, 0x19, 0xFE, 0x7F, 79 | 0xFB, 0xFF, 0x7C, 0xC6, 0x18, 0xC1, 0xB0, 0x36, 0x03, 0x80, 0x70, 0xF1, 80 | 0xFE, 0x3D, 0xBB, 0x37, 0x63, 0xF8, 0x77, 0x0E, 0xE1, 0x8C, 0xF7, 0xFB, 81 | 0xCD, 0x83, 0x83, 0xC3, 0xBB, 0xDF, 0xEF, 0xF3, 0xFC, 0xF6, 0x18, 0xCC, 82 | 0x33, 0x07, 0x81, 0xE0, 0x30, 0x0C, 0x06, 0x0F, 0xC3, 0xF0, 0xFF, 0xFF, 83 | 0x30, 0xC3, 0x0C, 0x7F, 0xFF, 0x37, 0x66, 0x66, 0xCC, 0x66, 0x66, 0x73, 84 | 0xFF, 0xFF, 0xFF, 0xF0, 0xCE, 0x66, 0x66, 0x33, 0x66, 0x66, 0xEC, 0x70, 85 | 0x7C, 0xF3, 0xC0, 0xC0 }; 86 | 87 | const GFXglyph FreeMonoBold9pt7bGlyphs[] PROGMEM = { 88 | { 0, 0, 0, 11, 0, 1 }, // 0x20 ' ' 89 | { 0, 3, 11, 11, 4, -10 }, // 0x21 '!' 90 | { 5, 7, 5, 11, 2, -10 }, // 0x22 '"' 91 | { 10, 8, 12, 11, 1, -10 }, // 0x23 '#' 92 | { 22, 7, 14, 11, 2, -11 }, // 0x24 '$' 93 | { 35, 7, 11, 11, 2, -10 }, // 0x25 '%' 94 | { 45, 8, 10, 11, 1, -9 }, // 0x26 '&' 95 | { 55, 3, 5, 11, 4, -10 }, // 0x27 ''' 96 | { 57, 4, 14, 11, 5, -10 }, // 0x28 '(' 97 | { 64, 4, 14, 11, 2, -10 }, // 0x29 ')' 98 | { 71, 8, 7, 11, 2, -10 }, // 0x2A '*' 99 | { 78, 8, 9, 11, 2, -8 }, // 0x2B '+' 100 | { 87, 3, 5, 11, 3, -1 }, // 0x2C ',' 101 | { 89, 9, 2, 11, 1, -5 }, // 0x2D '-' 102 | { 92, 2, 2, 11, 4, -1 }, // 0x2E '.' 103 | { 93, 7, 15, 11, 2, -12 }, // 0x2F '/' 104 | { 107, 7, 12, 11, 2, -11 }, // 0x30 '0' 105 | { 118, 7, 11, 11, 2, -10 }, // 0x31 '1' 106 | { 128, 8, 12, 11, 1, -11 }, // 0x32 '2' 107 | { 140, 8, 12, 11, 2, -11 }, // 0x33 '3' 108 | { 152, 7, 10, 11, 2, -9 }, // 0x34 '4' 109 | { 161, 9, 11, 11, 1, -10 }, // 0x35 '5' 110 | { 174, 8, 12, 11, 2, -11 }, // 0x36 '6' 111 | { 186, 8, 11, 11, 1, -10 }, // 0x37 '7' 112 | { 197, 7, 12, 11, 2, -11 }, // 0x38 '8' 113 | { 208, 8, 12, 11, 2, -11 }, // 0x39 '9' 114 | { 220, 2, 8, 11, 4, -7 }, // 0x3A ':' 115 | { 222, 3, 11, 11, 3, -7 }, // 0x3B ';' 116 | { 227, 9, 8, 11, 1, -8 }, // 0x3C '<' 117 | { 236, 9, 6, 11, 1, -7 }, // 0x3D '=' 118 | { 243, 9, 8, 11, 1, -8 }, // 0x3E '>' 119 | { 252, 8, 11, 11, 2, -10 }, // 0x3F '?' 120 | { 263, 9, 15, 11, 1, -11 }, // 0x40 '@' 121 | { 280, 11, 11, 11, 0, -10 }, // 0x41 'A' 122 | { 296, 10, 11, 11, 1, -10 }, // 0x42 'B' 123 | { 310, 9, 11, 11, 1, -10 }, // 0x43 'C' 124 | { 323, 10, 11, 11, 0, -10 }, // 0x44 'D' 125 | { 337, 9, 11, 11, 1, -10 }, // 0x45 'E' 126 | { 350, 9, 11, 11, 1, -10 }, // 0x46 'F' 127 | { 363, 10, 11, 11, 1, -10 }, // 0x47 'G' 128 | { 377, 9, 11, 11, 1, -10 }, // 0x48 'H' 129 | { 390, 6, 11, 11, 3, -10 }, // 0x49 'I' 130 | { 399, 10, 11, 11, 1, -10 }, // 0x4A 'J' 131 | { 413, 10, 11, 11, 1, -10 }, // 0x4B 'K' 132 | { 427, 9, 11, 11, 1, -10 }, // 0x4C 'L' 133 | { 440, 11, 11, 11, 0, -10 }, // 0x4D 'M' 134 | { 456, 11, 11, 11, 0, -10 }, // 0x4E 'N' 135 | { 472, 11, 11, 11, 0, -10 }, // 0x4F 'O' 136 | { 488, 9, 11, 11, 1, -10 }, // 0x50 'P' 137 | { 501, 11, 14, 11, 0, -10 }, // 0x51 'Q' 138 | { 521, 9, 11, 11, 1, -10 }, // 0x52 'R' 139 | { 534, 9, 11, 11, 1, -10 }, // 0x53 'S' 140 | { 547, 9, 11, 11, 1, -10 }, // 0x54 'T' 141 | { 560, 11, 11, 11, 0, -10 }, // 0x55 'U' 142 | { 576, 11, 11, 11, 0, -10 }, // 0x56 'V' 143 | { 592, 10, 11, 11, 0, -10 }, // 0x57 'W' 144 | { 606, 10, 11, 11, 0, -10 }, // 0x58 'X' 145 | { 620, 10, 11, 11, 0, -10 }, // 0x59 'Y' 146 | { 634, 8, 11, 11, 2, -10 }, // 0x5A 'Z' 147 | { 645, 4, 14, 11, 5, -10 }, // 0x5B '[' 148 | { 652, 7, 15, 11, 2, -12 }, // 0x5C '\' 149 | { 666, 4, 14, 11, 2, -10 }, // 0x5D ']' 150 | { 673, 7, 6, 11, 2, -11 }, // 0x5E '^' 151 | { 679, 11, 2, 11, 0, 3 }, // 0x5F '_' 152 | { 682, 3, 3, 11, 3, -11 }, // 0x60 '`' 153 | { 684, 9, 8, 11, 1, -7 }, // 0x61 'a' 154 | { 693, 10, 11, 11, 0, -10 }, // 0x62 'b' 155 | { 707, 9, 8, 11, 1, -7 }, // 0x63 'c' 156 | { 716, 10, 11, 11, 1, -10 }, // 0x64 'd' 157 | { 730, 9, 8, 11, 1, -7 }, // 0x65 'e' 158 | { 739, 8, 11, 11, 2, -10 }, // 0x66 'f' 159 | { 750, 9, 12, 11, 1, -7 }, // 0x67 'g' 160 | { 764, 9, 11, 11, 1, -10 }, // 0x68 'h' 161 | { 777, 8, 11, 11, 2, -10 }, // 0x69 'i' 162 | { 788, 6, 15, 11, 2, -10 }, // 0x6A 'j' 163 | { 800, 9, 11, 11, 1, -10 }, // 0x6B 'k' 164 | { 813, 8, 11, 11, 2, -10 }, // 0x6C 'l' 165 | { 824, 11, 8, 11, 0, -7 }, // 0x6D 'm' 166 | { 835, 9, 8, 11, 1, -7 }, // 0x6E 'n' 167 | { 844, 9, 8, 11, 1, -7 }, // 0x6F 'o' 168 | { 853, 11, 12, 11, 0, -7 }, // 0x70 'p' 169 | { 870, 11, 12, 11, 0, -7 }, // 0x71 'q' 170 | { 887, 9, 8, 11, 1, -7 }, // 0x72 'r' 171 | { 896, 8, 8, 11, 2, -7 }, // 0x73 's' 172 | { 904, 8, 11, 11, 1, -10 }, // 0x74 't' 173 | { 915, 9, 8, 11, 1, -7 }, // 0x75 'u' 174 | { 924, 11, 8, 11, 0, -7 }, // 0x76 'v' 175 | { 935, 11, 8, 11, 0, -7 }, // 0x77 'w' 176 | { 946, 9, 8, 11, 1, -7 }, // 0x78 'x' 177 | { 955, 10, 12, 11, 0, -7 }, // 0x79 'y' 178 | { 970, 7, 8, 11, 2, -7 }, // 0x7A 'z' 179 | { 977, 4, 14, 11, 3, -10 }, // 0x7B '{' 180 | { 984, 2, 14, 11, 5, -10 }, // 0x7C '|' 181 | { 988, 4, 14, 11, 4, -10 }, // 0x7D '}' 182 | { 995, 9, 4, 11, 1, -6 } }; // 0x7E '~' 183 | 184 | const GFXfont FreeMonoBold9pt7b PROGMEM = { 185 | (uint8_t *)FreeMonoBold9pt7bBitmaps, 186 | (GFXglyph *)FreeMonoBold9pt7bGlyphs, 187 | 0x20, 0x7E, 18 }; 188 | 189 | // Approx. 1672 bytes 190 | -------------------------------------------------------------------------------- /Fonts/FreeSerif9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeSerif9pt7bBitmaps[] PROGMEM = { 2 | 0xFF, 0xEA, 0x03, 0xDE, 0xF7, 0x20, 0x11, 0x09, 0x04, 0x82, 0x4F, 0xF9, 3 | 0x10, 0x89, 0xFF, 0x24, 0x12, 0x09, 0x0C, 0x80, 0x10, 0x7C, 0xD6, 0xD2, 4 | 0xD0, 0xF0, 0x38, 0x1E, 0x17, 0x93, 0x93, 0xD6, 0x7C, 0x10, 0x38, 0x43, 5 | 0x3C, 0x39, 0x21, 0x8A, 0x0C, 0x50, 0x65, 0x39, 0xCB, 0x20, 0xB9, 0x05, 6 | 0x88, 0x4C, 0x44, 0x64, 0x21, 0xC0, 0x0E, 0x00, 0xC8, 0x06, 0x40, 0x32, 7 | 0x01, 0xA0, 0x07, 0x78, 0x31, 0x87, 0x88, 0x46, 0x86, 0x34, 0x30, 0xC1, 8 | 0xC7, 0x17, 0xCF, 0x00, 0xFE, 0x08, 0x88, 0x84, 0x63, 0x18, 0xC6, 0x10, 9 | 0x82, 0x08, 0x20, 0x82, 0x08, 0x21, 0x0C, 0x63, 0x18, 0xC4, 0x22, 0x22, 10 | 0x00, 0x63, 0x9A, 0xDC, 0x72, 0xB6, 0x08, 0x08, 0x04, 0x02, 0x01, 0x0F, 11 | 0xF8, 0x40, 0x20, 0x10, 0x08, 0x00, 0xD8, 0xF0, 0xF0, 0x08, 0x84, 0x22, 12 | 0x10, 0x8C, 0x42, 0x31, 0x00, 0x1C, 0x31, 0x98, 0xD8, 0x3C, 0x1E, 0x0F, 13 | 0x07, 0x83, 0xC1, 0xE0, 0xD8, 0xC4, 0x61, 0xC0, 0x13, 0x8C, 0x63, 0x18, 14 | 0xC6, 0x31, 0x8C, 0x67, 0x80, 0x3C, 0x4E, 0x86, 0x06, 0x06, 0x04, 0x0C, 15 | 0x08, 0x10, 0x20, 0x41, 0xFE, 0x3C, 0xC6, 0x06, 0x04, 0x1C, 0x3E, 0x07, 16 | 0x03, 0x03, 0x03, 0x06, 0xF8, 0x04, 0x18, 0x71, 0x64, 0xC9, 0xA3, 0x46, 17 | 0xFE, 0x18, 0x30, 0x60, 0x0F, 0x10, 0x20, 0x3C, 0x0E, 0x07, 0x03, 0x03, 18 | 0x03, 0x02, 0x04, 0xF8, 0x07, 0x1C, 0x30, 0x60, 0x60, 0xDC, 0xE6, 0xC3, 19 | 0xC3, 0xC3, 0x43, 0x66, 0x3C, 0x7F, 0x82, 0x02, 0x02, 0x04, 0x04, 0x04, 20 | 0x08, 0x08, 0x08, 0x10, 0x10, 0x3C, 0x8F, 0x1E, 0x3E, 0x4F, 0x06, 0x36, 21 | 0xC7, 0x8F, 0x1B, 0x33, 0xC0, 0x3C, 0x66, 0xC2, 0xC3, 0xC3, 0xC3, 0xC3, 22 | 0x63, 0x3F, 0x06, 0x06, 0x0C, 0x38, 0x60, 0xF0, 0x0F, 0xD8, 0x00, 0x03, 23 | 0x28, 0x01, 0x87, 0x0E, 0x1C, 0x0C, 0x03, 0x80, 0x70, 0x0E, 0x00, 0x80, 24 | 0xFF, 0x80, 0x00, 0x00, 0x0F, 0xF8, 0x80, 0x1C, 0x01, 0xC0, 0x1C, 0x01, 25 | 0xC0, 0xE0, 0xE0, 0xE0, 0xC0, 0x00, 0x79, 0x1A, 0x18, 0x30, 0x60, 0x83, 26 | 0x04, 0x10, 0x20, 0x40, 0x03, 0x00, 0x0F, 0x83, 0x8C, 0x60, 0x26, 0x02, 27 | 0xC7, 0x9C, 0xC9, 0xD8, 0x9D, 0x99, 0xD9, 0x26, 0xEC, 0x60, 0x03, 0x04, 28 | 0x0F, 0x80, 0x02, 0x00, 0x10, 0x01, 0xC0, 0x16, 0x00, 0x98, 0x04, 0xC0, 29 | 0x43, 0x03, 0xF8, 0x20, 0x61, 0x03, 0x18, 0x1D, 0xE1, 0xF0, 0xFF, 0x86, 30 | 0x1C, 0xC1, 0x98, 0x33, 0x0C, 0x7E, 0x0C, 0x31, 0x83, 0x30, 0x66, 0x0C, 31 | 0xC3, 0x7F, 0xC0, 0x1F, 0x26, 0x1D, 0x81, 0xE0, 0x1C, 0x01, 0x80, 0x30, 32 | 0x06, 0x00, 0xC0, 0x0C, 0x00, 0xC1, 0x8F, 0xC0, 0xFF, 0x03, 0x1C, 0x30, 33 | 0x63, 0x07, 0x30, 0x33, 0x03, 0x30, 0x33, 0x03, 0x30, 0x33, 0x06, 0x30, 34 | 0xCF, 0xF0, 0xFF, 0x98, 0x26, 0x01, 0x80, 0x61, 0x1F, 0xC6, 0x11, 0x80, 35 | 0x60, 0x18, 0x16, 0x0F, 0xFE, 0xFF, 0xB0, 0x58, 0x0C, 0x06, 0x13, 0xF9, 36 | 0x84, 0xC0, 0x60, 0x30, 0x18, 0x1E, 0x00, 0x1F, 0x23, 0x0E, 0x60, 0x26, 37 | 0x00, 0xC0, 0x0C, 0x0F, 0xC0, 0x6C, 0x06, 0xC0, 0x66, 0x06, 0x30, 0x60, 38 | 0xF8, 0xF1, 0xEC, 0x19, 0x83, 0x30, 0x66, 0x0C, 0xFF, 0x98, 0x33, 0x06, 39 | 0x60, 0xCC, 0x19, 0x83, 0x78, 0xF0, 0xF6, 0x66, 0x66, 0x66, 0x66, 0x6F, 40 | 0x3C, 0x61, 0x86, 0x18, 0x61, 0x86, 0x18, 0x6D, 0xBC, 0xF3, 0xE6, 0x08, 41 | 0x61, 0x06, 0x20, 0x64, 0x07, 0x80, 0x6C, 0x06, 0x60, 0x63, 0x06, 0x18, 42 | 0x60, 0xCF, 0x3F, 0xF0, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 43 | 0x80, 0x60, 0x18, 0x16, 0x0B, 0xFE, 0xF0, 0x0E, 0x70, 0x38, 0xE0, 0x71, 44 | 0xE1, 0x62, 0xC2, 0xC5, 0xC9, 0x89, 0x93, 0x13, 0x26, 0x23, 0x8C, 0x47, 45 | 0x18, 0x84, 0x33, 0x88, 0xF0, 0xE0, 0xEE, 0x09, 0xC1, 0x2C, 0x25, 0xC4, 46 | 0x9C, 0x91, 0x92, 0x1A, 0x41, 0xC8, 0x19, 0x03, 0x70, 0x20, 0x1F, 0x06, 47 | 0x31, 0x83, 0x20, 0x2C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x68, 0x09, 48 | 0x83, 0x18, 0xC1, 0xF0, 0xFE, 0x31, 0x98, 0x6C, 0x36, 0x1B, 0x19, 0xF8, 49 | 0xC0, 0x60, 0x30, 0x18, 0x1E, 0x00, 0x1F, 0x06, 0x31, 0x83, 0x20, 0x2C, 50 | 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x68, 0x19, 0x83, 0x18, 0xC0, 0xE0, 51 | 0x0E, 0x00, 0xE0, 0x07, 0xFE, 0x0C, 0x61, 0x86, 0x30, 0xC6, 0x18, 0xC6, 52 | 0x1F, 0x83, 0x70, 0x67, 0x0C, 0x71, 0x87, 0x78, 0x70, 0x1D, 0x31, 0x98, 53 | 0x4C, 0x07, 0x80, 0xE0, 0x1C, 0x07, 0x01, 0xA0, 0xD8, 0xCB, 0xC0, 0xFF, 54 | 0xF8, 0xCE, 0x18, 0x83, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 55 | 0xC0, 0x18, 0x07, 0x80, 0xF0, 0xEC, 0x09, 0x81, 0x30, 0x26, 0x04, 0xC0, 56 | 0x98, 0x13, 0x02, 0x60, 0x4C, 0x08, 0xC2, 0x0F, 0x80, 0xF8, 0x77, 0x02, 57 | 0x30, 0x23, 0x04, 0x18, 0x41, 0x84, 0x0C, 0x80, 0xC8, 0x07, 0x00, 0x70, 58 | 0x02, 0x00, 0x20, 0xFB, 0xE7, 0xB0, 0xC0, 0x8C, 0x20, 0x86, 0x18, 0x41, 59 | 0x8C, 0x40, 0xCB, 0x20, 0x65, 0x90, 0x1A, 0x70, 0x0E, 0x38, 0x03, 0x1C, 60 | 0x01, 0x04, 0x00, 0x82, 0x00, 0xFC, 0xF9, 0x83, 0x06, 0x10, 0x19, 0x00, 61 | 0xD0, 0x03, 0x00, 0x1C, 0x01, 0x30, 0x11, 0xC1, 0x86, 0x08, 0x19, 0xE3, 62 | 0xF0, 0xF8, 0xF6, 0x06, 0x30, 0x41, 0x88, 0x1D, 0x00, 0xD0, 0x06, 0x00, 63 | 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0xF0, 0x3F, 0xCC, 0x11, 0x06, 0x01, 64 | 0x80, 0x70, 0x0C, 0x03, 0x00, 0xE0, 0x38, 0x06, 0x05, 0xC1, 0x7F, 0xE0, 65 | 0xFB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB8, 0x82, 0x10, 0x82, 0x10, 0x86, 0x10, 66 | 0x86, 0x10, 0xED, 0xB6, 0xDB, 0x6D, 0xB6, 0xF8, 0x18, 0x1C, 0x34, 0x26, 67 | 0x62, 0x42, 0xC1, 0xFF, 0x80, 0x84, 0x20, 0x79, 0x98, 0x30, 0xE6, 0xD9, 68 | 0xB3, 0x3F, 0x20, 0x70, 0x18, 0x0C, 0x06, 0x03, 0x71, 0xCC, 0xC3, 0x61, 69 | 0xB0, 0xD8, 0x6C, 0x63, 0xE0, 0x3C, 0xCF, 0x06, 0x0C, 0x18, 0x18, 0x9E, 70 | 0x01, 0x03, 0x80, 0xC0, 0x60, 0x31, 0xD9, 0x9D, 0x86, 0xC3, 0x61, 0xB0, 71 | 0xCC, 0x63, 0xF0, 0x3C, 0x46, 0xFE, 0xC0, 0xC0, 0xE1, 0x62, 0x3C, 0x1E, 72 | 0x41, 0x83, 0x06, 0x1E, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x0F, 0x00, 0x3C, 73 | 0x19, 0xF6, 0x31, 0x8C, 0x1E, 0x08, 0x04, 0x01, 0xFC, 0x40, 0xB0, 0x2E, 74 | 0x11, 0xF8, 0x20, 0x70, 0x18, 0x0C, 0x06, 0x03, 0x71, 0xCC, 0xC6, 0x63, 75 | 0x31, 0x98, 0xCC, 0x6F, 0x78, 0x60, 0x02, 0xE6, 0x66, 0x66, 0xF0, 0x18, 76 | 0x00, 0x33, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8B, 0x80, 0x20, 0x70, 0x18, 77 | 0x0C, 0x06, 0x03, 0x3D, 0x88, 0xD8, 0x78, 0x36, 0x19, 0x8C, 0x6F, 0x78, 78 | 0x2E, 0x66, 0x66, 0x66, 0x66, 0x66, 0xF0, 0xEE, 0x71, 0xCE, 0x66, 0x31, 79 | 0x98, 0xC6, 0x63, 0x19, 0x8C, 0x66, 0x31, 0xBD, 0xEF, 0xEE, 0x39, 0x98, 80 | 0xCC, 0x66, 0x33, 0x19, 0x8D, 0xEF, 0x3E, 0x31, 0xB0, 0x78, 0x3C, 0x1E, 81 | 0x0D, 0x8C, 0x7C, 0xEE, 0x39, 0x98, 0x6C, 0x36, 0x1B, 0x0D, 0x8C, 0xFC, 82 | 0x60, 0x30, 0x18, 0x1E, 0x00, 0x3D, 0x31, 0xB0, 0xD8, 0x6C, 0x36, 0x1B, 83 | 0x8C, 0xFE, 0x03, 0x01, 0x80, 0xC0, 0xF0, 0x6D, 0xC6, 0x18, 0x61, 0x86, 84 | 0x3C, 0x76, 0x38, 0x58, 0x3E, 0x38, 0xFE, 0x27, 0x98, 0xC6, 0x31, 0x8C, 85 | 0x38, 0xE7, 0x31, 0x98, 0xCC, 0x66, 0x33, 0x19, 0x8C, 0x7F, 0xF3, 0x61, 86 | 0x22, 0x32, 0x14, 0x1C, 0x08, 0x08, 0xEF, 0x36, 0x61, 0x62, 0x22, 0x32, 87 | 0x35, 0x41, 0x9C, 0x18, 0x81, 0x08, 0xF7, 0x12, 0x0E, 0x03, 0x01, 0xC1, 88 | 0x21, 0x09, 0xCF, 0xF3, 0x61, 0x62, 0x32, 0x34, 0x14, 0x1C, 0x08, 0x08, 89 | 0x08, 0x10, 0xE0, 0xFD, 0x18, 0x60, 0x83, 0x0C, 0x70, 0xFE, 0x19, 0x8C, 90 | 0x63, 0x18, 0xC4, 0x61, 0x8C, 0x63, 0x18, 0xC3, 0xFF, 0xF0, 0xC3, 0x18, 91 | 0xC6, 0x31, 0x84, 0x33, 0x18, 0xC6, 0x31, 0x98, 0x70, 0x24, 0xC1, 0xC0 }; 92 | 93 | const GFXglyph FreeSerif9pt7bGlyphs[] PROGMEM = { 94 | { 0, 0, 0, 5, 0, 1 }, // 0x20 ' ' 95 | { 0, 2, 12, 6, 2, -11 }, // 0x21 '!' 96 | { 3, 5, 4, 7, 1, -11 }, // 0x22 '"' 97 | { 6, 9, 12, 9, 0, -11 }, // 0x23 '#' 98 | { 20, 8, 14, 9, 1, -12 }, // 0x24 '$' 99 | { 34, 13, 12, 15, 1, -11 }, // 0x25 '%' 100 | { 54, 13, 13, 14, 1, -12 }, // 0x26 '&' 101 | { 76, 2, 4, 4, 1, -11 }, // 0x27 ''' 102 | { 77, 5, 15, 6, 1, -11 }, // 0x28 '(' 103 | { 87, 5, 15, 6, 0, -11 }, // 0x29 ')' 104 | { 97, 6, 8, 9, 3, -11 }, // 0x2A '*' 105 | { 103, 9, 9, 10, 0, -8 }, // 0x2B '+' 106 | { 114, 2, 3, 4, 2, 0 }, // 0x2C ',' 107 | { 115, 4, 1, 6, 1, -3 }, // 0x2D '-' 108 | { 116, 2, 2, 5, 1, -1 }, // 0x2E '.' 109 | { 117, 5, 12, 5, 0, -11 }, // 0x2F '/' 110 | { 125, 9, 13, 9, 0, -12 }, // 0x30 '0' 111 | { 140, 5, 13, 9, 2, -12 }, // 0x31 '1' 112 | { 149, 8, 12, 9, 1, -11 }, // 0x32 '2' 113 | { 161, 8, 12, 9, 0, -11 }, // 0x33 '3' 114 | { 173, 7, 12, 9, 1, -11 }, // 0x34 '4' 115 | { 184, 8, 12, 9, 0, -11 }, // 0x35 '5' 116 | { 196, 8, 13, 9, 1, -12 }, // 0x36 '6' 117 | { 209, 8, 12, 9, 0, -11 }, // 0x37 '7' 118 | { 221, 7, 13, 9, 1, -12 }, // 0x38 '8' 119 | { 233, 8, 14, 9, 1, -12 }, // 0x39 '9' 120 | { 247, 2, 8, 5, 1, -7 }, // 0x3A ':' 121 | { 249, 3, 10, 5, 1, -7 }, // 0x3B ';' 122 | { 253, 9, 9, 10, 1, -8 }, // 0x3C '<' 123 | { 264, 9, 5, 10, 1, -6 }, // 0x3D '=' 124 | { 270, 10, 9, 10, 0, -8 }, // 0x3E '>' 125 | { 282, 7, 13, 8, 1, -12 }, // 0x3F '?' 126 | { 294, 12, 13, 16, 2, -12 }, // 0x40 '@' 127 | { 314, 13, 12, 13, 0, -11 }, // 0x41 'A' 128 | { 334, 11, 12, 11, 0, -11 }, // 0x42 'B' 129 | { 351, 11, 12, 12, 1, -11 }, // 0x43 'C' 130 | { 368, 12, 12, 13, 0, -11 }, // 0x44 'D' 131 | { 386, 10, 12, 11, 1, -11 }, // 0x45 'E' 132 | { 401, 9, 12, 10, 1, -11 }, // 0x46 'F' 133 | { 415, 12, 12, 13, 1, -11 }, // 0x47 'G' 134 | { 433, 11, 12, 13, 1, -11 }, // 0x48 'H' 135 | { 450, 4, 12, 6, 1, -11 }, // 0x49 'I' 136 | { 456, 6, 12, 7, 0, -11 }, // 0x4A 'J' 137 | { 465, 12, 12, 13, 1, -11 }, // 0x4B 'K' 138 | { 483, 10, 12, 11, 1, -11 }, // 0x4C 'L' 139 | { 498, 15, 12, 16, 0, -11 }, // 0x4D 'M' 140 | { 521, 11, 12, 13, 1, -11 }, // 0x4E 'N' 141 | { 538, 11, 13, 13, 1, -12 }, // 0x4F 'O' 142 | { 556, 9, 12, 10, 1, -11 }, // 0x50 'P' 143 | { 570, 11, 16, 13, 1, -12 }, // 0x51 'Q' 144 | { 592, 11, 12, 12, 1, -11 }, // 0x52 'R' 145 | { 609, 9, 12, 10, 0, -11 }, // 0x53 'S' 146 | { 623, 11, 12, 11, 0, -11 }, // 0x54 'T' 147 | { 640, 11, 12, 13, 1, -11 }, // 0x55 'U' 148 | { 657, 12, 12, 13, 0, -11 }, // 0x56 'V' 149 | { 675, 17, 12, 17, 0, -11 }, // 0x57 'W' 150 | { 701, 13, 12, 13, 0, -11 }, // 0x58 'X' 151 | { 721, 12, 12, 13, 0, -11 }, // 0x59 'Y' 152 | { 739, 11, 12, 11, 0, -11 }, // 0x5A 'Z' 153 | { 756, 3, 15, 6, 2, -11 }, // 0x5B '[' 154 | { 762, 5, 12, 5, 0, -11 }, // 0x5C '\' 155 | { 770, 3, 15, 6, 1, -11 }, // 0x5D ']' 156 | { 776, 8, 7, 8, 0, -11 }, // 0x5E '^' 157 | { 783, 9, 1, 9, 0, 2 }, // 0x5F '_' 158 | { 785, 4, 3, 5, 0, -11 }, // 0x60 '`' 159 | { 787, 7, 8, 8, 1, -7 }, // 0x61 'a' 160 | { 794, 9, 13, 9, 0, -12 }, // 0x62 'b' 161 | { 809, 7, 8, 8, 0, -7 }, // 0x63 'c' 162 | { 816, 9, 13, 9, 0, -12 }, // 0x64 'd' 163 | { 831, 8, 8, 8, 0, -7 }, // 0x65 'e' 164 | { 839, 7, 13, 7, 1, -12 }, // 0x66 'f' 165 | { 851, 10, 12, 8, 0, -7 }, // 0x67 'g' 166 | { 866, 9, 13, 9, 0, -12 }, // 0x68 'h' 167 | { 881, 4, 11, 5, 1, -10 }, // 0x69 'i' 168 | { 887, 5, 15, 6, 0, -10 }, // 0x6A 'j' 169 | { 897, 9, 13, 9, 1, -12 }, // 0x6B 'k' 170 | { 912, 4, 13, 5, 1, -12 }, // 0x6C 'l' 171 | { 919, 14, 8, 14, 0, -7 }, // 0x6D 'm' 172 | { 933, 9, 8, 9, 0, -7 }, // 0x6E 'n' 173 | { 942, 9, 8, 9, 0, -7 }, // 0x6F 'o' 174 | { 951, 9, 12, 9, 0, -7 }, // 0x70 'p' 175 | { 965, 9, 12, 9, 0, -7 }, // 0x71 'q' 176 | { 979, 6, 8, 6, 0, -7 }, // 0x72 'r' 177 | { 985, 6, 8, 7, 1, -7 }, // 0x73 's' 178 | { 991, 5, 9, 5, 0, -8 }, // 0x74 't' 179 | { 997, 9, 8, 9, 0, -7 }, // 0x75 'u' 180 | { 1006, 8, 8, 8, 0, -7 }, // 0x76 'v' 181 | { 1014, 12, 8, 12, 0, -7 }, // 0x77 'w' 182 | { 1026, 9, 8, 9, 0, -7 }, // 0x78 'x' 183 | { 1035, 8, 12, 8, 0, -7 }, // 0x79 'y' 184 | { 1047, 7, 8, 7, 1, -7 }, // 0x7A 'z' 185 | { 1054, 5, 16, 9, 1, -12 }, // 0x7B '{' 186 | { 1064, 1, 12, 4, 1, -11 }, // 0x7C '|' 187 | { 1066, 5, 16, 9, 3, -11 }, // 0x7D '}' 188 | { 1076, 9, 3, 9, 0, -5 } }; // 0x7E '~' 189 | 190 | const GFXfont FreeSerif9pt7b PROGMEM = { 191 | (uint8_t *)FreeSerif9pt7bBitmaps, 192 | (GFXglyph *)FreeSerif9pt7bGlyphs, 193 | 0x20, 0x7E, 22 }; 194 | 195 | // Approx. 1752 bytes 196 | -------------------------------------------------------------------------------- /Fonts/FreeSans9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeSans9pt7bBitmaps[] PROGMEM = { 2 | 0xFF, 0xFF, 0xF8, 0xC0, 0xDE, 0xF7, 0x20, 0x09, 0x86, 0x41, 0x91, 0xFF, 3 | 0x13, 0x04, 0xC3, 0x20, 0xC8, 0xFF, 0x89, 0x82, 0x61, 0x90, 0x10, 0x1F, 4 | 0x14, 0xDA, 0x3D, 0x1E, 0x83, 0x40, 0x78, 0x17, 0x08, 0xF4, 0x7A, 0x35, 5 | 0x33, 0xF0, 0x40, 0x20, 0x38, 0x10, 0xEC, 0x20, 0xC6, 0x20, 0xC6, 0x40, 6 | 0xC6, 0x40, 0x6C, 0x80, 0x39, 0x00, 0x01, 0x3C, 0x02, 0x77, 0x02, 0x63, 7 | 0x04, 0x63, 0x04, 0x77, 0x08, 0x3C, 0x0E, 0x06, 0x60, 0xCC, 0x19, 0x81, 8 | 0xE0, 0x18, 0x0F, 0x03, 0x36, 0xC2, 0xD8, 0x73, 0x06, 0x31, 0xE3, 0xC4, 9 | 0xFE, 0x13, 0x26, 0x6C, 0xCC, 0xCC, 0xC4, 0x66, 0x23, 0x10, 0x8C, 0x46, 10 | 0x63, 0x33, 0x33, 0x32, 0x66, 0x4C, 0x80, 0x25, 0x7E, 0xA5, 0x00, 0x30, 11 | 0xC3, 0x3F, 0x30, 0xC3, 0x0C, 0xD6, 0xF0, 0xC0, 0x08, 0x44, 0x21, 0x10, 12 | 0x84, 0x42, 0x11, 0x08, 0x00, 0x3C, 0x66, 0x42, 0xC3, 0xC3, 0xC3, 0xC3, 13 | 0xC3, 0xC3, 0xC3, 0x42, 0x66, 0x3C, 0x11, 0x3F, 0x33, 0x33, 0x33, 0x33, 14 | 0x30, 0x3E, 0x31, 0xB0, 0x78, 0x30, 0x18, 0x1C, 0x1C, 0x1C, 0x18, 0x18, 15 | 0x10, 0x08, 0x07, 0xF8, 0x3C, 0x66, 0xC3, 0xC3, 0x03, 0x06, 0x1C, 0x07, 16 | 0x03, 0xC3, 0xC3, 0x66, 0x3C, 0x0C, 0x18, 0x71, 0x62, 0xC9, 0xA3, 0x46, 17 | 0xFE, 0x18, 0x30, 0x60, 0xC0, 0x7F, 0x20, 0x10, 0x08, 0x08, 0x07, 0xF3, 18 | 0x8C, 0x03, 0x01, 0x80, 0xF0, 0x6C, 0x63, 0xE0, 0x1E, 0x31, 0x98, 0x78, 19 | 0x0C, 0x06, 0xF3, 0x8D, 0x83, 0xC1, 0xE0, 0xD0, 0x6C, 0x63, 0xE0, 0xFF, 20 | 0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x18, 0x18, 0x18, 0x10, 0x30, 0x30, 21 | 0x3E, 0x31, 0xB0, 0x78, 0x3C, 0x1B, 0x18, 0xF8, 0xC6, 0xC1, 0xE0, 0xF0, 22 | 0x6C, 0x63, 0xE0, 0x3C, 0x66, 0xC2, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x03, 23 | 0x03, 0xC2, 0x66, 0x3C, 0xC0, 0x00, 0x30, 0xC0, 0x00, 0x00, 0x64, 0xA0, 24 | 0x00, 0x81, 0xC7, 0x8E, 0x0C, 0x07, 0x80, 0x70, 0x0E, 0x01, 0x80, 0xFF, 25 | 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x70, 0x0E, 0x01, 0xC0, 0x18, 0x38, 0x71, 26 | 0xC0, 0x80, 0x00, 0x3E, 0x31, 0xB0, 0x78, 0x30, 0x18, 0x18, 0x38, 0x18, 27 | 0x18, 0x0C, 0x00, 0x00, 0x01, 0x80, 0x03, 0xF0, 0x06, 0x0E, 0x06, 0x01, 28 | 0x86, 0x00, 0x66, 0x1D, 0xBB, 0x31, 0xCF, 0x18, 0xC7, 0x98, 0x63, 0xCC, 29 | 0x31, 0xE6, 0x11, 0xB3, 0x99, 0xCC, 0xF7, 0x86, 0x00, 0x01, 0x80, 0x00, 30 | 0x70, 0x40, 0x0F, 0xE0, 0x06, 0x00, 0xF0, 0x0F, 0x00, 0x90, 0x19, 0x81, 31 | 0x98, 0x10, 0x83, 0x0C, 0x3F, 0xC2, 0x04, 0x60, 0x66, 0x06, 0xC0, 0x30, 32 | 0xFF, 0x18, 0x33, 0x03, 0x60, 0x6C, 0x0D, 0x83, 0x3F, 0xC6, 0x06, 0xC0, 33 | 0x78, 0x0F, 0x01, 0xE0, 0x6F, 0xF8, 0x1F, 0x86, 0x19, 0x81, 0xA0, 0x3C, 34 | 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x68, 0x0D, 0x83, 0x18, 0x61, 0xF0, 35 | 0xFF, 0x18, 0x33, 0x03, 0x60, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 36 | 0x78, 0x0F, 0x03, 0x60, 0xCF, 0xF0, 0xFF, 0xE0, 0x30, 0x18, 0x0C, 0x06, 37 | 0x03, 0xFD, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0F, 0xF8, 0xFF, 0xC0, 0xC0, 38 | 0xC0, 0xC0, 0xC0, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x0F, 0x83, 39 | 0x0E, 0x60, 0x66, 0x03, 0xC0, 0x0C, 0x00, 0xC1, 0xFC, 0x03, 0xC0, 0x36, 40 | 0x03, 0x60, 0x73, 0x0F, 0x0F, 0x10, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 41 | 0x07, 0x80, 0xFF, 0xFE, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x06, 42 | 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x07, 43 | 0x8F, 0x1E, 0x27, 0x80, 0xC0, 0xD8, 0x33, 0x0C, 0x63, 0x0C, 0xC1, 0xB8, 44 | 0x3F, 0x07, 0x30, 0xC3, 0x18, 0x63, 0x06, 0x60, 0x6C, 0x0C, 0xC0, 0xC0, 45 | 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0xE0, 46 | 0x3F, 0x01, 0xFC, 0x1F, 0xE0, 0xFD, 0x05, 0xEC, 0x6F, 0x63, 0x79, 0x13, 47 | 0xCD, 0x9E, 0x6C, 0xF1, 0x47, 0x8E, 0x3C, 0x71, 0x80, 0xE0, 0x7C, 0x0F, 48 | 0xC1, 0xE8, 0x3D, 0x87, 0x98, 0xF1, 0x1E, 0x33, 0xC3, 0x78, 0x6F, 0x07, 49 | 0xE0, 0x7C, 0x0E, 0x0F, 0x81, 0x83, 0x18, 0x0C, 0xC0, 0x6C, 0x01, 0xE0, 50 | 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1B, 0x01, 0x98, 0x0C, 0x60, 0xC0, 0xF8, 51 | 0x00, 0xFF, 0x30, 0x6C, 0x0F, 0x03, 0xC0, 0xF0, 0x6F, 0xF3, 0x00, 0xC0, 52 | 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x00, 0x0F, 0x81, 0x83, 0x18, 0x0C, 0xC0, 53 | 0x6C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1B, 0x01, 0x98, 0x6C, 54 | 0x60, 0xC0, 0xFB, 0x00, 0x08, 0xFF, 0x8C, 0x0E, 0xC0, 0x6C, 0x06, 0xC0, 55 | 0x6C, 0x0C, 0xFF, 0x8C, 0x0E, 0xC0, 0x6C, 0x06, 0xC0, 0x6C, 0x06, 0xC0, 56 | 0x70, 0x3F, 0x18, 0x6C, 0x0F, 0x03, 0xC0, 0x1E, 0x01, 0xF0, 0x0E, 0x00, 57 | 0xF0, 0x3C, 0x0D, 0x86, 0x3F, 0x00, 0xFF, 0x86, 0x03, 0x01, 0x80, 0xC0, 58 | 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0xC0, 0x78, 0x0F, 59 | 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 60 | 0xB0, 0x61, 0xF0, 0xC0, 0x6C, 0x0D, 0x81, 0x10, 0x63, 0x0C, 0x61, 0x04, 61 | 0x60, 0xCC, 0x19, 0x01, 0x60, 0x3C, 0x07, 0x00, 0x60, 0xC1, 0x81, 0x30, 62 | 0xE1, 0x98, 0x70, 0xCC, 0x28, 0x66, 0x26, 0x21, 0x13, 0x30, 0xC8, 0x98, 63 | 0x6C, 0x4C, 0x14, 0x34, 0x0A, 0x1A, 0x07, 0x07, 0x03, 0x03, 0x80, 0x81, 64 | 0x80, 0x60, 0x63, 0x0C, 0x30, 0xC1, 0x98, 0x0F, 0x00, 0xE0, 0x06, 0x00, 65 | 0xF0, 0x19, 0x01, 0x98, 0x30, 0xC6, 0x0E, 0x60, 0x60, 0xC0, 0x36, 0x06, 66 | 0x30, 0xC3, 0x0C, 0x19, 0x81, 0xD8, 0x0F, 0x00, 0x60, 0x06, 0x00, 0x60, 67 | 0x06, 0x00, 0x60, 0x06, 0x00, 0xFF, 0xC0, 0x60, 0x30, 0x0C, 0x06, 0x03, 68 | 0x01, 0xC0, 0x60, 0x30, 0x18, 0x06, 0x03, 0x00, 0xFF, 0xC0, 0xFB, 0x6D, 69 | 0xB6, 0xDB, 0x6D, 0xB6, 0xE0, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 70 | 0x10, 0x80, 0xED, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0xE0, 0x30, 0x60, 0xA2, 71 | 0x44, 0xD8, 0xA1, 0x80, 0xFF, 0xC0, 0xC6, 0x30, 0x7E, 0x71, 0xB0, 0xC0, 72 | 0x60, 0xF3, 0xDB, 0x0D, 0x86, 0xC7, 0x3D, 0xC0, 0xC0, 0x60, 0x30, 0x1B, 73 | 0xCE, 0x36, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x7C, 0x6D, 0xE0, 0x3C, 74 | 0x66, 0xC3, 0xC0, 0xC0, 0xC0, 0xC0, 0xC3, 0x66, 0x3C, 0x03, 0x03, 0x03, 75 | 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x3C, 0x66, 76 | 0xC3, 0xC3, 0xFF, 0xC0, 0xC0, 0xC3, 0x66, 0x3C, 0x36, 0x6F, 0x66, 0x66, 77 | 0x66, 0x66, 0x60, 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x67, 78 | 0x3B, 0x03, 0x03, 0xC6, 0x7C, 0xC0, 0xC0, 0xC0, 0xDE, 0xE3, 0xC3, 0xC3, 79 | 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF, 0xC0, 0x30, 0x03, 80 | 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0xE0, 0xC0, 0x60, 0x30, 0x18, 0x4C, 81 | 0x46, 0x63, 0x61, 0xF0, 0xEC, 0x62, 0x31, 0x98, 0x6C, 0x30, 0xFF, 0xFF, 82 | 0xFF, 0xC0, 0xDE, 0xF7, 0x1C, 0xF0, 0xC7, 0x86, 0x3C, 0x31, 0xE1, 0x8F, 83 | 0x0C, 0x78, 0x63, 0xC3, 0x1E, 0x18, 0xC0, 0xDE, 0xE3, 0xC3, 0xC3, 0xC3, 84 | 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x3C, 0x66, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 85 | 0xC3, 0x66, 0x3C, 0xDE, 0x71, 0xB0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 86 | 0xE3, 0x6F, 0x30, 0x18, 0x0C, 0x00, 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 87 | 0xC3, 0xC3, 0x67, 0x3B, 0x03, 0x03, 0x03, 0xDF, 0x31, 0x8C, 0x63, 0x18, 88 | 0xC6, 0x00, 0x3E, 0xE3, 0xC0, 0xC0, 0xE0, 0x3C, 0x07, 0xC3, 0xE3, 0x7E, 89 | 0x66, 0xF6, 0x66, 0x66, 0x66, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 90 | 0xC3, 0xC3, 0xC7, 0x7B, 0xC1, 0xA0, 0x98, 0xCC, 0x42, 0x21, 0xB0, 0xD0, 91 | 0x28, 0x1C, 0x0C, 0x00, 0xC6, 0x1E, 0x38, 0x91, 0xC4, 0xCA, 0x66, 0xD3, 92 | 0x16, 0xD0, 0xA6, 0x87, 0x1C, 0x38, 0xC0, 0xC6, 0x00, 0x43, 0x62, 0x36, 93 | 0x1C, 0x18, 0x1C, 0x3C, 0x26, 0x62, 0x43, 0xC1, 0x21, 0x98, 0xCC, 0x42, 94 | 0x61, 0xB0, 0xD0, 0x38, 0x1C, 0x0C, 0x06, 0x03, 0x01, 0x03, 0x00, 0xFE, 95 | 0x0C, 0x30, 0xC1, 0x86, 0x18, 0x20, 0xC1, 0xFC, 0x36, 0x66, 0x66, 0x6E, 96 | 0xCE, 0x66, 0x66, 0x66, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xC6, 0x66, 97 | 0x66, 0x67, 0x37, 0x66, 0x66, 0x66, 0xC0, 0x61, 0x24, 0x38 }; 98 | 99 | const GFXglyph FreeSans9pt7bGlyphs[] PROGMEM = { 100 | { 0, 0, 0, 5, 0, 1 }, // 0x20 ' ' 101 | { 0, 2, 13, 6, 2, -12 }, // 0x21 '!' 102 | { 4, 5, 4, 6, 1, -12 }, // 0x22 '"' 103 | { 7, 10, 12, 10, 0, -11 }, // 0x23 '#' 104 | { 22, 9, 16, 10, 1, -13 }, // 0x24 '$' 105 | { 40, 16, 13, 16, 1, -12 }, // 0x25 '%' 106 | { 66, 11, 13, 12, 1, -12 }, // 0x26 '&' 107 | { 84, 2, 4, 4, 1, -12 }, // 0x27 ''' 108 | { 85, 4, 17, 6, 1, -12 }, // 0x28 '(' 109 | { 94, 4, 17, 6, 1, -12 }, // 0x29 ')' 110 | { 103, 5, 5, 7, 1, -12 }, // 0x2A '*' 111 | { 107, 6, 8, 11, 3, -7 }, // 0x2B '+' 112 | { 113, 2, 4, 5, 2, 0 }, // 0x2C ',' 113 | { 114, 4, 1, 6, 1, -4 }, // 0x2D '-' 114 | { 115, 2, 1, 5, 1, 0 }, // 0x2E '.' 115 | { 116, 5, 13, 5, 0, -12 }, // 0x2F '/' 116 | { 125, 8, 13, 10, 1, -12 }, // 0x30 '0' 117 | { 138, 4, 13, 10, 3, -12 }, // 0x31 '1' 118 | { 145, 9, 13, 10, 1, -12 }, // 0x32 '2' 119 | { 160, 8, 13, 10, 1, -12 }, // 0x33 '3' 120 | { 173, 7, 13, 10, 2, -12 }, // 0x34 '4' 121 | { 185, 9, 13, 10, 1, -12 }, // 0x35 '5' 122 | { 200, 9, 13, 10, 1, -12 }, // 0x36 '6' 123 | { 215, 8, 13, 10, 0, -12 }, // 0x37 '7' 124 | { 228, 9, 13, 10, 1, -12 }, // 0x38 '8' 125 | { 243, 8, 13, 10, 1, -12 }, // 0x39 '9' 126 | { 256, 2, 10, 5, 1, -9 }, // 0x3A ':' 127 | { 259, 3, 12, 5, 1, -8 }, // 0x3B ';' 128 | { 264, 9, 9, 11, 1, -8 }, // 0x3C '<' 129 | { 275, 9, 4, 11, 1, -5 }, // 0x3D '=' 130 | { 280, 9, 9, 11, 1, -8 }, // 0x3E '>' 131 | { 291, 9, 13, 10, 1, -12 }, // 0x3F '?' 132 | { 306, 17, 16, 18, 1, -12 }, // 0x40 '@' 133 | { 340, 12, 13, 12, 0, -12 }, // 0x41 'A' 134 | { 360, 11, 13, 12, 1, -12 }, // 0x42 'B' 135 | { 378, 11, 13, 13, 1, -12 }, // 0x43 'C' 136 | { 396, 11, 13, 13, 1, -12 }, // 0x44 'D' 137 | { 414, 9, 13, 11, 1, -12 }, // 0x45 'E' 138 | { 429, 8, 13, 11, 1, -12 }, // 0x46 'F' 139 | { 442, 12, 13, 14, 1, -12 }, // 0x47 'G' 140 | { 462, 11, 13, 13, 1, -12 }, // 0x48 'H' 141 | { 480, 2, 13, 5, 2, -12 }, // 0x49 'I' 142 | { 484, 7, 13, 10, 1, -12 }, // 0x4A 'J' 143 | { 496, 11, 13, 12, 1, -12 }, // 0x4B 'K' 144 | { 514, 8, 13, 10, 1, -12 }, // 0x4C 'L' 145 | { 527, 13, 13, 15, 1, -12 }, // 0x4D 'M' 146 | { 549, 11, 13, 13, 1, -12 }, // 0x4E 'N' 147 | { 567, 13, 13, 14, 1, -12 }, // 0x4F 'O' 148 | { 589, 10, 13, 12, 1, -12 }, // 0x50 'P' 149 | { 606, 13, 14, 14, 1, -12 }, // 0x51 'Q' 150 | { 629, 12, 13, 13, 1, -12 }, // 0x52 'R' 151 | { 649, 10, 13, 12, 1, -12 }, // 0x53 'S' 152 | { 666, 9, 13, 11, 1, -12 }, // 0x54 'T' 153 | { 681, 11, 13, 13, 1, -12 }, // 0x55 'U' 154 | { 699, 11, 13, 12, 0, -12 }, // 0x56 'V' 155 | { 717, 17, 13, 17, 0, -12 }, // 0x57 'W' 156 | { 745, 12, 13, 12, 0, -12 }, // 0x58 'X' 157 | { 765, 12, 13, 12, 0, -12 }, // 0x59 'Y' 158 | { 785, 10, 13, 11, 1, -12 }, // 0x5A 'Z' 159 | { 802, 3, 17, 5, 1, -12 }, // 0x5B '[' 160 | { 809, 5, 13, 5, 0, -12 }, // 0x5C '\' 161 | { 818, 3, 17, 5, 0, -12 }, // 0x5D ']' 162 | { 825, 7, 7, 8, 1, -12 }, // 0x5E '^' 163 | { 832, 10, 1, 10, 0, 3 }, // 0x5F '_' 164 | { 834, 4, 3, 5, 0, -12 }, // 0x60 '`' 165 | { 836, 9, 10, 10, 1, -9 }, // 0x61 'a' 166 | { 848, 9, 13, 10, 1, -12 }, // 0x62 'b' 167 | { 863, 8, 10, 9, 1, -9 }, // 0x63 'c' 168 | { 873, 8, 13, 10, 1, -12 }, // 0x64 'd' 169 | { 886, 8, 10, 10, 1, -9 }, // 0x65 'e' 170 | { 896, 4, 13, 5, 1, -12 }, // 0x66 'f' 171 | { 903, 8, 14, 10, 1, -9 }, // 0x67 'g' 172 | { 917, 8, 13, 10, 1, -12 }, // 0x68 'h' 173 | { 930, 2, 13, 4, 1, -12 }, // 0x69 'i' 174 | { 934, 4, 17, 4, 0, -12 }, // 0x6A 'j' 175 | { 943, 9, 13, 9, 1, -12 }, // 0x6B 'k' 176 | { 958, 2, 13, 4, 1, -12 }, // 0x6C 'l' 177 | { 962, 13, 10, 15, 1, -9 }, // 0x6D 'm' 178 | { 979, 8, 10, 10, 1, -9 }, // 0x6E 'n' 179 | { 989, 8, 10, 10, 1, -9 }, // 0x6F 'o' 180 | { 999, 9, 13, 10, 1, -9 }, // 0x70 'p' 181 | { 1014, 8, 13, 10, 1, -9 }, // 0x71 'q' 182 | { 1027, 5, 10, 6, 1, -9 }, // 0x72 'r' 183 | { 1034, 8, 10, 9, 1, -9 }, // 0x73 's' 184 | { 1044, 4, 12, 5, 1, -11 }, // 0x74 't' 185 | { 1050, 8, 10, 10, 1, -9 }, // 0x75 'u' 186 | { 1060, 9, 10, 9, 0, -9 }, // 0x76 'v' 187 | { 1072, 13, 10, 13, 0, -9 }, // 0x77 'w' 188 | { 1089, 8, 10, 9, 0, -9 }, // 0x78 'x' 189 | { 1099, 9, 14, 9, 0, -9 }, // 0x79 'y' 190 | { 1115, 7, 10, 9, 1, -9 }, // 0x7A 'z' 191 | { 1124, 4, 17, 6, 1, -12 }, // 0x7B '{' 192 | { 1133, 2, 17, 4, 2, -12 }, // 0x7C '|' 193 | { 1138, 4, 17, 6, 1, -12 }, // 0x7D '}' 194 | { 1147, 7, 3, 9, 1, -7 } }; // 0x7E '~' 195 | 196 | const GFXfont FreeSans9pt7b PROGMEM = { 197 | (uint8_t *)FreeSans9pt7bBitmaps, 198 | (GFXglyph *)FreeSans9pt7bGlyphs, 199 | 0x20, 0x7E, 22 }; 200 | 201 | // Approx. 1822 bytes 202 | -------------------------------------------------------------------------------- /Fonts/FreeSerifBold9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeSerifBold9pt7bBitmaps[] PROGMEM = { 2 | 0xFF, 0xF4, 0x92, 0x1F, 0xF0, 0xCF, 0x3C, 0xE3, 0x88, 0x13, 0x09, 0x84, 3 | 0xC2, 0x47, 0xF9, 0x90, 0xC8, 0x4C, 0xFF, 0x13, 0x09, 0x0C, 0x86, 0x40, 4 | 0x10, 0x38, 0xD6, 0x92, 0xD2, 0xF0, 0x7C, 0x3E, 0x17, 0x93, 0x93, 0xD6, 5 | 0x7C, 0x10, 0x3C, 0x21, 0xCF, 0x0E, 0x24, 0x30, 0xA0, 0xC5, 0x03, 0x34, 6 | 0xE7, 0x26, 0x40, 0xB9, 0x04, 0xC4, 0x23, 0x30, 0x8C, 0x84, 0x1C, 0x0F, 7 | 0x00, 0xCC, 0x06, 0x60, 0x3E, 0x00, 0xE7, 0x8F, 0x18, 0x9C, 0x8C, 0xE4, 8 | 0xE3, 0xC7, 0x9E, 0x3C, 0x72, 0xFD, 0xE0, 0xFF, 0x80, 0x32, 0x44, 0xCC, 9 | 0xCC, 0xCC, 0xC4, 0x62, 0x10, 0x84, 0x22, 0x33, 0x33, 0x33, 0x32, 0x64, 10 | 0x80, 0x31, 0x6B, 0xB1, 0x8E, 0xD6, 0x8C, 0x00, 0x08, 0x04, 0x02, 0x01, 11 | 0x0F, 0xF8, 0x40, 0x20, 0x10, 0x08, 0x00, 0xDF, 0x95, 0x00, 0xFF, 0xFF, 12 | 0x80, 0x0C, 0x21, 0x86, 0x10, 0xC3, 0x08, 0x61, 0x84, 0x30, 0xC0, 0x1C, 13 | 0x33, 0x98, 0xDC, 0x7E, 0x3F, 0x1F, 0x8F, 0xC7, 0xE3, 0xB1, 0x98, 0xC3, 14 | 0x80, 0x08, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0xBF, 0x3C, 0x3F, 15 | 0x23, 0xC0, 0xE0, 0x70, 0x30, 0x38, 0x18, 0x18, 0x18, 0x5F, 0xDF, 0xE0, 16 | 0x7C, 0x8E, 0x0E, 0x0E, 0x0C, 0x1E, 0x07, 0x03, 0x03, 0x02, 0xE6, 0xF8, 17 | 0x06, 0x0E, 0x0E, 0x3E, 0x2E, 0x4E, 0x8E, 0x8E, 0xFF, 0xFF, 0x0E, 0x0E, 18 | 0x3F, 0x7E, 0x40, 0x40, 0xF8, 0xFC, 0x1E, 0x06, 0x02, 0x02, 0xE4, 0xF8, 19 | 0x07, 0x1C, 0x30, 0x70, 0xFC, 0xE6, 0xE7, 0xE7, 0xE7, 0x67, 0x66, 0x3C, 20 | 0x7F, 0x3F, 0xA0, 0xD0, 0x40, 0x60, 0x30, 0x10, 0x18, 0x0C, 0x04, 0x06, 21 | 0x03, 0x00, 0x3C, 0xC6, 0xC6, 0xC6, 0xFC, 0x7C, 0x3E, 0xCF, 0xC7, 0xC7, 22 | 0xC6, 0x7C, 0x3E, 0x33, 0xB8, 0xDC, 0x7E, 0x3F, 0x1D, 0xCE, 0x7F, 0x07, 23 | 0x07, 0x0F, 0x1C, 0x00, 0xFF, 0x80, 0x3F, 0xE0, 0xFF, 0x80, 0x37, 0xE5, 24 | 0x40, 0x00, 0x00, 0x70, 0x78, 0x78, 0x78, 0x38, 0x03, 0x80, 0x3C, 0x03, 25 | 0xC0, 0x30, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0xC0, 0x3C, 0x03, 26 | 0xC0, 0x1C, 0x01, 0xC1, 0xE1, 0xE1, 0xE0, 0xE0, 0x00, 0x00, 0x3D, 0x9F, 27 | 0x3E, 0x70, 0xE1, 0x04, 0x08, 0x00, 0x70, 0xE1, 0xC0, 0x0F, 0x81, 0x83, 28 | 0x18, 0xC4, 0x89, 0x9C, 0x4C, 0xE4, 0x67, 0x22, 0x39, 0x22, 0x4F, 0xE3, 29 | 0x00, 0x0C, 0x10, 0x1F, 0x00, 0x02, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, 30 | 0xB8, 0x05, 0xC0, 0x4F, 0x02, 0x38, 0x3F, 0xE1, 0x07, 0x18, 0x3D, 0xE3, 31 | 0xF0, 0xFF, 0x87, 0x1C, 0xE3, 0x9C, 0x73, 0x9C, 0x7F, 0x0E, 0x71, 0xC7, 32 | 0x38, 0xE7, 0x1C, 0xE7, 0x7F, 0xC0, 0x1F, 0x26, 0x1D, 0xC1, 0xB0, 0x1E, 33 | 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x0E, 0x04, 0xE1, 0x0F, 0xC0, 0xFF, 34 | 0x0E, 0x71, 0xC7, 0x38, 0x77, 0x0E, 0xE1, 0xDC, 0x3B, 0x87, 0x70, 0xCE, 35 | 0x39, 0xC6, 0x7F, 0x80, 0xFF, 0xCE, 0x19, 0xC1, 0x38, 0x87, 0x30, 0xFE, 36 | 0x1C, 0xC3, 0x88, 0x70, 0x2E, 0x0D, 0xC3, 0x7F, 0xE0, 0xFF, 0xDC, 0x37, 37 | 0x05, 0xC4, 0x73, 0x1F, 0xC7, 0x31, 0xC4, 0x70, 0x1C, 0x07, 0x03, 0xE0, 38 | 0x1F, 0x23, 0x0E, 0x70, 0x6E, 0x02, 0xE0, 0x0E, 0x00, 0xE1, 0xFE, 0x0E, 39 | 0x60, 0xE7, 0x0E, 0x38, 0xE0, 0xF8, 0xF9, 0xF7, 0x0E, 0x70, 0xE7, 0x0E, 40 | 0x70, 0xE7, 0xFE, 0x70, 0xE7, 0x0E, 0x70, 0xE7, 0x0E, 0x70, 0xEF, 0x9F, 41 | 0xFB, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9D, 0xF0, 0x1F, 0x0E, 0x0E, 0x0E, 42 | 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0xCE, 0xCC, 0x78, 0xF9, 0xF3, 43 | 0x82, 0x1C, 0x20, 0xE2, 0x07, 0x20, 0x3F, 0x01, 0xDC, 0x0E, 0x70, 0x73, 44 | 0xC3, 0x8F, 0x1C, 0x3D, 0xF3, 0xF0, 0xF8, 0x0E, 0x01, 0xC0, 0x38, 0x07, 45 | 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x2E, 0x09, 0xC3, 0x7F, 0xE0, 0xF8, 46 | 0x0F, 0x3C, 0x1E, 0x3C, 0x1E, 0x2E, 0x2E, 0x2E, 0x2E, 0x26, 0x4E, 0x27, 47 | 0x4E, 0x27, 0x4E, 0x23, 0x8E, 0x23, 0x8E, 0x21, 0x0E, 0x71, 0x1F, 0xF0, 48 | 0xEE, 0x09, 0xE1, 0x3E, 0x25, 0xE4, 0x9E, 0x91, 0xD2, 0x1E, 0x43, 0xC8, 49 | 0x39, 0x03, 0x70, 0x20, 0x1F, 0x83, 0x0C, 0x70, 0xEE, 0x07, 0xE0, 0x7E, 50 | 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x77, 0x0E, 0x30, 0xC1, 0xF8, 0xFF, 0x1C, 51 | 0xE7, 0x1D, 0xC7, 0x71, 0xDC, 0xE7, 0xF1, 0xC0, 0x70, 0x1C, 0x07, 0x03, 52 | 0xE0, 0x0F, 0x83, 0x9C, 0x70, 0xE6, 0x06, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 53 | 0x07, 0xE0, 0x76, 0x06, 0x30, 0xC1, 0x98, 0x0F, 0x00, 0x78, 0x03, 0xE0, 54 | 0xFF, 0x07, 0x38, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x38, 0x7E, 0x07, 0x70, 55 | 0x77, 0x87, 0x3C, 0x71, 0xEF, 0x8F, 0x39, 0x47, 0xC1, 0xC0, 0xF0, 0x7C, 56 | 0x3E, 0x0F, 0x83, 0xC3, 0xC6, 0xBC, 0xFF, 0xFC, 0xE3, 0x8E, 0x10, 0xE0, 57 | 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x01, 0xF0, 58 | 0xF8, 0xEE, 0x09, 0xC1, 0x38, 0x27, 0x04, 0xE0, 0x9C, 0x13, 0x82, 0x70, 59 | 0x4E, 0x08, 0xE2, 0x0F, 0x80, 0xFC, 0x7B, 0xC1, 0x0E, 0x08, 0x70, 0x81, 60 | 0xC4, 0x0E, 0x20, 0x7A, 0x01, 0xD0, 0x0E, 0x80, 0x38, 0x01, 0xC0, 0x04, 61 | 0x00, 0x20, 0x00, 0xFD, 0xFB, 0xDC, 0x38, 0x43, 0x87, 0x10, 0xE1, 0xC4, 62 | 0x38, 0xF2, 0x07, 0x2E, 0x81, 0xD3, 0xA0, 0x34, 0x70, 0x0E, 0x1C, 0x03, 63 | 0x87, 0x00, 0x60, 0x80, 0x10, 0x20, 0xFE, 0xF3, 0xC3, 0x0F, 0x10, 0x39, 64 | 0x00, 0xF0, 0x03, 0x80, 0x1E, 0x01, 0x70, 0x09, 0xC0, 0x8F, 0x08, 0x3D, 65 | 0xF3, 0xF0, 0xFC, 0x7B, 0xC1, 0x8E, 0x08, 0x38, 0x81, 0xE8, 0x07, 0x40, 66 | 0x1C, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x1F, 0x00, 0xFF, 0xD8, 67 | 0x72, 0x1E, 0x43, 0x80, 0xE0, 0x1C, 0x07, 0x01, 0xC0, 0x38, 0x2E, 0x0F, 68 | 0x83, 0x7F, 0xE0, 0xFC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xF0, 0xC1, 69 | 0x06, 0x18, 0x20, 0xC3, 0x04, 0x18, 0x60, 0x83, 0x0C, 0xF3, 0x33, 0x33, 70 | 0x33, 0x33, 0x33, 0x33, 0xF0, 0x18, 0x1C, 0x34, 0x26, 0x62, 0x43, 0xC1, 71 | 0xFF, 0x80, 0xC6, 0x30, 0x7C, 0x63, 0xB1, 0xC0, 0xE1, 0xF3, 0x3B, 0x9D, 72 | 0xCE, 0xFF, 0x80, 0xF0, 0x1C, 0x07, 0x01, 0xDC, 0x7B, 0x9C, 0x77, 0x1D, 73 | 0xC7, 0x71, 0xDC, 0x77, 0x39, 0x3C, 0x3C, 0xED, 0x9F, 0x0E, 0x1C, 0x38, 74 | 0x39, 0x3C, 0x07, 0x80, 0xE0, 0x38, 0xEE, 0x77, 0xB8, 0xEE, 0x3B, 0x8E, 75 | 0xE3, 0xB8, 0xE7, 0x78, 0xEF, 0x3C, 0x66, 0xE6, 0xFE, 0xE0, 0xE0, 0xE0, 76 | 0x72, 0x3C, 0x3E, 0xED, 0xC7, 0xC7, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC7, 77 | 0xC0, 0x31, 0xDF, 0xBF, 0x7E, 0xE7, 0x90, 0x60, 0xFC, 0xFE, 0x0C, 0x17, 78 | 0xC0, 0xF0, 0x1C, 0x07, 0x01, 0xDC, 0x7B, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 79 | 0x9C, 0xE7, 0x3B, 0xFF, 0x73, 0x9D, 0xE7, 0x39, 0xCE, 0x73, 0x9D, 0xF0, 80 | 0x1C, 0x71, 0xCF, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x7D, 0xBE, 81 | 0xF0, 0x1C, 0x07, 0x01, 0xCE, 0x71, 0x1C, 0x87, 0x41, 0xF8, 0x77, 0x1C, 82 | 0xE7, 0x1B, 0xEF, 0xF3, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9D, 0xF0, 0xF7, 83 | 0x38, 0xF7, 0xB9, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 84 | 0x39, 0xCE, 0xFF, 0xFE, 0xF7, 0x1E, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 85 | 0x39, 0xCE, 0xFF, 0xC0, 0x3E, 0x31, 0xB8, 0xFC, 0x7E, 0x3F, 0x1F, 0x8E, 86 | 0xC6, 0x3E, 0x00, 0xF7, 0x1E, 0xE7, 0x1D, 0xC7, 0x71, 0xDC, 0x77, 0x1D, 87 | 0xCE, 0x7F, 0x1C, 0x07, 0x01, 0xC0, 0xF8, 0x00, 0x3C, 0x9C, 0xEE, 0x3B, 88 | 0x8E, 0xE3, 0xB8, 0xEE, 0x39, 0xCE, 0x3F, 0x80, 0xE0, 0x38, 0x0E, 0x07, 89 | 0xC0, 0xF7, 0x7B, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xF8, 0x7E, 0x73, 90 | 0xC7, 0x8E, 0x39, 0xB0, 0x10, 0xCF, 0x9C, 0x71, 0xC7, 0x1C, 0x71, 0xD3, 91 | 0x80, 0xF7, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x3F, 92 | 0xC0, 0xFB, 0xB8, 0x8C, 0x87, 0x43, 0xC0, 0xE0, 0x70, 0x10, 0x08, 0x00, 93 | 0xF7, 0xB6, 0x31, 0x73, 0xA3, 0x3A, 0x3D, 0xA3, 0xDC, 0x18, 0xC1, 0x88, 94 | 0x10, 0x80, 0xFB, 0xB8, 0x8E, 0x83, 0x81, 0xC0, 0xF0, 0x98, 0xCE, 0xEF, 95 | 0x80, 0xF7, 0x62, 0x72, 0x34, 0x34, 0x3C, 0x18, 0x18, 0x10, 0x10, 0x10, 96 | 0xE0, 0xE0, 0xFF, 0x1C, 0x70, 0xE3, 0x87, 0x1C, 0x71, 0xFE, 0x19, 0x8C, 97 | 0x63, 0x18, 0xCC, 0x61, 0x8C, 0x63, 0x18, 0xC3, 0xFF, 0xF8, 0xC3, 0x18, 98 | 0xC6, 0x31, 0x86, 0x33, 0x18, 0xC6, 0x31, 0x98, 0xF0, 0x8E }; 99 | 100 | const GFXglyph FreeSerifBold9pt7bGlyphs[] PROGMEM = { 101 | { 0, 0, 0, 5, 0, 1 }, // 0x20 ' ' 102 | { 0, 3, 12, 6, 1, -11 }, // 0x21 '!' 103 | { 5, 6, 5, 10, 2, -11 }, // 0x22 '"' 104 | { 9, 9, 13, 9, 0, -12 }, // 0x23 '#' 105 | { 24, 8, 14, 9, 1, -12 }, // 0x24 '$' 106 | { 38, 14, 12, 18, 2, -11 }, // 0x25 '%' 107 | { 59, 13, 12, 15, 1, -11 }, // 0x26 '&' 108 | { 79, 2, 5, 5, 1, -11 }, // 0x27 ''' 109 | { 81, 4, 15, 6, 1, -11 }, // 0x28 '(' 110 | { 89, 4, 15, 6, 1, -11 }, // 0x29 ')' 111 | { 97, 7, 7, 9, 2, -11 }, // 0x2A '*' 112 | { 104, 9, 9, 12, 1, -8 }, // 0x2B '+' 113 | { 115, 3, 6, 4, 1, -2 }, // 0x2C ',' 114 | { 118, 4, 2, 6, 1, -4 }, // 0x2D '-' 115 | { 119, 3, 3, 4, 1, -2 }, // 0x2E '.' 116 | { 121, 6, 13, 5, 0, -11 }, // 0x2F '/' 117 | { 131, 9, 12, 9, 0, -11 }, // 0x30 '0' 118 | { 145, 6, 12, 9, 1, -11 }, // 0x31 '1' 119 | { 154, 9, 12, 9, 0, -11 }, // 0x32 '2' 120 | { 168, 8, 12, 9, 0, -11 }, // 0x33 '3' 121 | { 180, 8, 12, 9, 1, -11 }, // 0x34 '4' 122 | { 192, 8, 12, 9, 1, -11 }, // 0x35 '5' 123 | { 204, 8, 12, 9, 1, -11 }, // 0x36 '6' 124 | { 216, 9, 12, 9, 0, -11 }, // 0x37 '7' 125 | { 230, 8, 12, 9, 1, -11 }, // 0x38 '8' 126 | { 242, 9, 12, 9, 0, -11 }, // 0x39 '9' 127 | { 256, 3, 9, 6, 1, -8 }, // 0x3A ':' 128 | { 260, 3, 12, 6, 2, -8 }, // 0x3B ';' 129 | { 265, 10, 10, 12, 1, -9 }, // 0x3C '<' 130 | { 278, 10, 5, 12, 1, -6 }, // 0x3D '=' 131 | { 285, 10, 10, 12, 1, -8 }, // 0x3E '>' 132 | { 298, 7, 12, 9, 1, -11 }, // 0x3F '?' 133 | { 309, 13, 12, 17, 2, -11 }, // 0x40 '@' 134 | { 329, 13, 12, 13, 0, -11 }, // 0x41 'A' 135 | { 349, 11, 12, 12, 0, -11 }, // 0x42 'B' 136 | { 366, 11, 12, 13, 1, -11 }, // 0x43 'C' 137 | { 383, 11, 12, 13, 1, -11 }, // 0x44 'D' 138 | { 400, 11, 12, 12, 1, -11 }, // 0x45 'E' 139 | { 417, 10, 12, 11, 1, -11 }, // 0x46 'F' 140 | { 432, 12, 12, 14, 1, -11 }, // 0x47 'G' 141 | { 450, 12, 12, 14, 1, -11 }, // 0x48 'H' 142 | { 468, 5, 12, 7, 1, -11 }, // 0x49 'I' 143 | { 476, 8, 14, 9, 0, -11 }, // 0x4A 'J' 144 | { 490, 13, 12, 14, 1, -11 }, // 0x4B 'K' 145 | { 510, 11, 12, 12, 1, -11 }, // 0x4C 'L' 146 | { 527, 16, 12, 17, 0, -11 }, // 0x4D 'M' 147 | { 551, 11, 12, 13, 1, -11 }, // 0x4E 'N' 148 | { 568, 12, 12, 14, 1, -11 }, // 0x4F 'O' 149 | { 586, 10, 12, 11, 1, -11 }, // 0x50 'P' 150 | { 601, 12, 15, 14, 1, -11 }, // 0x51 'Q' 151 | { 624, 12, 12, 13, 1, -11 }, // 0x52 'R' 152 | { 642, 8, 12, 10, 1, -11 }, // 0x53 'S' 153 | { 654, 12, 12, 12, 0, -11 }, // 0x54 'T' 154 | { 672, 11, 12, 13, 1, -11 }, // 0x55 'U' 155 | { 689, 13, 13, 13, 0, -11 }, // 0x56 'V' 156 | { 711, 18, 12, 18, 0, -11 }, // 0x57 'W' 157 | { 738, 13, 12, 13, 0, -11 }, // 0x58 'X' 158 | { 758, 13, 12, 13, 0, -11 }, // 0x59 'Y' 159 | { 778, 11, 12, 12, 1, -11 }, // 0x5A 'Z' 160 | { 795, 4, 15, 6, 1, -11 }, // 0x5B '[' 161 | { 803, 6, 13, 5, 0, -11 }, // 0x5C '\' 162 | { 813, 4, 15, 6, 1, -11 }, // 0x5D ']' 163 | { 821, 8, 7, 10, 1, -11 }, // 0x5E '^' 164 | { 828, 9, 1, 9, 0, 3 }, // 0x5F '_' 165 | { 830, 4, 3, 6, 0, -12 }, // 0x60 '`' 166 | { 832, 9, 9, 9, 0, -8 }, // 0x61 'a' 167 | { 843, 10, 12, 10, 0, -11 }, // 0x62 'b' 168 | { 858, 7, 9, 8, 0, -8 }, // 0x63 'c' 169 | { 866, 10, 12, 10, 0, -11 }, // 0x64 'd' 170 | { 881, 8, 9, 8, 0, -8 }, // 0x65 'e' 171 | { 890, 7, 12, 7, 0, -11 }, // 0x66 'f' 172 | { 901, 7, 13, 9, 1, -8 }, // 0x67 'g' 173 | { 913, 10, 12, 10, 0, -11 }, // 0x68 'h' 174 | { 928, 5, 12, 5, 0, -11 }, // 0x69 'i' 175 | { 936, 6, 16, 7, 0, -11 }, // 0x6A 'j' 176 | { 948, 10, 12, 10, 0, -11 }, // 0x6B 'k' 177 | { 963, 5, 12, 5, 0, -11 }, // 0x6C 'l' 178 | { 971, 15, 9, 15, 0, -8 }, // 0x6D 'm' 179 | { 988, 10, 9, 10, 0, -8 }, // 0x6E 'n' 180 | { 1000, 9, 9, 9, 0, -8 }, // 0x6F 'o' 181 | { 1011, 10, 13, 10, 0, -8 }, // 0x70 'p' 182 | { 1028, 10, 13, 10, 0, -8 }, // 0x71 'q' 183 | { 1045, 8, 9, 8, 0, -8 }, // 0x72 'r' 184 | { 1054, 5, 9, 7, 1, -8 }, // 0x73 's' 185 | { 1060, 6, 11, 6, 0, -10 }, // 0x74 't' 186 | { 1069, 10, 9, 10, 0, -8 }, // 0x75 'u' 187 | { 1081, 9, 9, 9, 0, -8 }, // 0x76 'v' 188 | { 1092, 12, 9, 13, 0, -8 }, // 0x77 'w' 189 | { 1106, 9, 9, 9, 0, -8 }, // 0x78 'x' 190 | { 1117, 8, 13, 9, 0, -8 }, // 0x79 'y' 191 | { 1130, 7, 9, 8, 1, -8 }, // 0x7A 'z' 192 | { 1138, 5, 16, 7, 0, -12 }, // 0x7B '{' 193 | { 1148, 1, 13, 4, 1, -11 }, // 0x7C '|' 194 | { 1150, 5, 16, 7, 2, -12 }, // 0x7D '}' 195 | { 1160, 8, 2, 9, 1, -4 } }; // 0x7E '~' 196 | 197 | const GFXfont FreeSerifBold9pt7b PROGMEM = { 198 | (uint8_t *)FreeSerifBold9pt7bBitmaps, 199 | (GFXglyph *)FreeSerifBold9pt7bGlyphs, 200 | 0x20, 0x7E, 22 }; 201 | 202 | // Approx. 1834 bytes 203 | -------------------------------------------------------------------------------- /Fonts/FreeSerifItalic9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeSerifItalic9pt7bBitmaps[] PROGMEM = { 2 | 0x11, 0x12, 0x22, 0x24, 0x40, 0x0C, 0xDE, 0xE5, 0x40, 0x04, 0x82, 0x20, 3 | 0x98, 0x24, 0x7F, 0xC4, 0x82, 0x23, 0xFC, 0x24, 0x11, 0x04, 0x83, 0x20, 4 | 0x1C, 0x1B, 0x99, 0x4D, 0x26, 0x81, 0xC0, 0x70, 0x1C, 0x13, 0x49, 0xA4, 5 | 0xDA, 0xC7, 0xC1, 0x00, 0x80, 0x1C, 0x61, 0xCF, 0x0E, 0x28, 0x30, 0xA0, 6 | 0xC5, 0x03, 0x34, 0xE7, 0xAE, 0x40, 0xB1, 0x05, 0x84, 0x26, 0x20, 0x99, 7 | 0x84, 0x3C, 0x03, 0x80, 0x6C, 0x06, 0xC0, 0x78, 0x06, 0x01, 0xEF, 0x66, 8 | 0x24, 0x24, 0xC3, 0x8C, 0x10, 0xE3, 0x87, 0xCE, 0xFA, 0x08, 0x21, 0x08, 9 | 0x61, 0x8C, 0x30, 0xC3, 0x0C, 0x30, 0x41, 0x02, 0x00, 0x10, 0x40, 0x82, 10 | 0x0C, 0x30, 0xC3, 0x0C, 0x61, 0x84, 0x21, 0x08, 0x00, 0x30, 0xCA, 0x5E, 11 | 0x6A, 0x93, 0x08, 0x08, 0x04, 0x02, 0x01, 0x0F, 0xF8, 0x40, 0x20, 0x10, 12 | 0x08, 0x00, 0x56, 0xF0, 0xF0, 0x03, 0x02, 0x06, 0x04, 0x08, 0x08, 0x10, 13 | 0x30, 0x20, 0x60, 0x40, 0xC0, 0x0E, 0x0C, 0x8C, 0x6C, 0x36, 0x1F, 0x0F, 14 | 0x07, 0x87, 0xC3, 0x61, 0xB1, 0x88, 0x83, 0x80, 0x04, 0x70, 0xC3, 0x08, 15 | 0x21, 0x86, 0x10, 0x43, 0x08, 0xF8, 0x1C, 0x67, 0x83, 0x03, 0x02, 0x06, 16 | 0x0C, 0x08, 0x10, 0x20, 0x42, 0xFC, 0x0F, 0x08, 0xC0, 0x60, 0xC1, 0xE0, 17 | 0x38, 0x0C, 0x06, 0x03, 0x01, 0x01, 0x1F, 0x00, 0x01, 0x01, 0x81, 0x41, 18 | 0x61, 0x21, 0x11, 0x18, 0x88, 0xFF, 0x02, 0x03, 0x01, 0x00, 0x0F, 0x84, 19 | 0x04, 0x03, 0x80, 0x60, 0x18, 0x0C, 0x06, 0x03, 0x03, 0x03, 0x1E, 0x00, 20 | 0x01, 0x83, 0x87, 0x07, 0x03, 0x03, 0x73, 0xCD, 0x86, 0xC3, 0x61, 0xB1, 21 | 0x88, 0xC3, 0xC0, 0x7F, 0x40, 0x80, 0x80, 0x40, 0x40, 0x60, 0x20, 0x20, 22 | 0x10, 0x10, 0x18, 0x08, 0x00, 0x1E, 0x19, 0xCC, 0x66, 0x33, 0xB0, 0xE0, 23 | 0x50, 0xCC, 0xC3, 0x61, 0xB0, 0xCC, 0xC3, 0xC0, 0x0E, 0x19, 0x8C, 0x6C, 24 | 0x36, 0x1B, 0x0D, 0x86, 0xE6, 0x3F, 0x03, 0x03, 0x06, 0x0C, 0x00, 0x33, 25 | 0x00, 0x00, 0xCC, 0x33, 0x00, 0x00, 0x44, 0x48, 0x01, 0x83, 0x86, 0x1C, 26 | 0x0C, 0x03, 0x80, 0x30, 0x07, 0x00, 0x80, 0xFF, 0x80, 0x00, 0x00, 0x0F, 27 | 0xF8, 0xC0, 0x1C, 0x03, 0x80, 0x70, 0x18, 0x38, 0x70, 0xC0, 0x80, 0x00, 28 | 0x3C, 0x8C, 0x18, 0x30, 0xC3, 0x0C, 0x20, 0x40, 0x80, 0x06, 0x00, 0x0F, 29 | 0xC0, 0xC3, 0x0C, 0x04, 0xC7, 0xBC, 0x64, 0xE2, 0x27, 0x31, 0x39, 0x91, 30 | 0xCC, 0x93, 0x3B, 0x0E, 0x00, 0x1F, 0x80, 0x01, 0x00, 0x60, 0x14, 0x04, 31 | 0xC0, 0x98, 0x23, 0x07, 0xE1, 0x04, 0x20, 0x88, 0x1B, 0x8F, 0x80, 0x3F, 32 | 0xC1, 0x8C, 0x21, 0x8C, 0x31, 0x8C, 0x3E, 0x04, 0x61, 0x86, 0x30, 0xC4, 33 | 0x19, 0x86, 0x7F, 0x80, 0x07, 0x91, 0x86, 0x30, 0x26, 0x02, 0x60, 0x0C, 34 | 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0x61, 0x83, 0xE0, 0x3F, 0xC0, 35 | 0x63, 0x82, 0x0C, 0x30, 0x31, 0x81, 0x8C, 0x0C, 0x40, 0x66, 0x07, 0x30, 36 | 0x31, 0x03, 0x18, 0x71, 0xFE, 0x00, 0x3F, 0xF0, 0xC2, 0x08, 0x21, 0x80, 37 | 0x19, 0x81, 0xF8, 0x11, 0x03, 0x10, 0x30, 0x02, 0x04, 0x60, 0x8F, 0xF8, 38 | 0x3F, 0xF0, 0xC2, 0x08, 0x21, 0x80, 0x19, 0x81, 0xF8, 0x11, 0x03, 0x10, 39 | 0x30, 0x02, 0x00, 0x60, 0x0F, 0x80, 0x07, 0x91, 0x87, 0x30, 0x26, 0x02, 40 | 0x60, 0x0C, 0x00, 0xC1, 0xFC, 0x0C, 0xC0, 0xCC, 0x0C, 0x60, 0x83, 0xF0, 41 | 0x3E, 0x3C, 0x30, 0x60, 0x81, 0x06, 0x0C, 0x18, 0x30, 0x7F, 0x81, 0x06, 42 | 0x0C, 0x18, 0x30, 0x60, 0x81, 0x06, 0x0C, 0x3C, 0x78, 0x1E, 0x18, 0x20, 43 | 0xC1, 0x83, 0x04, 0x18, 0x30, 0x41, 0x87, 0x80, 0x0F, 0x81, 0x80, 0x80, 44 | 0xC0, 0x60, 0x20, 0x30, 0x18, 0x0C, 0x04, 0x36, 0x1E, 0x00, 0x3E, 0x78, 45 | 0x61, 0x82, 0x10, 0x31, 0x01, 0xB0, 0x0E, 0x00, 0x58, 0x06, 0x60, 0x33, 46 | 0x01, 0x0C, 0x18, 0x61, 0xE7, 0xC0, 0x3E, 0x01, 0x80, 0x20, 0x0C, 0x01, 47 | 0x80, 0x30, 0x04, 0x01, 0x80, 0x30, 0x04, 0x0D, 0x83, 0x7F, 0xE0, 0x1C, 48 | 0x07, 0x0C, 0x0E, 0x0C, 0x14, 0x14, 0x1C, 0x14, 0x2C, 0x16, 0x4C, 0x26, 49 | 0x48, 0x26, 0x98, 0x27, 0x18, 0x27, 0x10, 0x42, 0x30, 0xF4, 0x7C, 0x38, 50 | 0x78, 0x60, 0x83, 0x04, 0x2C, 0x41, 0x22, 0x09, 0x10, 0x4D, 0x84, 0x28, 51 | 0x21, 0x41, 0x06, 0x10, 0x21, 0xE1, 0x00, 0x07, 0x83, 0x18, 0xC1, 0xB0, 52 | 0x36, 0x07, 0xC0, 0xF0, 0x3E, 0x06, 0xC0, 0xD8, 0x31, 0x8C, 0x1E, 0x00, 53 | 0x3F, 0xC1, 0x9C, 0x21, 0x8C, 0x31, 0x86, 0x31, 0x87, 0xE1, 0x80, 0x30, 54 | 0x04, 0x01, 0x80, 0x78, 0x00, 0x07, 0x83, 0x18, 0xC1, 0x98, 0x36, 0x07, 55 | 0xC0, 0xF0, 0x1E, 0x06, 0xC0, 0xD8, 0x31, 0x04, 0x13, 0x01, 0x80, 0x70, 56 | 0xB7, 0xE0, 0x3F, 0xC1, 0x8C, 0x21, 0x8C, 0x31, 0x8C, 0x3F, 0x04, 0xC1, 57 | 0x98, 0x31, 0x84, 0x31, 0x86, 0x78, 0x70, 0x1E, 0x4C, 0x63, 0x08, 0xC0, 58 | 0x38, 0x07, 0x00, 0x60, 0x0C, 0x43, 0x10, 0xC6, 0x62, 0x70, 0x7F, 0xE9, 59 | 0x8E, 0x31, 0x04, 0x01, 0x80, 0x30, 0x06, 0x00, 0x80, 0x30, 0x06, 0x00, 60 | 0x80, 0x7E, 0x00, 0x7C, 0xF3, 0x02, 0x30, 0x46, 0x04, 0x60, 0x46, 0x04, 61 | 0x40, 0x8C, 0x08, 0xC0, 0x8C, 0x10, 0xE3, 0x03, 0xC0, 0xF8, 0xEC, 0x0C, 62 | 0x81, 0x18, 0x43, 0x08, 0x62, 0x0C, 0x81, 0x90, 0x14, 0x03, 0x00, 0x60, 63 | 0x08, 0x00, 0xFB, 0xCE, 0x43, 0x0C, 0x86, 0x11, 0x8C, 0x43, 0x38, 0x86, 64 | 0xB2, 0x0D, 0x24, 0x1C, 0x50, 0x38, 0xA0, 0x21, 0x80, 0x42, 0x01, 0x04, 65 | 0x00, 0x3E, 0x71, 0x82, 0x0C, 0x40, 0xC8, 0x07, 0x00, 0x60, 0x06, 0x00, 66 | 0xB0, 0x13, 0x02, 0x18, 0x61, 0x8F, 0x3E, 0xF9, 0xC8, 0x23, 0x10, 0xC8, 67 | 0x34, 0x05, 0x01, 0x80, 0x40, 0x30, 0x0C, 0x03, 0x03, 0xE0, 0x3F, 0xE4, 68 | 0x19, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0x40, 0x18, 0x06, 0x05, 69 | 0x81, 0x7F, 0xE0, 0x0E, 0x10, 0x20, 0x81, 0x02, 0x04, 0x10, 0x20, 0x40, 70 | 0x82, 0x04, 0x08, 0x1C, 0x00, 0x81, 0x04, 0x18, 0x20, 0xC1, 0x04, 0x08, 71 | 0x20, 0x41, 0x38, 0x20, 0x82, 0x08, 0x41, 0x04, 0x10, 0xC2, 0x08, 0x20, 72 | 0x8C, 0x00, 0x18, 0x18, 0x2C, 0x24, 0x46, 0x42, 0x83, 0xFF, 0x80, 0xD8, 73 | 0x80, 0x1F, 0x98, 0x98, 0x4C, 0x2C, 0x36, 0x33, 0x3A, 0xEE, 0x38, 0x08, 74 | 0x04, 0x02, 0x03, 0x71, 0xCC, 0xC6, 0xC3, 0x63, 0x21, 0x93, 0x8F, 0x00, 75 | 0x1F, 0x33, 0x60, 0xC0, 0xC0, 0xC0, 0xC4, 0x78, 0x01, 0x80, 0x40, 0x60, 76 | 0x20, 0xF1, 0x89, 0x8C, 0xC4, 0xC2, 0x63, 0x33, 0xAE, 0xE0, 0x0E, 0x65, 77 | 0x8B, 0x2F, 0x98, 0x31, 0x3C, 0x01, 0xE0, 0x40, 0x08, 0x02, 0x00, 0x40, 78 | 0x3E, 0x03, 0x00, 0x40, 0x08, 0x01, 0x00, 0x60, 0x0C, 0x01, 0x00, 0x20, 79 | 0x04, 0x01, 0x00, 0xC0, 0x00, 0x1E, 0x19, 0xD8, 0xCC, 0xE1, 0xC3, 0x01, 80 | 0xE0, 0xBC, 0x82, 0x41, 0x31, 0x0F, 0x00, 0x38, 0x08, 0x04, 0x02, 0x03, 81 | 0x39, 0x6C, 0xC6, 0x46, 0x63, 0x21, 0x11, 0xB8, 0xE0, 0x30, 0x00, 0xE2, 82 | 0x44, 0xC8, 0xCE, 0x06, 0x00, 0x00, 0x00, 0xC0, 0x83, 0x04, 0x08, 0x10, 83 | 0x60, 0x81, 0x02, 0x04, 0x70, 0x38, 0x10, 0x10, 0x10, 0x37, 0x22, 0x24, 84 | 0x38, 0x78, 0x48, 0x4D, 0xC6, 0x73, 0x32, 0x26, 0x64, 0x4C, 0xDE, 0x77, 85 | 0x39, 0x5E, 0xCC, 0xCC, 0xCE, 0x66, 0x62, 0x22, 0x11, 0x11, 0xB9, 0x8E, 86 | 0x77, 0x3B, 0x33, 0x62, 0x62, 0x42, 0x4D, 0xCE, 0x0F, 0x18, 0xD8, 0x7C, 87 | 0x3C, 0x3E, 0x1B, 0x18, 0xF0, 0x3B, 0x87, 0x31, 0x8C, 0x43, 0x31, 0x88, 88 | 0x62, 0x30, 0xF0, 0x60, 0x10, 0x04, 0x03, 0x80, 0x0F, 0x18, 0x98, 0x4C, 89 | 0x2C, 0x26, 0x33, 0x38, 0xEC, 0x04, 0x02, 0x03, 0x03, 0xC0, 0x76, 0x50, 90 | 0xC1, 0x06, 0x08, 0x10, 0x60, 0x1A, 0x6C, 0xC8, 0xC0, 0xD1, 0xB3, 0x5C, 91 | 0x23, 0xC8, 0xC4, 0x21, 0x18, 0xE0, 0xC3, 0x42, 0x42, 0xC6, 0x86, 0x8C, 92 | 0x9D, 0xEE, 0x62, 0xC4, 0x89, 0xA3, 0x47, 0x0C, 0x10, 0xE2, 0x2C, 0x44, 93 | 0xD8, 0x9D, 0x23, 0xA4, 0x65, 0x0C, 0xC1, 0x10, 0x19, 0x95, 0x43, 0x01, 94 | 0x80, 0xC0, 0xA0, 0x91, 0x8E, 0x70, 0x88, 0x46, 0x23, 0x20, 0x90, 0x50, 95 | 0x28, 0x18, 0x08, 0x08, 0x08, 0x18, 0x00, 0x3F, 0x42, 0x04, 0x08, 0x10, 96 | 0x20, 0x40, 0x72, 0x0E, 0x08, 0x61, 0x04, 0x30, 0x86, 0x08, 0x61, 0x04, 97 | 0x30, 0xC3, 0x8F, 0x00, 0xFF, 0xF0, 0x1E, 0x0C, 0x10, 0x20, 0xC1, 0x82, 98 | 0x04, 0x1C, 0x30, 0x40, 0x83, 0x04, 0x08, 0x20, 0x60, 0x99, 0x8E }; 99 | 100 | const GFXglyph FreeSerifItalic9pt7bGlyphs[] PROGMEM = { 101 | { 0, 0, 0, 5, 0, 1 }, // 0x20 ' ' 102 | { 0, 4, 12, 6, 1, -11 }, // 0x21 '!' 103 | { 6, 5, 4, 6, 3, -11 }, // 0x22 '"' 104 | { 9, 10, 12, 9, 0, -11 }, // 0x23 '#' 105 | { 24, 9, 15, 9, 1, -12 }, // 0x24 '$' 106 | { 41, 14, 12, 15, 1, -11 }, // 0x25 '%' 107 | { 62, 12, 12, 14, 1, -11 }, // 0x26 '&' 108 | { 80, 2, 4, 4, 3, -11 }, // 0x27 ''' 109 | { 81, 6, 15, 6, 1, -11 }, // 0x28 '(' 110 | { 93, 6, 15, 6, 0, -11 }, // 0x29 ')' 111 | { 105, 6, 8, 9, 3, -11 }, // 0x2A '*' 112 | { 111, 9, 9, 12, 1, -8 }, // 0x2B '+' 113 | { 122, 2, 4, 5, 0, -1 }, // 0x2C ',' 114 | { 123, 4, 1, 6, 1, -3 }, // 0x2D '-' 115 | { 124, 2, 2, 5, 0, -1 }, // 0x2E '.' 116 | { 125, 8, 12, 5, 0, -11 }, // 0x2F '/' 117 | { 137, 9, 13, 9, 1, -12 }, // 0x30 '0' 118 | { 152, 6, 13, 9, 1, -12 }, // 0x31 '1' 119 | { 162, 8, 12, 9, 1, -11 }, // 0x32 '2' 120 | { 174, 9, 12, 9, 0, -11 }, // 0x33 '3' 121 | { 188, 9, 12, 9, 0, -11 }, // 0x34 '4' 122 | { 202, 9, 12, 9, 0, -11 }, // 0x35 '5' 123 | { 216, 9, 13, 9, 1, -12 }, // 0x36 '6' 124 | { 231, 9, 12, 9, 1, -11 }, // 0x37 '7' 125 | { 245, 9, 13, 9, 1, -12 }, // 0x38 '8' 126 | { 260, 9, 13, 9, 0, -12 }, // 0x39 '9' 127 | { 275, 4, 8, 4, 1, -7 }, // 0x3A ':' 128 | { 279, 4, 10, 4, 1, -7 }, // 0x3B ';' 129 | { 284, 9, 9, 10, 1, -8 }, // 0x3C '<' 130 | { 295, 9, 5, 12, 2, -6 }, // 0x3D '=' 131 | { 301, 9, 9, 10, 1, -8 }, // 0x3E '>' 132 | { 312, 7, 12, 8, 2, -11 }, // 0x3F '?' 133 | { 323, 13, 12, 14, 1, -11 }, // 0x40 '@' 134 | { 343, 11, 11, 12, 0, -10 }, // 0x41 'A' 135 | { 359, 11, 12, 11, 0, -11 }, // 0x42 'B' 136 | { 376, 12, 12, 11, 1, -11 }, // 0x43 'C' 137 | { 394, 13, 12, 13, 0, -11 }, // 0x44 'D' 138 | { 414, 12, 12, 10, 0, -11 }, // 0x45 'E' 139 | { 432, 12, 12, 10, 0, -11 }, // 0x46 'F' 140 | { 450, 12, 12, 12, 1, -11 }, // 0x47 'G' 141 | { 468, 14, 12, 13, 0, -11 }, // 0x48 'H' 142 | { 489, 7, 12, 6, 0, -11 }, // 0x49 'I' 143 | { 500, 9, 12, 8, 0, -11 }, // 0x4A 'J' 144 | { 514, 13, 12, 12, 0, -11 }, // 0x4B 'K' 145 | { 534, 11, 12, 10, 0, -11 }, // 0x4C 'L' 146 | { 551, 16, 12, 15, 0, -11 }, // 0x4D 'M' 147 | { 575, 13, 12, 12, 0, -11 }, // 0x4E 'N' 148 | { 595, 11, 12, 12, 1, -11 }, // 0x4F 'O' 149 | { 612, 11, 12, 10, 0, -11 }, // 0x50 'P' 150 | { 629, 11, 15, 12, 1, -11 }, // 0x51 'Q' 151 | { 650, 11, 12, 11, 0, -11 }, // 0x52 'R' 152 | { 667, 10, 12, 8, 0, -11 }, // 0x53 'S' 153 | { 682, 11, 12, 11, 2, -11 }, // 0x54 'T' 154 | { 699, 12, 12, 13, 2, -11 }, // 0x55 'U' 155 | { 717, 11, 12, 12, 2, -11 }, // 0x56 'V' 156 | { 734, 15, 12, 16, 2, -11 }, // 0x57 'W' 157 | { 757, 12, 12, 12, 0, -11 }, // 0x58 'X' 158 | { 775, 10, 12, 11, 2, -11 }, // 0x59 'Y' 159 | { 790, 11, 12, 10, 0, -11 }, // 0x5A 'Z' 160 | { 807, 7, 15, 7, 0, -11 }, // 0x5B '[' 161 | { 821, 6, 12, 9, 2, -11 }, // 0x5C '\' 162 | { 830, 6, 15, 7, 1, -11 }, // 0x5D ']' 163 | { 842, 8, 7, 8, 0, -11 }, // 0x5E '^' 164 | { 849, 9, 1, 9, 0, 2 }, // 0x5F '_' 165 | { 851, 3, 3, 5, 2, -11 }, // 0x60 '`' 166 | { 853, 9, 8, 9, 0, -7 }, // 0x61 'a' 167 | { 862, 9, 12, 9, 0, -11 }, // 0x62 'b' 168 | { 876, 8, 8, 7, 0, -7 }, // 0x63 'c' 169 | { 884, 9, 12, 9, 0, -11 }, // 0x64 'd' 170 | { 898, 7, 8, 7, 0, -7 }, // 0x65 'e' 171 | { 905, 11, 17, 8, -1, -12 }, // 0x66 'f' 172 | { 929, 9, 12, 8, 0, -7 }, // 0x67 'g' 173 | { 943, 9, 12, 9, 0, -11 }, // 0x68 'h' 174 | { 957, 4, 12, 4, 1, -11 }, // 0x69 'i' 175 | { 963, 7, 16, 5, -1, -11 }, // 0x6A 'j' 176 | { 977, 8, 12, 8, 0, -11 }, // 0x6B 'k' 177 | { 989, 4, 12, 5, 1, -11 }, // 0x6C 'l' 178 | { 995, 13, 8, 13, 0, -7 }, // 0x6D 'm' 179 | { 1008, 8, 8, 9, 0, -7 }, // 0x6E 'n' 180 | { 1016, 9, 8, 9, 0, -7 }, // 0x6F 'o' 181 | { 1025, 10, 12, 8, -1, -7 }, // 0x70 'p' 182 | { 1040, 9, 12, 9, 0, -7 }, // 0x71 'q' 183 | { 1054, 7, 8, 7, 0, -7 }, // 0x72 'r' 184 | { 1061, 7, 8, 6, 0, -7 }, // 0x73 's' 185 | { 1068, 5, 9, 4, 0, -8 }, // 0x74 't' 186 | { 1074, 8, 8, 9, 1, -7 }, // 0x75 'u' 187 | { 1082, 7, 8, 8, 1, -7 }, // 0x76 'v' 188 | { 1089, 11, 8, 12, 1, -7 }, // 0x77 'w' 189 | { 1100, 9, 8, 8, -1, -7 }, // 0x78 'x' 190 | { 1109, 9, 12, 9, 0, -7 }, // 0x79 'y' 191 | { 1123, 8, 9, 7, 0, -7 }, // 0x7A 'z' 192 | { 1132, 6, 15, 7, 1, -11 }, // 0x7B '{' 193 | { 1144, 1, 12, 5, 2, -11 }, // 0x7C '|' 194 | { 1146, 7, 16, 7, 0, -12 }, // 0x7D '}' 195 | { 1160, 8, 3, 10, 1, -5 } }; // 0x7E '~' 196 | 197 | const GFXfont FreeSerifItalic9pt7b PROGMEM = { 198 | (uint8_t *)FreeSerifItalic9pt7bBitmaps, 199 | (GFXglyph *)FreeSerifItalic9pt7bGlyphs, 200 | 0x20, 0x7E, 22 }; 201 | 202 | // Approx. 1835 bytes 203 | -------------------------------------------------------------------------------- /Fonts/FreeMonoBoldOblique9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeMonoBoldOblique9pt7bBitmaps[] PROGMEM = { 2 | 0x39, 0xCC, 0x67, 0x31, 0x8C, 0x07, 0x38, 0x6C, 0xD9, 0x36, 0x48, 0x80, 3 | 0x09, 0x0D, 0x86, 0xCF, 0xF7, 0xF9, 0xB3, 0xFD, 0xFE, 0x6C, 0x36, 0x1B, 4 | 0x00, 0x00, 0x06, 0x07, 0x07, 0xE6, 0x33, 0x01, 0xE0, 0x7C, 0x06, 0x43, 5 | 0x33, 0xBF, 0x83, 0x03, 0x00, 0x80, 0x1C, 0x11, 0x10, 0x88, 0x83, 0xB8, 6 | 0xF3, 0xB8, 0x22, 0x21, 0x11, 0x07, 0x00, 0x0F, 0x1F, 0x30, 0x30, 0x38, 7 | 0x7B, 0xDF, 0xCE, 0xFF, 0x7E, 0xFA, 0x80, 0x19, 0x8C, 0xC6, 0x63, 0x18, 8 | 0xC6, 0x31, 0xC6, 0x30, 0x31, 0xC6, 0x31, 0x8C, 0x63, 0x31, 0x98, 0xCC, 9 | 0x40, 0x08, 0x08, 0xFF, 0xFF, 0x38, 0x6C, 0x6C, 0x0C, 0x06, 0x03, 0x1F, 10 | 0xFF, 0xF8, 0xC0, 0x60, 0x30, 0x10, 0x00, 0x36, 0x4C, 0x80, 0xFF, 0xFF, 11 | 0xC0, 0xFC, 0x00, 0x00, 0x0C, 0x03, 0x00, 0xC0, 0x18, 0x06, 0x01, 0x80, 12 | 0x30, 0x0C, 0x03, 0x00, 0x60, 0x18, 0x06, 0x00, 0xC0, 0x30, 0x00, 0x0F, 13 | 0x0F, 0xCC, 0x6C, 0x36, 0x1B, 0x0D, 0x05, 0x86, 0xC3, 0x63, 0x3F, 0x8F, 14 | 0x00, 0x06, 0x1C, 0x3C, 0x6C, 0x0C, 0x0C, 0x08, 0x18, 0x18, 0x18, 0xFE, 15 | 0xFE, 0x07, 0x83, 0xF1, 0x8C, 0x43, 0x00, 0xC0, 0xE0, 0x70, 0x38, 0x38, 16 | 0x1C, 0x6F, 0xF3, 0xFC, 0x1F, 0x1F, 0xC0, 0x60, 0x30, 0x30, 0x70, 0x38, 17 | 0x06, 0x03, 0x03, 0xBF, 0x9F, 0x80, 0x03, 0x07, 0x0B, 0x1B, 0x32, 0x66, 18 | 0xFF, 0xFF, 0x1E, 0x1E, 0x3F, 0x9F, 0x98, 0x0F, 0xC7, 0xF3, 0x18, 0x0C, 19 | 0x06, 0x06, 0x7F, 0x1E, 0x00, 0x07, 0x87, 0xCE, 0x06, 0x06, 0x03, 0xF3, 20 | 0xFD, 0xC6, 0xC3, 0x63, 0xBF, 0x8F, 0x80, 0xFF, 0xFF, 0xC3, 0x06, 0x06, 21 | 0x0C, 0x18, 0x18, 0x30, 0x30, 0x60, 0x1F, 0x1F, 0xDC, 0x6C, 0x36, 0x31, 22 | 0xF1, 0xF8, 0xC6, 0xC3, 0x63, 0xBF, 0x8F, 0x80, 0x1E, 0x3F, 0x33, 0x63, 23 | 0x63, 0x67, 0x7F, 0x3E, 0x06, 0x1C, 0xF8, 0xF0, 0x77, 0x00, 0x00, 0xEE, 24 | 0x1C, 0x70, 0x00, 0x00, 0x03, 0x0C, 0x61, 0x08, 0x00, 0x00, 0xC1, 0xE1, 25 | 0xE1, 0xE0, 0xF0, 0x07, 0x00, 0xF0, 0x0C, 0x7F, 0xDF, 0xF0, 0x00, 0x00, 26 | 0x7F, 0xFF, 0xF0, 0x30, 0x0F, 0x00, 0xE0, 0x1E, 0x07, 0xC7, 0x87, 0x83, 27 | 0x00, 0x7D, 0xFF, 0x18, 0x30, 0xE3, 0x9C, 0x30, 0x01, 0xC3, 0x80, 0x0F, 28 | 0x0F, 0xCC, 0x6C, 0x36, 0x72, 0x79, 0x7D, 0xB6, 0xDA, 0x6F, 0xB3, 0xD8, 29 | 0x0C, 0x07, 0xE1, 0xE0, 0x0F, 0x83, 0xF0, 0x1E, 0x03, 0xC0, 0xD8, 0x31, 30 | 0x87, 0xF1, 0xFE, 0x30, 0xDF, 0x3F, 0xC7, 0x80, 0x3F, 0xC7, 0xFC, 0x61, 31 | 0x8C, 0x31, 0xFC, 0x3F, 0x84, 0x19, 0x83, 0x30, 0x6F, 0xFB, 0xFE, 0x00, 32 | 0x0F, 0xF1, 0xFF, 0x30, 0x66, 0x06, 0x60, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 33 | 0xE0, 0xC7, 0xF8, 0x3F, 0x00, 0x3F, 0x87, 0xF8, 0x63, 0x8C, 0x31, 0x06, 34 | 0x60, 0xCC, 0x19, 0x86, 0x31, 0xCF, 0xF3, 0xF8, 0x00, 0x3F, 0xE3, 0xFE, 35 | 0x18, 0x61, 0xB6, 0x1F, 0x01, 0xF0, 0x32, 0x03, 0x00, 0x30, 0x4F, 0xFC, 36 | 0xFF, 0xC0, 0x3F, 0xF3, 0xFE, 0x18, 0x61, 0xB6, 0x1F, 0x03, 0xF0, 0x32, 37 | 0x03, 0x00, 0x30, 0x0F, 0xC0, 0xFC, 0x00, 0x0F, 0xE3, 0xFC, 0xC1, 0x30, 38 | 0x06, 0x01, 0x80, 0x31, 0xF6, 0x3E, 0xE1, 0x9F, 0xF0, 0xF8, 0x00, 0x1E, 39 | 0xF3, 0xCF, 0x18, 0x61, 0x84, 0x10, 0xC3, 0xFC, 0x3F, 0xC3, 0x08, 0x31, 40 | 0x8F, 0xBC, 0xFB, 0xC0, 0x3F, 0xCF, 0xF0, 0x60, 0x10, 0x0C, 0x03, 0x00, 41 | 0xC0, 0x20, 0x18, 0x3F, 0xCF, 0xF0, 0x07, 0xF0, 0x7F, 0x00, 0x80, 0x18, 42 | 0x01, 0x80, 0x18, 0x61, 0x84, 0x10, 0xC3, 0x0F, 0xE0, 0x7C, 0x00, 0x3E, 43 | 0xE7, 0xFC, 0x66, 0x0D, 0x81, 0x60, 0x7C, 0x0E, 0xC1, 0x98, 0x31, 0x1F, 44 | 0x3B, 0xE7, 0x00, 0x3F, 0x07, 0xE0, 0x30, 0x06, 0x00, 0xC0, 0x10, 0x06, 45 | 0x00, 0xC3, 0x18, 0x6F, 0xFB, 0xFF, 0x00, 0x38, 0x39, 0xC3, 0xC7, 0x3C, 46 | 0x79, 0xE3, 0xDA, 0x1F, 0xF0, 0x9D, 0x8C, 0xCC, 0x60, 0x67, 0xCF, 0x3C, 47 | 0x78, 0x3C, 0xF9, 0xE7, 0x87, 0x18, 0x3C, 0xC1, 0x66, 0x1B, 0xB0, 0xCD, 48 | 0x06, 0x78, 0x31, 0xC3, 0xCE, 0x3E, 0x30, 0x0F, 0x0F, 0xE7, 0x1D, 0x83, 49 | 0xC0, 0xF0, 0x3C, 0x0F, 0x06, 0xE3, 0x9F, 0xC3, 0xC0, 0x3F, 0xC7, 0xFC, 50 | 0x61, 0x8C, 0x31, 0x8E, 0x3F, 0x87, 0xE1, 0x80, 0x30, 0x0F, 0xC3, 0xF0, 51 | 0x00, 0x0F, 0x0F, 0xE7, 0x1D, 0x83, 0xC0, 0xF0, 0x3C, 0x0F, 0x06, 0xE3, 52 | 0x1F, 0xC3, 0xC0, 0x80, 0x7F, 0x3F, 0xC0, 0x3F, 0xC3, 0xFE, 0x18, 0x61, 53 | 0x86, 0x10, 0xE3, 0xFC, 0x3F, 0x83, 0x18, 0x31, 0xCF, 0x8F, 0xF8, 0x70, 54 | 0x1E, 0xCF, 0xF7, 0x19, 0x80, 0x70, 0x1F, 0x81, 0xF3, 0x0C, 0xC3, 0x3F, 55 | 0x8B, 0xC0, 0x7F, 0xCF, 0xF9, 0x93, 0x66, 0x60, 0xC0, 0x18, 0x02, 0x00, 56 | 0xC0, 0x18, 0x0F, 0xC1, 0xF8, 0x00, 0xF9, 0xFF, 0x7D, 0x83, 0x30, 0x64, 57 | 0x09, 0x83, 0x30, 0x66, 0x0C, 0xE3, 0x0F, 0xC0, 0xF0, 0x00, 0xF9, 0xFE, 58 | 0x3D, 0x83, 0x30, 0xC6, 0x30, 0xE6, 0x0D, 0x81, 0xB0, 0x3C, 0x07, 0x00, 59 | 0x60, 0x00, 0xF9, 0xFF, 0x3D, 0x83, 0x36, 0x64, 0xC8, 0xBF, 0x35, 0xE7, 60 | 0xB8, 0xE7, 0x1C, 0xE3, 0x18, 0x00, 0x3C, 0xF3, 0xCF, 0x1C, 0xC0, 0xD8, 61 | 0x0F, 0x00, 0x60, 0x0F, 0x01, 0xB8, 0x31, 0x8F, 0x3C, 0xF3, 0xC0, 0x79, 62 | 0xEE, 0x38, 0xC6, 0x19, 0x81, 0xE0, 0x38, 0x06, 0x00, 0xC0, 0x18, 0x0F, 63 | 0xC3, 0xF8, 0x00, 0x3F, 0xCF, 0xF3, 0x18, 0xCC, 0x06, 0x03, 0x01, 0x80, 64 | 0xC6, 0x61, 0xBF, 0xCF, 0xF0, 0x1E, 0x3C, 0xC1, 0x83, 0x06, 0x08, 0x30, 65 | 0x60, 0xC1, 0x06, 0x0F, 0x1E, 0x00, 0x06, 0x31, 0x86, 0x31, 0x8C, 0x31, 66 | 0x8C, 0x61, 0x8C, 0x60, 0x1E, 0x78, 0x30, 0x60, 0xC1, 0x86, 0x0C, 0x18, 67 | 0x30, 0x41, 0x8F, 0x1E, 0x00, 0x08, 0x1C, 0x3C, 0x76, 0xE7, 0xC3, 0x7F, 68 | 0xFF, 0xFC, 0x88, 0x80, 0x0F, 0x07, 0xE1, 0xF9, 0xFE, 0xE3, 0x30, 0xCF, 69 | 0xFD, 0xFF, 0x38, 0x07, 0x00, 0x60, 0x0F, 0xC1, 0xFC, 0x71, 0xCC, 0x19, 70 | 0x83, 0x30, 0xDF, 0xFB, 0xBC, 0x00, 0x1F, 0xCF, 0xF6, 0x1B, 0x00, 0xC0, 71 | 0x30, 0x0F, 0xF1, 0xF8, 0x01, 0xE0, 0x38, 0x03, 0x0F, 0x63, 0xFC, 0xC3, 72 | 0x30, 0x66, 0x0C, 0xC3, 0x9F, 0xF9, 0xF7, 0x00, 0x1F, 0x1F, 0xD8, 0x3F, 73 | 0xFF, 0xFE, 0x1B, 0xFC, 0xF8, 0x07, 0xC3, 0xF1, 0x81, 0xFE, 0x7F, 0x84, 74 | 0x03, 0x00, 0xC0, 0x30, 0x3F, 0x8F, 0xE0, 0x1E, 0xE7, 0xFD, 0x86, 0x60, 75 | 0xCC, 0x19, 0xC6, 0x3F, 0xC1, 0xD8, 0x03, 0x00, 0xE1, 0xF8, 0x3E, 0x00, 76 | 0x38, 0x1E, 0x01, 0x00, 0xDC, 0x3F, 0x8C, 0x62, 0x19, 0x84, 0x63, 0x3D, 77 | 0xFF, 0x7C, 0x06, 0x03, 0x00, 0x03, 0xC3, 0xE0, 0x20, 0x30, 0x18, 0x0C, 78 | 0x3F, 0xFF, 0xE0, 0x01, 0x81, 0x80, 0x07, 0xF3, 0xF8, 0x0C, 0x04, 0x06, 79 | 0x03, 0x01, 0x80, 0xC0, 0x40, 0x67, 0xE3, 0xE0, 0x38, 0x0E, 0x01, 0x80, 80 | 0x4F, 0x37, 0xCF, 0x83, 0xC0, 0xF0, 0x26, 0x39, 0xEE, 0x78, 0x1F, 0x0F, 81 | 0x01, 0x80, 0xC0, 0x60, 0x20, 0x30, 0x18, 0x0C, 0x3F, 0xFF, 0xE0, 0x7E, 82 | 0xE7, 0xFF, 0x33, 0x32, 0x63, 0x66, 0x36, 0x62, 0xF7, 0x7F, 0x67, 0x77, 83 | 0x8F, 0xF8, 0xC3, 0x10, 0x66, 0x08, 0xC3, 0x3C, 0x7F, 0x8F, 0x1F, 0x0F, 84 | 0xE6, 0x1F, 0x03, 0xC0, 0xF8, 0x67, 0xF0, 0xF8, 0x3F, 0xE3, 0xFF, 0x1C, 85 | 0x31, 0x83, 0x18, 0x31, 0x86, 0x3F, 0xE3, 0x78, 0x30, 0x03, 0x00, 0xFC, 86 | 0x0F, 0x80, 0x1E, 0xEF, 0xFD, 0x86, 0x60, 0xCC, 0x19, 0xC7, 0x3F, 0xE1, 87 | 0xE8, 0x03, 0x00, 0x60, 0x3E, 0x07, 0xC0, 0x39, 0xDF, 0xF1, 0xC0, 0x60, 88 | 0x10, 0x0C, 0x0F, 0xF3, 0xF8, 0x1F, 0x7F, 0x63, 0x7E, 0x1F, 0xC3, 0xFE, 89 | 0xFC, 0x10, 0x08, 0x0C, 0x1F, 0xEF, 0xF1, 0x80, 0x80, 0xC0, 0x60, 0x3F, 90 | 0x8F, 0x80, 0xF3, 0xFC, 0xF6, 0x09, 0x86, 0x61, 0x98, 0xE7, 0xF8, 0xFE, 91 | 0xFB, 0xFF, 0x7C, 0xC6, 0x19, 0x83, 0x60, 0x6C, 0x07, 0x00, 0xC0, 0xF1, 92 | 0xFE, 0x3D, 0xB3, 0x37, 0xC7, 0xF8, 0xEE, 0x1D, 0xC3, 0x30, 0x79, 0xEF, 93 | 0x38, 0xEE, 0x0F, 0x01, 0xE0, 0x6E, 0x3C, 0xE7, 0xBC, 0x3C, 0xF3, 0x8F, 94 | 0x18, 0xC1, 0x9C, 0x19, 0x81, 0xF0, 0x0E, 0x00, 0xE0, 0x0C, 0x01, 0x80, 95 | 0xFC, 0x0F, 0xC0, 0x7F, 0xBF, 0xD9, 0xC1, 0x83, 0x83, 0x1B, 0xFD, 0xFE, 96 | 0x06, 0x1C, 0x60, 0xC1, 0x86, 0x3C, 0x70, 0x30, 0x41, 0x83, 0x07, 0x06, 97 | 0x00, 0x33, 0x32, 0x26, 0x66, 0x44, 0xCC, 0xC8, 0x0C, 0x0E, 0x04, 0x0C, 98 | 0x0C, 0x0C, 0x0F, 0x0F, 0x18, 0x18, 0x10, 0x30, 0xF0, 0xE0, 0x38, 0x7C, 99 | 0xF7, 0xC1, 0xC0 }; 100 | 101 | const GFXglyph FreeMonoBoldOblique9pt7bGlyphs[] PROGMEM = { 102 | { 0, 0, 0, 11, 0, 1 }, // 0x20 ' ' 103 | { 0, 5, 11, 11, 4, -10 }, // 0x21 '!' 104 | { 7, 7, 5, 11, 4, -10 }, // 0x22 '"' 105 | { 12, 9, 12, 11, 2, -10 }, // 0x23 '#' 106 | { 26, 9, 14, 11, 2, -11 }, // 0x24 '$' 107 | { 42, 9, 11, 11, 2, -10 }, // 0x25 '%' 108 | { 55, 8, 10, 11, 2, -9 }, // 0x26 '&' 109 | { 65, 2, 5, 11, 6, -10 }, // 0x27 ''' 110 | { 67, 5, 14, 11, 5, -10 }, // 0x28 '(' 111 | { 76, 5, 14, 11, 2, -10 }, // 0x29 ')' 112 | { 85, 8, 7, 11, 3, -10 }, // 0x2A '*' 113 | { 92, 9, 9, 11, 2, -8 }, // 0x2B '+' 114 | { 103, 4, 5, 11, 2, -1 }, // 0x2C ',' 115 | { 106, 9, 2, 11, 2, -5 }, // 0x2D '-' 116 | { 109, 3, 2, 11, 4, -1 }, // 0x2E '.' 117 | { 110, 11, 15, 11, 1, -12 }, // 0x2F '/' 118 | { 131, 9, 12, 11, 2, -11 }, // 0x30 '0' 119 | { 145, 8, 12, 11, 2, -11 }, // 0x31 '1' 120 | { 157, 10, 12, 11, 1, -11 }, // 0x32 '2' 121 | { 172, 9, 12, 11, 2, -11 }, // 0x33 '3' 122 | { 186, 8, 10, 11, 2, -9 }, // 0x34 '4' 123 | { 196, 9, 11, 11, 3, -10 }, // 0x35 '5' 124 | { 209, 9, 12, 11, 3, -11 }, // 0x36 '6' 125 | { 223, 8, 11, 11, 3, -10 }, // 0x37 '7' 126 | { 234, 9, 12, 11, 2, -11 }, // 0x38 '8' 127 | { 248, 8, 12, 11, 3, -11 }, // 0x39 '9' 128 | { 260, 4, 8, 11, 4, -7 }, // 0x3A ':' 129 | { 264, 6, 11, 11, 2, -7 }, // 0x3B ';' 130 | { 273, 10, 8, 11, 2, -8 }, // 0x3C '<' 131 | { 283, 10, 6, 11, 1, -7 }, // 0x3D '=' 132 | { 291, 10, 8, 11, 1, -8 }, // 0x3E '>' 133 | { 301, 7, 11, 11, 4, -10 }, // 0x3F '?' 134 | { 311, 9, 15, 11, 2, -11 }, // 0x40 '@' 135 | { 328, 11, 11, 11, 0, -10 }, // 0x41 'A' 136 | { 344, 11, 11, 11, 0, -10 }, // 0x42 'B' 137 | { 360, 12, 11, 11, 1, -10 }, // 0x43 'C' 138 | { 377, 11, 11, 11, 0, -10 }, // 0x44 'D' 139 | { 393, 12, 11, 11, 0, -10 }, // 0x45 'E' 140 | { 410, 12, 11, 11, 0, -10 }, // 0x46 'F' 141 | { 427, 11, 11, 11, 1, -10 }, // 0x47 'G' 142 | { 443, 12, 11, 11, 0, -10 }, // 0x48 'H' 143 | { 460, 10, 11, 11, 1, -10 }, // 0x49 'I' 144 | { 474, 12, 11, 11, 0, -10 }, // 0x4A 'J' 145 | { 491, 11, 11, 11, 0, -10 }, // 0x4B 'K' 146 | { 507, 11, 11, 11, 0, -10 }, // 0x4C 'L' 147 | { 523, 13, 11, 11, 0, -10 }, // 0x4D 'M' 148 | { 541, 13, 11, 11, 0, -10 }, // 0x4E 'N' 149 | { 559, 10, 11, 11, 1, -10 }, // 0x4F 'O' 150 | { 573, 11, 11, 11, 0, -10 }, // 0x50 'P' 151 | { 589, 10, 14, 11, 1, -10 }, // 0x51 'Q' 152 | { 607, 12, 11, 11, 0, -10 }, // 0x52 'R' 153 | { 624, 10, 11, 11, 2, -10 }, // 0x53 'S' 154 | { 638, 11, 11, 11, 1, -10 }, // 0x54 'T' 155 | { 654, 11, 11, 11, 1, -10 }, // 0x55 'U' 156 | { 670, 11, 11, 11, 1, -10 }, // 0x56 'V' 157 | { 686, 11, 11, 11, 1, -10 }, // 0x57 'W' 158 | { 702, 12, 11, 11, 0, -10 }, // 0x58 'X' 159 | { 719, 11, 11, 11, 1, -10 }, // 0x59 'Y' 160 | { 735, 10, 11, 11, 1, -10 }, // 0x5A 'Z' 161 | { 749, 7, 14, 11, 4, -10 }, // 0x5B '[' 162 | { 762, 5, 15, 11, 4, -12 }, // 0x5C '\' 163 | { 772, 7, 14, 11, 2, -10 }, // 0x5D ']' 164 | { 785, 8, 6, 11, 3, -11 }, // 0x5E '^' 165 | { 791, 11, 2, 11, -1, 3 }, // 0x5F '_' 166 | { 794, 3, 3, 11, 5, -11 }, // 0x60 '`' 167 | { 796, 10, 8, 11, 1, -7 }, // 0x61 'a' 168 | { 806, 11, 11, 11, 0, -10 }, // 0x62 'b' 169 | { 822, 10, 8, 11, 1, -7 }, // 0x63 'c' 170 | { 832, 11, 11, 11, 1, -10 }, // 0x64 'd' 171 | { 848, 9, 8, 11, 1, -7 }, // 0x65 'e' 172 | { 857, 10, 11, 11, 2, -10 }, // 0x66 'f' 173 | { 871, 11, 12, 11, 1, -7 }, // 0x67 'g' 174 | { 888, 10, 11, 11, 1, -10 }, // 0x68 'h' 175 | { 902, 9, 11, 11, 1, -10 }, // 0x69 'i' 176 | { 915, 9, 15, 11, 1, -10 }, // 0x6A 'j' 177 | { 932, 10, 11, 11, 1, -10 }, // 0x6B 'k' 178 | { 946, 9, 11, 11, 1, -10 }, // 0x6C 'l' 179 | { 959, 12, 8, 11, 0, -7 }, // 0x6D 'm' 180 | { 971, 11, 8, 11, 1, -7 }, // 0x6E 'n' 181 | { 982, 10, 8, 11, 1, -7 }, // 0x6F 'o' 182 | { 992, 12, 12, 11, -1, -7 }, // 0x70 'p' 183 | { 1010, 11, 12, 11, 1, -7 }, // 0x71 'q' 184 | { 1027, 10, 8, 11, 1, -7 }, // 0x72 'r' 185 | { 1037, 8, 8, 11, 2, -7 }, // 0x73 's' 186 | { 1045, 9, 11, 11, 1, -10 }, // 0x74 't' 187 | { 1058, 10, 8, 11, 1, -7 }, // 0x75 'u' 188 | { 1068, 11, 8, 11, 1, -7 }, // 0x76 'v' 189 | { 1079, 11, 8, 11, 1, -7 }, // 0x77 'w' 190 | { 1090, 11, 8, 11, 1, -7 }, // 0x78 'x' 191 | { 1101, 12, 12, 11, 0, -7 }, // 0x79 'y' 192 | { 1119, 9, 8, 11, 2, -7 }, // 0x7A 'z' 193 | { 1128, 7, 14, 11, 3, -10 }, // 0x7B '{' 194 | { 1141, 4, 14, 11, 4, -10 }, // 0x7C '|' 195 | { 1148, 8, 14, 11, 2, -10 }, // 0x7D '}' 196 | { 1162, 9, 4, 11, 2, -6 } }; // 0x7E '~' 197 | 198 | const GFXfont FreeMonoBoldOblique9pt7b PROGMEM = { 199 | (uint8_t *)FreeMonoBoldOblique9pt7bBitmaps, 200 | (GFXglyph *)FreeMonoBoldOblique9pt7bGlyphs, 201 | 0x20, 0x7E, 18 }; 202 | 203 | // Approx. 1839 bytes 204 | -------------------------------------------------------------------------------- /Fonts/FreeSansBold9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeSansBold9pt7bBitmaps[] PROGMEM = { 2 | 0xFF, 0xFF, 0xFE, 0x48, 0x7E, 0xEF, 0xDF, 0xBF, 0x74, 0x40, 0x19, 0x86, 3 | 0x67, 0xFD, 0xFF, 0x33, 0x0C, 0xC3, 0x33, 0xFE, 0xFF, 0x99, 0x86, 0x61, 4 | 0x90, 0x10, 0x1F, 0x1F, 0xDE, 0xFF, 0x3F, 0x83, 0xC0, 0xFC, 0x1F, 0x09, 5 | 0xFC, 0xFE, 0xF7, 0xF1, 0xE0, 0x40, 0x38, 0x10, 0x7C, 0x30, 0xC6, 0x20, 6 | 0xC6, 0x40, 0xC6, 0x40, 0x7C, 0x80, 0x39, 0x9C, 0x01, 0x3E, 0x03, 0x63, 7 | 0x02, 0x63, 0x04, 0x63, 0x0C, 0x3E, 0x08, 0x1C, 0x0E, 0x01, 0xF8, 0x3B, 8 | 0x83, 0xB8, 0x3F, 0x01, 0xE0, 0x3E, 0x67, 0x76, 0xE3, 0xEE, 0x1C, 0xF3, 9 | 0xC7, 0xFE, 0x3F, 0x70, 0xFF, 0xF4, 0x18, 0x63, 0x1C, 0x73, 0x8E, 0x38, 10 | 0xE3, 0x8E, 0x18, 0x70, 0xC3, 0x06, 0x08, 0x61, 0x83, 0x0E, 0x38, 0x71, 11 | 0xC7, 0x1C, 0x71, 0xC6, 0x38, 0xE3, 0x18, 0x40, 0x21, 0x3E, 0x45, 0x28, 12 | 0x38, 0x70, 0xE7, 0xFF, 0xE7, 0x0E, 0x1C, 0xFC, 0x9C, 0xFF, 0xC0, 0xFC, 13 | 0x08, 0xC4, 0x23, 0x10, 0x84, 0x62, 0x11, 0x88, 0x00, 0x3E, 0x3F, 0x9D, 14 | 0xDC, 0x7E, 0x3F, 0x1F, 0x8F, 0xC7, 0xE3, 0xF1, 0xDD, 0xCF, 0xE3, 0xE0, 15 | 0x08, 0xFF, 0xF3, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x80, 0x3E, 0x3F, 0xB8, 16 | 0xFC, 0x70, 0x38, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0F, 0xF7, 0xF8, 17 | 0x3C, 0x7F, 0xE7, 0xE7, 0x07, 0x0C, 0x0E, 0x07, 0x07, 0xE7, 0xE7, 0x7E, 18 | 0x3C, 0x0E, 0x1E, 0x1E, 0x2E, 0x2E, 0x4E, 0x4E, 0x8E, 0xFF, 0xFF, 0x0E, 19 | 0x0E, 0x0E, 0x7F, 0x3F, 0x90, 0x18, 0x0D, 0xE7, 0xFB, 0x9E, 0x07, 0x03, 20 | 0x81, 0xF1, 0xFF, 0xE7, 0xC0, 0x3E, 0x3F, 0x9C, 0xFC, 0x0E, 0xE7, 0xFB, 21 | 0xDF, 0xC7, 0xE3, 0xF1, 0xDD, 0xEF, 0xE3, 0xE0, 0xFF, 0xFF, 0xC0, 0xE0, 22 | 0xE0, 0x60, 0x70, 0x30, 0x38, 0x1C, 0x0C, 0x0E, 0x07, 0x03, 0x80, 0x3F, 23 | 0x1F, 0xEE, 0x3F, 0x87, 0xE3, 0xCF, 0xC7, 0xFB, 0xCF, 0xE1, 0xF8, 0x7F, 24 | 0x3D, 0xFE, 0x3F, 0x00, 0x3E, 0x3F, 0xBD, 0xDC, 0x7E, 0x3F, 0x1F, 0xDE, 25 | 0xFF, 0x3B, 0x81, 0xF9, 0xCF, 0xE3, 0xC0, 0xFC, 0x00, 0x07, 0xE0, 0xFC, 26 | 0x00, 0x07, 0xE5, 0xE0, 0x00, 0x83, 0xC7, 0xDF, 0x0C, 0x07, 0x80, 0xF8, 27 | 0x1F, 0x01, 0x80, 0xFF, 0xFF, 0xC0, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x70, 28 | 0x3F, 0x03, 0xE0, 0x38, 0x7D, 0xF1, 0xE0, 0x80, 0x00, 0x3E, 0x3F, 0xB8, 29 | 0xFC, 0x70, 0x38, 0x1C, 0x1C, 0x1C, 0x1C, 0x0E, 0x00, 0x03, 0x81, 0xC0, 30 | 0x03, 0xF0, 0x0F, 0xFC, 0x1E, 0x0E, 0x38, 0x02, 0x70, 0xE9, 0x63, 0x19, 31 | 0xC2, 0x19, 0xC6, 0x11, 0xC6, 0x33, 0xC6, 0x32, 0x63, 0xFE, 0x73, 0xDC, 32 | 0x3C, 0x00, 0x1F, 0xF8, 0x07, 0xF0, 0x07, 0x00, 0xF0, 0x0F, 0x80, 0xF8, 33 | 0x1D, 0x81, 0x9C, 0x19, 0xC3, 0x8C, 0x3F, 0xE7, 0xFE, 0x70, 0x66, 0x07, 34 | 0xE0, 0x70, 0xFF, 0x9F, 0xFB, 0x83, 0xF0, 0x7E, 0x0F, 0xFF, 0x3F, 0xF7, 35 | 0x06, 0xE0, 0xFC, 0x1F, 0x83, 0xFF, 0xEF, 0xF8, 0x1F, 0x83, 0xFE, 0x78, 36 | 0xE7, 0x07, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x07, 0x07, 0x78, 37 | 0xF3, 0xFE, 0x1F, 0x80, 0xFF, 0x8F, 0xFC, 0xE0, 0xEE, 0x0E, 0xE0, 0x7E, 38 | 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x0E, 0xE0, 0xEF, 0xFC, 0xFF, 0x80, 39 | 0xFF, 0xFF, 0xF8, 0x1C, 0x0E, 0x07, 0xFB, 0xFD, 0xC0, 0xE0, 0x70, 0x38, 40 | 0x1F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0x1C, 0x0E, 0x07, 0xFB, 0xFD, 0xC0, 41 | 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x00, 0x0F, 0x87, 0xF9, 0xE3, 0xB8, 0x3E, 42 | 0x01, 0xC0, 0x38, 0xFF, 0x1F, 0xE0, 0x6E, 0x0D, 0xE3, 0x9F, 0xD0, 0xF2, 43 | 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xFF, 0xFF, 0xFF, 0x07, 0xE0, 44 | 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x07, 45 | 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xE7, 0xE7, 0xE7, 0x7E, 0x3C, 46 | 0xE0, 0xEE, 0x1C, 0xE3, 0x8E, 0x70, 0xEE, 0x0F, 0xC0, 0xFE, 0x0F, 0x70, 47 | 0xE7, 0x0E, 0x38, 0xE1, 0xCE, 0x0E, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 48 | 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xF8, 0x7F, 0xE1, 49 | 0xFF, 0x87, 0xFE, 0x1F, 0xEC, 0x7F, 0xB3, 0x7E, 0xCD, 0xFB, 0x37, 0xEC, 50 | 0xDF, 0x9E, 0x7E, 0x79, 0xF9, 0xE7, 0xE7, 0x9C, 0xE0, 0xFE, 0x1F, 0xC3, 51 | 0xFC, 0x7F, 0xCF, 0xD9, 0xFB, 0xBF, 0x37, 0xE7, 0xFC, 0x7F, 0x87, 0xF0, 52 | 0xFE, 0x0E, 0x0F, 0x81, 0xFF, 0x1E, 0x3C, 0xE0, 0xEE, 0x03, 0xF0, 0x1F, 53 | 0x80, 0xFC, 0x07, 0xE0, 0x3B, 0x83, 0x9E, 0x3C, 0x7F, 0xC0, 0xF8, 0x00, 54 | 0xFF, 0x9F, 0xFB, 0x87, 0xF0, 0x7E, 0x0F, 0xC3, 0xFF, 0xF7, 0xFC, 0xE0, 55 | 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x00, 0x0F, 0x81, 0xFF, 0x1E, 0x3C, 0xE0, 56 | 0xEE, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE1, 0xBB, 0x8F, 0x9E, 0x3C, 57 | 0x7F, 0xE0, 0xFB, 0x80, 0x08, 0xFF, 0x8F, 0xFC, 0xE0, 0xEE, 0x0E, 0xE0, 58 | 0xEE, 0x0E, 0xFF, 0xCF, 0xFC, 0xE0, 0xEE, 0x0E, 0xE0, 0xEE, 0x0E, 0xE0, 59 | 0xF0, 0x3F, 0x0F, 0xFB, 0xC7, 0xF0, 0x7E, 0x01, 0xFC, 0x1F, 0xF0, 0x3F, 60 | 0x00, 0xFC, 0x1D, 0xC7, 0xBF, 0xE1, 0xF8, 0xFF, 0xFF, 0xC7, 0x03, 0x81, 61 | 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0xFC, 62 | 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 63 | 0xC7, 0xBF, 0xE1, 0xF0, 0x60, 0x67, 0x0E, 0x70, 0xE3, 0x0C, 0x30, 0xC3, 64 | 0x9C, 0x19, 0x81, 0x98, 0x1F, 0x80, 0xF0, 0x0F, 0x00, 0xF0, 0x06, 0x00, 65 | 0x61, 0xC3, 0xB8, 0xE1, 0x9C, 0x70, 0xCE, 0x3C, 0xE3, 0x36, 0x71, 0x9B, 66 | 0x30, 0xED, 0x98, 0x36, 0x7C, 0x1B, 0x3C, 0x0F, 0x1E, 0x07, 0x8F, 0x01, 67 | 0xC3, 0x80, 0xE1, 0x80, 0x70, 0xE7, 0x8E, 0x39, 0xC1, 0xF8, 0x1F, 0x80, 68 | 0xF0, 0x07, 0x00, 0xF0, 0x1F, 0x81, 0x9C, 0x39, 0xC7, 0x0E, 0x70, 0xE0, 69 | 0xE0, 0xFC, 0x39, 0xC7, 0x18, 0xC3, 0xB8, 0x36, 0x07, 0xC0, 0x70, 0x0E, 70 | 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0xFF, 0xFF, 0xC0, 0xE0, 0xE0, 0xF0, 71 | 0x70, 0x70, 0x70, 0x78, 0x38, 0x38, 0x1F, 0xFF, 0xF8, 0xFF, 0xEE, 0xEE, 72 | 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0xF0, 0x86, 0x10, 0x86, 0x10, 0x84, 0x30, 73 | 0x84, 0x30, 0x80, 0xFF, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x7F, 0xF0, 74 | 0x18, 0x1C, 0x3C, 0x3E, 0x36, 0x66, 0x63, 0xC3, 0xFF, 0xC0, 0xCC, 0x3F, 75 | 0x1F, 0xEE, 0x38, 0x0E, 0x3F, 0x9E, 0xEE, 0x3B, 0x9E, 0xFF, 0x9E, 0xE0, 76 | 0xE0, 0x38, 0x0E, 0x03, 0xBC, 0xFF, 0xBC, 0xEE, 0x1F, 0x87, 0xE1, 0xF8, 77 | 0x7F, 0x3B, 0xFE, 0xEF, 0x00, 0x1F, 0x3F, 0xDC, 0x7C, 0x0E, 0x07, 0x03, 78 | 0x80, 0xE3, 0x7F, 0x8F, 0x00, 0x03, 0x81, 0xC0, 0xE7, 0x77, 0xFB, 0xBF, 79 | 0x8F, 0xC7, 0xE3, 0xF1, 0xFD, 0xEF, 0xF3, 0xB8, 0x3E, 0x3F, 0x9C, 0xDC, 80 | 0x3F, 0xFF, 0xFF, 0x81, 0xC3, 0x7F, 0x8F, 0x00, 0x3B, 0xDD, 0xFF, 0xB9, 81 | 0xCE, 0x73, 0x9C, 0xE7, 0x00, 0x3B, 0xBF, 0xDD, 0xFC, 0x7E, 0x3F, 0x1F, 82 | 0x8F, 0xEF, 0x7F, 0x9D, 0xC0, 0xFC, 0x77, 0xF1, 0xF0, 0xE0, 0x70, 0x38, 83 | 0x1D, 0xEF, 0xFF, 0x9F, 0x8F, 0xC7, 0xE3, 0xF1, 0xF8, 0xFC, 0x7E, 0x38, 84 | 0xFC, 0x7F, 0xFF, 0xFF, 0xFE, 0x77, 0x07, 0x77, 0x77, 0x77, 0x77, 0x77, 85 | 0x7F, 0xE0, 0xE0, 0x70, 0x38, 0x1C, 0x7E, 0x77, 0x73, 0xF1, 0xF8, 0xFE, 86 | 0x77, 0x39, 0xDC, 0x6E, 0x38, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xEF, 0x7B, 87 | 0xFF, 0xFE, 0x39, 0xF8, 0xE7, 0xE3, 0x9F, 0x8E, 0x7E, 0x39, 0xF8, 0xE7, 88 | 0xE3, 0x9F, 0x8E, 0x70, 0xEF, 0x7F, 0xF8, 0xFC, 0x7E, 0x3F, 0x1F, 0x8F, 89 | 0xC7, 0xE3, 0xF1, 0xC0, 0x1E, 0x1F, 0xE7, 0x3B, 0x87, 0xE1, 0xF8, 0x7E, 90 | 0x1D, 0xCE, 0x7F, 0x87, 0x80, 0xEF, 0x3F, 0xEF, 0x3B, 0x87, 0xE1, 0xF8, 91 | 0x7E, 0x1F, 0xCE, 0xFF, 0xBB, 0xCE, 0x03, 0x80, 0xE0, 0x38, 0x00, 0x3B, 92 | 0xBF, 0xFD, 0xFC, 0x7E, 0x3F, 0x1F, 0x8F, 0xEF, 0x7F, 0x9D, 0xC0, 0xE0, 93 | 0x70, 0x38, 0x1C, 0xEF, 0xFF, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x80, 0x3E, 94 | 0x3F, 0xB8, 0xFC, 0x0F, 0xC3, 0xFC, 0x3F, 0xC7, 0xFF, 0x1F, 0x00, 0x73, 95 | 0xBF, 0xF7, 0x39, 0xCE, 0x73, 0x9E, 0x70, 0xE3, 0xF1, 0xF8, 0xFC, 0x7E, 96 | 0x3F, 0x1F, 0x8F, 0xC7, 0xFF, 0xBD, 0xC0, 0xE1, 0x98, 0x67, 0x39, 0xCC, 97 | 0x33, 0x0D, 0xC3, 0xE0, 0x78, 0x1E, 0x07, 0x00, 0xE3, 0x1D, 0x9E, 0x66, 98 | 0x79, 0x99, 0xE6, 0x77, 0xB8, 0xD2, 0xC3, 0xCF, 0x0F, 0x3C, 0x3C, 0xF0, 99 | 0x73, 0x80, 0x73, 0x9C, 0xE3, 0xF0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0xFC, 100 | 0x73, 0x9C, 0xE0, 0xE1, 0xD8, 0x67, 0x39, 0xCE, 0x33, 0x0E, 0xC3, 0xE0, 101 | 0x78, 0x1E, 0x03, 0x00, 0xC0, 0x70, 0x38, 0x0E, 0x00, 0xFE, 0xFE, 0x0E, 102 | 0x1C, 0x38, 0x38, 0x70, 0xE0, 0xFF, 0xFF, 0x37, 0x66, 0x66, 0x6E, 0xE6, 103 | 0x66, 0x66, 0x67, 0x30, 0xFF, 0xFF, 0x80, 0xCE, 0x66, 0x66, 0x67, 0x76, 104 | 0x66, 0x66, 0x6E, 0xC0, 0x71, 0x8E }; 105 | 106 | const GFXglyph FreeSansBold9pt7bGlyphs[] PROGMEM = { 107 | { 0, 0, 0, 5, 0, 1 }, // 0x20 ' ' 108 | { 0, 3, 13, 6, 2, -12 }, // 0x21 '!' 109 | { 5, 7, 5, 9, 1, -12 }, // 0x22 '"' 110 | { 10, 10, 12, 10, 0, -11 }, // 0x23 '#' 111 | { 25, 9, 15, 10, 1, -13 }, // 0x24 '$' 112 | { 42, 16, 13, 16, 0, -12 }, // 0x25 '%' 113 | { 68, 12, 13, 13, 1, -12 }, // 0x26 '&' 114 | { 88, 3, 5, 5, 1, -12 }, // 0x27 ''' 115 | { 90, 6, 17, 6, 1, -12 }, // 0x28 '(' 116 | { 103, 6, 17, 6, 0, -12 }, // 0x29 ')' 117 | { 116, 5, 6, 7, 1, -12 }, // 0x2A '*' 118 | { 120, 7, 8, 11, 2, -7 }, // 0x2B '+' 119 | { 127, 3, 5, 4, 1, -1 }, // 0x2C ',' 120 | { 129, 5, 2, 6, 0, -5 }, // 0x2D '-' 121 | { 131, 3, 2, 4, 1, -1 }, // 0x2E '.' 122 | { 132, 5, 13, 5, 0, -12 }, // 0x2F '/' 123 | { 141, 9, 13, 10, 1, -12 }, // 0x30 '0' 124 | { 156, 5, 13, 10, 2, -12 }, // 0x31 '1' 125 | { 165, 9, 13, 10, 1, -12 }, // 0x32 '2' 126 | { 180, 8, 13, 10, 1, -12 }, // 0x33 '3' 127 | { 193, 8, 13, 10, 2, -12 }, // 0x34 '4' 128 | { 206, 9, 13, 10, 1, -12 }, // 0x35 '5' 129 | { 221, 9, 13, 10, 1, -12 }, // 0x36 '6' 130 | { 236, 9, 13, 10, 0, -12 }, // 0x37 '7' 131 | { 251, 10, 13, 10, 0, -12 }, // 0x38 '8' 132 | { 268, 9, 13, 10, 1, -12 }, // 0x39 '9' 133 | { 283, 3, 9, 4, 1, -8 }, // 0x3A ':' 134 | { 287, 3, 12, 4, 1, -8 }, // 0x3B ';' 135 | { 292, 9, 9, 11, 1, -8 }, // 0x3C '<' 136 | { 303, 9, 6, 11, 1, -6 }, // 0x3D '=' 137 | { 310, 9, 9, 11, 1, -8 }, // 0x3E '>' 138 | { 321, 9, 13, 11, 1, -12 }, // 0x3F '?' 139 | { 336, 16, 15, 18, 0, -12 }, // 0x40 '@' 140 | { 366, 12, 13, 13, 0, -12 }, // 0x41 'A' 141 | { 386, 11, 13, 13, 1, -12 }, // 0x42 'B' 142 | { 404, 12, 13, 13, 1, -12 }, // 0x43 'C' 143 | { 424, 12, 13, 13, 1, -12 }, // 0x44 'D' 144 | { 444, 9, 13, 12, 1, -12 }, // 0x45 'E' 145 | { 459, 9, 13, 11, 1, -12 }, // 0x46 'F' 146 | { 474, 11, 13, 14, 1, -12 }, // 0x47 'G' 147 | { 492, 11, 13, 13, 1, -12 }, // 0x48 'H' 148 | { 510, 3, 13, 6, 1, -12 }, // 0x49 'I' 149 | { 515, 8, 13, 10, 1, -12 }, // 0x4A 'J' 150 | { 528, 12, 13, 13, 1, -12 }, // 0x4B 'K' 151 | { 548, 8, 13, 11, 1, -12 }, // 0x4C 'L' 152 | { 561, 14, 13, 16, 1, -12 }, // 0x4D 'M' 153 | { 584, 11, 13, 14, 1, -12 }, // 0x4E 'N' 154 | { 602, 13, 13, 14, 1, -12 }, // 0x4F 'O' 155 | { 624, 11, 13, 12, 1, -12 }, // 0x50 'P' 156 | { 642, 13, 14, 14, 1, -12 }, // 0x51 'Q' 157 | { 665, 12, 13, 13, 1, -12 }, // 0x52 'R' 158 | { 685, 11, 13, 12, 1, -12 }, // 0x53 'S' 159 | { 703, 9, 13, 12, 2, -12 }, // 0x54 'T' 160 | { 718, 11, 13, 13, 1, -12 }, // 0x55 'U' 161 | { 736, 12, 13, 12, 0, -12 }, // 0x56 'V' 162 | { 756, 17, 13, 17, 0, -12 }, // 0x57 'W' 163 | { 784, 12, 13, 12, 0, -12 }, // 0x58 'X' 164 | { 804, 11, 13, 12, 1, -12 }, // 0x59 'Y' 165 | { 822, 9, 13, 11, 1, -12 }, // 0x5A 'Z' 166 | { 837, 4, 17, 6, 1, -12 }, // 0x5B '[' 167 | { 846, 5, 13, 5, 0, -12 }, // 0x5C '\' 168 | { 855, 4, 17, 6, 0, -12 }, // 0x5D ']' 169 | { 864, 8, 8, 11, 1, -12 }, // 0x5E '^' 170 | { 872, 10, 1, 10, 0, 4 }, // 0x5F '_' 171 | { 874, 3, 2, 5, 0, -12 }, // 0x60 '`' 172 | { 875, 10, 10, 10, 1, -9 }, // 0x61 'a' 173 | { 888, 10, 13, 11, 1, -12 }, // 0x62 'b' 174 | { 905, 9, 10, 10, 1, -9 }, // 0x63 'c' 175 | { 917, 9, 13, 11, 1, -12 }, // 0x64 'd' 176 | { 932, 9, 10, 10, 1, -9 }, // 0x65 'e' 177 | { 944, 5, 13, 6, 1, -12 }, // 0x66 'f' 178 | { 953, 9, 14, 11, 1, -9 }, // 0x67 'g' 179 | { 969, 9, 13, 11, 1, -12 }, // 0x68 'h' 180 | { 984, 3, 13, 5, 1, -12 }, // 0x69 'i' 181 | { 989, 4, 17, 5, 0, -12 }, // 0x6A 'j' 182 | { 998, 9, 13, 10, 1, -12 }, // 0x6B 'k' 183 | { 1013, 3, 13, 5, 1, -12 }, // 0x6C 'l' 184 | { 1018, 14, 10, 16, 1, -9 }, // 0x6D 'm' 185 | { 1036, 9, 10, 11, 1, -9 }, // 0x6E 'n' 186 | { 1048, 10, 10, 11, 1, -9 }, // 0x6F 'o' 187 | { 1061, 10, 14, 11, 1, -9 }, // 0x70 'p' 188 | { 1079, 9, 14, 11, 1, -9 }, // 0x71 'q' 189 | { 1095, 6, 10, 7, 1, -9 }, // 0x72 'r' 190 | { 1103, 9, 10, 10, 1, -9 }, // 0x73 's' 191 | { 1115, 5, 12, 6, 1, -11 }, // 0x74 't' 192 | { 1123, 9, 10, 11, 1, -9 }, // 0x75 'u' 193 | { 1135, 10, 10, 10, 0, -9 }, // 0x76 'v' 194 | { 1148, 14, 10, 14, 0, -9 }, // 0x77 'w' 195 | { 1166, 10, 10, 10, 0, -9 }, // 0x78 'x' 196 | { 1179, 10, 14, 10, 0, -9 }, // 0x79 'y' 197 | { 1197, 8, 10, 9, 1, -9 }, // 0x7A 'z' 198 | { 1207, 4, 17, 7, 1, -12 }, // 0x7B '{' 199 | { 1216, 1, 17, 5, 2, -12 }, // 0x7C '|' 200 | { 1219, 4, 17, 7, 2, -12 }, // 0x7D '}' 201 | { 1228, 8, 2, 9, 0, -4 } }; // 0x7E '~' 202 | 203 | const GFXfont FreeSansBold9pt7b PROGMEM = { 204 | (uint8_t *)FreeSansBold9pt7bBitmaps, 205 | (GFXglyph *)FreeSansBold9pt7bGlyphs, 206 | 0x20, 0x7E, 22 }; 207 | 208 | // Approx. 1902 bytes 209 | -------------------------------------------------------------------------------- /Fonts/FreeSerifBoldItalic9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeSerifBoldItalic9pt7bBitmaps[] PROGMEM = { 2 | 0x0C, 0x31, 0xC6, 0x18, 0x41, 0x08, 0x20, 0x0E, 0x38, 0xE0, 0xCF, 0x38, 3 | 0xA2, 0x88, 0x02, 0x40, 0xC8, 0x13, 0x06, 0x43, 0xFC, 0x32, 0x06, 0x40, 4 | 0x98, 0x7F, 0x84, 0xC0, 0x90, 0x32, 0x04, 0xC0, 0x01, 0x01, 0xF0, 0x4B, 5 | 0x99, 0x33, 0x24, 0x78, 0x07, 0x80, 0x38, 0x0B, 0x89, 0x31, 0x26, 0x64, 6 | 0xC7, 0x30, 0x3C, 0x04, 0x00, 0x38, 0x41, 0x9F, 0x06, 0x48, 0x31, 0x60, 7 | 0xCD, 0x03, 0x2C, 0x07, 0x27, 0x81, 0x39, 0x05, 0xC4, 0x26, 0x10, 0x98, 8 | 0x84, 0x66, 0x10, 0xE0, 0x03, 0x80, 0x22, 0x03, 0x10, 0x19, 0x00, 0xF0, 9 | 0x0F, 0x3C, 0xF8, 0xCC, 0xC4, 0xE7, 0x47, 0x3E, 0x38, 0xE1, 0xE7, 0x97, 10 | 0xCF, 0x00, 0xFA, 0x80, 0x08, 0x88, 0x84, 0x62, 0x10, 0x84, 0x21, 0x08, 11 | 0x41, 0x00, 0x20, 0x84, 0x10, 0x84, 0x21, 0x08, 0xC6, 0x23, 0x11, 0x00, 12 | 0x18, 0x18, 0xD6, 0x38, 0x18, 0xF7, 0x18, 0x18, 0x08, 0x04, 0x02, 0x01, 13 | 0x0F, 0xF8, 0x40, 0x20, 0x10, 0x08, 0x00, 0x6D, 0x95, 0x00, 0xFF, 0xC0, 14 | 0xFF, 0x80, 0x06, 0x0C, 0x30, 0x60, 0x83, 0x04, 0x18, 0x20, 0xC1, 0x06, 15 | 0x00, 0x0F, 0x0C, 0x8C, 0x6E, 0x37, 0x1B, 0x1F, 0x8F, 0xC7, 0xC7, 0x63, 16 | 0xB1, 0x89, 0x83, 0x80, 0x06, 0x1E, 0x0E, 0x0E, 0x0C, 0x0C, 0x1C, 0x18, 17 | 0x18, 0x18, 0x38, 0x38, 0xFC, 0x1F, 0x13, 0xD0, 0xE0, 0x70, 0x38, 0x38, 18 | 0x18, 0x18, 0x18, 0x08, 0x08, 0x4F, 0xCF, 0xE0, 0x1F, 0x11, 0xC0, 0xE0, 19 | 0x60, 0xC1, 0xF0, 0x38, 0x0C, 0x06, 0x03, 0x01, 0x19, 0x8F, 0x00, 0x00, 20 | 0x80, 0xC0, 0xE1, 0xE0, 0xB0, 0x98, 0x9C, 0x8C, 0xFF, 0x07, 0x03, 0x01, 21 | 0x80, 0x0F, 0x88, 0x08, 0x07, 0x83, 0xE0, 0x78, 0x1C, 0x06, 0x03, 0x01, 22 | 0x80, 0x9C, 0x87, 0x80, 0x03, 0x87, 0x07, 0x07, 0x07, 0x03, 0xE3, 0x99, 23 | 0xCC, 0xC6, 0x63, 0x33, 0x89, 0x87, 0x80, 0x3F, 0xBF, 0x90, 0x80, 0xC0, 24 | 0x40, 0x60, 0x20, 0x30, 0x30, 0x10, 0x18, 0x08, 0x00, 0x1E, 0x13, 0x31, 25 | 0x31, 0x3A, 0x1C, 0x1C, 0x6E, 0xC6, 0xC6, 0xC6, 0x44, 0x38, 0x0E, 0x1C, 26 | 0x8C, 0x6C, 0x36, 0x3B, 0x1D, 0x8E, 0x7E, 0x0E, 0x07, 0x07, 0x0E, 0x0C, 27 | 0x00, 0x39, 0xCE, 0x00, 0x03, 0x9C, 0xE0, 0x39, 0xCE, 0x00, 0x01, 0x8C, 28 | 0x22, 0x20, 0x00, 0x01, 0xC3, 0xC7, 0x8E, 0x06, 0x01, 0xE0, 0x3C, 0x07, 29 | 0x80, 0x40, 0xFF, 0x80, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x60, 0x1E, 0x03, 30 | 0xC0, 0x78, 0x1C, 0x3C, 0x78, 0xF0, 0x40, 0x00, 0x1C, 0x27, 0x37, 0x07, 31 | 0x0E, 0x1C, 0x30, 0x60, 0x40, 0x00, 0xE0, 0xE0, 0xE0, 0x0F, 0x80, 0xC3, 32 | 0x08, 0x04, 0xC3, 0x3C, 0x24, 0xE2, 0x27, 0x33, 0x39, 0x11, 0xC9, 0x93, 33 | 0x77, 0x18, 0x00, 0x70, 0x40, 0xFC, 0x00, 0x00, 0x80, 0x18, 0x01, 0x80, 34 | 0x38, 0x05, 0x80, 0x5C, 0x09, 0xC1, 0x1C, 0x1F, 0xC2, 0x0C, 0x20, 0xC4, 35 | 0x0E, 0xF3, 0xF0, 0x3F, 0xE0, 0xC7, 0x0C, 0x71, 0xC7, 0x1C, 0xE1, 0xF0, 36 | 0x39, 0xC3, 0x8E, 0x38, 0xE3, 0x0E, 0x71, 0xE7, 0x1C, 0xFF, 0x00, 0x07, 37 | 0xD1, 0xC7, 0x38, 0x27, 0x02, 0x70, 0x0F, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 38 | 0x0E, 0x00, 0x60, 0x87, 0x18, 0x1E, 0x00, 0x3F, 0xE0, 0x30, 0xE0, 0xC1, 39 | 0x87, 0x07, 0x1C, 0x1C, 0x60, 0x73, 0x81, 0xCE, 0x07, 0x38, 0x38, 0xC0, 40 | 0xE7, 0x07, 0x1C, 0x78, 0xFF, 0x80, 0x1F, 0xF8, 0x61, 0xC3, 0x04, 0x38, 41 | 0x81, 0xCC, 0x0F, 0xE0, 0xE2, 0x07, 0x10, 0x38, 0x81, 0x81, 0x1C, 0x18, 42 | 0xE3, 0x8F, 0xFC, 0x00, 0x3F, 0xF8, 0x61, 0xC3, 0x04, 0x38, 0x81, 0xCC, 43 | 0x0F, 0xE0, 0xE2, 0x07, 0x10, 0x38, 0x81, 0x80, 0x1C, 0x00, 0xE0, 0x0F, 44 | 0x80, 0x00, 0x07, 0x91, 0xC7, 0x38, 0x27, 0x00, 0x70, 0x0F, 0x00, 0xE1, 45 | 0xFE, 0x0E, 0xE0, 0xCE, 0x0C, 0x60, 0xC7, 0x1C, 0x1F, 0x00, 0x1F, 0x7E, 46 | 0x1C, 0x38, 0x30, 0x60, 0xE1, 0xC1, 0xC3, 0x83, 0x06, 0x0F, 0xFC, 0x1C, 47 | 0x38, 0x38, 0x70, 0x60, 0xC1, 0xC3, 0x83, 0x87, 0x0F, 0x9F, 0x00, 0x3F, 48 | 0x0C, 0x0C, 0x1C, 0x1C, 0x18, 0x38, 0x38, 0x38, 0x30, 0x70, 0x70, 0xF8, 49 | 0x07, 0xC0, 0xE0, 0x38, 0x0C, 0x07, 0x01, 0xC0, 0x70, 0x18, 0x0E, 0x03, 50 | 0x80, 0xC3, 0x30, 0xDC, 0x1E, 0x00, 0x1F, 0x78, 0x71, 0x83, 0x18, 0x39, 51 | 0x81, 0xD0, 0x0D, 0x00, 0xFC, 0x07, 0x60, 0x3B, 0x81, 0x8C, 0x1C, 0x70, 52 | 0xE1, 0x8F, 0xBE, 0x00, 0x1F, 0x00, 0xC0, 0x0C, 0x01, 0xC0, 0x1C, 0x01, 53 | 0x80, 0x38, 0x03, 0x80, 0x38, 0x03, 0x01, 0x70, 0x37, 0x0E, 0xFF, 0xE0, 54 | 0x1E, 0x07, 0x87, 0x07, 0x83, 0x83, 0x82, 0xC3, 0xC1, 0x62, 0xE0, 0xB1, 55 | 0x70, 0x99, 0x30, 0x4D, 0xB8, 0x27, 0x9C, 0x13, 0x8C, 0x11, 0xC6, 0x0C, 56 | 0xC7, 0x0F, 0x47, 0xC0, 0x3C, 0x3C, 0x38, 0x20, 0xE0, 0x85, 0xC4, 0x13, 57 | 0x10, 0x4E, 0x42, 0x3A, 0x08, 0x78, 0x21, 0xE0, 0x83, 0x84, 0x0C, 0x18, 58 | 0x10, 0x00, 0x40, 0x07, 0xC1, 0xCE, 0x38, 0x73, 0x87, 0x70, 0x77, 0x07, 59 | 0xF0, 0xFE, 0x0E, 0xE0, 0xEE, 0x1C, 0xE1, 0xC6, 0x38, 0x3E, 0x00, 0x3F, 60 | 0xC0, 0xC7, 0x0C, 0x71, 0xC7, 0x1C, 0x71, 0x8E, 0x3F, 0xC3, 0x80, 0x30, 61 | 0x03, 0x00, 0x70, 0x07, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0xCE, 0x38, 0x73, 62 | 0x87, 0x70, 0x77, 0x07, 0xF0, 0x7E, 0x0E, 0xE0, 0xEE, 0x0C, 0xE1, 0xC6, 63 | 0x38, 0x36, 0x01, 0x80, 0x3C, 0x2D, 0xFC, 0x3F, 0xC0, 0xE7, 0x0C, 0x71, 64 | 0xC7, 0x1C, 0x71, 0x8E, 0x3F, 0x83, 0xB8, 0x3B, 0x83, 0x3C, 0x71, 0xC7, 65 | 0x1C, 0xF9, 0xF0, 0x0C, 0x89, 0x8C, 0x46, 0x23, 0x80, 0xE0, 0x78, 0x0E, 66 | 0x03, 0x21, 0x90, 0xCC, 0xC9, 0xC0, 0x7F, 0xE9, 0xDF, 0x31, 0x4E, 0x21, 67 | 0xC0, 0x38, 0x06, 0x01, 0xC0, 0x38, 0x06, 0x00, 0xC0, 0x38, 0x0F, 0xC0, 68 | 0x7C, 0xF3, 0x82, 0x30, 0x27, 0x04, 0x70, 0x46, 0x04, 0xE0, 0x4E, 0x08, 69 | 0xE0, 0x8E, 0x08, 0xE1, 0x0F, 0x30, 0x3C, 0x00, 0xFC, 0x73, 0x82, 0x38, 70 | 0x23, 0x84, 0x38, 0x83, 0x90, 0x39, 0x01, 0xA0, 0x1C, 0x01, 0xC0, 0x18, 71 | 0x01, 0x00, 0xF9, 0xF7, 0x30, 0xE2, 0x30, 0xC2, 0x38, 0xC4, 0x3B, 0xC4, 72 | 0x3A, 0xE8, 0x3C, 0xE8, 0x3C, 0xF0, 0x18, 0xF0, 0x18, 0x60, 0x10, 0x60, 73 | 0x10, 0x40, 0x3F, 0x78, 0x61, 0x83, 0x98, 0x1D, 0x00, 0x70, 0x03, 0x80, 74 | 0x1C, 0x01, 0x60, 0x0B, 0x80, 0x9C, 0x08, 0x60, 0xC3, 0x8F, 0x7E, 0x00, 75 | 0xF9, 0xE6, 0x18, 0xC2, 0x1C, 0x81, 0xA0, 0x34, 0x07, 0x00, 0xC0, 0x18, 76 | 0x07, 0x00, 0xE0, 0x1C, 0x0F, 0xC0, 0x3F, 0xE6, 0x19, 0x87, 0x21, 0xC0, 77 | 0x30, 0x0E, 0x03, 0x80, 0x60, 0x1C, 0x07, 0x05, 0xC1, 0x38, 0xEF, 0xFC, 78 | 0x0E, 0x08, 0x18, 0x18, 0x18, 0x10, 0x30, 0x30, 0x30, 0x20, 0x60, 0x60, 79 | 0x60, 0x40, 0xF0, 0xC6, 0x10, 0xC6, 0x10, 0x86, 0x30, 0x86, 0x30, 0x1E, 80 | 0x0C, 0x18, 0x20, 0xC1, 0x83, 0x04, 0x18, 0x30, 0x60, 0x83, 0x06, 0x3C, 81 | 0x00, 0x18, 0x1C, 0x34, 0x26, 0x66, 0x43, 0xC3, 0xFF, 0x80, 0xC6, 0x30, 82 | 0x0D, 0x9D, 0x8C, 0xCC, 0x6E, 0x26, 0x33, 0x19, 0xBE, 0x66, 0x00, 0x00, 83 | 0x78, 0x18, 0x30, 0x30, 0x3E, 0x73, 0x63, 0x63, 0x63, 0xC6, 0xC6, 0xCC, 84 | 0x70, 0x0F, 0x3B, 0x70, 0x70, 0xE0, 0xE0, 0xE2, 0xE4, 0x78, 0x00, 0x00, 85 | 0xF0, 0x1C, 0x06, 0x01, 0x83, 0xE3, 0x30, 0xCC, 0x63, 0x19, 0xCC, 0x63, 86 | 0x38, 0xCF, 0x1D, 0x80, 0x0E, 0x75, 0xCB, 0xBE, 0xDE, 0x38, 0x72, 0x78, 87 | 0x00, 0xE0, 0x34, 0x0C, 0x01, 0x80, 0x30, 0x1F, 0x01, 0x80, 0x30, 0x06, 88 | 0x01, 0xC0, 0x30, 0x06, 0x00, 0xC0, 0x30, 0x06, 0x04, 0x80, 0xE0, 0x00, 89 | 0x1C, 0x19, 0xD8, 0xCC, 0x66, 0x60, 0xE1, 0x80, 0xF0, 0x7E, 0x43, 0x21, 90 | 0x8F, 0x00, 0x00, 0x1E, 0x07, 0x03, 0x01, 0x80, 0xD8, 0xFC, 0x76, 0x33, 91 | 0x19, 0x99, 0xCC, 0xD6, 0x77, 0x30, 0x39, 0xC0, 0x0F, 0x31, 0x8C, 0xC6, 92 | 0x31, 0xAE, 0x00, 0x03, 0x81, 0xC0, 0x00, 0x00, 0xE0, 0x30, 0x18, 0x18, 93 | 0x0C, 0x06, 0x03, 0x03, 0x01, 0x80, 0xC2, 0xC1, 0xC0, 0x00, 0x0F, 0x00, 94 | 0xC0, 0x60, 0x18, 0x06, 0xF3, 0x90, 0xC8, 0x34, 0x0F, 0x06, 0xC1, 0x98, 95 | 0x66, 0xB9, 0xC0, 0x03, 0xCC, 0x63, 0x39, 0x8C, 0x66, 0x31, 0x8E, 0x70, 96 | 0x7B, 0x99, 0xAF, 0xCE, 0x66, 0x63, 0x67, 0x33, 0x31, 0x99, 0x8C, 0xCC, 97 | 0xE7, 0xC6, 0x30, 0x73, 0x7F, 0x73, 0x73, 0x63, 0x67, 0xE6, 0xC7, 0xC6, 98 | 0x1E, 0x33, 0x63, 0x63, 0xC3, 0xC6, 0xC6, 0xCC, 0x78, 0x1D, 0xC3, 0xB1, 99 | 0xCC, 0x63, 0x19, 0xCE, 0x63, 0x18, 0xCC, 0x3E, 0x1C, 0x06, 0x03, 0xE0, 100 | 0x0D, 0x99, 0x8C, 0xCC, 0x6E, 0x76, 0x33, 0x19, 0x9C, 0x7C, 0x06, 0x07, 101 | 0x07, 0xC0, 0x76, 0x3A, 0x30, 0x70, 0x60, 0x60, 0x60, 0xE0, 0x3D, 0x14, 102 | 0x58, 0x38, 0x60, 0xA2, 0xF0, 0x08, 0xCC, 0xF6, 0x31, 0x98, 0xC6, 0x35, 103 | 0xC0, 0xE3, 0x63, 0x66, 0x66, 0x66, 0xCC, 0xCC, 0xFE, 0xEC, 0xE6, 0xCD, 104 | 0x8B, 0x26, 0x8E, 0x18, 0x20, 0xE4, 0xD9, 0x36, 0xE5, 0xDA, 0x77, 0x19, 105 | 0xC6, 0x61, 0x10, 0x39, 0xC7, 0xB0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xE1, 106 | 0x5A, 0x67, 0x00, 0x39, 0x8C, 0xC3, 0x21, 0xA0, 0xD0, 0x68, 0x38, 0x0C, 107 | 0x04, 0x04, 0x14, 0x0C, 0x00, 0x3E, 0x46, 0x0C, 0x08, 0x10, 0x20, 0x70, 108 | 0x1A, 0x0E, 0x03, 0x0E, 0x0C, 0x0C, 0x08, 0x18, 0x18, 0x10, 0x60, 0x30, 109 | 0x30, 0x30, 0x60, 0x60, 0x60, 0x30, 0xFF, 0xF0, 0x0C, 0x06, 0x06, 0x06, 110 | 0x04, 0x0C, 0x0C, 0x0C, 0x06, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0xE0, 111 | 0x71, 0x8F }; 112 | 113 | const GFXglyph FreeSerifBoldItalic9pt7bGlyphs[] PROGMEM = { 114 | { 0, 0, 0, 5, 0, 1 }, // 0x20 ' ' 115 | { 0, 6, 13, 7, 1, -11 }, // 0x21 '!' 116 | { 10, 6, 5, 10, 3, -11 }, // 0x22 '"' 117 | { 14, 11, 13, 9, -1, -12 }, // 0x23 '#' 118 | { 32, 11, 15, 9, -1, -12 }, // 0x24 '$' 119 | { 53, 14, 13, 15, 1, -11 }, // 0x25 '%' 120 | { 76, 13, 13, 14, 0, -11 }, // 0x26 '&' 121 | { 98, 2, 5, 5, 3, -11 }, // 0x27 ''' 122 | { 100, 5, 16, 6, 1, -11 }, // 0x28 '(' 123 | { 110, 5, 16, 6, -1, -11 }, // 0x29 ')' 124 | { 120, 8, 8, 9, 1, -11 }, // 0x2A '*' 125 | { 128, 9, 9, 10, 0, -8 }, // 0x2B '+' 126 | { 139, 3, 6, 5, -1, -2 }, // 0x2C ',' 127 | { 142, 5, 2, 6, 0, -4 }, // 0x2D '-' 128 | { 144, 3, 3, 4, 0, -1 }, // 0x2E '.' 129 | { 146, 7, 12, 6, 0, -11 }, // 0x2F '/' 130 | { 157, 9, 13, 9, 0, -11 }, // 0x30 '0' 131 | { 172, 8, 13, 9, 0, -11 }, // 0x31 '1' 132 | { 185, 9, 13, 9, 0, -11 }, // 0x32 '2' 133 | { 200, 9, 13, 9, 0, -11 }, // 0x33 '3' 134 | { 215, 9, 12, 9, 0, -11 }, // 0x34 '4' 135 | { 229, 9, 13, 9, 0, -11 }, // 0x35 '5' 136 | { 244, 9, 13, 9, 1, -11 }, // 0x36 '6' 137 | { 259, 9, 12, 9, 1, -11 }, // 0x37 '7' 138 | { 273, 8, 13, 9, 0, -11 }, // 0x38 '8' 139 | { 286, 9, 13, 9, 0, -11 }, // 0x39 '9' 140 | { 301, 5, 9, 5, 0, -7 }, // 0x3A ':' 141 | { 307, 5, 11, 5, 0, -7 }, // 0x3B ';' 142 | { 314, 9, 10, 10, 1, -9 }, // 0x3C '<' 143 | { 326, 9, 5, 10, 1, -6 }, // 0x3D '=' 144 | { 332, 9, 10, 10, 1, -9 }, // 0x3E '>' 145 | { 344, 8, 13, 9, 1, -11 }, // 0x3F '?' 146 | { 357, 13, 13, 15, 1, -12 }, // 0x40 '@' 147 | { 379, 12, 13, 13, 0, -11 }, // 0x41 'A' 148 | { 399, 12, 13, 12, 0, -11 }, // 0x42 'B' 149 | { 419, 12, 13, 11, 1, -11 }, // 0x43 'C' 150 | { 439, 14, 13, 13, 0, -11 }, // 0x44 'D' 151 | { 462, 13, 13, 11, 0, -11 }, // 0x45 'E' 152 | { 484, 13, 13, 11, 0, -11 }, // 0x46 'F' 153 | { 506, 12, 13, 13, 1, -11 }, // 0x47 'G' 154 | { 526, 15, 13, 14, 0, -11 }, // 0x48 'H' 155 | { 551, 8, 13, 7, 0, -11 }, // 0x49 'I' 156 | { 564, 10, 14, 9, 0, -11 }, // 0x4A 'J' 157 | { 582, 13, 13, 12, 0, -11 }, // 0x4B 'K' 158 | { 604, 12, 13, 11, 0, -11 }, // 0x4C 'L' 159 | { 624, 17, 13, 16, 0, -11 }, // 0x4D 'M' 160 | { 652, 14, 13, 13, 0, -11 }, // 0x4E 'N' 161 | { 675, 12, 13, 12, 1, -11 }, // 0x4F 'O' 162 | { 695, 12, 13, 11, 0, -11 }, // 0x50 'P' 163 | { 715, 12, 16, 12, 1, -11 }, // 0x51 'Q' 164 | { 739, 12, 13, 12, 0, -11 }, // 0x52 'R' 165 | { 759, 9, 13, 9, 0, -11 }, // 0x53 'S' 166 | { 774, 11, 13, 11, 2, -11 }, // 0x54 'T' 167 | { 792, 12, 13, 13, 2, -11 }, // 0x55 'U' 168 | { 812, 12, 12, 13, 2, -11 }, // 0x56 'V' 169 | { 830, 16, 12, 17, 2, -11 }, // 0x57 'W' 170 | { 854, 13, 13, 13, 0, -11 }, // 0x58 'X' 171 | { 876, 11, 13, 11, 2, -11 }, // 0x59 'Y' 172 | { 894, 11, 13, 10, 0, -11 }, // 0x5A 'Z' 173 | { 912, 8, 15, 6, -1, -11 }, // 0x5B '[' 174 | { 927, 5, 12, 7, 2, -11 }, // 0x5C '\' 175 | { 935, 7, 15, 6, -1, -11 }, // 0x5D ']' 176 | { 949, 8, 7, 10, 1, -11 }, // 0x5E '^' 177 | { 956, 9, 1, 9, 0, 3 }, // 0x5F '_' 178 | { 958, 4, 3, 6, 2, -11 }, // 0x60 '`' 179 | { 960, 9, 9, 9, 0, -7 }, // 0x61 'a' 180 | { 971, 8, 14, 9, 0, -12 }, // 0x62 'b' 181 | { 985, 8, 9, 8, 0, -7 }, // 0x63 'c' 182 | { 994, 10, 14, 9, 0, -12 }, // 0x64 'd' 183 | { 1012, 7, 9, 7, 0, -7 }, // 0x65 'e' 184 | { 1020, 11, 17, 9, -2, -12 }, // 0x66 'f' 185 | { 1044, 9, 12, 9, 0, -7 }, // 0x67 'g' 186 | { 1058, 9, 14, 10, 0, -12 }, // 0x68 'h' 187 | { 1074, 5, 13, 5, 1, -11 }, // 0x69 'i' 188 | { 1083, 9, 16, 6, -1, -11 }, // 0x6A 'j' 189 | { 1101, 10, 14, 9, 0, -12 }, // 0x6B 'k' 190 | { 1119, 5, 14, 5, 1, -12 }, // 0x6C 'l' 191 | { 1128, 13, 9, 14, 0, -7 }, // 0x6D 'm' 192 | { 1143, 8, 9, 9, 0, -7 }, // 0x6E 'n' 193 | { 1152, 8, 9, 9, 0, -7 }, // 0x6F 'o' 194 | { 1161, 10, 12, 9, -2, -7 }, // 0x70 'p' 195 | { 1176, 9, 12, 9, 0, -7 }, // 0x71 'q' 196 | { 1190, 8, 8, 7, 0, -7 }, // 0x72 'r' 197 | { 1198, 6, 9, 6, 0, -7 }, // 0x73 's' 198 | { 1205, 5, 12, 5, 1, -10 }, // 0x74 't' 199 | { 1213, 8, 9, 10, 1, -7 }, // 0x75 'u' 200 | { 1222, 7, 8, 8, 1, -7 }, // 0x76 'v' 201 | { 1229, 10, 8, 12, 1, -7 }, // 0x77 'w' 202 | { 1239, 10, 9, 9, -1, -7 }, // 0x78 'x' 203 | { 1251, 9, 12, 8, -1, -7 }, // 0x79 'y' 204 | { 1265, 8, 9, 7, 0, -7 }, // 0x7A 'z' 205 | { 1274, 8, 16, 6, 0, -12 }, // 0x7B '{' 206 | { 1290, 1, 12, 5, 2, -11 }, // 0x7C '|' 207 | { 1292, 8, 16, 6, -2, -12 }, // 0x7D '}' 208 | { 1308, 8, 2, 10, 1, -4 } }; // 0x7E '~' 209 | 210 | const GFXfont FreeSerifBoldItalic9pt7b PROGMEM = { 211 | (uint8_t *)FreeSerifBoldItalic9pt7bBitmaps, 212 | (GFXglyph *)FreeSerifBoldItalic9pt7bGlyphs, 213 | 0x20, 0x7E, 22 }; 214 | 215 | // Approx. 1982 bytes 216 | -------------------------------------------------------------------------------- /Fonts/FreeSansOblique9pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeSansOblique9pt7bBitmaps[] PROGMEM = { 2 | 0x10, 0x84, 0x22, 0x10, 0x84, 0x42, 0x10, 0x08, 0x00, 0xDE, 0xE5, 0x20, 3 | 0x06, 0x40, 0x88, 0x13, 0x06, 0x43, 0xFE, 0x32, 0x04, 0x40, 0x98, 0x32, 4 | 0x1F, 0xF0, 0x98, 0x22, 0x04, 0xC0, 0x02, 0x01, 0xF8, 0x6B, 0x99, 0x33, 5 | 0x40, 0x68, 0x0F, 0x00, 0xF8, 0x07, 0xC1, 0x1B, 0x23, 0x64, 0x4E, 0x98, 6 | 0xFC, 0x04, 0x00, 0x80, 0x3C, 0x08, 0xCC, 0x23, 0x18, 0x86, 0x32, 0x0C, 7 | 0x64, 0x19, 0x90, 0x1E, 0x40, 0x01, 0x1E, 0x02, 0x66, 0x09, 0x8C, 0x23, 8 | 0x18, 0x86, 0x62, 0x07, 0x80, 0x0F, 0x06, 0x63, 0x18, 0xC6, 0x3F, 0x07, 9 | 0x03, 0xC1, 0xB3, 0xC7, 0xB0, 0xCC, 0x33, 0x3E, 0x79, 0x80, 0xFA, 0x04, 10 | 0x10, 0x60, 0x83, 0x04, 0x18, 0x30, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x10, 11 | 0x30, 0x20, 0x08, 0x18, 0x10, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x18, 0x30, 12 | 0x41, 0x82, 0x0C, 0x10, 0x40, 0x19, 0x73, 0x16, 0x48, 0x04, 0x04, 0x02, 13 | 0x1F, 0xF0, 0x80, 0x80, 0x40, 0x20, 0x6D, 0x28, 0xF0, 0xC0, 0x01, 0x02, 14 | 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x0F, 15 | 0x19, 0xC8, 0x6C, 0x36, 0x1A, 0x0F, 0x05, 0x86, 0xC3, 0x61, 0xB1, 0x9C, 16 | 0x87, 0x80, 0x08, 0xCD, 0xE3, 0x18, 0xC4, 0x23, 0x18, 0xC4, 0x00, 0x07, 17 | 0x83, 0x1C, 0x41, 0x98, 0x30, 0x06, 0x01, 0x80, 0x60, 0x38, 0x1C, 0x06, 18 | 0x01, 0x80, 0x20, 0x0F, 0xF8, 0x0F, 0x86, 0x73, 0x0C, 0x83, 0x00, 0xC0, 19 | 0x60, 0xE0, 0x06, 0x01, 0xB0, 0x6C, 0x13, 0x8C, 0x7C, 0x00, 0x00, 0x80, 20 | 0xC0, 0xE0, 0xA0, 0x90, 0x98, 0x8C, 0x86, 0xFF, 0x81, 0x01, 0x80, 0xC0, 21 | 0x60, 0x0F, 0xC3, 0x00, 0x40, 0x08, 0x03, 0x00, 0x7F, 0x1C, 0x70, 0x06, 22 | 0x00, 0xC0, 0x1B, 0x06, 0x71, 0x87, 0xE0, 0x0F, 0x86, 0x73, 0x0D, 0x80, 23 | 0x60, 0x1F, 0xCF, 0x3B, 0x86, 0xC1, 0xB0, 0x6C, 0x33, 0x98, 0x3C, 0x00, 24 | 0x7F, 0xC0, 0x20, 0x10, 0x0C, 0x06, 0x01, 0x00, 0x80, 0x60, 0x10, 0x0C, 25 | 0x02, 0x01, 0x80, 0x40, 0x00, 0x0F, 0x86, 0x73, 0x0C, 0xC3, 0x30, 0xCC, 26 | 0x61, 0xE1, 0x86, 0x41, 0xB0, 0x6C, 0x13, 0x8C, 0x3E, 0x00, 0x0F, 0x06, 27 | 0x73, 0x0D, 0x83, 0x60, 0xD8, 0x77, 0x3C, 0xFE, 0x01, 0x80, 0x6C, 0x33, 28 | 0x98, 0x7C, 0x00, 0x30, 0x00, 0x00, 0x00, 0xC0, 0x18, 0x00, 0x00, 0x00, 29 | 0x0C, 0x62, 0x11, 0x00, 0x00, 0x01, 0xC3, 0x8F, 0x0C, 0x07, 0x00, 0xE0, 30 | 0x1E, 0x01, 0x00, 0x7F, 0xC0, 0x00, 0x03, 0xFE, 0x40, 0x3C, 0x03, 0x80, 31 | 0x70, 0x18, 0x78, 0xE1, 0xC0, 0x00, 0x00, 0x1F, 0x30, 0xD0, 0x78, 0x30, 32 | 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xFE, 33 | 0x00, 0xC0, 0xE0, 0xC0, 0x18, 0x61, 0xD3, 0x31, 0x9C, 0xD8, 0xC2, 0x36, 34 | 0x31, 0x8F, 0x18, 0x67, 0xC6, 0x11, 0xB1, 0x8C, 0xCC, 0x67, 0x63, 0x0E, 35 | 0xF0, 0x60, 0x00, 0x1C, 0x00, 0x01, 0x81, 0x00, 0x1F, 0xC0, 0x01, 0xC0, 36 | 0x1C, 0x03, 0xC0, 0x24, 0x06, 0x60, 0x46, 0x0C, 0x61, 0x86, 0x1F, 0xE3, 37 | 0x06, 0x20, 0x26, 0x03, 0x40, 0x30, 0x1F, 0xE1, 0x87, 0x30, 0x33, 0x03, 38 | 0x30, 0x23, 0x06, 0x3F, 0xC6, 0x06, 0x60, 0x66, 0x06, 0x60, 0x66, 0x0C, 39 | 0x7F, 0x80, 0x07, 0xC1, 0x86, 0x30, 0x32, 0x03, 0x60, 0x04, 0x00, 0xC0, 40 | 0x0C, 0x00, 0xC0, 0x6C, 0x06, 0xC0, 0xC6, 0x18, 0x3E, 0x00, 0x1F, 0xE0, 41 | 0xC1, 0x84, 0x06, 0x60, 0x33, 0x01, 0x98, 0x0C, 0x80, 0x64, 0x02, 0x60, 42 | 0x33, 0x01, 0x98, 0x18, 0x81, 0x87, 0xF0, 0x00, 0x1F, 0xF1, 0x80, 0x10, 43 | 0x03, 0x00, 0x30, 0x03, 0x00, 0x3F, 0xE2, 0x00, 0x60, 0x06, 0x00, 0x60, 44 | 0x04, 0x00, 0x7F, 0xC0, 0x1F, 0xF1, 0x80, 0x10, 0x03, 0x00, 0x30, 0x03, 45 | 0x00, 0x3F, 0xC2, 0x00, 0x60, 0x06, 0x00, 0x60, 0x04, 0x00, 0x40, 0x00, 46 | 0x07, 0xE0, 0xE1, 0x8C, 0x06, 0xC0, 0x36, 0x00, 0x60, 0x03, 0x07, 0xF8, 47 | 0x02, 0xC0, 0x36, 0x01, 0x98, 0x1C, 0xE1, 0xC1, 0xF2, 0x00, 0x18, 0x08, 48 | 0xC0, 0xC4, 0x06, 0x60, 0x33, 0x01, 0x18, 0x18, 0xFF, 0xC4, 0x06, 0x60, 49 | 0x23, 0x01, 0x18, 0x18, 0x80, 0xC4, 0x06, 0x00, 0x33, 0x32, 0x26, 0x66, 50 | 0x44, 0xCC, 0xC0, 0x00, 0xC0, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x30, 51 | 0x0C, 0x03, 0x30, 0xCC, 0x63, 0x18, 0x7C, 0x00, 0x18, 0x18, 0x60, 0xC1, 52 | 0x0E, 0x0C, 0x60, 0x33, 0x00, 0xD8, 0x03, 0xF0, 0x0C, 0xC0, 0x61, 0x81, 53 | 0x86, 0x06, 0x0C, 0x10, 0x30, 0x40, 0x60, 0x18, 0x0C, 0x04, 0x06, 0x03, 54 | 0x01, 0x80, 0xC0, 0x40, 0x60, 0x30, 0x18, 0x08, 0x07, 0xF8, 0x18, 0x06, 55 | 0x18, 0x0E, 0x18, 0x0E, 0x34, 0x1E, 0x34, 0x36, 0x34, 0x34, 0x24, 0x64, 56 | 0x24, 0x6C, 0x64, 0xCC, 0x64, 0x8C, 0x65, 0x88, 0x43, 0x08, 0x43, 0x18, 57 | 0x18, 0x08, 0xE0, 0x47, 0x06, 0x6C, 0x33, 0x61, 0x99, 0x08, 0x8C, 0xC4, 58 | 0x66, 0x61, 0xB3, 0x0D, 0x18, 0x38, 0x81, 0xC4, 0x06, 0x00, 0x07, 0xC0, 59 | 0xC3, 0x8C, 0x0E, 0xC0, 0x36, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 60 | 0x36, 0x01, 0xB8, 0x18, 0xE1, 0x81, 0xF0, 0x00, 0x1F, 0xE1, 0x83, 0x10, 61 | 0x33, 0x03, 0x30, 0x33, 0x06, 0x3F, 0xC2, 0x00, 0x60, 0x06, 0x00, 0x60, 62 | 0x04, 0x00, 0x40, 0x00, 0x07, 0xC0, 0xC3, 0x8C, 0x0E, 0xC0, 0x36, 0x01, 63 | 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x36, 0x09, 0xB8, 0x78, 0xE3, 0x81, 64 | 0xF6, 0x00, 0x10, 0x1F, 0xF0, 0xC0, 0xC4, 0x06, 0x60, 0x33, 0x01, 0x18, 65 | 0x18, 0xFF, 0x04, 0x0C, 0x60, 0x63, 0x03, 0x18, 0x18, 0x80, 0xC4, 0x06, 66 | 0x00, 0x07, 0xC1, 0x87, 0x30, 0x33, 0x03, 0x30, 0x03, 0xC0, 0x0F, 0xC0, 67 | 0x1E, 0x00, 0x6C, 0x06, 0xC0, 0x46, 0x0C, 0x3F, 0x00, 0xFF, 0xC3, 0x00, 68 | 0xC0, 0x20, 0x18, 0x06, 0x01, 0x80, 0x60, 0x10, 0x0C, 0x03, 0x00, 0xC0, 69 | 0x20, 0x00, 0x30, 0x13, 0x03, 0x20, 0x36, 0x03, 0x60, 0x26, 0x06, 0x60, 70 | 0x64, 0x06, 0xC0, 0x6C, 0x04, 0xC0, 0xCE, 0x18, 0x3E, 0x00, 0xC0, 0x78, 71 | 0x0B, 0x03, 0x20, 0xC4, 0x18, 0xC6, 0x18, 0x83, 0x30, 0x64, 0x0D, 0x80, 72 | 0xA0, 0x1C, 0x03, 0x00, 0xC1, 0x83, 0xC1, 0x83, 0xC3, 0x86, 0xC2, 0x86, 73 | 0xC6, 0x84, 0xC4, 0x8C, 0xCC, 0xC8, 0xC8, 0xD8, 0xD8, 0xD0, 0xD0, 0xF0, 74 | 0x70, 0xE0, 0x60, 0xE0, 0x60, 0xE0, 0x0C, 0x0C, 0x30, 0x60, 0x63, 0x01, 75 | 0x98, 0x02, 0xC0, 0x0E, 0x00, 0x38, 0x01, 0xE0, 0x0C, 0x80, 0x33, 0x01, 76 | 0x8C, 0x0C, 0x18, 0x60, 0x60, 0xC0, 0x66, 0x0C, 0x60, 0xC2, 0x18, 0x33, 77 | 0x03, 0x60, 0x1C, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x00, 0x30, 78 | 0x00, 0x1F, 0xF0, 0x07, 0x00, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 79 | 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x00, 0xFF, 0xC0, 0x0E, 0x10, 0x20, 80 | 0x41, 0x02, 0x04, 0x08, 0x20, 0x40, 0x81, 0x04, 0x08, 0x10, 0x20, 0xE0, 81 | 0xAA, 0xA9, 0x55, 0x40, 0x0E, 0x08, 0x10, 0x20, 0x41, 0x02, 0x04, 0x08, 82 | 0x20, 0x40, 0x81, 0x04, 0x08, 0x10, 0xE0, 0x0C, 0x18, 0x51, 0xA2, 0x4C, 83 | 0x50, 0x80, 0xFF, 0xE0, 0xC8, 0x80, 0x0F, 0x86, 0x33, 0x0C, 0x03, 0x03, 84 | 0xDF, 0xEE, 0x0B, 0x02, 0xC1, 0x9F, 0xE0, 0x10, 0x04, 0x01, 0x00, 0xDC, 85 | 0x39, 0x88, 0x32, 0x0D, 0x83, 0x40, 0xD0, 0x64, 0x1B, 0x8C, 0xBC, 0x00, 86 | 0x1F, 0x18, 0xD8, 0x6C, 0x0C, 0x06, 0x03, 0x01, 0x86, 0x66, 0x3E, 0x00, 87 | 0x00, 0x20, 0x08, 0x01, 0x0F, 0x23, 0x14, 0xC1, 0x18, 0x26, 0x04, 0xC0, 88 | 0x98, 0x23, 0x04, 0x71, 0x87, 0xD0, 0x0F, 0x0C, 0x76, 0x0D, 0x83, 0xFF, 89 | 0xF0, 0x0C, 0x03, 0x06, 0x63, 0x0F, 0x80, 0x1C, 0xC2, 0x1E, 0x20, 0x84, 90 | 0x10, 0x41, 0x04, 0x20, 0x80, 0x0F, 0x46, 0x33, 0x0C, 0xC1, 0x60, 0xD8, 91 | 0x26, 0x09, 0x86, 0x71, 0x8F, 0xE0, 0x10, 0x04, 0xC2, 0x1F, 0x00, 0x10, 92 | 0x04, 0x01, 0x00, 0x9F, 0x39, 0x88, 0x22, 0x09, 0x02, 0x40, 0x90, 0x44, 93 | 0x12, 0x04, 0x81, 0x00, 0x10, 0x02, 0x22, 0x64, 0x44, 0x48, 0x80, 0x04, 94 | 0x00, 0x01, 0x08, 0x20, 0x82, 0x08, 0x41, 0x04, 0x10, 0x42, 0x08, 0xE0, 95 | 0x10, 0x08, 0x04, 0x04, 0x32, 0x31, 0x20, 0xA0, 0xB8, 0x6C, 0x22, 0x11, 96 | 0x90, 0xC8, 0x30, 0x11, 0x22, 0x22, 0x64, 0x44, 0x48, 0x80, 0x2F, 0x3C, 97 | 0x63, 0x8C, 0x86, 0x19, 0x08, 0x44, 0x10, 0x88, 0x21, 0x10, 0x82, 0x21, 98 | 0x04, 0x82, 0x11, 0x04, 0x20, 0x00, 0x0B, 0xF3, 0x18, 0x82, 0x20, 0x90, 99 | 0x24, 0x09, 0x04, 0x41, 0x20, 0x48, 0x10, 0x0F, 0x0C, 0x76, 0x0D, 0x83, 100 | 0xC0, 0xF0, 0x3C, 0x1B, 0x06, 0xE3, 0x0F, 0x00, 0x17, 0xC3, 0x1C, 0x41, 101 | 0x98, 0x32, 0x06, 0x40, 0xC8, 0x33, 0x06, 0x71, 0x8B, 0xC1, 0x00, 0x20, 102 | 0x08, 0x01, 0x00, 0x00, 0x1E, 0xCC, 0x66, 0x09, 0x82, 0xC0, 0xB0, 0x4C, 103 | 0x13, 0x04, 0x63, 0x0F, 0xC0, 0x20, 0x08, 0x02, 0x00, 0x80, 0x2C, 0x60, 104 | 0x81, 0x04, 0x08, 0x10, 0x20, 0x81, 0x00, 0x1E, 0x33, 0x63, 0x60, 0x70, 105 | 0x1E, 0x03, 0xC3, 0xC6, 0x7C, 0x22, 0xF2, 0x44, 0x44, 0xCC, 0xCE, 0x21, 106 | 0x20, 0x90, 0x48, 0x24, 0x12, 0x13, 0x09, 0x84, 0xE6, 0x3E, 0x00, 0xC1, 107 | 0xE1, 0xB0, 0xC8, 0xC4, 0x43, 0x61, 0xA0, 0xF0, 0x70, 0x18, 0x00, 0xC7, 108 | 0x1E, 0x38, 0xB3, 0xCD, 0x96, 0x4C, 0xB6, 0x6D, 0xB1, 0x4D, 0x0E, 0x78, 109 | 0x63, 0x83, 0x1C, 0x00, 0x10, 0xC3, 0x10, 0x24, 0x07, 0x80, 0xE0, 0x1C, 110 | 0x07, 0x81, 0x90, 0x23, 0x08, 0x20, 0x30, 0x46, 0x18, 0x42, 0x08, 0xC1, 111 | 0x10, 0x24, 0x07, 0x80, 0xE0, 0x1C, 0x03, 0x00, 0x60, 0x08, 0x03, 0x01, 112 | 0xC0, 0x00, 0x3F, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 113 | 0x7F, 0x00, 0x18, 0x88, 0x42, 0x10, 0x88, 0xC3, 0x18, 0x88, 0x42, 0x18, 114 | 0xE0, 0x11, 0x22, 0x22, 0x24, 0x44, 0x4C, 0x88, 0x88, 0x00, 0x38, 0xC2, 115 | 0x10, 0x88, 0xC6, 0x18, 0x88, 0x42, 0x10, 0x88, 0xC0, 0x70, 0x4E, 0x41, 116 | 0xC0 }; 117 | 118 | const GFXglyph FreeSansOblique9pt7bGlyphs[] PROGMEM = { 119 | { 0, 0, 0, 5, 0, 1 }, // 0x20 ' ' 120 | { 0, 5, 13, 5, 2, -12 }, // 0x21 '!' 121 | { 9, 5, 4, 6, 3, -12 }, // 0x22 '"' 122 | { 12, 11, 13, 10, 1, -12 }, // 0x23 '#' 123 | { 30, 11, 16, 10, 1, -13 }, // 0x24 '$' 124 | { 52, 15, 13, 16, 2, -12 }, // 0x25 '%' 125 | { 77, 10, 13, 12, 2, -12 }, // 0x26 '&' 126 | { 94, 2, 4, 3, 3, -12 }, // 0x27 ''' 127 | { 95, 7, 17, 6, 2, -12 }, // 0x28 '(' 128 | { 110, 7, 17, 6, -1, -12 }, // 0x29 ')' 129 | { 125, 6, 5, 7, 3, -12 }, // 0x2A '*' 130 | { 129, 9, 8, 11, 2, -7 }, // 0x2B '+' 131 | { 138, 3, 5, 5, 1, -1 }, // 0x2C ',' 132 | { 140, 4, 1, 6, 2, -4 }, // 0x2D '-' 133 | { 141, 2, 1, 5, 2, 0 }, // 0x2E '.' 134 | { 142, 8, 13, 5, 0, -12 }, // 0x2F '/' 135 | { 155, 9, 13, 10, 2, -12 }, // 0x30 '0' 136 | { 170, 5, 13, 10, 4, -12 }, // 0x31 '1' 137 | { 179, 11, 13, 10, 1, -12 }, // 0x32 '2' 138 | { 197, 10, 13, 10, 1, -12 }, // 0x33 '3' 139 | { 214, 9, 13, 10, 1, -12 }, // 0x34 '4' 140 | { 229, 11, 13, 10, 1, -12 }, // 0x35 '5' 141 | { 247, 10, 13, 10, 2, -12 }, // 0x36 '6' 142 | { 264, 10, 13, 10, 2, -12 }, // 0x37 '7' 143 | { 281, 10, 13, 10, 1, -12 }, // 0x38 '8' 144 | { 298, 10, 13, 10, 1, -12 }, // 0x39 '9' 145 | { 315, 4, 9, 5, 2, -8 }, // 0x3A ':' 146 | { 320, 5, 12, 5, 1, -8 }, // 0x3B ';' 147 | { 328, 9, 9, 11, 2, -8 }, // 0x3C '<' 148 | { 339, 10, 4, 11, 1, -5 }, // 0x3D '=' 149 | { 344, 9, 9, 11, 1, -7 }, // 0x3E '>' 150 | { 355, 9, 13, 10, 3, -12 }, // 0x3F '?' 151 | { 370, 18, 16, 18, 1, -12 }, // 0x40 '@' 152 | { 406, 12, 13, 12, 0, -12 }, // 0x41 'A' 153 | { 426, 12, 13, 12, 1, -12 }, // 0x42 'B' 154 | { 446, 12, 13, 13, 2, -12 }, // 0x43 'C' 155 | { 466, 13, 13, 13, 1, -12 }, // 0x44 'D' 156 | { 488, 12, 13, 12, 1, -12 }, // 0x45 'E' 157 | { 508, 12, 13, 11, 1, -12 }, // 0x46 'F' 158 | { 528, 13, 13, 14, 2, -12 }, // 0x47 'G' 159 | { 550, 13, 13, 13, 1, -12 }, // 0x48 'H' 160 | { 572, 4, 13, 5, 2, -12 }, // 0x49 'I' 161 | { 579, 10, 13, 9, 1, -12 }, // 0x4A 'J' 162 | { 596, 14, 13, 12, 1, -12 }, // 0x4B 'K' 163 | { 619, 9, 13, 10, 1, -12 }, // 0x4C 'L' 164 | { 634, 16, 13, 15, 1, -12 }, // 0x4D 'M' 165 | { 660, 13, 13, 13, 1, -12 }, // 0x4E 'N' 166 | { 682, 13, 13, 14, 2, -12 }, // 0x4F 'O' 167 | { 704, 12, 13, 12, 1, -12 }, // 0x50 'P' 168 | { 724, 13, 14, 14, 2, -12 }, // 0x51 'Q' 169 | { 747, 13, 13, 13, 1, -12 }, // 0x52 'R' 170 | { 769, 12, 13, 12, 1, -12 }, // 0x53 'S' 171 | { 789, 10, 13, 11, 3, -12 }, // 0x54 'T' 172 | { 806, 12, 13, 13, 2, -12 }, // 0x55 'U' 173 | { 826, 11, 13, 12, 3, -12 }, // 0x56 'V' 174 | { 844, 16, 13, 17, 3, -12 }, // 0x57 'W' 175 | { 870, 14, 13, 12, 0, -12 }, // 0x58 'X' 176 | { 893, 12, 13, 12, 3, -12 }, // 0x59 'Y' 177 | { 913, 12, 13, 11, 1, -12 }, // 0x5A 'Z' 178 | { 933, 7, 17, 5, 0, -12 }, // 0x5B '[' 179 | { 948, 2, 13, 5, 3, -12 }, // 0x5C '\' 180 | { 952, 7, 17, 5, 0, -12 }, // 0x5D ']' 181 | { 967, 7, 7, 8, 2, -12 }, // 0x5E '^' 182 | { 974, 11, 1, 10, -1, 3 }, // 0x5F '_' 183 | { 976, 3, 3, 6, 3, -12 }, // 0x60 '`' 184 | { 978, 10, 10, 10, 1, -9 }, // 0x61 'a' 185 | { 991, 10, 13, 10, 1, -12 }, // 0x62 'b' 186 | { 1008, 9, 10, 9, 1, -9 }, // 0x63 'c' 187 | { 1020, 11, 13, 10, 1, -12 }, // 0x64 'd' 188 | { 1038, 10, 10, 10, 1, -9 }, // 0x65 'e' 189 | { 1051, 6, 13, 5, 1, -12 }, // 0x66 'f' 190 | { 1061, 10, 14, 10, 0, -9 }, // 0x67 'g' 191 | { 1079, 10, 13, 10, 1, -12 }, // 0x68 'h' 192 | { 1096, 4, 13, 4, 1, -12 }, // 0x69 'i' 193 | { 1103, 6, 17, 4, -1, -12 }, // 0x6A 'j' 194 | { 1116, 9, 13, 9, 1, -12 }, // 0x6B 'k' 195 | { 1131, 4, 13, 4, 1, -12 }, // 0x6C 'l' 196 | { 1138, 15, 10, 15, 1, -9 }, // 0x6D 'm' 197 | { 1157, 10, 11, 10, 1, -10 }, // 0x6E 'n' 198 | { 1171, 10, 10, 10, 1, -9 }, // 0x6F 'o' 199 | { 1184, 11, 14, 10, 0, -9 }, // 0x70 'p' 200 | { 1204, 10, 14, 10, 1, -9 }, // 0x71 'q' 201 | { 1222, 7, 10, 6, 1, -9 }, // 0x72 'r' 202 | { 1231, 8, 10, 9, 1, -9 }, // 0x73 's' 203 | { 1241, 4, 12, 5, 2, -11 }, // 0x74 't' 204 | { 1247, 9, 10, 10, 2, -9 }, // 0x75 'u' 205 | { 1259, 9, 10, 9, 2, -9 }, // 0x76 'v' 206 | { 1271, 13, 10, 13, 2, -9 }, // 0x77 'w' 207 | { 1288, 11, 10, 9, 0, -9 }, // 0x78 'x' 208 | { 1302, 11, 14, 9, 0, -9 }, // 0x79 'y' 209 | { 1322, 9, 10, 9, 1, -9 }, // 0x7A 'z' 210 | { 1334, 5, 17, 6, 2, -12 }, // 0x7B '{' 211 | { 1345, 4, 17, 5, 1, -12 }, // 0x7C '|' 212 | { 1354, 5, 17, 6, 0, -12 }, // 0x7D '}' 213 | { 1365, 9, 3, 11, 2, -7 } }; // 0x7E '~' 214 | 215 | const GFXfont FreeSansOblique9pt7b PROGMEM = { 216 | (uint8_t *)FreeSansOblique9pt7bBitmaps, 217 | (GFXglyph *)FreeSansOblique9pt7bGlyphs, 218 | 0x20, 0x7E, 22 }; 219 | 220 | // Approx. 2041 bytes 221 | -------------------------------------------------------------------------------- /Fonts/FreeMono12pt7b.h: -------------------------------------------------------------------------------- 1 | const uint8_t FreeMono12pt7bBitmaps[] PROGMEM = { 2 | 0x49, 0x24, 0x92, 0x48, 0x01, 0xF8, 0xE7, 0xE7, 0x67, 0x42, 0x42, 0x42, 3 | 0x42, 0x09, 0x02, 0x41, 0x10, 0x44, 0x11, 0x1F, 0xF1, 0x10, 0x4C, 0x12, 4 | 0x3F, 0xE1, 0x20, 0x48, 0x12, 0x04, 0x81, 0x20, 0x48, 0x04, 0x07, 0xA2, 5 | 0x19, 0x02, 0x40, 0x10, 0x03, 0x00, 0x3C, 0x00, 0x80, 0x10, 0x06, 0x01, 6 | 0xE0, 0xA7, 0xC0, 0x40, 0x10, 0x04, 0x00, 0x3C, 0x19, 0x84, 0x21, 0x08, 7 | 0x66, 0x0F, 0x00, 0x0C, 0x1C, 0x78, 0x01, 0xE0, 0xCC, 0x21, 0x08, 0x43, 8 | 0x30, 0x78, 0x3E, 0x30, 0x10, 0x08, 0x02, 0x03, 0x03, 0x47, 0x14, 0x8A, 9 | 0x43, 0x11, 0x8F, 0x60, 0xFD, 0xA4, 0x90, 0x05, 0x25, 0x24, 0x92, 0x48, 10 | 0x92, 0x24, 0x11, 0x24, 0x89, 0x24, 0x92, 0x92, 0x90, 0x00, 0x04, 0x02, 11 | 0x11, 0x07, 0xF0, 0xC0, 0x50, 0x48, 0x42, 0x00, 0x08, 0x04, 0x02, 0x01, 12 | 0x00, 0x87, 0xFC, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3B, 0x9C, 0xCE, 13 | 0x62, 0x00, 0xFF, 0xE0, 0xFF, 0x80, 0x00, 0x80, 0xC0, 0x40, 0x20, 0x20, 14 | 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x00, 0x80, 15 | 0x80, 0x40, 0x00, 0x1C, 0x31, 0x90, 0x58, 0x38, 0x0C, 0x06, 0x03, 0x01, 16 | 0x80, 0xC0, 0x60, 0x30, 0x34, 0x13, 0x18, 0x70, 0x30, 0xE1, 0x44, 0x81, 17 | 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x81, 0x1F, 0xC0, 0x1E, 0x10, 0x90, 18 | 0x68, 0x10, 0x08, 0x0C, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, 0x0E, 19 | 0x07, 0xFE, 0x3E, 0x10, 0x40, 0x08, 0x02, 0x00, 0x80, 0x40, 0xE0, 0x04, 20 | 0x00, 0x80, 0x10, 0x04, 0x01, 0x00, 0xD8, 0x63, 0xE0, 0x06, 0x0A, 0x0A, 21 | 0x12, 0x22, 0x22, 0x42, 0x42, 0x82, 0x82, 0xFF, 0x02, 0x02, 0x02, 0x0F, 22 | 0x7F, 0x20, 0x10, 0x08, 0x04, 0x02, 0xF1, 0x8C, 0x03, 0x00, 0x80, 0x40, 23 | 0x20, 0x18, 0x16, 0x18, 0xF0, 0x0F, 0x8C, 0x08, 0x08, 0x04, 0x04, 0x02, 24 | 0x79, 0x46, 0xC1, 0xE0, 0x60, 0x28, 0x14, 0x19, 0x08, 0x78, 0xFF, 0x81, 25 | 0x81, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 26 | 0x08, 0x3E, 0x31, 0xB0, 0x70, 0x18, 0x0C, 0x05, 0x8C, 0x38, 0x63, 0x40, 27 | 0x60, 0x30, 0x18, 0x1B, 0x18, 0xF8, 0x3C, 0x31, 0x30, 0x50, 0x28, 0x0C, 28 | 0x0F, 0x06, 0x85, 0x3C, 0x80, 0x40, 0x40, 0x20, 0x20, 0x63, 0xE0, 0xFF, 29 | 0x80, 0x07, 0xFC, 0x39, 0xCE, 0x00, 0x00, 0x06, 0x33, 0x98, 0xC4, 0x00, 30 | 0x00, 0xC0, 0x60, 0x18, 0x0C, 0x06, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 31 | 0x00, 0x30, 0x01, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x06, 32 | 0x00, 0x30, 0x01, 0x80, 0x18, 0x01, 0x80, 0xC0, 0x30, 0x18, 0x0C, 0x02, 33 | 0x00, 0x00, 0x3E, 0x60, 0xA0, 0x20, 0x10, 0x08, 0x08, 0x18, 0x10, 0x08, 34 | 0x00, 0x00, 0x00, 0x01, 0xC0, 0xE0, 0x1C, 0x31, 0x10, 0x50, 0x28, 0x14, 35 | 0x3A, 0x25, 0x22, 0x91, 0x4C, 0xA3, 0xF0, 0x08, 0x02, 0x01, 0x80, 0x7C, 36 | 0x3F, 0x00, 0x0C, 0x00, 0x48, 0x01, 0x20, 0x04, 0x40, 0x21, 0x00, 0x84, 37 | 0x04, 0x08, 0x1F, 0xE0, 0x40, 0x82, 0x01, 0x08, 0x04, 0x20, 0x13, 0xE1, 38 | 0xF0, 0xFF, 0x08, 0x11, 0x01, 0x20, 0x24, 0x04, 0x81, 0x1F, 0xC2, 0x06, 39 | 0x40, 0x68, 0x05, 0x00, 0xA0, 0x14, 0x05, 0xFF, 0x00, 0x1E, 0x48, 0x74, 40 | 0x05, 0x01, 0x80, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x04, 0x01, 0x01, 41 | 0x30, 0x87, 0xC0, 0xFE, 0x10, 0x44, 0x09, 0x02, 0x40, 0x50, 0x14, 0x05, 42 | 0x01, 0x40, 0x50, 0x14, 0x0D, 0x02, 0x41, 0x3F, 0x80, 0xFF, 0xC8, 0x09, 43 | 0x01, 0x20, 0x04, 0x00, 0x88, 0x1F, 0x02, 0x20, 0x40, 0x08, 0x01, 0x00, 44 | 0xA0, 0x14, 0x03, 0xFF, 0xC0, 0xFF, 0xE8, 0x05, 0x00, 0xA0, 0x04, 0x00, 45 | 0x88, 0x1F, 0x02, 0x20, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x01, 0xF0, 46 | 0x00, 0x1F, 0x46, 0x19, 0x01, 0x60, 0x28, 0x01, 0x00, 0x20, 0x04, 0x00, 47 | 0x83, 0xF0, 0x0B, 0x01, 0x20, 0x23, 0x0C, 0x3E, 0x00, 0xE1, 0xD0, 0x24, 48 | 0x09, 0x02, 0x40, 0x90, 0x27, 0xF9, 0x02, 0x40, 0x90, 0x24, 0x09, 0x02, 49 | 0x40, 0xB8, 0x70, 0xFE, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, 0x10, 0x20, 50 | 0x40, 0x81, 0x1F, 0xC0, 0x0F, 0xE0, 0x10, 0x02, 0x00, 0x40, 0x08, 0x01, 51 | 0x00, 0x20, 0x04, 0x80, 0x90, 0x12, 0x02, 0x40, 0xC6, 0x30, 0x7C, 0x00, 52 | 0xF1, 0xE4, 0x0C, 0x41, 0x04, 0x20, 0x44, 0x04, 0x80, 0x5C, 0x06, 0x60, 53 | 0x43, 0x04, 0x10, 0x40, 0x84, 0x08, 0x40, 0xCF, 0x07, 0xF8, 0x04, 0x00, 54 | 0x80, 0x10, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x04, 0x80, 55 | 0x90, 0x12, 0x03, 0xFF, 0xC0, 0xE0, 0x3B, 0x01, 0x94, 0x14, 0xA0, 0xA4, 56 | 0x89, 0x24, 0x49, 0x14, 0x48, 0xA2, 0x45, 0x12, 0x10, 0x90, 0x04, 0x80, 57 | 0x24, 0x01, 0x78, 0x3C, 0xE0, 0xF6, 0x02, 0x50, 0x25, 0x02, 0x48, 0x24, 58 | 0xC2, 0x44, 0x24, 0x22, 0x43, 0x24, 0x12, 0x40, 0xA4, 0x0A, 0x40, 0x6F, 59 | 0x06, 0x0F, 0x03, 0x0C, 0x60, 0x64, 0x02, 0x80, 0x18, 0x01, 0x80, 0x18, 60 | 0x01, 0x80, 0x18, 0x01, 0x40, 0x26, 0x06, 0x30, 0xC0, 0xF0, 0xFF, 0x10, 61 | 0x64, 0x05, 0x01, 0x40, 0x50, 0x34, 0x19, 0xFC, 0x40, 0x10, 0x04, 0x01, 62 | 0x00, 0x40, 0x3E, 0x00, 0x0F, 0x03, 0x0C, 0x60, 0x64, 0x02, 0x80, 0x18, 63 | 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x40, 0x26, 0x06, 0x30, 0xC1, 64 | 0xF0, 0x0C, 0x01, 0xF1, 0x30, 0xE0, 0xFF, 0x04, 0x18, 0x40, 0xC4, 0x04, 65 | 0x40, 0x44, 0x0C, 0x41, 0x87, 0xE0, 0x43, 0x04, 0x10, 0x40, 0x84, 0x04, 66 | 0x40, 0x4F, 0x03, 0x1F, 0x48, 0x34, 0x05, 0x01, 0x40, 0x08, 0x01, 0xC0, 67 | 0x0E, 0x00, 0x40, 0x18, 0x06, 0x01, 0xE1, 0xA7, 0xC0, 0xFF, 0xF0, 0x86, 68 | 0x10, 0x82, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x10, 69 | 0x02, 0x00, 0x40, 0x7F, 0x00, 0xF0, 0xF4, 0x02, 0x40, 0x24, 0x02, 0x40, 70 | 0x24, 0x02, 0x40, 0x24, 0x02, 0x40, 0x24, 0x02, 0x40, 0x22, 0x04, 0x30, 71 | 0xC0, 0xF0, 0xF8, 0x7C, 0x80, 0x22, 0x01, 0x04, 0x04, 0x10, 0x20, 0x40, 72 | 0x80, 0x82, 0x02, 0x10, 0x08, 0x40, 0x11, 0x00, 0x48, 0x01, 0xA0, 0x03, 73 | 0x00, 0x0C, 0x00, 0xF8, 0x7C, 0x80, 0x22, 0x00, 0x88, 0xC2, 0x23, 0x10, 74 | 0x8E, 0x42, 0x29, 0x09, 0x24, 0x24, 0x90, 0x91, 0x41, 0x85, 0x06, 0x14, 75 | 0x18, 0x70, 0x60, 0x80, 0xF0, 0xF2, 0x06, 0x30, 0x41, 0x08, 0x09, 0x80, 76 | 0x50, 0x06, 0x00, 0x60, 0x0D, 0x00, 0x88, 0x10, 0xC2, 0x04, 0x60, 0x2F, 77 | 0x0F, 0xF0, 0xF2, 0x02, 0x10, 0x41, 0x04, 0x08, 0x80, 0x50, 0x05, 0x00, 78 | 0x20, 0x02, 0x00, 0x20, 0x02, 0x00, 0x20, 0x02, 0x01, 0xFC, 0xFF, 0x40, 79 | 0xA0, 0x90, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, 0x50, 0x30, 0x18, 80 | 0x0F, 0xFC, 0xF2, 0x49, 0x24, 0x92, 0x49, 0x24, 0x9C, 0x80, 0x60, 0x10, 81 | 0x08, 0x02, 0x01, 0x00, 0x40, 0x20, 0x08, 0x04, 0x01, 0x00, 0x80, 0x20, 82 | 0x10, 0x04, 0x02, 0x00, 0x80, 0x40, 0xE4, 0x92, 0x49, 0x24, 0x92, 0x49, 83 | 0x3C, 0x08, 0x0C, 0x09, 0x0C, 0x4C, 0x14, 0x04, 0xFF, 0xFC, 0x84, 0x21, 84 | 0x3E, 0x00, 0x60, 0x08, 0x02, 0x3F, 0x98, 0x28, 0x0A, 0x02, 0xC3, 0x9F, 85 | 0x30, 0xE0, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x13, 0xE0, 0xA0, 86 | 0x86, 0x02, 0x20, 0x09, 0x00, 0x48, 0x02, 0x40, 0x13, 0x01, 0x14, 0x1B, 87 | 0x9F, 0x00, 0x1F, 0x4C, 0x19, 0x01, 0x40, 0x28, 0x01, 0x00, 0x20, 0x02, 88 | 0x00, 0x60, 0x43, 0xF0, 0x00, 0xC0, 0x08, 0x01, 0x00, 0x20, 0x04, 0x3C, 89 | 0x98, 0x52, 0x06, 0x80, 0x50, 0x0A, 0x01, 0x40, 0x24, 0x0C, 0xC2, 0x87, 90 | 0x98, 0x3F, 0x18, 0x68, 0x06, 0x01, 0xFF, 0xE0, 0x08, 0x03, 0x00, 0x60, 91 | 0xC7, 0xC0, 0x0F, 0x98, 0x08, 0x04, 0x02, 0x07, 0xF8, 0x80, 0x40, 0x20, 92 | 0x10, 0x08, 0x04, 0x02, 0x01, 0x03, 0xF8, 0x1E, 0x6C, 0x39, 0x03, 0x40, 93 | 0x28, 0x05, 0x00, 0xA0, 0x12, 0x06, 0x61, 0x43, 0xC8, 0x01, 0x00, 0x20, 94 | 0x08, 0x3E, 0x00, 0xC0, 0x10, 0x04, 0x01, 0x00, 0x40, 0x13, 0x87, 0x11, 95 | 0x82, 0x40, 0x90, 0x24, 0x09, 0x02, 0x40, 0x90, 0x2E, 0x1C, 0x08, 0x04, 96 | 0x02, 0x00, 0x00, 0x03, 0xC0, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 97 | 0x80, 0x43, 0xFE, 0x04, 0x08, 0x10, 0x00, 0x1F, 0xC0, 0x81, 0x02, 0x04, 98 | 0x08, 0x10, 0x20, 0x40, 0x81, 0x02, 0x0B, 0xE0, 0xE0, 0x02, 0x00, 0x20, 99 | 0x02, 0x00, 0x20, 0x02, 0x3C, 0x21, 0x02, 0x60, 0x2C, 0x03, 0x80, 0x24, 100 | 0x02, 0x20, 0x21, 0x02, 0x08, 0xE1, 0xF0, 0x78, 0x04, 0x02, 0x01, 0x00, 101 | 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x80, 0x43, 0xFE, 102 | 0xDC, 0xE3, 0x19, 0x90, 0x84, 0x84, 0x24, 0x21, 0x21, 0x09, 0x08, 0x48, 103 | 0x42, 0x42, 0x17, 0x18, 0xC0, 0x67, 0x83, 0x84, 0x20, 0x22, 0x02, 0x20, 104 | 0x22, 0x02, 0x20, 0x22, 0x02, 0x20, 0x2F, 0x07, 0x1F, 0x04, 0x11, 0x01, 105 | 0x40, 0x18, 0x03, 0x00, 0x60, 0x0A, 0x02, 0x20, 0x83, 0xE0, 0xCF, 0x85, 106 | 0x06, 0x60, 0x24, 0x01, 0x40, 0x14, 0x01, 0x40, 0x16, 0x02, 0x50, 0x44, 107 | 0xF8, 0x40, 0x04, 0x00, 0x40, 0x0F, 0x00, 0x1E, 0x6C, 0x3B, 0x03, 0x40, 108 | 0x28, 0x05, 0x00, 0xA0, 0x12, 0x06, 0x61, 0x43, 0xC8, 0x01, 0x00, 0x20, 109 | 0x04, 0x03, 0xC0, 0xE3, 0x8B, 0x13, 0x80, 0x80, 0x20, 0x08, 0x02, 0x00, 110 | 0x80, 0x20, 0x3F, 0x80, 0x1F, 0x58, 0x34, 0x05, 0x80, 0x1E, 0x00, 0x60, 111 | 0x06, 0x01, 0xC0, 0xAF, 0xC0, 0x20, 0x04, 0x00, 0x80, 0x10, 0x0F, 0xF0, 112 | 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x10, 0x03, 0x04, 0x3F, 113 | 0x00, 0xC1, 0xC8, 0x09, 0x01, 0x20, 0x24, 0x04, 0x80, 0x90, 0x12, 0x02, 114 | 0x61, 0xC7, 0xCC, 0xF8, 0xF9, 0x01, 0x08, 0x10, 0x60, 0x81, 0x08, 0x08, 115 | 0x40, 0x22, 0x01, 0x20, 0x05, 0x00, 0x30, 0x00, 0xF0, 0x7A, 0x01, 0x10, 116 | 0x08, 0x8C, 0x42, 0x62, 0x12, 0x90, 0xA5, 0x05, 0x18, 0x28, 0xC0, 0x86, 117 | 0x00, 0x78, 0xF3, 0x04, 0x18, 0x80, 0xD0, 0x06, 0x00, 0x70, 0x09, 0x81, 118 | 0x0C, 0x20, 0x6F, 0x8F, 0xF0, 0xF2, 0x02, 0x20, 0x41, 0x04, 0x10, 0x80, 119 | 0x88, 0x09, 0x00, 0x50, 0x06, 0x00, 0x20, 0x04, 0x00, 0x40, 0x08, 0x0F, 120 | 0xE0, 0xFF, 0x41, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0xBF, 121 | 0xC0, 0x19, 0x08, 0x42, 0x10, 0x84, 0x64, 0x18, 0x42, 0x10, 0x84, 0x20, 122 | 0xC0, 0xFF, 0xFF, 0xC0, 0xC1, 0x08, 0x42, 0x10, 0x84, 0x10, 0x4C, 0x42, 123 | 0x10, 0x84, 0x26, 0x00, 0x38, 0x13, 0x38, 0x38 }; 124 | 125 | const GFXglyph FreeMono12pt7bGlyphs[] PROGMEM = { 126 | { 0, 0, 0, 14, 0, 1 }, // 0x20 ' ' 127 | { 0, 3, 15, 14, 6, -14 }, // 0x21 '!' 128 | { 6, 8, 7, 14, 3, -14 }, // 0x22 '"' 129 | { 13, 10, 16, 14, 2, -14 }, // 0x23 '#' 130 | { 33, 10, 17, 14, 2, -14 }, // 0x24 '$' 131 | { 55, 10, 15, 14, 2, -14 }, // 0x25 '%' 132 | { 74, 9, 12, 14, 3, -11 }, // 0x26 '&' 133 | { 88, 3, 7, 14, 5, -14 }, // 0x27 ''' 134 | { 91, 3, 18, 14, 7, -14 }, // 0x28 '(' 135 | { 98, 3, 18, 14, 4, -14 }, // 0x29 ')' 136 | { 105, 9, 9, 14, 3, -14 }, // 0x2A '*' 137 | { 116, 9, 11, 14, 3, -11 }, // 0x2B '+' 138 | { 129, 5, 7, 14, 3, -3 }, // 0x2C ',' 139 | { 134, 11, 1, 14, 2, -6 }, // 0x2D '-' 140 | { 136, 3, 3, 14, 5, -2 }, // 0x2E '.' 141 | { 138, 9, 18, 14, 3, -15 }, // 0x2F '/' 142 | { 159, 9, 15, 14, 3, -14 }, // 0x30 '0' 143 | { 176, 7, 14, 14, 4, -13 }, // 0x31 '1' 144 | { 189, 9, 15, 14, 2, -14 }, // 0x32 '2' 145 | { 206, 10, 15, 14, 2, -14 }, // 0x33 '3' 146 | { 225, 8, 15, 14, 3, -14 }, // 0x34 '4' 147 | { 240, 9, 15, 14, 3, -14 }, // 0x35 '5' 148 | { 257, 9, 15, 14, 3, -14 }, // 0x36 '6' 149 | { 274, 8, 15, 14, 3, -14 }, // 0x37 '7' 150 | { 289, 9, 15, 14, 3, -14 }, // 0x38 '8' 151 | { 306, 9, 15, 14, 3, -14 }, // 0x39 '9' 152 | { 323, 3, 10, 14, 5, -9 }, // 0x3A ':' 153 | { 327, 5, 13, 14, 3, -9 }, // 0x3B ';' 154 | { 336, 11, 11, 14, 2, -11 }, // 0x3C '<' 155 | { 352, 12, 4, 14, 1, -8 }, // 0x3D '=' 156 | { 358, 11, 11, 14, 2, -11 }, // 0x3E '>' 157 | { 374, 9, 14, 14, 3, -13 }, // 0x3F '?' 158 | { 390, 9, 16, 14, 3, -14 }, // 0x40 '@' 159 | { 408, 14, 14, 14, 0, -13 }, // 0x41 'A' 160 | { 433, 11, 14, 14, 2, -13 }, // 0x42 'B' 161 | { 453, 10, 14, 14, 2, -13 }, // 0x43 'C' 162 | { 471, 10, 14, 14, 2, -13 }, // 0x44 'D' 163 | { 489, 11, 14, 14, 2, -13 }, // 0x45 'E' 164 | { 509, 11, 14, 14, 2, -13 }, // 0x46 'F' 165 | { 529, 11, 14, 14, 2, -13 }, // 0x47 'G' 166 | { 549, 10, 14, 14, 2, -13 }, // 0x48 'H' 167 | { 567, 7, 14, 14, 4, -13 }, // 0x49 'I' 168 | { 580, 11, 14, 14, 2, -13 }, // 0x4A 'J' 169 | { 600, 12, 14, 14, 2, -13 }, // 0x4B 'K' 170 | { 621, 11, 14, 14, 2, -13 }, // 0x4C 'L' 171 | { 641, 13, 14, 14, 1, -13 }, // 0x4D 'M' 172 | { 664, 12, 14, 14, 1, -13 }, // 0x4E 'N' 173 | { 685, 12, 14, 14, 1, -13 }, // 0x4F 'O' 174 | { 706, 10, 14, 14, 2, -13 }, // 0x50 'P' 175 | { 724, 12, 17, 14, 1, -13 }, // 0x51 'Q' 176 | { 750, 12, 14, 14, 2, -13 }, // 0x52 'R' 177 | { 771, 10, 14, 14, 2, -13 }, // 0x53 'S' 178 | { 789, 11, 14, 14, 2, -13 }, // 0x54 'T' 179 | { 809, 12, 14, 14, 1, -13 }, // 0x55 'U' 180 | { 830, 14, 14, 14, 0, -13 }, // 0x56 'V' 181 | { 855, 14, 14, 14, 0, -13 }, // 0x57 'W' 182 | { 880, 12, 14, 14, 1, -13 }, // 0x58 'X' 183 | { 901, 12, 14, 14, 1, -13 }, // 0x59 'Y' 184 | { 922, 9, 14, 14, 3, -13 }, // 0x5A 'Z' 185 | { 938, 3, 18, 14, 7, -14 }, // 0x5B '[' 186 | { 945, 9, 18, 14, 3, -15 }, // 0x5C '\' 187 | { 966, 3, 18, 14, 5, -14 }, // 0x5D ']' 188 | { 973, 9, 6, 14, 3, -14 }, // 0x5E '^' 189 | { 980, 14, 1, 14, 0, 3 }, // 0x5F '_' 190 | { 982, 4, 4, 14, 4, -15 }, // 0x60 '`' 191 | { 984, 10, 10, 14, 2, -9 }, // 0x61 'a' 192 | { 997, 13, 15, 14, 0, -14 }, // 0x62 'b' 193 | { 1022, 11, 10, 14, 2, -9 }, // 0x63 'c' 194 | { 1036, 11, 15, 14, 2, -14 }, // 0x64 'd' 195 | { 1057, 10, 10, 14, 2, -9 }, // 0x65 'e' 196 | { 1070, 9, 15, 14, 4, -14 }, // 0x66 'f' 197 | { 1087, 11, 14, 14, 2, -9 }, // 0x67 'g' 198 | { 1107, 10, 15, 14, 2, -14 }, // 0x68 'h' 199 | { 1126, 9, 15, 14, 3, -14 }, // 0x69 'i' 200 | { 1143, 7, 19, 14, 3, -14 }, // 0x6A 'j' 201 | { 1160, 12, 15, 14, 1, -14 }, // 0x6B 'k' 202 | { 1183, 9, 15, 14, 3, -14 }, // 0x6C 'l' 203 | { 1200, 13, 10, 14, 1, -9 }, // 0x6D 'm' 204 | { 1217, 12, 10, 14, 1, -9 }, // 0x6E 'n' 205 | { 1232, 11, 10, 14, 2, -9 }, // 0x6F 'o' 206 | { 1246, 12, 14, 14, 1, -9 }, // 0x70 'p' 207 | { 1267, 11, 14, 14, 2, -9 }, // 0x71 'q' 208 | { 1287, 10, 10, 14, 3, -9 }, // 0x72 'r' 209 | { 1300, 10, 10, 14, 2, -9 }, // 0x73 's' 210 | { 1313, 11, 14, 14, 1, -13 }, // 0x74 't' 211 | { 1333, 11, 10, 14, 2, -9 }, // 0x75 'u' 212 | { 1347, 13, 10, 14, 1, -9 }, // 0x76 'v' 213 | { 1364, 13, 10, 14, 1, -9 }, // 0x77 'w' 214 | { 1381, 12, 10, 14, 1, -9 }, // 0x78 'x' 215 | { 1396, 12, 14, 14, 1, -9 }, // 0x79 'y' 216 | { 1417, 9, 10, 14, 3, -9 }, // 0x7A 'z' 217 | { 1429, 5, 18, 14, 5, -14 }, // 0x7B '{' 218 | { 1441, 1, 18, 14, 7, -14 }, // 0x7C '|' 219 | { 1444, 5, 18, 14, 5, -14 }, // 0x7D '}' 220 | { 1456, 10, 3, 14, 2, -7 } }; // 0x7E '~' 221 | 222 | const GFXfont FreeMono12pt7b PROGMEM = { 223 | (uint8_t *)FreeMono12pt7bBitmaps, 224 | (GFXglyph *)FreeMono12pt7bGlyphs, 225 | 0x20, 0x7E, 24 }; 226 | 227 | // Approx. 2132 bytes 228 | --------------------------------------------------------------------------------