| @@ -12,65 +12,64 @@ | |||
| </extensions> | |||
| </storageModule> | |||
| <storageModule moduleId="cdtBuildSystem" version="4.0.0"> | |||
| <configuration artifactName="${ProjName}" buildProperties="" cleanCommand="rm -f" description="" id="io.sloeber.core.sketch.0" name="Release" parent="io.sloeber.core.configuration.release"> | |||
| <configuration artifactExtension="" artifactName="${ProjName}" buildProperties="" cleanCommand="rm -f" description="" errorParsers="org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser" id="io.sloeber.core.sketch.0" name="Release" parent="io.sloeber.core.configuration.release"> | |||
| <folderInfo id="io.sloeber.core.sketch.0." name="/" resourcePath=""> | |||
| <toolChain id="io.sloeber.core.toolChain.release.238326749" name="Arduino Toolchain (Sloeber edition)" superClass="io.sloeber.core.toolChain.release"> | |||
| <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="io.sloeber.targetplatform.1648948546" name="Arduino Target" osList="all" superClass="io.sloeber.targetplatform"/> | |||
| <builder buildPath="${workspace_loc:/EchoLot}/Release" id="io.sloeber.sketch.builder.1113847030" keepEnvironmentInBuildfile="false" name="Arduino sketch builder" parallelBuildOn="false" superClass="io.sloeber.sketch.builder"/> | |||
| <tool id="io.sloeber.tool.sketch.compiler.cpp.1834339972" name="Arduino C++ Compiler" superClass="io.sloeber.tool.sketch.compiler.cpp"> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="io.sloeber.compiler.cpp.sketch.option.incpath.443035005" name="Include Paths (-I)" superClass="io.sloeber.compiler.cpp.sketch.option.incpath" valueType="includePath"> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="io.sloeber.compiler.cpp.sketch.option.incpath.443035005" name="Include Paths (-I)" superClass="io.sloeber.compiler.cpp.sketch.option.incpath" useByScannerDiscovery="false" valueType="includePath"> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/core/variant}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/core/core}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/SPI/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Wire/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_BusIO}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/ezButton/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/RotaryEncoder/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/U8g2_for_Adafruit_GFX/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_GFX_Library}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Ucglib/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/GFX_Library_for_Arduino/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Wire/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_BusIO}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_ST7735_and_ST7789_Library}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/LCDWIKI_GUI}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/LCDWIKI_SPI}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/EEPROM/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/EEPROM}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/Wire}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/Wire/utility}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/SPI/src}""/> | |||
| </option> | |||
| <inputType id="io.sloeber.compiler.cpp.sketch.input.543353444" name="CPP source files" superClass="io.sloeber.compiler.cpp.sketch.input"/> | |||
| </tool> | |||
| <tool id="io.sloeber.tool.compiler.c.1392196145" name="Arduino C Compiler" superClass="io.sloeber.tool.compiler.c"> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="io.sloeber.compiler.c.sketch.option.incpath.1273991772" name="Include Paths (-I)" superClass="io.sloeber.compiler.c.sketch.option.incpath" valueType="includePath"> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="io.sloeber.compiler.c.sketch.option.incpath.1273991772" name="Include Paths (-I)" superClass="io.sloeber.compiler.c.sketch.option.incpath" useByScannerDiscovery="false" valueType="includePath"> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/core/variant}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/core/core}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/SPI/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Wire/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_BusIO}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/ezButton/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/RotaryEncoder/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/U8g2_for_Adafruit_GFX/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_GFX_Library}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Ucglib/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/GFX_Library_for_Arduino/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Wire/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_BusIO}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_ST7735_and_ST7789_Library}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/LCDWIKI_GUI}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/LCDWIKI_SPI}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/EEPROM/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/SPI/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/EEPROM}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/Wire}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/Wire/utility}""/> | |||
| </option> | |||
| <inputType id="io.sloeber.compiler.c.sketch.input.1984508786" name="C Source Files" superClass="io.sloeber.compiler.c.sketch.input"/> | |||
| </tool> | |||
| <tool id="io.sloeber.tool.sketch.compiler.s.898088892" name="Arduino Assembler" superClass="io.sloeber.tool.sketch.compiler.s"> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="io.sloeber.compiler.asm.sketch.option.incpath.1371853642" name="Include Paths (-I)" superClass="io.sloeber.compiler.asm.sketch.option.incpath" valueType="includePath"> | |||
| <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="io.sloeber.compiler.asm.sketch.option.incpath.1371853642" name="Include Paths (-I)" superClass="io.sloeber.compiler.asm.sketch.option.incpath" useByScannerDiscovery="false" valueType="includePath"> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/core/variant}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/core/core}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/SPI/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Wire/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_BusIO}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/ezButton/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/RotaryEncoder/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/U8g2_for_Adafruit_GFX/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_GFX_Library}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Ucglib/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/GFX_Library_for_Arduino/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Wire/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_BusIO}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/Adafruit_ST7735_and_ST7789_Library}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/LCDWIKI_GUI}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/LCDWIKI_SPI}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/libraries/EEPROM/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/SPI/src}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/EEPROM}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/Wire}""/> | |||
| <listOptionValue builtIn="false" value=""${workspace_loc:/EchoLot/Wire/utility}""/> | |||
| </option> | |||
| <inputType id="io.sloeber.compiler.S.sketch.input.2093386672" name="Assembly source files" superClass="io.sloeber.compiler.S.sketch.input"/> | |||
| </tool> | |||
| @@ -111,7 +110,7 @@ | |||
| </toolChain> | |||
| </folderInfo> | |||
| <sourceEntries> | |||
| <entry excluding="libraries/LCDWIKI_SPI/Example|libraries/LCDWIKI_SPI/Document|libraries/LCDWIKI_GUI/Document|libraries/Adafruit_GFX_Library/Fonts|libraries/Adafruit_GFX_Library/fontconvert|libraries/ST7789_AVR/images|libraries/?*/**/?xamples/**|libraries/?*/**/?xtras/**|libraries/?*/**/test*/**|libraries/?*/**/third-party/**|libraries/**/._*|libraries/?*/utility/*/*" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> | |||
| <entry excluding="libraries/Adafruit_ST7735_and_ST7789_Library/Adafruit_ST7789.cpp|libraries/SrcWrapper/inc|libraries/LCDWIKI_SPI/Example|libraries/LCDWIKI_SPI/Document|libraries/LCDWIKI_GUI/Document|libraries/Adafruit_GFX_Library/Fonts|libraries/Adafruit_GFX_Library/fontconvert|libraries/ST7789_AVR/images|libraries/?*/**/?xamples/**|libraries/?*/**/?xtras/**|libraries/?*/**/test*/**|libraries/?*/**/third-party/**|libraries/**/._*|libraries/?*/utility/*/*" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> | |||
| </sourceEntries> | |||
| </configuration> | |||
| </storageModule> | |||
| @@ -32,70 +32,50 @@ | |||
| </natures> | |||
| <linkedResources> | |||
| <link> | |||
| <name>core/core</name> | |||
| <name>EEPROM</name> | |||
| <type>2</type> | |||
| <locationURI>ECLIPSE_HOME/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/cores/arduino</locationURI> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/EEPROM</location> | |||
| </link> | |||
| <link> | |||
| <name>core/variant</name> | |||
| <name>SPI</name> | |||
| <type>2</type> | |||
| <locationURI>ECLIPSE_HOME/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/variants/eightanaloginputs</locationURI> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/SPI</location> | |||
| </link> | |||
| <link> | |||
| <name>libraries/Adafruit_BusIO</name> | |||
| <name>Wire</name> | |||
| <type>2</type> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/libraries/Adafruit_BusIO</location> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/hardware/Arduino_STM32/STM32F1/libraries/Wire</location> | |||
| </link> | |||
| <link> | |||
| <name>libraries/Adafruit_GFX_Library</name> | |||
| <name>core/core</name> | |||
| <type>2</type> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/libraries/Adafruit_GFX_Library</location> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/hardware/Arduino_STM32/STM32F1/cores/maple</location> | |||
| </link> | |||
| <link> | |||
| <name>libraries/Adafruit_ST7735_and_ST7789_Library</name> | |||
| <name>core/variant</name> | |||
| <type>2</type> | |||
| <locationURI>ECLIPSE_HOME/arduinoPlugin/libraries/Adafruit_ST7735_and_ST7789_Library/1.11.0</locationURI> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/hardware/Arduino_STM32/STM32F1/variants/generic_stm32f103c</location> | |||
| </link> | |||
| <link> | |||
| <name>libraries/GFX_Library_for_Arduino</name> | |||
| <name>libraries/Adafruit_BusIO</name> | |||
| <type>2</type> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/libraries/GFX_Library_for_Arduino</location> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/libraries/Adafruit_BusIO</location> | |||
| </link> | |||
| <link> | |||
| <name>libraries/LCDWIKI_GUI</name> | |||
| <name>libraries/Adafruit_GFX_Library</name> | |||
| <type>2</type> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/libraries/LCDWIKI_GUI</location> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/libraries/Adafruit_GFX_Library</location> | |||
| </link> | |||
| <link> | |||
| <name>libraries/LCDWIKI_SPI</name> | |||
| <name>libraries/Adafruit_ST7735_and_ST7789_Library</name> | |||
| <type>2</type> | |||
| <location>C:/Users/FSmilari/Documents/Arduino/libraries/LCDWIKI_SPI</location> | |||
| <locationURI>ECLIPSE_HOME/arduinoPlugin/libraries/Adafruit_ST7735_and_ST7789_Library/1.11.0</locationURI> | |||
| </link> | |||
| <link> | |||
| <name>libraries/RotaryEncoder</name> | |||
| <type>2</type> | |||
| <locationURI>ECLIPSE_HOME/arduinoPlugin/libraries/RotaryEncoder/1.5.2</locationURI> | |||
| </link> | |||
| <link> | |||
| <name>libraries/SPI</name> | |||
| <type>2</type> | |||
| <locationURI>ECLIPSE_HOME/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/libraries/SPI</locationURI> | |||
| </link> | |||
| <link> | |||
| <name>libraries/U8g2_for_Adafruit_GFX</name> | |||
| <type>2</type> | |||
| <locationURI>ECLIPSE_HOME/arduinoPlugin/libraries/U8g2_for_Adafruit_GFX/1.8.0</locationURI> | |||
| </link> | |||
| <link> | |||
| <name>libraries/Ucglib</name> | |||
| <type>2</type> | |||
| <locationURI>ECLIPSE_HOME/arduinoPlugin/libraries/Ucglib/1.5.2</locationURI> | |||
| </link> | |||
| <link> | |||
| <name>libraries/Wire</name> | |||
| <type>2</type> | |||
| <locationURI>ECLIPSE_HOME/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/libraries/Wire</locationURI> | |||
| </link> | |||
| <link> | |||
| <name>libraries/ezButton</name> | |||
| <type>2</type> | |||
| @@ -2,7 +2,7 @@ | |||
| <project> | |||
| <configuration id="io.sloeber.core.sketch.0" name="Release"> | |||
| <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> | |||
| <provider class="io.sloeber.core.toolchain.ArduinoLanguageProvider" console="false" env-hash="1698332270896085815" id="io.sloeber.languageSettingsProvider" keep-relative-paths="false" name="Arduino Compiler Settings" parameter="${COMMAND} -E -P -v -dD -D__IN_ECLIPSE__ "${INPUTS}"" prefer-non-shared="true"> | |||
| <provider class="io.sloeber.core.toolchain.ArduinoLanguageProvider" console="false" env-hash="-462663789770053712" id="io.sloeber.languageSettingsProvider" keep-relative-paths="false" name="Arduino Compiler Settings" parameter="${COMMAND} -E -P -v -dD -D__IN_ECLIPSE__ "${INPUTS}"" prefer-non-shared="true"> | |||
| <language-scope id="org.eclipse.cdt.core.gcc"/> | |||
| <language-scope id="org.eclipse.cdt.core.g++"/> | |||
| </provider> | |||
| @@ -1,2 +1,3 @@ | |||
| eclipse.preferences.version=1 | |||
| encoding/EchoLot.ino=UTF-8 | |||
| encoding/EchoLot.old=UTF-8 | |||
| @@ -1,8 +1,12 @@ | |||
| Config.Release.board.BOARD.ID=nano | |||
| Config.Release.board.BOARD.MENU.cpu=atmega328old | |||
| Config.Release.board.BOARD.TXT=${SLOEBER_HOME}/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/boards.txt | |||
| Config.Release.board.BOARD.ID=genericSTM32F103C | |||
| Config.Release.board.BOARD.MENU.cpu=getMenuItemIDFromMenuItemName did not find menu item with name "ATmega328P (Old Bootloader)" for menu ID "cpu" and for boardID "nano"! | |||
| Config.Release.board.BOARD.MENU.cpu_speed=speed_72mhz | |||
| Config.Release.board.BOARD.MENU.device_variant=STM32F103C8 | |||
| Config.Release.board.BOARD.MENU.opt=osstd | |||
| Config.Release.board.BOARD.MENU.upload_method=DFUUploadMethod | |||
| Config.Release.board.BOARD.TXT=C:/Users/FSmilari/Documents/Arduino/hardware/Arduino_STM32/STM32F1/boards.txt | |||
| Config.Release.board.PROGRAMMER.NAME=Default | |||
| Config.Release.board.UPLOAD.PORT=COM3 | |||
| Config.Release.board.UPLOAD.PORT=COM6 | |||
| Config.Release.compile.sloeber.extra.all= | |||
| Config.Release.compile.sloeber.extra.archive= | |||
| Config.Release.compile.sloeber.extra.assembly= | |||
| @@ -0,0 +1,168 @@ | |||
| /* | |||
| * Display.cpp | |||
| * | |||
| * Created on: 05.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #include "Display.h" | |||
| #include "Adafruit_ST7735.h" | |||
| #include "images/SFToolsLogo.h" | |||
| #include "fonts/titillium_web_regular16pt7b.h" // Add a custom font | |||
| #include "fonts/titillium_web_regular12pt7b.h" // Add a custom font | |||
| //#include "fonts/titillium_web_regular8pt7b.h" // Add a custom font | |||
| #include <Fonts/FreeSans9pt7b.h> // Add a custom font | |||
| #include "images/stm32duino_logo.h" | |||
| #include "images/thermometer_32.h" | |||
| #include "images/gear.h" | |||
| #include "images/zzz.h" | |||
| #include "images/ruler.h" | |||
| #include "images/air.h" | |||
| #include "images/water.h" | |||
| #include "images/water_s.h" | |||
| //#define LED -1 // to +5v | |||
| //#define SCK PA5 | |||
| //#define SDA PA7 | |||
| //#define MISO -1 | |||
| //#define MOSI SDA | |||
| #define CS PA2 | |||
| #define DC PA1 | |||
| #define RST PA0 | |||
| #define ST7735_ARDUINOGREEN 0x04b3 | |||
| #define ST7735_STM32BLUE 0x03d6 | |||
| /***************** | |||
| ** Constructors. | |||
| ****************/ | |||
| Display::Display() : tft(Adafruit_ST7735(CS, DC, RST)) { // @suppress("Abstract class cannot be instantiated") | |||
| angle = 0; | |||
| starttime = millis(); | |||
| refreshScreen = true; | |||
| configValue = 0.0; | |||
| configUnit = "m/s"; | |||
| } | |||
| void Display::init(void) { | |||
| tft.initR(INITR_BLACKTAB); | |||
| tft.fillScreen(ST7735_BLACK); | |||
| tft.setRotation(1); | |||
| tft.setTextWrap(false); | |||
| tft.setTextColor(ST7735_WHITE); | |||
| refreshScreen = true; | |||
| } | |||
| void Display::display(void) { | |||
| if (!refreshScreen) { | |||
| return; | |||
| } | |||
| // redrawFrame(); | |||
| refreshScreen = false; | |||
| } | |||
| void Display::drawXCenteredText(String txt, const GFXfont *font, uint8_t size, uint16_t col, int16_t y) { | |||
| int16_t x1, y1; // Top-left corner of text | |||
| uint16_t w, h; // Width and height | |||
| tft.setFont(font); | |||
| tft.setTextSize(size); // Set text size. Goes from 0 (the smallest) to 20 (very big) | |||
| tft.setTextColor(col); | |||
| // Get bounds starting from (0, 0) | |||
| tft.getTextBounds(txt, 0, 0, &x1, &y1, &w, &h); | |||
| // Calculate centered position | |||
| int16_t centered_x = (SCREEN_WIDTH - w) / 2 - 3; | |||
| // Set cursor and print | |||
| tft.setCursor(centered_x, y); | |||
| tft.print(txt); | |||
| } | |||
| void Display::drawText(String txt, const GFXfont *font, uint8_t size, uint16_t col, int16_t x, int16_t y) { | |||
| tft.setFont(font); | |||
| tft.setTextSize(size); // Set text size. Goes from 0 (the smallest) to 20 (very big) | |||
| tft.setTextColor(col); | |||
| tft.setCursor(x, y); | |||
| tft.print(txt); | |||
| } | |||
| void Display::clearDisplay(void) { | |||
| tft.fillScreen(ST7735_BLACK); | |||
| } | |||
| void Display::showBrand(int16_t x, int16_t y) { | |||
| drawBitmap(x, y, 128, 34, SFTools_Logo, ST7735_ORANGE); | |||
| } | |||
| void Display::showInitialization(void) { | |||
| redrawFrame(); | |||
| drawXCenteredText("EchoLoT", &titillium_web_regular16pt7b, 1, ST7735_CYAN, 36); | |||
| drawXCenteredText("designed by", &FreeSans9pt7b, 1, ST7735_WHITE, 64); | |||
| showBrand(16, 84); | |||
| delay(3000); | |||
| redrawFrame(); | |||
| drawText("powered by", &FreeSans9pt7b, 1, ST7735_CYAN, 35, 30); | |||
| tft.fillRoundRect(46, 42, 68, 68, 7, ST7735_STM32BLUE); | |||
| drawBitmap(48, 44, 64, 64, epd_bitmap_stm32duino_logo_icon, ST7735_WHITE); | |||
| // tft.drawBitmap(5, 100, epd_bitmap_gear, 24, 24, ST7735_YELLOW); | |||
| // tft.drawBitmap(40, 100, epd_bitmap_Zzz_24, 24, 24, ST7735_CYAN); | |||
| // tft.drawBitmap(75, 100, epd_bitmap_Measure_25, 25, 25, ST7735_RED); | |||
| // tft.fillTriangle(75, 98, 80, 102, 75, 107, ST7735_RED); | |||
| // tft.fillTriangle(82, 98, 87, 102, 82, 107, ST7735_RED); | |||
| // tft.fillTriangle(89, 98, 94, 102, 89, 107, ST7735_RED); | |||
| // tft.fillTriangle(96, 98, 101, 102, 96, 107, ST7735_RED); | |||
| // | |||
| // tft.drawBitmap(110, 100, epd_bitmap_air, 24, 24, ST7735_CYAN); | |||
| // tft.drawBitmap(110, 100, epd_bitmap_water, 24, 24, ST7735_BLUE); | |||
| // tft.drawBitmap(110, 100, epd_bitmap_water_s, 24, 24, ST7735_BLUE); | |||
| // tft.drawBitmap(1, 160 - 32, thermometer_icon_32, 32, 32, 0xE71C); | |||
| delay(3000); | |||
| } | |||
| void Display::showFrame(Status status) { | |||
| redrawFrame(); | |||
| switch (status) { | |||
| case Status::IDLE: | |||
| break; | |||
| // case Status::TOOLCHANGE: | |||
| // drawStatusText(STATUS_TXT_TOOLCHG); | |||
| // break; | |||
| // case Status::CONFIG: | |||
| // drawStatusText(STATUS_TXT_CFG); | |||
| // break; | |||
| // case Status::NULLING: | |||
| // drawStatusText(STATUS_TXT_NULLING); | |||
| // break; | |||
| // case Status::DIVING: | |||
| // drawStatusText(STATUS_TXT_DIVING); | |||
| // break; | |||
| default: | |||
| break; | |||
| } | |||
| } | |||
| /* ===== Private methods ===== */ | |||
| void Display::drawBitmap(int x, int y, int w, int h, const uint8_t bitmap[], uint16_t col) { | |||
| tft.drawBitmap(x, y, bitmap, w, h, col); | |||
| } | |||
| void Display::drawRGBBitmap(int x, int y, int w, int h, const uint16_t bitmap[]) { | |||
| tft.drawRGBBitmap(x, y, bitmap, w, h); | |||
| } | |||
| void Display::redrawFrame() { | |||
| clearDisplay(); | |||
| tft.drawRoundRect(0, 0, 160, 128, 9, ST7735_CYAN); | |||
| tft.drawRoundRect(1, 1, 158, 126, 8, ST7735_CYAN); | |||
| } | |||
| @@ -0,0 +1,49 @@ | |||
| /* | |||
| * Display.h | |||
| * | |||
| * Wrapper class for Adafruit OLED display. | |||
| * | |||
| * Created on: 05.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef DISPLAY_H_ | |||
| #define DISPLAY_H_ | |||
| #include <Adafruit_ST7735.h> | |||
| #include "images/SFToolsLogo.h" | |||
| #include "Status.h" | |||
| #define SCREEN_WIDTH 160 | |||
| #define SCREEN_HEIGHT 128 | |||
| #define SCREEN_ADDRESS 0x3C | |||
| class Display { | |||
| private: | |||
| Adafruit_ST7735 tft; // @suppress("Abstract class cannot be instantiated") | |||
| String configText; | |||
| String configOption; | |||
| float configValue; | |||
| String configUnit; | |||
| bool refreshScreen; | |||
| int angle; | |||
| unsigned long starttime; | |||
| void drawBitmap(int x, int y, int w, int h, const uint8_t bitmap[], uint16_t col); | |||
| void drawRGBBitmap(int x, int y, int w, int h, const uint16_t bitmap[]); | |||
| void redrawFrame(); | |||
| public: | |||
| Display(); | |||
| void init(void); | |||
| void display(void); | |||
| void clearDisplay(void); | |||
| void showBrand(int16_t x, int16_t y); | |||
| void showInitialization(void); | |||
| void showFrame(Status status); | |||
| void drawXCenteredText(String txt, const GFXfont *font, uint8_t s, uint16_t c, int16_t y); | |||
| void drawText(String txt, const GFXfont *font, uint8_t s, uint16_t c, int16_t x, int16_t y); | |||
| }; | |||
| #endif /* DISPLAY_H_ */ | |||
| @@ -1,87 +1,65 @@ | |||
| #include "C:/Users/FSmilari/Documents/Arduino/libraries/Adafruit_GFX_Library/Adafruit_GFX.h" // Include core graphics library | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/libraries/Adafruit_ST7735_and_ST7789_Library/1.11.0/Adafruit_ST7735.h" // Include Adafruit_ST7735 library to drive the display | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/cores/arduino/Arduino.h" | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/cores/arduino/HardwareSerial.h" | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/cores/arduino/WString.h" | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/variants/standard/pins_arduino.h" | |||
| #include "Arduino.h" | |||
| #include "ExEzButton.h" | |||
| #include "Status.h" | |||
| #include "fonts/titillium_web_regular20pt7b.h" // Add a custom font | |||
| #include "images/SFToolsLogo.h" | |||
| #include "images/thermometer_32.h" | |||
| #include "RotaryControler.h" | |||
| #include "EchoLotSetup.h" | |||
| #include "ThreePositionSwitch.h" | |||
| static const int RotEnc_Switch_Pin = 3; | |||
| static const int RotEnc_Clk_Pin = 4; | |||
| static const int RotEnc_Dta_Pin = 5; | |||
| static const int Measure_Pin = 6; | |||
| static const int echoPin = A5; | |||
| static const int trigPin = A4; | |||
| #define LED -1 // to +5v | |||
| #define SCK 13//A1 with SCK on 13 and SDA on 11 it is 10x faster!!! | |||
| #define SDA 11//A2 | |||
| #define MISO -1 | |||
| #define MOSI SDA | |||
| #define CS 10 | |||
| #define DC 9 | |||
| #define RST 8 | |||
| static const int trigPin = PB11; | |||
| static const int echoPin = PB10; | |||
| static const int Pos3Sw_Pin1 = PB13; | |||
| static const int Pos3Sw_Pin2 = PB14; | |||
| static const int Pos3Sw_Pin3 = PB15; | |||
| static const int Measure_Pin = PB6; | |||
| static const int RotEnc_Clk_Pin = PB7; | |||
| static const int RotEnc_Dta_Pin = PB8; | |||
| static const int RotEnc_Switch_Pin = PB9; | |||
| Status actualStatus; | |||
| Status originStatus; | |||
| String oldStatus = ""; | |||
| String lastDistance = ""; | |||
| // Create display: | |||
| Adafruit_ST7735 tft = Adafruit_ST7735(CS, DC, RST); | |||
| RotaryControler RotaryControler(RotEnc_Dta_Pin, RotEnc_Clk_Pin, RotEnc_Switch_Pin); | |||
| ExEzButton MeasureBtn(Measure_Pin, false, 2000); | |||
| ThreePositionSwitch ThreePositionSwitch(Pos3Sw_Pin1, Pos3Sw_Pin2, Pos3Sw_Pin3); | |||
| Display Display; | |||
| EchoLotSetup EchoLotSetup(Display); | |||
| //***************************************************************************************************** | |||
| //*** Initialization routine. Reads the eeprom first and sets the (potentially new) configured values. | |||
| //***************************************************************************************************** | |||
| void Initialize() { | |||
| Display.showInitialization(); | |||
| EchoLotSetup.initialize(); | |||
| delay(50); | |||
| SetActualStatus(IDLE); | |||
| } | |||
| void setup() { | |||
| SetActualStatus(INITIALIZATION); | |||
| Serial.begin(115200); | |||
| delay(500); | |||
| pinMode(RotEnc_Switch_Pin, INPUT); | |||
| pinMode(RotEnc_Dta_Pin, INPUT); | |||
| pinMode(RotEnc_Clk_Pin, INPUT); | |||
| pinMode(trigPin, OUTPUT); | |||
| pinMode(echoPin, INPUT); | |||
| pinMode(Measure_Pin, INPUT); | |||
| pinMode(RotEnc_Switch_Pin, INPUT); | |||
| MeasureBtn.setDebounceTime(50); | |||
| RotaryControler.setDebounceTime(50); | |||
| ThreePositionSwitch.setDebounceTime(50); | |||
| // Display setup: | |||
| // Use this initializer if you're using a 1.8" TFT | |||
| tft.initR(INITR_BLACKTAB); // Initialize a ST7735S chip, black tab | |||
| tft.fillScreen(ST7735_BLACK); // Fill screen with black | |||
| tft.setRotation(2); // Set orientation of the display. Values are from 0 to 3. If not declared, orientation would be 0, | |||
| // which is portrait mode. | |||
| tft.setTextWrap(false); // By default, long lines of text are set to automatically “wrap� back to the leftmost column. | |||
| // To override this behavior (so text will run off the right side of the display - useful for | |||
| // scrolling marquee effects), use setTextWrap(false). The normal wrapping behavior is restored | |||
| // with setTextWrap(true). | |||
| tft.setCursor(0, 20); // Set position (x,y) | |||
| tft.setFont(&titillium_web_regular20pt7b); | |||
| tft.setTextSize(0); // Set text size. Goes from 0 (the smallest) to 20 (very big) | |||
| tft.setTextColor(ST7735_WHITE); | |||
| tft.println("Hello"); | |||
| tft.drawBitmap(0, 80, SFTools_Logo, 128, 34, ST7735_GREEN); | |||
| tft.drawBitmap(1, 160 - 32, thermometer_icon_32, 32, 32, 0xE71C); | |||
| tft.drawBitmap(33, 160 - 32, thermometer_icon_32, 32, 32, ST7735_YELLOW); | |||
| tft.drawRect(48, 137, 2, 6, ST7735_YELLOW); | |||
| tft.drawBitmap(65, 160 - 32, thermometer_icon_32, 32, 32, ST7735_RED); | |||
| tft.drawRect(80, 133, 2, 10, ST7735_RED); | |||
| delay(3000); | |||
| Display.init(); | |||
| SetActualStatus(INITIALIZATION); | |||
| tft.fillScreen(ST7735_BLACK); // Fill screen with black | |||
| Serial.println("Setup end"); | |||
| delay(50); | |||
| } | |||
| void loop() { | |||
| @@ -92,16 +70,34 @@ void loop() { | |||
| switch (actualStatus) { | |||
| case INITIALIZATION: | |||
| Initialize(); | |||
| SetActualStatus(IDLE); | |||
| break; | |||
| case CONFIGURATION: | |||
| break; | |||
| case IDLE: | |||
| case IDLE: { | |||
| if (RotaryControler.isSwitchLongPressed()) { | |||
| Serial.println("RotaryEnc Long SwitchPressed"); | |||
| RotaryControler.resetPosition(); | |||
| } | |||
| if (RotaryControler.isSwitchPressed()) { | |||
| Serial.println("RotaryEnc SwitchPressed"); | |||
| } else if (MeasureBtn.isPressing()) { | |||
| SetActualStatus(MEASURING); | |||
| } | |||
| ThreePositionSwitch.loop(); | |||
| int pin = ThreePositionSwitch.getPosition(); | |||
| // Serial.print("3-Pos-Schalter Position: "); | |||
| // Serial.println(pin); | |||
| delay(200); | |||
| break; | |||
| } | |||
| case MEASURING: | |||
| if (MeasureBtn.isPressing()) { | |||
| digitalWrite(trigPin, LOW); | |||
| delayMicroseconds(5); | |||
| @@ -115,27 +111,25 @@ void loop() { | |||
| Serial.print("Distance:"); | |||
| Serial.println(distance); | |||
| char buf[50]; | |||
| sprintf(buf, "%lu cm", distance); | |||
| if (!lastDistance.equals(buf)) { | |||
| tft.fillRect(0, 20, 130, 50, ST7735_BLACK); | |||
| tft.setCursor(0, 50); // Set position (x,y) | |||
| tft.setFont(&titillium_web_regular20pt7b); | |||
| tft.setTextSize(0); // Set text size. Goes from 0 (the smallest) to 20 (very big) | |||
| tft.setTextColor(ST7735_CYAN); | |||
| tft.println(buf); | |||
| lastDistance = buf; | |||
| } | |||
| // char buf[50]; | |||
| // sprintf(buf, "%lu cm", distance); | |||
| // | |||
| // if (!lastDistance.equals(buf)) { | |||
| // tft.fillRect(0, 20, 130, 50, ST7735_BLACK); | |||
| // tft.setCursor(0, 50); // Set position (x,y) | |||
| // tft.setFont(&titillium_web_regular20pt7b); | |||
| // tft.setTextSize(0); // Set text size. Goes from 0 (the smallest) to 20 (very big) | |||
| // tft.setTextColor(ST7735_CYAN); | |||
| // tft.println(buf); | |||
| // lastDistance = buf; | |||
| // } | |||
| delay(200); | |||
| // } else { | |||
| // mylcd.Fill_Screen(BLACK); | |||
| } else { | |||
| // tft.fillScreen(ST7735_BLACK); | |||
| SetActualStatus(IDLE); | |||
| } | |||
| break; | |||
| case MEASURING: | |||
| break; | |||
| default: | |||
| break; | |||
| } | |||
| @@ -0,0 +1,216 @@ | |||
| #include "Adafruit_GFX.h" // Include core graphics library | |||
| #include "Adafruit_ST7735.h" // Include Adafruit_ST7735 library to drive the display | |||
| #include "Arduino.h" | |||
| #include "HardwareSerial.h" | |||
| #include "ExEzButton.h" | |||
| #include "Status.h" | |||
| #include "RotaryControler.h" | |||
| #include "EchoLotSetup.h" | |||
| #include "ThreePositionSwitch.h" | |||
| #include "fonts/titillium_web_regular16pt7b.h" // Add a custom font | |||
| #include "fonts/titillium_web_regular12pt7b.h" // Add a custom font | |||
| #include "fonts/titillium_web_regular8pt7b.h" // Add a custom font | |||
| #include "images/SFToolsLogo.h" | |||
| #include "images/thermometer_32.h" | |||
| #include "images/gear.h" | |||
| #include "images/zzz.h" | |||
| #include "images/ruler.h" | |||
| #include "images/air.h" | |||
| #include "images/water.h" | |||
| #include "images/water_s.h" | |||
| static const int trigPin = A0; | |||
| static const int echoPin = A1; | |||
| static const int RotEnc_Switch_Pin = A2; | |||
| static const int RotEnc_Clk_Pin = A3; | |||
| static const int RotEnc_Dta_Pin = A4; | |||
| static const int Pos3Sw_Pin1 = 3; | |||
| static const int Pos3Sw_Pin2 = 4; | |||
| static const int Pos3Sw_Pin3 = 5; | |||
| static const int Measure_Pin = 7; | |||
| #define LED -1 // to +5v | |||
| #define SCK 13//A1 with SCK on 13 and SDA on 11 it is 10x faster!!! | |||
| #define SDA 11//A2 | |||
| #define MISO -1 | |||
| #define MOSI SDA | |||
| #define CS 10 | |||
| #define DC 9 | |||
| #define RST 8 | |||
| Status actualStatus; | |||
| Status originStatus; | |||
| String oldStatus = ""; | |||
| String lastDistance = ""; | |||
| // Create display: | |||
| Adafruit_ST7735 tft = Adafruit_ST7735(CS, DC, RST); | |||
| RotaryControler RotaryControler(RotEnc_Dta_Pin, RotEnc_Clk_Pin, RotEnc_Switch_Pin); | |||
| ExEzButton MeasureBtn(Measure_Pin, false, 2000); | |||
| ThreePositionSwitch ThreePositionSwitch(Pos3Sw_Pin1, Pos3Sw_Pin2, Pos3Sw_Pin3); | |||
| //Display Display; | |||
| void setup() { | |||
| SetActualStatus(INITIALIZATION); | |||
| // Display.init(); | |||
| Serial.begin(115200); | |||
| pinMode(trigPin, OUTPUT); | |||
| pinMode(echoPin, INPUT); | |||
| pinMode(RotEnc_Switch_Pin, INPUT); | |||
| pinMode(RotEnc_Dta_Pin, INPUT); | |||
| pinMode(RotEnc_Clk_Pin, INPUT); | |||
| pinMode(Measure_Pin, INPUT); | |||
| MeasureBtn.setDebounceTime(50); | |||
| RotaryControler.setDebounceTime(50); | |||
| ThreePositionSwitch.setDebounceTime(50); | |||
| // Display setup: | |||
| // Use this initializer if you're using a 1.8" TFT | |||
| tft.initR(INITR_BLACKTAB); // Initialize a ST7735S chip, black tab | |||
| tft.fillScreen(ST7735_BLACK); // Fill screen with black | |||
| tft.setRotation(1); // Set orientation of the display. Values are from 0 to 3. If not declared, orientation would be 0, | |||
| // // which is portrait mode. | |||
| // | |||
| // tft.setTextWrap(false); // By default, long lines of text are set to automatically “wrap� back to the leftmost column. | |||
| // // To override this behavior (so text will run off the right side of the display - useful for | |||
| // // scrolling marquee effects), use setTextWrap(false). The normal wrapping behavior is restored | |||
| // // with setTextWrap(true). | |||
| // | |||
| tft.setCursor(0, 20); // Set position (x,y) | |||
| tft.setFont(&titillium_web_regular16pt7b); | |||
| tft.setTextSize(1); // Set text size. Goes from 0 (the smallest) to 20 (very big) | |||
| tft.setTextColor(ST7735_WHITE); | |||
| tft.println("AaBbCc012"); | |||
| tft.setCursor(0, 60); // Set position (x,y) | |||
| tft.setFont(&titillium_web_regular12pt7b); | |||
| tft.setTextSize(1); // Set text size. Goes from 0 (the smallest) to 20 (very big) | |||
| tft.setTextColor(ST7735_WHITE); | |||
| tft.println("AaBbCc0129"); | |||
| tft.setCursor(0, 80); // Set position (x,y) | |||
| tft.setFont(&titillium_web_regular8pt7b); | |||
| tft.setTextSize(1); // Set text size. Goes from 0 (the smallest) to 20 (very big) | |||
| tft.setTextColor(ST7735_WHITE); | |||
| tft.println("AaBbCc0129"); | |||
| tft.drawBitmap(5, 100, epd_bitmap_gear, 24, 24, ST7735_YELLOW); | |||
| tft.drawBitmap(40, 100, epd_bitmap_Zzz_24, 24, 24, ST7735_CYAN); | |||
| tft.drawBitmap(75, 100, epd_bitmap_Measure_25, 25, 25, ST7735_RED); | |||
| tft.fillTriangle(75, 98, 80, 102, 75, 107, ST7735_RED); | |||
| tft.fillTriangle(82, 98, 87, 102, 82, 107, ST7735_RED); | |||
| tft.fillTriangle(89, 98, 94, 102, 89, 107, ST7735_RED); | |||
| tft.fillTriangle(96, 98, 101, 102, 96, 107, ST7735_RED); | |||
| // tft.drawBitmap(110, 100, epd_bitmap_air, 24, 24, ST7735_CYAN); | |||
| tft.drawBitmap(110, 100, epd_bitmap_water_s, 24, 24, ST7735_BLUE); | |||
| // | |||
| // tft.drawBitmap(0, 80, SFTools_Logo, 128, 34, ST7735_GREEN); | |||
| // | |||
| // tft.drawBitmap(1, 160 - 32, thermometer_icon_32, 32, 32, 0xE71C); | |||
| // | |||
| // tft.drawBitmap(33, 160 - 32, thermometer_icon_32, 32, 32, ST7735_YELLOW); | |||
| // tft.drawRect(48, 137, 2, 6, ST7735_YELLOW); | |||
| // | |||
| // tft.drawBitmap(110, 96, thermometer_icon_32, 32, 32, ST7735_RED); | |||
| // tft.drawRect(125, 101, 2, 10, ST7735_RED); | |||
| // | |||
| // delay(3000); | |||
| // | |||
| // tft.fillScreen(ST7735_BLACK); // Fill screen with black | |||
| // Display.display(); | |||
| } | |||
| void loop() { | |||
| MeasureBtn.loop(); | |||
| RotaryControler.loop(); | |||
| switch (actualStatus) { | |||
| case INITIALIZATION: | |||
| SetActualStatus(IDLE); | |||
| break; | |||
| case CONFIGURATION: | |||
| break; | |||
| case IDLE: | |||
| if (RotaryControler.isSwitchLongPressed()) { | |||
| Serial.println("RotaryEnc Long SwitchPressed"); | |||
| RotaryControler.resetPosition(); | |||
| } | |||
| if (RotaryControler.isSwitchPressed()) { | |||
| Serial.println("RotaryEnc SwitchPressed"); | |||
| } else if (MeasureBtn.isPressing()) { | |||
| SetActualStatus(MEASURING); | |||
| } | |||
| ThreePositionSwitch.loop(); | |||
| int pin = ThreePositionSwitch.getPosition(); | |||
| Serial.print("3-Pos-Schalter Position: "); | |||
| Serial.println(pin); | |||
| delay(200); | |||
| break; | |||
| case MEASURING: | |||
| if (MeasureBtn.isPressing()) { | |||
| digitalWrite(trigPin, LOW); | |||
| delayMicroseconds(5); | |||
| digitalWrite(trigPin, HIGH); | |||
| delayMicroseconds(20); | |||
| digitalWrite(trigPin, LOW); | |||
| long duration = pulseIn(echoPin, HIGH); | |||
| long distance = duration * 0.03432 / 2; | |||
| Serial.print("Distance:"); | |||
| Serial.println(distance); | |||
| char buf[50]; | |||
| sprintf(buf, "%lu cm", distance); | |||
| if (!lastDistance.equals(buf)) { | |||
| // tft.fillRect(0, 20, 130, 50, ST7735_BLACK); | |||
| // tft.setCursor(0, 50); // Set position (x,y) | |||
| // tft.setFont(&titillium_web_regular20pt7b); | |||
| // tft.setTextSize(0); // Set text size. Goes from 0 (the smallest) to 20 (very big) | |||
| // tft.setTextColor(ST7735_CYAN); | |||
| // tft.println(buf); | |||
| lastDistance = buf; | |||
| } | |||
| delay(200); | |||
| } else { | |||
| // tft.fillScreen(ST7735_BLACK); | |||
| SetActualStatus(IDLE); | |||
| } | |||
| break; | |||
| default: | |||
| break; | |||
| } | |||
| } | |||
| void SetActualStatus(Status newStatus) { | |||
| if (actualStatus != newStatus) { | |||
| actualStatus = newStatus; | |||
| // Display.setRefreshScreen(); | |||
| } | |||
| } | |||
| @@ -0,0 +1,211 @@ | |||
| /* | |||
| * EchoLotSetup.cpp | |||
| * | |||
| * Created on: 10.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #include "EchoLotSetup.h" | |||
| #define ADDR_AIR_TEMP 0 // WORD | |||
| #define ADDR_WATER_TEMP 2 // +2 WORDs | |||
| #define ADDR_SONIC_AIR 4 // +2 WORDs | |||
| #define ADDR_SALTPERMIL 6 // +2 WORDs | |||
| // -------------------------------------------------- | |||
| // Konstruktor | |||
| // -------------------------------------------------- | |||
| EchoLotSetup::EchoLotSetup(Display &display) : display(display) { | |||
| airTemp = 20.0f; | |||
| waterTemp = 20.0f; | |||
| sonicSpeedAir = 343.0f; | |||
| saltPromilleWater = 35; | |||
| doInitialization = true; | |||
| configStepIndex = 0; | |||
| } | |||
| // -------------------------------------------------- | |||
| // Initialisierung | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::initialize() { | |||
| EEPROM.init(); | |||
| readFromEEPROM(); | |||
| doInitialization = false; | |||
| } | |||
| // -------------------------------------------------- | |||
| // Rotary Switch (kurz) | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::onRotaryControlerSwitch() { | |||
| configStepIndex++; | |||
| if (configStepIndex >= 5) { | |||
| configStepIndex = 0; | |||
| } | |||
| } | |||
| // -------------------------------------------------- | |||
| // Rotary Switch (lang) | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::onRotaryControlerLongSwitch() { | |||
| } | |||
| // -------------------------------------------------- | |||
| // Rotary Drehung | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::onRotaryControlerTurn(RotaryEncoder::Direction turn) | |||
| { | |||
| float delta = (turn == RotaryEncoder::Direction::CLOCKWISE) ? 1.0f : -1.0f; | |||
| switch (configStepIndex) { | |||
| case 0: | |||
| airTemp += delta; | |||
| break; | |||
| case 1: | |||
| waterTemp += delta; | |||
| break; | |||
| case 2: | |||
| sonicSpeedAir += delta; | |||
| break; | |||
| case 3: | |||
| saltPromilleWater += delta; | |||
| break; | |||
| default: | |||
| break; | |||
| } | |||
| } | |||
| // -------------------------------------------------- | |||
| // Speichern bestätigen | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::save() { | |||
| saveToEEPROM(); | |||
| } | |||
| // -------------------------------------------------- | |||
| // Abbrechen | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::cancel() { | |||
| readFromEEPROM(); | |||
| } | |||
| // -------------------------------------------------- | |||
| // Display leeren | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::clear() { | |||
| display.clearDisplay(); | |||
| } | |||
| // -------------------------------------------------- | |||
| // EEPROM lesen | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::readFromEEPROM() { | |||
| setAirTemp(readFloatFromEEPROM(ADDR_AIR_TEMP)); | |||
| setWaterTemp(readFloatFromEEPROM(ADDR_WATER_TEMP)); | |||
| setSonicSpeedAir(readFloatFromEEPROM(ADDR_SONIC_AIR)); | |||
| setSaltPromilleWater(readIntegerFromEEPROM(ADDR_SALTPERMIL)); | |||
| printValues(); | |||
| } | |||
| // -------------------------------------------------- | |||
| // EEPROM schreiben | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::saveToEEPROM() { | |||
| writeFloatToEEPROM(ADDR_AIR_TEMP, airTemp); | |||
| writeFloatToEEPROM(ADDR_WATER_TEMP, waterTemp); | |||
| writeFloatToEEPROM(ADDR_SONIC_AIR, sonicSpeedAir); | |||
| writeIntegerToEEPROM(ADDR_SALTPERMIL, saltPromilleWater); | |||
| } | |||
| // -------------------------------------------------- | |||
| // Werte anzeigen | |||
| // -------------------------------------------------- | |||
| void EchoLotSetup::printValues() { | |||
| String value = String(sonicSpeedAir); | |||
| Serial.print(String(AIRTEMP) + ": " + String(getAirTemp(), 1) + ", "); | |||
| Serial.print(String(WATERTEMP) + ": " + String(getWaterTemp(), 1) + ", "); | |||
| Serial.print(String(SONICSPEEDAIR) + ": " + String(getSonicSpeedAir(), 1) + ", "); | |||
| Serial.println(String(SALTPROMILLEWATER) + ": " + String(getSaltPromilleWater())); | |||
| } | |||
| // -------------------------------------------------- | |||
| // Private Helper | |||
| // -------------------------------------------------- | |||
| String EchoLotSetup::getCfgOptForStepIndex(byte index) { | |||
| return ConfigStep[index]; | |||
| } | |||
| String EchoLotSetup::getCfgOptUnitForStepIndex(byte index) { | |||
| switch (index) { | |||
| case 0: | |||
| case 1: | |||
| return "°C"; | |||
| case 2: | |||
| case 3: | |||
| return "m/s"; | |||
| default: | |||
| return ""; | |||
| } | |||
| } | |||
| float EchoLotSetup::getAirTemp() const { | |||
| return airTemp; | |||
| } | |||
| void EchoLotSetup::setAirTemp(float airTemp) { | |||
| this->airTemp = airTemp; | |||
| } | |||
| float EchoLotSetup::getWaterTemp() const { | |||
| return waterTemp; | |||
| } | |||
| void EchoLotSetup::setWaterTemp(float waterTemp) { | |||
| this->waterTemp = waterTemp; | |||
| } | |||
| float EchoLotSetup::getSonicSpeedAir() const { | |||
| return sonicSpeedAir; | |||
| } | |||
| void EchoLotSetup::setSonicSpeedAir(float sonicSpeedAir) { | |||
| this->sonicSpeedAir = sonicSpeedAir; | |||
| } | |||
| int EchoLotSetup::getSaltPromilleWater() const { | |||
| return saltPromilleWater; | |||
| } | |||
| void EchoLotSetup::setSaltPromilleWater(int saltPromilleWater) { | |||
| this->saltPromilleWater = saltPromilleWater; | |||
| } | |||
| void EchoLotSetup::writeFloatToEEPROM(uint16_t addr, float value) { | |||
| uint16_t *p = (uint16_t*) (void*) &value; | |||
| // float = 2 x uint16_t | |||
| EEPROM.update(addr, p[0]); | |||
| EEPROM.update(addr + 1, p[1]); | |||
| } | |||
| float EchoLotSetup::readFloatFromEEPROM(uint16_t addr) { | |||
| float value; | |||
| uint16_t *p = (uint16_t*) (void*) &value; | |||
| p[0] = EEPROM.read(addr); | |||
| p[1] = EEPROM.read(addr + 1); | |||
| return value; | |||
| } | |||
| void EchoLotSetup::writeIntegerToEEPROM(uint16_t addr, int value) { | |||
| EEPROM.update(addr, (uint16_t) value); | |||
| } | |||
| int EchoLotSetup::readIntegerFromEEPROM(uint16_t addr) { | |||
| return (int) EEPROM.read(addr); | |||
| } | |||
| @@ -0,0 +1,74 @@ | |||
| /* | |||
| * RouterSetup.h | |||
| * | |||
| * Created on: 05.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef ECHOLOT_SETUP_H_ | |||
| #define ECHOLOT_SETUP_H_ | |||
| #include <stdint.h> | |||
| #include <stdio.h> | |||
| #include <RotaryEncoder.h> | |||
| #include <EEPROM.h> | |||
| #include "Display.h" | |||
| const static char ECHOLOT_NAMESPACE[] = "echolot_stp"; | |||
| const static char AIRTEMP[] = "airTemp"; | |||
| const static char WATERTEMP[] = "waterTemp"; | |||
| const static char SONICSPEEDAIR[] = "sonicSpeedAir"; | |||
| const static char SALTPROMILLEWATER[] = "saltPromilleWater"; | |||
| const static String ConfigStep[5] = { "Temp. Luft", "Temp. Wasser", "Vsonic Luft", "Salzgeh. Wasser" }; | |||
| #define eeprom_start_adress 0 | |||
| class EchoLotSetup { | |||
| private: | |||
| Display &display; | |||
| float airTemp; // in °C | |||
| float waterTemp; // in °C | |||
| float sonicSpeedAir; // im m/s | |||
| int saltPromilleWater; | |||
| bool doInitialization; | |||
| byte configStepIndex; | |||
| String getCfgOptForStepIndex(byte configStepIndex); | |||
| String getCfgOptUnitForStepIndex(byte configStepIndex); | |||
| void writeFloatToEEPROM(uint16_t addr, float value); | |||
| float readFloatFromEEPROM(uint16_t addr); | |||
| void writeIntegerToEEPROM(uint16_t addr, int value); | |||
| int readIntegerFromEEPROM(uint16_t addr); | |||
| public: | |||
| // int eeprom_start_adress = 0; | |||
| const static int eeprom_signatur = 1024; | |||
| const static uint8_t version = 1; | |||
| EchoLotSetup(Display &display); | |||
| void initialize(); | |||
| void onRotaryControlerSwitch(); | |||
| void onRotaryControlerLongSwitch(); | |||
| void onRotaryControlerTurn(RotaryEncoder::Direction turn); | |||
| void save(); | |||
| void cancel(); | |||
| void clear(); | |||
| void readFromEEPROM(); | |||
| void saveToEEPROM(); | |||
| void printValues(); | |||
| float getAirTemp() const; | |||
| void setAirTemp(float airTemp); | |||
| float getWaterTemp() const; | |||
| void setWaterTemp(float waterTemp); | |||
| float getSonicSpeedAir() const; | |||
| void setSonicSpeedAir(float sonicSpeedAir); | |||
| int getSaltPromilleWater() const; | |||
| void setSaltPromilleWater(int saltPromilleWater); | |||
| }; | |||
| #endif /* ROUTER_SETUP_H_ */ | |||
| @@ -5,12 +5,12 @@ | |||
| * Author: FSmilari | |||
| */ | |||
| #include "TreePositionSwitch.h" | |||
| #include "ThreePositionSwitch.h" | |||
| /***************** | |||
| ** Constructors. | |||
| ****************/ | |||
| TreePositionSwitch::TreePositionSwitch(int Pos1Pin, int Pos2Pin, int Pos3Pin) : Pos1_Pin(Pos1Pin), Pos2_Pin(Pos2Pin), Pos3_Pin(Pos3Pin), actualPosition(-1) { | |||
| ThreePositionSwitch::ThreePositionSwitch(int Pos1Pin, int Pos2Pin, int Pos3Pin) : Pos1_Pin(Pos1Pin), Pos2_Pin(Pos2Pin), Pos3_Pin(Pos3Pin), actualPosition(-1) { | |||
| lastDebounceTime = 0; | |||
| pinMode(Pos1_Pin, INPUT_PULLUP); | |||
| @@ -18,7 +18,7 @@ TreePositionSwitch::TreePositionSwitch(int Pos1Pin, int Pos2Pin, int Pos3Pin) : | |||
| pinMode(Pos3_Pin, INPUT_PULLUP); | |||
| } | |||
| void TreePositionSwitch::loop(void) { | |||
| void ThreePositionSwitch::loop(void) { | |||
| int currentReadPosition = -1; | |||
| if (digitalRead(Pos1_Pin) == LOW) { | |||
| @@ -43,10 +43,10 @@ void TreePositionSwitch::loop(void) { | |||
| } | |||
| } | |||
| int TreePositionSwitch::getPosition(void) { | |||
| int ThreePositionSwitch::getPosition(void) { | |||
| return actualPosition; | |||
| } | |||
| void TreePositionSwitch::setDebounceTime(unsigned long time) { | |||
| void ThreePositionSwitch::setDebounceTime(unsigned long time) { | |||
| lastDebounceTime = time; | |||
| } | |||
| @@ -5,13 +5,13 @@ | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef TREEPOSITIONSWITCH_H_ | |||
| #define TREEPOSITIONSWITCH_H_ | |||
| #ifndef THREEPOSITIONSWITCH_H_ | |||
| #define THREEPOSITIONSWITCH_H_ | |||
| #include "RotaryEncoder.h" | |||
| #include "ExEzButton.h" | |||
| class TreePositionSwitch: public Loopable { | |||
| class ThreePositionSwitch: public Loopable { | |||
| private: | |||
| int actualPosition; | |||
| int Pos1_Pin; | |||
| @@ -23,10 +23,10 @@ class TreePositionSwitch: public Loopable { | |||
| int lastReadPosition = -1; | |||
| public: | |||
| TreePositionSwitch(int Pos1_Pin, int Pos2_Pin, int Pos3_Pin); | |||
| ThreePositionSwitch(int Pos1_Pin, int Pos2_Pin, int Pos3_Pin); | |||
| int getPosition(void); | |||
| void setDebounceTime(unsigned long time); | |||
| void loop(void) override; | |||
| }; | |||
| #endif /* TREEPOSITIONSWITCH_H_ */ | |||
| #endif /* THREEPOSITIONSWITCH_H_ */ | |||
| @@ -1,221 +0,0 @@ | |||
| const uint8_t Rubik_Regular10pt7bBitmaps[] PROGMEM = { | |||
| 0x00, 0xDB, 0x6D, 0xB6, 0xDB, 0x0F, 0xC0, 0xDE, 0xF7, 0x90, 0x08, 0xC1, | |||
| 0x8C, 0xFF, 0xF7, 0xFF, 0x19, 0x81, 0x18, 0x11, 0x8F, 0xFE, 0xFF, 0xE3, | |||
| 0x10, 0x33, 0x00, 0x0C, 0x01, 0x80, 0xF8, 0x3F, 0xCE, 0x1D, 0x81, 0xB0, | |||
| 0x03, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0x00, 0x3C, 0x07, 0xC1, 0xDF, 0xF0, | |||
| 0xFC, 0x0C, 0x01, 0x80, 0x78, 0x1B, 0xF0, 0xCC, 0xC6, 0x33, 0x18, 0xCC, | |||
| 0xC3, 0xF6, 0x07, 0xB0, 0x01, 0xDE, 0x06, 0xFC, 0x33, 0x31, 0x8C, 0xCE, | |||
| 0x33, 0x30, 0xFD, 0x81, 0xE0, 0x1E, 0x01, 0xF8, 0x1C, 0xE0, 0xC3, 0x06, | |||
| 0x18, 0x19, 0x80, 0x78, 0x07, 0xC6, 0x67, 0x36, 0x1D, 0xB0, 0x79, 0xC3, | |||
| 0xC7, 0xFF, 0x1F, 0x9C, 0xFF, 0x1B, 0xD8, 0xCC, 0x63, 0x18, 0xC6, 0x31, | |||
| 0x8C, 0x63, 0x0C, 0x63, 0xC6, 0xC7, 0x8C, 0x61, 0x8C, 0x63, 0x18, 0xC6, | |||
| 0x31, 0x8C, 0x66, 0x37, 0xB0, 0x31, 0x2B, 0xFB, 0xE3, 0x8D, 0x92, 0x00, | |||
| 0x0C, 0x03, 0x00, 0xC0, 0x30, 0xFF, 0xFF, 0xF0, 0xC0, 0x30, 0x0C, 0x03, | |||
| 0x00, 0xFB, 0x60, 0xFF, 0xFC, 0xF0, 0x01, 0x80, 0xC0, 0xC0, 0x60, 0x30, | |||
| 0x30, 0x18, 0x18, 0x0C, 0x06, 0x06, 0x03, 0x03, 0x01, 0x80, 0xC0, 0xC0, | |||
| 0x60, 0x60, 0x00, 0x1F, 0x0F, 0xF9, 0x83, 0x60, 0x3C, 0x07, 0x80, 0xF0, | |||
| 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xB0, 0x67, 0xFC, 0x3E, 0x00, 0x0E, | |||
| 0x3C, 0xFB, 0xBC, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, | |||
| 0x1F, 0x0F, 0xE6, 0x1D, 0x83, 0x00, 0xC0, 0x30, 0x18, 0x0E, 0x06, 0x03, | |||
| 0x01, 0x80, 0xC0, 0x7F, 0xFF, 0xF0, 0xFF, 0xBF, 0xE0, 0x38, 0x1C, 0x0E, | |||
| 0x03, 0x01, 0xF0, 0x7E, 0x01, 0xC0, 0x3C, 0x0F, 0x07, 0x7F, 0x8F, 0x80, | |||
| 0x01, 0x80, 0x70, 0x1E, 0x03, 0xC0, 0xD8, 0x33, 0x0E, 0x61, 0x8C, 0x61, | |||
| 0x9F, 0xFF, 0xFF, 0x80, 0xC0, 0x18, 0x03, 0x00, 0x7F, 0x9F, 0xE6, 0x01, | |||
| 0x80, 0x60, 0x1F, 0x8F, 0xFB, 0x87, 0x00, 0xC0, 0x3C, 0x0F, 0x87, 0x7F, | |||
| 0x8F, 0x80, 0x06, 0x03, 0x00, 0xC0, 0x60, 0x3E, 0x0F, 0xE6, 0x1B, 0x03, | |||
| 0xC0, 0xF0, 0x3C, 0x0D, 0x86, 0x7F, 0x87, 0x80, 0xFF, 0xFF, 0xC0, 0xC0, | |||
| 0x60, 0x30, 0x30, 0x18, 0x18, 0x0C, 0x06, 0x06, 0x03, 0x01, 0x01, 0x80, | |||
| 0x1E, 0x1F, 0xEE, 0x1F, 0x03, 0xC0, 0xF8, 0x77, 0xF9, 0xFE, 0xE1, 0xF0, | |||
| 0x3C, 0x0F, 0x87, 0x7F, 0x87, 0x80, 0x1E, 0x1F, 0xE6, 0x1F, 0x03, 0xC0, | |||
| 0xF0, 0x3E, 0x1D, 0xFE, 0x1F, 0x01, 0xC0, 0x60, 0x30, 0x1C, 0x06, 0x00, | |||
| 0xF0, 0x03, 0xC0, 0xF0, 0x03, 0xE8, 0x03, 0x07, 0x1E, 0x38, 0x70, 0xC0, | |||
| 0xC0, 0x70, 0x38, 0x1E, 0x07, 0x03, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x07, | |||
| 0xFF, 0xFE, 0xC0, 0xE0, 0x70, 0x1C, 0x0E, 0x07, 0x07, 0x0E, 0x1C, 0x70, | |||
| 0xE0, 0xC0, 0x3C, 0x3F, 0xB0, 0xF8, 0x30, 0x18, 0x1C, 0x1C, 0x1C, 0x1C, | |||
| 0x0C, 0x06, 0x00, 0x01, 0x80, 0xC0, 0x07, 0xE0, 0x3F, 0xF0, 0xE0, 0xF3, | |||
| 0x80, 0x66, 0x36, 0x68, 0xFC, 0xF3, 0x99, 0xE6, 0x33, 0xCC, 0x67, 0x98, | |||
| 0xCF, 0x39, 0x9A, 0x3F, 0xF6, 0x39, 0xCE, 0x01, 0x8E, 0x0E, 0x0F, 0xF8, | |||
| 0x07, 0xE0, 0x07, 0x00, 0x3C, 0x01, 0xE0, 0x1B, 0x00, 0xCC, 0x0C, 0x60, | |||
| 0x61, 0x83, 0x0C, 0x30, 0x61, 0xFF, 0x9F, 0xFC, 0xC0, 0x66, 0x01, 0xE0, | |||
| 0x0C, 0xFF, 0x3F, 0xEC, 0x1F, 0x03, 0xC0, 0xF0, 0x7F, 0xFB, 0xFE, 0xC1, | |||
| 0xF0, 0x3C, 0x0F, 0x07, 0xFF, 0xBF, 0xC0, 0x1F, 0x87, 0xF9, 0xC3, 0xF0, | |||
| 0x3C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x81, 0xB8, 0x73, | |||
| 0xFC, 0x3F, 0x00, 0xFF, 0x1F, 0xF3, 0x07, 0x60, 0x7C, 0x07, 0x80, 0xF0, | |||
| 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x03, 0xE0, 0xEF, 0xF9, 0xFE, 0x00, 0xFF, | |||
| 0xFF, 0xF0, 0x18, 0x0C, 0x06, 0x03, 0xFF, 0xFF, 0xC0, 0x60, 0x30, 0x18, | |||
| 0x0F, 0xFF, 0xFC, 0xFF, 0xFF, 0xF0, 0x18, 0x0C, 0x06, 0x03, 0xFF, 0xFF, | |||
| 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x1F, 0x83, 0xFE, 0x70, 0x6E, | |||
| 0x03, 0xC0, 0x0C, 0x00, 0xC1, 0xFC, 0x1F, 0xC0, 0x3C, 0x03, 0xE0, 0x77, | |||
| 0x0E, 0x3F, 0xC1, 0xF8, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, | |||
| 0xFF, 0xFF, 0xFF, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xC0, | |||
| 0xFF, 0xFF, 0xFF, 0xF0, 0x7F, 0xDF, 0xF0, 0x0C, 0x03, 0x00, 0xC0, 0x30, | |||
| 0x0C, 0x03, 0x00, 0xC0, 0x3C, 0x0F, 0x06, 0x7F, 0x8F, 0x80, 0xC1, 0xF0, | |||
| 0xEC, 0x73, 0x38, 0xD8, 0x3C, 0x0E, 0x03, 0xC0, 0xF8, 0x37, 0x0C, 0xE3, | |||
| 0x1C, 0xC3, 0xB0, 0x70, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, | |||
| 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0F, 0xFF, 0xFC, 0xC0, 0x3E, 0x07, 0xE0, | |||
| 0x7F, 0x0F, 0xF0, 0xFD, 0x9B, 0xD9, 0xBC, 0xF3, 0xCF, 0x3C, 0x63, 0xC6, | |||
| 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0xF8, 0x3E, 0x0F, 0xC3, 0xD0, 0xF6, | |||
| 0x3C, 0xCF, 0x33, 0xC6, 0xF0, 0xBC, 0x3F, 0x07, 0xC1, 0xF0, 0x30, 0x1F, | |||
| 0x07, 0xF1, 0x83, 0x70, 0x7C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, | |||
| 0x0F, 0x83, 0xB0, 0x63, 0xF8, 0x3E, 0x00, 0xFF, 0x3F, 0xEC, 0x1F, 0x03, | |||
| 0xC0, 0xF0, 0x3C, 0x1F, 0xFE, 0xFF, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, | |||
| 0x00, 0x1F, 0x07, 0xF9, 0x83, 0x70, 0x7C, 0x07, 0x80, 0xF0, 0x1E, 0x03, | |||
| 0xC0, 0x78, 0x0F, 0x83, 0xB0, 0x63, 0xFC, 0x3F, 0x80, 0x18, 0xFF, 0x3F, | |||
| 0xEC, 0x1F, 0x03, 0xC0, 0xF0, 0x7F, 0xFB, 0xFC, 0xC2, 0x30, 0xCC, 0x13, | |||
| 0x06, 0xC0, 0xF0, 0x30, 0x3E, 0x0F, 0xF3, 0x87, 0x60, 0x6C, 0x00, 0xC0, | |||
| 0x0F, 0x80, 0x3C, 0x00, 0xE0, 0x0F, 0x01, 0xF0, 0x77, 0xFC, 0x7E, 0x00, | |||
| 0xFF, 0xFF, 0xF0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, | |||
| 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, | |||
| 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0D, 0x86, 0x7F, 0x87, 0x80, | |||
| 0xC0, 0x78, 0x0F, 0x01, 0xB0, 0x66, 0x0C, 0xC1, 0x8C, 0x61, 0x8C, 0x31, | |||
| 0x83, 0x60, 0x6C, 0x0D, 0x80, 0xE0, 0x1C, 0x00, 0xC0, 0x0F, 0x00, 0x3C, | |||
| 0x00, 0xF0, 0xC2, 0x43, 0x19, 0x9C, 0x66, 0x79, 0x99, 0xE6, 0x64, 0x90, | |||
| 0xB3, 0x43, 0xCF, 0x0E, 0x3C, 0x38, 0x70, 0xE1, 0x80, 0x60, 0x37, 0x06, | |||
| 0x30, 0xE1, 0x8C, 0x0D, 0x80, 0xF8, 0x07, 0x00, 0x70, 0x0F, 0x81, 0xD8, | |||
| 0x18, 0xC3, 0x06, 0x60, 0x7E, 0x03, 0xC0, 0x36, 0x06, 0x60, 0x63, 0x0C, | |||
| 0x39, 0xC1, 0x98, 0x0F, 0x00, 0xF0, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, | |||
| 0x06, 0x00, 0x60, 0xFF, 0xFF, 0xF0, 0x18, 0x0E, 0x03, 0x01, 0x80, 0xC0, | |||
| 0x70, 0x18, 0x0C, 0x06, 0x01, 0x80, 0xFF, 0xFF, 0xF0, 0xFF, 0xF1, 0x8C, | |||
| 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC7, 0xFE, 0xC0, 0x30, 0x18, | |||
| 0x06, 0x03, 0x00, 0x80, 0x60, 0x30, 0x0C, 0x06, 0x01, 0x00, 0xC0, 0x60, | |||
| 0x18, 0x0C, 0x02, 0x01, 0x80, 0xC0, 0xFF, 0xC6, 0x31, 0x8C, 0x63, 0x18, | |||
| 0xC6, 0x31, 0x8C, 0x63, 0x1F, 0xFE, 0x31, 0xEC, 0xC0, 0xFF, 0xFF, 0xFF, | |||
| 0xC0, 0xE3, 0x8E, 0x1E, 0x1F, 0x98, 0xEC, 0x30, 0xFB, 0x8F, 0x07, 0x87, | |||
| 0xFF, 0xBE, 0xC0, 0xC0, 0x60, 0x30, 0x18, 0x0D, 0xE7, 0xFB, 0x8F, 0x83, | |||
| 0xC1, 0xE0, 0xF0, 0x7C, 0x7F, 0xF6, 0xF0, 0x3E, 0x3F, 0xB8, 0x78, 0x3C, | |||
| 0x06, 0x03, 0x07, 0xC3, 0x7F, 0x1F, 0x00, 0x00, 0xC0, 0x30, 0x0C, 0x03, | |||
| 0x3E, 0xDF, 0xFE, 0x1F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x87, 0x7F, 0xCF, | |||
| 0xB0, 0x3E, 0x3F, 0xB0, 0xF0, 0x3F, 0xFF, 0xFF, 0x07, 0x86, 0x7F, 0x1F, | |||
| 0x00, 0x1E, 0x7C, 0xC1, 0x83, 0x1F, 0xFF, 0x98, 0x30, 0x60, 0xC1, 0x83, | |||
| 0x06, 0x0C, 0x00, 0x3E, 0xDF, 0xFE, 0x1F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, | |||
| 0x87, 0x7F, 0xCF, 0xB4, 0x0D, 0x87, 0x7F, 0x87, 0xC0, 0xC0, 0x60, 0x30, | |||
| 0x18, 0x0D, 0xE7, 0xFB, 0x8F, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, | |||
| 0x0C, 0xFC, 0x0D, 0xB6, 0xDB, 0x6D, 0x80, 0x39, 0xC0, 0x01, 0x8C, 0x63, | |||
| 0x18, 0xC6, 0x31, 0x8C, 0x63, 0xFF, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, | |||
| 0x36, 0x73, 0x71, 0xE0, 0xE0, 0x78, 0x36, 0x19, 0xCC, 0x76, 0x1C, 0xFF, | |||
| 0xFF, 0xFF, 0xF0, 0xDC, 0xF3, 0xFF, 0xEE, 0x79, 0xF0, 0xC3, 0xC3, 0x0F, | |||
| 0x0C, 0x3C, 0x30, 0xF0, 0xC3, 0xC3, 0x0F, 0x0C, 0x30, 0xDE, 0x7F, 0xB8, | |||
| 0xF8, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xC0, 0x3E, 0x1F, 0xCE, | |||
| 0x1B, 0x06, 0xC0, 0xF0, 0x3C, 0x1B, 0x86, 0x7F, 0x0F, 0x80, 0xDE, 0x7F, | |||
| 0xB8, 0xF8, 0x3C, 0x1E, 0x0F, 0x07, 0xC7, 0xFF, 0x6F, 0x30, 0x18, 0x0C, | |||
| 0x06, 0x00, 0x3E, 0xDF, 0xFE, 0x1F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x87, | |||
| 0x7F, 0xCF, 0xB0, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0xDF, 0xFE, 0x30, 0xC3, | |||
| 0x0C, 0x30, 0xC3, 0x00, 0x1E, 0x3F, 0xD8, 0x6C, 0x03, 0x80, 0x38, 0x07, | |||
| 0xC3, 0x7F, 0x9F, 0x00, 0x30, 0x60, 0xC1, 0x8F, 0xFF, 0xCC, 0x18, 0x30, | |||
| 0x60, 0xC1, 0x83, 0xE3, 0xC0, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, | |||
| 0x3C, 0x0F, 0x87, 0x7F, 0xCF, 0xB0, 0xC0, 0xF0, 0x6C, 0x19, 0x8C, 0x63, | |||
| 0x0D, 0x83, 0x60, 0x70, 0x1C, 0x03, 0x00, 0xC3, 0x07, 0x0C, 0x3C, 0x78, | |||
| 0xD9, 0xE6, 0x66, 0x99, 0xB3, 0x63, 0xCF, 0x0E, 0x1C, 0x38, 0x70, 0x61, | |||
| 0x80, 0xC1, 0xB1, 0x9D, 0xC6, 0xC1, 0xC0, 0xE0, 0xD8, 0xC6, 0xE3, 0xE0, | |||
| 0xC0, 0xC0, 0xF0, 0x64, 0x19, 0x8C, 0x63, 0x0D, 0x83, 0x60, 0x70, 0x1C, | |||
| 0x02, 0x01, 0x80, 0x60, 0x30, 0x0C, 0x00, 0xFF, 0xFF, 0x06, 0x0C, 0x18, | |||
| 0x10, 0x30, 0x60, 0xFF, 0xFF, 0x0E, 0x3C, 0x61, 0x83, 0x06, 0x0C, 0x18, | |||
| 0x71, 0x81, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x18, 0x3C, 0x38, 0xFF, 0xFF, | |||
| 0xFF, 0xFF, 0xFF, 0xF0, 0xE1, 0xE0, 0xC0, 0xC1, 0x83, 0x06, 0x0C, 0x1C, | |||
| 0x0C, 0x70, 0xC1, 0x83, 0x06, 0x0C, 0x31, 0xE3, 0x80, 0x7F, 0xFF, 0x80 }; | |||
| const GFXglyph Rubik_Regular10pt7bGlyphs[] PROGMEM = { | |||
| { 0, 1, 1, 5, 0, 0 }, // 0x20 ' ' | |||
| { 1, 3, 14, 5, 1, -13 }, // 0x21 '!' | |||
| { 7, 5, 4, 7, 1, -13 }, // 0x22 '"' | |||
| { 10, 12, 11, 14, 1, -11 }, // 0x23 '#' | |||
| { 27, 11, 18, 13, 1, -15 }, // 0x24 '$' | |||
| { 52, 14, 14, 16, 1, -13 }, // 0x25 '%' | |||
| { 77, 13, 14, 14, 1, -13 }, // 0x26 '&' | |||
| { 100, 2, 4, 4, 1, -13 }, // 0x27 ''' | |||
| { 101, 5, 19, 7, 1, -15 }, // 0x28 '(' | |||
| { 113, 5, 19, 7, 1, -15 }, // 0x29 ')' | |||
| { 125, 7, 7, 9, 1, -14 }, // 0x2A '*' | |||
| { 132, 10, 10, 12, 1, -10 }, // 0x2B '+' | |||
| { 145, 3, 4, 5, 1, -1 }, // 0x2C ',' | |||
| { 147, 7, 2, 10, 1, -6 }, // 0x2D '-' | |||
| { 149, 2, 2, 5, 1, -1 }, // 0x2E '.' | |||
| { 150, 9, 18, 10, 0, -15 }, // 0x2F '/' | |||
| { 171, 11, 14, 13, 1, -13 }, // 0x30 '0' | |||
| { 191, 7, 14, 8, 0, -13 }, // 0x31 '1' | |||
| { 204, 10, 14, 11, 0, -13 }, // 0x32 '2' | |||
| { 222, 10, 14, 12, 1, -13 }, // 0x33 '3' | |||
| { 240, 11, 14, 12, 0, -13 }, // 0x34 '4' | |||
| { 260, 10, 14, 12, 1, -13 }, // 0x35 '5' | |||
| { 278, 10, 14, 12, 1, -13 }, // 0x36 '6' | |||
| { 296, 9, 14, 10, 1, -13 }, // 0x37 '7' | |||
| { 312, 10, 14, 12, 1, -13 }, // 0x38 '8' | |||
| { 330, 10, 14, 12, 1, -13 }, // 0x39 '9' | |||
| { 348, 2, 9, 5, 2, -8 }, // 0x3A ':' | |||
| { 351, 2, 11, 6, 2, -8 }, // 0x3B ';' | |||
| { 354, 8, 12, 10, 1, -12 }, // 0x3C '<' | |||
| { 366, 9, 7, 11, 1, -9 }, // 0x3D '=' | |||
| { 374, 8, 12, 10, 1, -12 }, // 0x3E '>' | |||
| { 386, 9, 14, 11, 1, -13 }, // 0x3F '?' | |||
| { 402, 15, 17, 17, 1, -13 }, // 0x40 '@' | |||
| { 434, 13, 14, 14, 0, -13 }, // 0x41 'A' | |||
| { 457, 10, 14, 13, 2, -13 }, // 0x42 'B' | |||
| { 475, 11, 14, 13, 1, -13 }, // 0x43 'C' | |||
| { 495, 11, 14, 14, 2, -13 }, // 0x44 'D' | |||
| { 515, 9, 14, 12, 2, -13 }, // 0x45 'E' | |||
| { 531, 9, 14, 12, 2, -13 }, // 0x46 'F' | |||
| { 547, 12, 14, 14, 1, -13 }, // 0x47 'G' | |||
| { 568, 11, 14, 15, 2, -13 }, // 0x48 'H' | |||
| { 588, 2, 14, 5, 2, -13 }, // 0x49 'I' | |||
| { 592, 10, 14, 13, 1, -13 }, // 0x4A 'J' | |||
| { 610, 10, 14, 12, 2, -13 }, // 0x4B 'K' | |||
| { 628, 9, 14, 11, 2, -13 }, // 0x4C 'L' | |||
| { 644, 12, 14, 16, 2, -13 }, // 0x4D 'M' | |||
| { 665, 10, 14, 14, 2, -13 }, // 0x4E 'N' | |||
| { 683, 11, 14, 13, 1, -13 }, // 0x4F 'O' | |||
| { 703, 10, 14, 13, 2, -13 }, // 0x50 'P' | |||
| { 721, 11, 15, 13, 1, -13 }, // 0x51 'Q' | |||
| { 742, 10, 14, 13, 2, -13 }, // 0x52 'R' | |||
| { 760, 11, 14, 13, 1, -13 }, // 0x53 'S' | |||
| { 780, 10, 14, 11, 1, -13 }, // 0x54 'T' | |||
| { 798, 10, 14, 14, 2, -13 }, // 0x55 'U' | |||
| { 816, 11, 14, 13, 1, -13 }, // 0x56 'V' | |||
| { 836, 14, 14, 16, 1, -13 }, // 0x57 'W' | |||
| { 861, 12, 14, 13, 0, -13 }, // 0x58 'X' | |||
| { 882, 12, 14, 13, 0, -13 }, // 0x59 'Y' | |||
| { 903, 10, 14, 12, 1, -13 }, // 0x5A 'Z' | |||
| { 921, 5, 19, 7, 1, -15 }, // 0x5B '[' | |||
| { 933, 9, 18, 10, 0, -15 }, // 0x5C '\' | |||
| { 954, 5, 19, 6, 0, -15 }, // 0x5D ']' | |||
| { 966, 6, 3, 8, 1, -14 }, // 0x5E '^' | |||
| { 969, 13, 2, 15, 1, 0 }, // 0x5F '_' | |||
| { 973, 5, 3, 7, 1, -14 }, // 0x60 '`' | |||
| { 975, 9, 10, 11, 1, -9 }, // 0x61 'a' | |||
| { 987, 9, 14, 12, 2, -13 }, // 0x62 'b' | |||
| { 1003, 9, 10, 11, 1, -9 }, // 0x63 'c' | |||
| { 1015, 10, 14, 13, 1, -13 }, // 0x64 'd' | |||
| { 1033, 9, 10, 11, 1, -9 }, // 0x65 'e' | |||
| { 1045, 7, 15, 8, 1, -14 }, // 0x66 'f' | |||
| { 1059, 10, 14, 13, 1, -9 }, // 0x67 'g' | |||
| { 1077, 9, 14, 12, 2, -13 }, // 0x68 'h' | |||
| { 1093, 3, 14, 5, 1, -13 }, // 0x69 'i' | |||
| { 1099, 5, 18, 5, -1, -13 }, // 0x6A 'j' | |||
| { 1111, 9, 14, 10, 1, -13 }, // 0x6B 'k' | |||
| { 1127, 2, 14, 5, 1, -13 }, // 0x6C 'l' | |||
| { 1131, 14, 10, 17, 2, -9 }, // 0x6D 'm' | |||
| { 1149, 9, 10, 12, 2, -9 }, // 0x6E 'n' | |||
| { 1161, 10, 10, 12, 1, -9 }, // 0x6F 'o' | |||
| { 1174, 9, 14, 12, 2, -9 }, // 0x70 'p' | |||
| { 1190, 10, 14, 13, 1, -9 }, // 0x71 'q' | |||
| { 1208, 6, 10, 8, 1, -9 }, // 0x72 'r' | |||
| { 1216, 9, 10, 10, 0, -9 }, // 0x73 's' | |||
| { 1228, 7, 14, 8, 0, -13 }, // 0x74 't' | |||
| { 1241, 10, 10, 13, 1, -9 }, // 0x75 'u' | |||
| { 1254, 10, 10, 11, 1, -9 }, // 0x76 'v' | |||
| { 1267, 14, 10, 16, 1, -9 }, // 0x77 'w' | |||
| { 1285, 9, 10, 11, 1, -9 }, // 0x78 'x' | |||
| { 1297, 10, 14, 11, 1, -9 }, // 0x79 'y' | |||
| { 1315, 8, 10, 10, 1, -9 }, // 0x7A 'z' | |||
| { 1325, 7, 19, 8, 0, -15 }, // 0x7B '{' | |||
| { 1342, 2, 22, 5, 1, -17 }, // 0x7C '|' | |||
| { 1348, 7, 19, 8, 0, -15 }, // 0x7D '}' | |||
| { 1365, 9, 2, 11, 1, -6 } }; // 0x7E '~' | |||
| const GFXfont Rubik_Regular10pt7b PROGMEM = { | |||
| (uint8_t *)Rubik_Regular10pt7bBitmaps, | |||
| (GFXglyph *)Rubik_Regular10pt7bGlyphs, | |||
| 0x20, 0x7E, 23 }; | |||
| // Approx. 2040 bytes | |||
| #pragma once | |||
| @@ -0,0 +1,250 @@ | |||
| const uint8_t titillium_web_regular12pt7bBitmaps[] PROGMEM = { | |||
| 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0x8C, 0x63, 0x18, 0xC4, 0x30, 0x83, | |||
| 0x08, 0x30, 0x83, 0x08, 0xFF, 0xFF, 0xFF, 0x30, 0x83, 0x08, 0x30, 0x83, | |||
| 0x08, 0xFF, 0xFF, 0xFF, 0x30, 0x83, 0x08, 0x30, 0x83, 0x08, 0x02, 0x01, | |||
| 0x80, 0x60, 0xFF, 0xFF, 0xB1, 0x08, 0x42, 0x10, 0xC4, 0x3B, 0x07, 0xE0, | |||
| 0x3E, 0x09, 0xC2, 0x30, 0x8C, 0x23, 0x08, 0xF6, 0xEF, 0xF0, 0x40, 0x10, | |||
| 0x04, 0x00, 0x71, 0x8D, 0x90, 0x99, 0x08, 0xB0, 0x9A, 0x0F, 0x20, 0x62, | |||
| 0x00, 0x60, 0x04, 0x00, 0x40, 0x0D, 0xE0, 0x93, 0x09, 0x31, 0x93, 0x11, | |||
| 0x31, 0x1E, 0x07, 0x80, 0x3F, 0x80, 0x63, 0x81, 0x83, 0x03, 0x06, 0x02, | |||
| 0x08, 0x06, 0x70, 0x0F, 0xC0, 0x76, 0x18, 0xC6, 0x33, 0x06, 0x66, 0x06, | |||
| 0x8C, 0x07, 0x18, 0x06, 0x38, 0x1E, 0x3C, 0xE7, 0x3F, 0x86, 0xFC, 0x33, | |||
| 0x36, 0x66, 0x6C, 0xCC, 0xCC, 0xCC, 0x66, 0x66, 0x33, 0x30, 0xCC, 0x66, | |||
| 0x66, 0x33, 0x33, 0x33, 0x33, 0x33, 0x66, 0x6C, 0xC0, 0x0C, 0x48, 0xE8, | |||
| 0x38, 0x3F, 0x68, 0xC8, 0x0C, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x61, | |||
| 0xFF, 0xFF, 0xF8, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x6F, 0x6D, | |||
| 0x00, 0xFE, 0xFC, 0x03, 0x03, 0x02, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, | |||
| 0x18, 0x30, 0x30, 0x60, 0x60, 0x60, 0xC0, 0xC0, 0x1F, 0x87, 0xF9, 0x83, | |||
| 0xF0, 0x3C, 0x07, 0x80, 0xF0, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x01, 0xE0, | |||
| 0x3C, 0x06, 0xC1, 0xDE, 0x70, 0xFC, 0x0C, 0x77, 0xFB, 0x8C, 0x30, 0xC3, | |||
| 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0xFE, 0x3F, 0xE0, 0x18, 0x06, 0x01, | |||
| 0x80, 0x60, 0x18, 0x0C, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70, 0x18, 0x0F, | |||
| 0xFF, 0xFF, 0x7F, 0x8F, 0xF8, 0x03, 0x00, 0x60, 0x04, 0x01, 0x80, 0x71, | |||
| 0xF8, 0x3F, 0xC0, 0x1C, 0x01, 0x80, 0x30, 0x06, 0x01, 0xDC, 0x77, 0xFC, | |||
| 0x0C, 0x00, 0xC0, 0x0C, 0x01, 0x80, 0x18, 0x03, 0x00, 0x30, 0x82, 0x08, | |||
| 0x60, 0x86, 0x08, 0xC0, 0x8F, 0xFF, 0xFF, 0xF0, 0x08, 0x00, 0x80, 0x08, | |||
| 0xFF, 0xBF, 0xEC, 0x03, 0x00, 0xC0, 0x20, 0x0B, 0xF3, 0xFE, 0x81, 0xC0, | |||
| 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x7E, 0x7B, 0xFC, 0x0F, 0xE7, 0xFD, 0xC0, | |||
| 0x30, 0x04, 0x01, 0x80, 0x33, 0xE7, 0xFE, 0xC0, 0xF8, 0x0F, 0x01, 0xA0, | |||
| 0x36, 0x06, 0xC0, 0xCE, 0x70, 0xFC, 0xFF, 0xFF, 0xF0, 0x0C, 0x06, 0x01, | |||
| 0x80, 0xC0, 0x30, 0x0C, 0x06, 0x01, 0x80, 0xC0, 0x30, 0x18, 0x06, 0x03, | |||
| 0x00, 0xC0, 0x3F, 0x87, 0xFE, 0xE0, 0x6C, 0x06, 0xC0, 0x6C, 0x06, 0x60, | |||
| 0xE3, 0xF8, 0x7F, 0xCE, 0x06, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x06, 0x79, | |||
| 0xE3, 0xF8, 0x1F, 0x0F, 0xF1, 0x83, 0x60, 0x2C, 0x07, 0x80, 0xF0, 0x1F, | |||
| 0x03, 0x7F, 0xE7, 0xEC, 0x01, 0x80, 0x30, 0x06, 0x01, 0x98, 0xF3, 0xF8, | |||
| 0xF0, 0x03, 0xF0, 0x6C, 0x00, 0x03, 0x6D, 0x6C, 0x00, 0x40, 0x30, 0x3C, | |||
| 0x3C, 0x38, 0x38, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0C, 0x01, 0xFF, | |||
| 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0x80, 0x30, 0x07, 0x00, 0x78, | |||
| 0x07, 0x80, 0x70, 0x1C, 0x1C, 0x1C, 0x1C, 0x0C, 0x02, 0x00, 0x7C, 0x7F, | |||
| 0x80, 0xE0, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x06, 0x02, 0x00, | |||
| 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x03, 0xFF, 0x00, 0x78, 0x1E, 0x07, | |||
| 0x00, 0x18, 0x60, 0x00, 0x66, 0x00, 0x03, 0xB0, 0x7F, 0x0D, 0x87, 0xB8, | |||
| 0x78, 0x70, 0x43, 0xC3, 0x02, 0x0E, 0x18, 0x10, 0x70, 0xC0, 0x83, 0x86, | |||
| 0x04, 0x1C, 0x30, 0x21, 0xE1, 0x81, 0x0F, 0x0C, 0x0C, 0x6C, 0x3B, 0xE6, | |||
| 0x60, 0xF9, 0xF3, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xFF, | |||
| 0xE0, 0x00, 0xFF, 0x00, 0x0F, 0x00, 0x78, 0x02, 0x60, 0x33, 0x01, 0x98, | |||
| 0x0C, 0x60, 0xC3, 0x06, 0x18, 0x30, 0x41, 0x03, 0x18, 0x18, 0xFF, 0xC7, | |||
| 0xFF, 0x20, 0x1B, 0x00, 0xD8, 0x06, 0xC0, 0x18, 0xFF, 0x0F, 0xFC, 0xC0, | |||
| 0xEC, 0x06, 0xC0, 0x6C, 0x06, 0xC0, 0x6C, 0x0C, 0xFF, 0x8C, 0x1E, 0xC0, | |||
| 0x6C, 0x02, 0xC0, 0x3C, 0x06, 0xC0, 0x6F, 0xFE, 0xFF, 0x80, 0x0F, 0xC7, | |||
| 0xFD, 0xC0, 0x30, 0x06, 0x00, 0xC0, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, | |||
| 0x00, 0x20, 0x06, 0x00, 0xC0, 0x1C, 0x01, 0xE3, 0x1F, 0xE0, 0xFE, 0x0F, | |||
| 0xFC, 0xC0, 0xEC, 0x06, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, | |||
| 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x06, 0xC0, 0xEF, 0xFC, 0xFF, 0x80, | |||
| 0xFF, 0xFF, 0xFC, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xFF, 0xB0, | |||
| 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, | |||
| 0xFC, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xFF, 0xBF, 0xEC, 0x03, | |||
| 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x00, 0x0F, 0xE3, 0xFF, 0x30, | |||
| 0x06, 0x00, 0x60, 0x06, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0xFC, 0x0F, 0xC0, | |||
| 0x34, 0x03, 0x60, 0x36, 0x03, 0x70, 0x33, 0xC7, 0x1F, 0xF0, 0xC0, 0x3C, | |||
| 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xFF, 0xFC, | |||
| 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x30, | |||
| 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, | |||
| 0x31, 0x8C, 0x63, 0x1F, 0xB8, 0xC0, 0x78, 0x1B, 0x03, 0x60, 0xCC, 0x19, | |||
| 0x86, 0x31, 0xC6, 0x30, 0xFC, 0x1F, 0xC3, 0x18, 0x61, 0x8C, 0x39, 0x83, | |||
| 0x30, 0x36, 0x06, 0xC0, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, | |||
| 0x01, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0xFF, 0xFF, | |||
| 0x80, 0xE0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0xD0, 0x0F, 0xD8, 0x1B, 0xD8, | |||
| 0x1B, 0xC8, 0x1B, 0xCC, 0x33, 0xCC, 0x33, 0xC4, 0x23, 0xC6, 0x63, 0xC6, | |||
| 0x63, 0xC2, 0x43, 0xC3, 0xC3, 0xC3, 0xC3, 0xC1, 0x83, 0xC0, 0x03, 0xF0, | |||
| 0x3F, 0x03, 0xD0, 0x3D, 0x83, 0xD8, 0x3C, 0xC3, 0xCC, 0x3C, 0x63, 0xC6, | |||
| 0x3C, 0x23, 0xC3, 0x3C, 0x33, 0xC1, 0xBC, 0x1B, 0xC0, 0xBC, 0x0F, 0xC0, | |||
| 0x70, 0x0F, 0xC0, 0xFF, 0x83, 0x03, 0x18, 0x06, 0x60, 0x19, 0x80, 0x6C, | |||
| 0x01, 0xB0, 0x02, 0xC0, 0x0F, 0x00, 0x2C, 0x00, 0x90, 0x06, 0x60, 0x19, | |||
| 0x80, 0x67, 0x03, 0x0F, 0x3C, 0x1F, 0xE0, 0xFF, 0x1F, 0xFB, 0x03, 0xE0, | |||
| 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x1B, 0xFE, 0x60, 0x0C, | |||
| 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x00, 0x0F, 0xC0, 0xFF, 0x83, 0x03, | |||
| 0x18, 0x06, 0x60, 0x19, 0x80, 0x6C, 0x01, 0xB0, 0x02, 0xC0, 0x0F, 0x00, | |||
| 0x2C, 0x00, 0x90, 0x06, 0x60, 0x19, 0x80, 0x67, 0x03, 0x8F, 0x3C, 0x1F, | |||
| 0xE0, 0x01, 0x80, 0x03, 0x00, 0x0E, 0xFF, 0x0F, 0xFC, 0xC0, 0xEC, 0x06, | |||
| 0xC0, 0x6C, 0x02, 0xC0, 0x2C, 0x06, 0xC0, 0xEF, 0xFC, 0xFF, 0x8C, 0x18, | |||
| 0xC1, 0xCC, 0x0C, 0xC0, 0xCC, 0x06, 0xC0, 0x70, 0x1F, 0xEF, 0xF9, 0x80, | |||
| 0x60, 0x0C, 0x01, 0x80, 0x38, 0x03, 0xC0, 0x1F, 0x80, 0x78, 0x03, 0x80, | |||
| 0x30, 0x06, 0x00, 0xC0, 0x37, 0x9E, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0x06, | |||
| 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, | |||
| 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0xC0, 0x3C, | |||
| 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, | |||
| 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x06, 0xE0, 0x67, 0x1E, 0x3F, 0x80, | |||
| 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06, | |||
| 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x19, 0x81, 0x98, 0x19, 0x80, 0xF0, | |||
| 0x0F, 0x00, 0xC0, 0x00, 0x3C, 0x0E, 0x06, 0xC0, 0xE0, 0x6C, 0x0A, 0x06, | |||
| 0x40, 0xB0, 0x66, 0x1B, 0x04, 0x61, 0xB0, 0xC6, 0x19, 0x0C, 0x61, 0x18, | |||
| 0xC2, 0x31, 0x8C, 0x33, 0x18, 0x83, 0x30, 0x88, 0x32, 0x09, 0x83, 0x20, | |||
| 0xD8, 0x16, 0x0D, 0x81, 0xE0, 0xF0, 0x1E, 0x07, 0x00, 0xE0, 0x1B, 0x01, | |||
| 0x8C, 0x0C, 0x60, 0xC1, 0x84, 0x06, 0x60, 0x36, 0x00, 0xF0, 0x07, 0x00, | |||
| 0x38, 0x01, 0x60, 0x19, 0x81, 0x8C, 0x0C, 0x30, 0xC1, 0x8C, 0x06, 0xE0, | |||
| 0x18, 0xC0, 0x1B, 0x01, 0x98, 0x1C, 0x60, 0xC3, 0x8C, 0x0C, 0x60, 0x36, | |||
| 0x01, 0xB0, 0x07, 0x00, 0x38, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, | |||
| 0x08, 0x00, 0x40, 0x02, 0x00, 0xFF, 0xFF, 0xFC, 0x01, 0x80, 0x60, 0x18, | |||
| 0x03, 0x00, 0xC0, 0x30, 0x06, 0x01, 0x80, 0x60, 0x1C, 0x03, 0x00, 0xC0, | |||
| 0x30, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xF1, 0x8C, 0x63, 0x18, 0xC6, 0x31, | |||
| 0x8C, 0x63, 0x18, 0xC6, 0x31, 0xFF, 0x80, 0xC0, 0x60, 0x30, 0x0C, 0x06, | |||
| 0x01, 0x80, 0xC0, 0x30, 0x18, 0x06, 0x03, 0x00, 0x80, 0x60, 0x30, 0x0C, | |||
| 0x06, 0x01, 0x80, 0xFF, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, | |||
| 0x63, 0x18, 0xC7, 0xFF, 0x80, 0x06, 0x01, 0xC0, 0x2C, 0x0C, 0x83, 0x18, | |||
| 0x61, 0x18, 0x37, 0x03, 0xFF, 0xFF, 0xFC, 0x83, 0x83, 0xC2, 0x7F, 0x08, | |||
| 0x70, 0x06, 0x00, 0xC0, 0x18, 0x7F, 0x38, 0x66, 0x0C, 0xC1, 0x98, 0x33, | |||
| 0x8F, 0x3F, 0x70, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x07, 0xFB, 0x8F, 0x83, | |||
| 0xC1, 0xE0, 0xF0, 0x38, 0x1C, 0x1E, 0x0F, 0x07, 0x8E, 0xFE, 0x00, 0x3F, | |||
| 0x38, 0x98, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x30, 0x1C, 0x47, | |||
| 0xF0, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xCF, 0xF7, 0x1D, 0x83, 0xC0, | |||
| 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x36, 0x0D, 0xCF, 0x3F, 0xC0, 0x3F, | |||
| 0x1C, 0x66, 0x0F, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0xC0, 0x18, 0x07, | |||
| 0x04, 0xFF, 0x3E, 0xE1, 0x83, 0x06, 0x1F, 0xFF, 0xB0, 0x60, 0xC1, 0x83, | |||
| 0x06, 0x0C, 0x18, 0x30, 0x60, 0x3F, 0xEC, 0x7F, 0x06, 0x60, 0x4C, 0x08, | |||
| 0x83, 0x1F, 0xE1, 0xF8, 0x20, 0x0C, 0x00, 0xFC, 0x1F, 0xE6, 0x0F, 0x80, | |||
| 0xF0, 0x1F, 0x06, 0x7F, 0xC3, 0xC0, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x07, | |||
| 0xFB, 0x8F, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, | |||
| 0xC1, 0x80, 0xF0, 0x3F, 0xFF, 0xFF, 0xC0, 0x18, 0xC0, 0x00, 0x0C, 0x63, | |||
| 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0x84, 0x66, 0x60, 0xC0, 0x60, 0x30, | |||
| 0x18, 0x0C, 0x06, 0x1F, 0x0D, 0x8C, 0xCC, 0x66, 0x3E, 0x1B, 0x8C, 0xC6, | |||
| 0x33, 0x19, 0x86, 0xC1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0x7E, | |||
| 0xF3, 0xE7, 0xC1, 0x83, 0xC1, 0x83, 0xC1, 0x81, 0xC1, 0x81, 0xC1, 0x81, | |||
| 0xC1, 0x81, 0xC1, 0x81, 0xC1, 0x81, 0xC1, 0x81, 0xC1, 0x81, 0xFF, 0x79, | |||
| 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x30, | |||
| 0x3F, 0x1C, 0x76, 0x0F, 0x03, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0xD8, | |||
| 0x37, 0x1C, 0xFE, 0xFF, 0x79, 0xF0, 0x78, 0x3C, 0x0E, 0x07, 0x03, 0x81, | |||
| 0xC1, 0xE0, 0xF1, 0xDF, 0xCC, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x00, 0x3F, | |||
| 0xDC, 0x36, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xD8, 0x37, | |||
| 0x3C, 0xFF, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0xDF, 0xFE, 0x30, | |||
| 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0x7F, 0xF0, 0xF0, 0x18, 0x0E, 0x03, | |||
| 0xF0, 0x7E, 0x03, 0x01, 0x80, 0xF8, 0xFF, 0xE0, 0x60, 0xC1, 0x83, 0x0F, | |||
| 0xFF, 0xD8, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x0C, 0x1F, 0x81, 0xC0, | |||
| 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0xC1, 0xE0, 0xF9, 0xEF, 0xF0, | |||
| 0xC0, 0xF0, 0x3C, 0x19, 0x06, 0x61, 0x98, 0x46, 0x30, 0xCC, 0x33, 0x0D, | |||
| 0x81, 0xE0, 0x78, 0xC1, 0x81, 0xE0, 0xC1, 0xB0, 0x70, 0xC8, 0x78, 0x66, | |||
| 0x34, 0x23, 0x13, 0x31, 0x99, 0x98, 0x4C, 0xCC, 0x36, 0x26, 0x1A, 0x1A, | |||
| 0x0F, 0x0F, 0x07, 0x83, 0x80, 0xC1, 0xE1, 0x98, 0xC6, 0xC3, 0x40, 0xE0, | |||
| 0x70, 0x68, 0x36, 0x31, 0xB0, 0xD8, 0x30, 0xC0, 0xF0, 0x3C, 0x19, 0x06, | |||
| 0x61, 0x98, 0x46, 0x30, 0xCC, 0x33, 0x0D, 0x81, 0xE0, 0x78, 0x04, 0x03, | |||
| 0x00, 0xC0, 0x30, 0x18, 0x00, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0x60, 0x60, | |||
| 0x60, 0x60, 0x70, 0x30, 0x3F, 0xFF, 0xF0, 0x0C, 0x73, 0x0C, 0x30, 0xC3, | |||
| 0x0C, 0x31, 0x88, 0x38, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x07, 0x0C, 0xFF, | |||
| 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xE1, 0xE0, 0xC0, 0x81, 0x02, 0x04, 0x08, | |||
| 0x18, 0x38, 0x18, 0xE1, 0x82, 0x04, 0x08, 0x10, 0x20, 0xC7, 0x8E, 0x00, | |||
| 0x70, 0x3F, 0x38, 0xF8 }; | |||
| const GFXglyph titillium_web_regular12pt7bGlyphs[] PROGMEM = { | |||
| { 0, 1, 1, 5, 0, 0 }, // 0x20 ' ' | |||
| { 1, 2, 17, 6, 2, -16 }, // 0x21 '!' | |||
| { 6, 5, 6, 9, 2, -16 }, // 0x22 '"' | |||
| { 10, 12, 16, 13, 1, -15 }, // 0x23 '#' | |||
| { 34, 10, 22, 13, 2, -18 }, // 0x24 '$' | |||
| { 62, 12, 16, 13, 1, -15 }, // 0x25 '%' | |||
| { 86, 15, 17, 17, 1, -16 }, // 0x26 '&' | |||
| { 118, 1, 6, 5, 2, -16 }, // 0x27 ''' | |||
| { 119, 4, 21, 6, 1, -17 }, // 0x28 '(' | |||
| { 130, 4, 21, 6, 1, -17 }, // 0x29 ')' | |||
| { 141, 8, 8, 10, 1, -16 }, // 0x2A '*' | |||
| { 149, 11, 12, 13, 1, -11 }, // 0x2B '+' | |||
| { 166, 3, 6, 5, 1, -2 }, // 0x2C ',' | |||
| { 169, 7, 1, 11, 2, -6 }, // 0x2D '-' | |||
| { 170, 2, 3, 5, 2, -2 }, // 0x2E '.' | |||
| { 171, 8, 17, 10, 1, -16 }, // 0x2F '/' | |||
| { 188, 11, 16, 13, 1, -15 }, // 0x30 '0' | |||
| { 210, 6, 16, 13, 3, -15 }, // 0x31 '1' | |||
| { 222, 10, 16, 13, 2, -15 }, // 0x32 '2' | |||
| { 242, 11, 16, 13, 1, -15 }, // 0x33 '3' | |||
| { 264, 12, 16, 13, 1, -15 }, // 0x34 '4' | |||
| { 288, 10, 16, 13, 2, -15 }, // 0x35 '5' | |||
| { 308, 11, 16, 13, 1, -15 }, // 0x36 '6' | |||
| { 330, 10, 16, 13, 2, -15 }, // 0x37 '7' | |||
| { 350, 12, 16, 13, 1, -15 }, // 0x38 '8' | |||
| { 374, 11, 16, 13, 1, -15 }, // 0x39 '9' | |||
| { 396, 2, 10, 5, 2, -9 }, // 0x3A ':' | |||
| { 399, 3, 13, 6, 1, -9 }, // 0x3B ';' | |||
| { 404, 10, 12, 13, 1, -11 }, // 0x3C '<' | |||
| { 419, 10, 6, 13, 2, -8 }, // 0x3D '=' | |||
| { 427, 10, 12, 13, 2, -11 }, // 0x3E '>' | |||
| { 442, 9, 17, 11, 1, -16 }, // 0x3F '?' | |||
| { 462, 21, 22, 23, 1, -16 }, // 0x40 '@' | |||
| { 520, 13, 17, 14, 1, -16 }, // 0x41 'A' | |||
| { 548, 12, 17, 15, 2, -16 }, // 0x42 'B' | |||
| { 574, 11, 17, 13, 1, -16 }, // 0x43 'C' | |||
| { 598, 12, 17, 15, 2, -16 }, // 0x44 'D' | |||
| { 624, 10, 17, 13, 2, -16 }, // 0x45 'E' | |||
| { 646, 10, 17, 13, 2, -16 }, // 0x46 'F' | |||
| { 668, 12, 17, 15, 1, -16 }, // 0x47 'G' | |||
| { 694, 12, 17, 16, 2, -16 }, // 0x48 'H' | |||
| { 720, 2, 17, 6, 2, -16 }, // 0x49 'I' | |||
| { 725, 5, 19, 7, 0, -16 }, // 0x4A 'J' | |||
| { 737, 11, 17, 14, 2, -16 }, // 0x4B 'K' | |||
| { 761, 9, 17, 12, 2, -16 }, // 0x4C 'L' | |||
| { 781, 16, 17, 20, 2, -16 }, // 0x4D 'M' | |||
| { 815, 12, 17, 16, 2, -16 }, // 0x4E 'N' | |||
| { 841, 14, 17, 16, 1, -16 }, // 0x4F 'O' | |||
| { 871, 11, 17, 14, 2, -16 }, // 0x50 'P' | |||
| { 895, 14, 20, 16, 1, -16 }, // 0x51 'Q' | |||
| { 930, 12, 17, 15, 2, -16 }, // 0x52 'R' | |||
| { 956, 11, 17, 13, 1, -16 }, // 0x53 'S' | |||
| { 980, 12, 17, 13, 0, -16 }, // 0x54 'T' | |||
| { 1006, 12, 17, 15, 2, -16 }, // 0x55 'U' | |||
| { 1032, 12, 17, 14, 1, -16 }, // 0x56 'V' | |||
| { 1058, 20, 17, 21, 1, -16 }, // 0x57 'W' | |||
| { 1101, 13, 17, 13, 0, -16 }, // 0x58 'X' | |||
| { 1129, 13, 17, 13, 0, -16 }, // 0x59 'Y' | |||
| { 1157, 11, 17, 13, 1, -16 }, // 0x5A 'Z' | |||
| { 1181, 5, 21, 8, 2, -17 }, // 0x5B '[' | |||
| { 1195, 9, 17, 10, 1, -16 }, // 0x5C '\' | |||
| { 1215, 5, 21, 8, 1, -17 }, // 0x5D ']' | |||
| { 1229, 11, 8, 13, 1, -15 }, // 0x5E '^' | |||
| { 1240, 11, 2, 15, 2, 3 }, // 0x5F '_' | |||
| { 1243, 6, 4, 6, 0, -17 }, // 0x60 '`' | |||
| { 1246, 11, 12, 12, 1, -11 }, // 0x61 'a' | |||
| { 1263, 9, 17, 13, 2, -16 }, // 0x62 'b' | |||
| { 1283, 9, 12, 10, 1, -11 }, // 0x63 'c' | |||
| { 1297, 10, 17, 13, 1, -16 }, // 0x64 'd' | |||
| { 1319, 10, 12, 12, 1, -11 }, // 0x65 'e' | |||
| { 1334, 7, 17, 8, 1, -16 }, // 0x66 'f' | |||
| { 1349, 11, 18, 12, 1, -11 }, // 0x67 'g' | |||
| { 1374, 9, 17, 13, 2, -16 }, // 0x68 'h' | |||
| { 1394, 2, 17, 5, 2, -16 }, // 0x69 'i' | |||
| { 1399, 5, 22, 5, -1, -16 }, // 0x6A 'j' | |||
| { 1413, 9, 17, 12, 2, -16 }, // 0x6B 'k' | |||
| { 1433, 2, 17, 6, 2, -16 }, // 0x6C 'l' | |||
| { 1438, 16, 12, 20, 2, -11 }, // 0x6D 'm' | |||
| { 1462, 9, 12, 13, 2, -11 }, // 0x6E 'n' | |||
| { 1476, 10, 12, 13, 1, -11 }, // 0x6F 'o' | |||
| { 1491, 9, 17, 13, 2, -11 }, // 0x70 'p' | |||
| { 1511, 10, 17, 13, 1, -11 }, // 0x71 'q' | |||
| { 1533, 6, 12, 8, 2, -11 }, // 0x72 'r' | |||
| { 1542, 9, 12, 11, 1, -11 }, // 0x73 's' | |||
| { 1556, 7, 16, 8, 1, -15 }, // 0x74 't' | |||
| { 1570, 9, 12, 13, 2, -11 }, // 0x75 'u' | |||
| { 1584, 10, 12, 12, 1, -11 }, // 0x76 'v' | |||
| { 1599, 17, 12, 18, 1, -11 }, // 0x77 'w' | |||
| { 1625, 9, 12, 11, 1, -11 }, // 0x78 'x' | |||
| { 1639, 10, 17, 12, 1, -11 }, // 0x79 'y' | |||
| { 1661, 9, 12, 11, 1, -11 }, // 0x7A 'z' | |||
| { 1675, 6, 21, 8, 1, -17 }, // 0x7B '{' | |||
| { 1691, 2, 22, 6, 2, -16 }, // 0x7C '|' | |||
| { 1697, 7, 21, 8, 1, -17 }, // 0x7D '}' | |||
| { 1716, 10, 3, 13, 2, -7 } }; // 0x7E '~' | |||
| const GFXfont titillium_web_regular12pt7b PROGMEM = { | |||
| (uint8_t *)titillium_web_regular12pt7bBitmaps, | |||
| (GFXglyph *)titillium_web_regular12pt7bGlyphs, | |||
| 0x20, 0x7E, 36 }; | |||
| // Approx. 2392 bytes | |||
| #pragma once | |||
| @@ -0,0 +1,343 @@ | |||
| const uint8_t titillium_web_regular16pt7bBitmaps[] PROGMEM = { | |||
| 0x00, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xC0, 0xC7, 0xC6, 0xC6, 0xC6, 0xC6, | |||
| 0xC6, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, | |||
| 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, | |||
| 0x30, 0x18, 0x30, 0x18, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0x18, 0x30, 0x18, | |||
| 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x00, 0xC0, 0x04, 0x00, 0x20, | |||
| 0x01, 0x00, 0xFC, 0x1F, 0xFD, 0xE6, 0xFC, 0x30, 0xE1, 0x06, 0x08, 0x38, | |||
| 0x41, 0xC6, 0x07, 0x30, 0x3F, 0x80, 0x7F, 0x80, 0x7E, 0x02, 0x38, 0x10, | |||
| 0xC0, 0x86, 0x0C, 0x30, 0x61, 0x83, 0x1C, 0x18, 0xFF, 0xFE, 0xFF, 0xC0, | |||
| 0x20, 0x01, 0x00, 0x18, 0x00, 0xC0, 0x00, 0x38, 0x30, 0xF8, 0x43, 0x31, | |||
| 0x86, 0x33, 0x0C, 0x64, 0x18, 0xD8, 0x33, 0x30, 0x3E, 0x60, 0x38, 0x80, | |||
| 0x03, 0x00, 0x06, 0x00, 0x08, 0x00, 0x30, 0x00, 0x67, 0x80, 0x99, 0x83, | |||
| 0x33, 0x06, 0x62, 0x0C, 0xC4, 0x11, 0x98, 0x63, 0x30, 0xC3, 0xC0, 0x80, | |||
| 0x00, 0x01, 0xE0, 0x00, 0x7F, 0x80, 0x0E, 0x3C, 0x00, 0xC1, 0xC0, 0x1C, | |||
| 0x0C, 0x01, 0xC0, 0xC0, 0x1C, 0x0C, 0x00, 0xC1, 0xC0, 0x0E, 0x38, 0x00, | |||
| 0x7F, 0x00, 0x1F, 0xC1, 0x83, 0x9C, 0x18, 0x70, 0xE1, 0x86, 0x07, 0x18, | |||
| 0xE0, 0x3B, 0x0E, 0x01, 0xF0, 0xE0, 0x0F, 0x0E, 0x00, 0x70, 0x60, 0x0F, | |||
| 0x87, 0x81, 0xDC, 0x3F, 0xF8, 0xF1, 0xFF, 0x06, 0xFF, 0xF0, 0x39, 0x8C, | |||
| 0xE7, 0x31, 0x9C, 0xE6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x39, 0xCE, 0x31, | |||
| 0xCE, 0x31, 0xC6, 0xE1, 0x86, 0x1C, 0x30, 0xC3, 0x8E, 0x18, 0x61, 0x86, | |||
| 0x1C, 0x71, 0xC7, 0x18, 0x61, 0x8E, 0x38, 0xC3, 0x1C, 0x61, 0x8E, 0x00, | |||
| 0x04, 0x01, 0x8C, 0xC3, 0xB0, 0x3C, 0x07, 0xF7, 0xC3, 0xB0, 0x84, 0x01, | |||
| 0x80, 0x40, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, | |||
| 0x0F, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, | |||
| 0x00, 0x0C, 0x00, 0x77, 0x66, 0xEC, 0xC0, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, | |||
| 0xF0, 0x00, 0x40, 0x1C, 0x03, 0x00, 0xE0, 0x18, 0x03, 0x00, 0xE0, 0x18, | |||
| 0x07, 0x00, 0xC0, 0x38, 0x07, 0x00, 0xC0, 0x38, 0x06, 0x01, 0xC0, 0x30, | |||
| 0x06, 0x01, 0xC0, 0x30, 0x0E, 0x01, 0x80, 0x00, 0x07, 0xC0, 0x3F, 0xE0, | |||
| 0xF1, 0xE3, 0x80, 0xE7, 0x00, 0xCC, 0x01, 0xD8, 0x03, 0xF0, 0x07, 0xE0, | |||
| 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x03, | |||
| 0xB0, 0x07, 0x60, 0x0C, 0xE0, 0x38, 0xE0, 0xF1, 0xFF, 0xC0, 0xFF, 0x00, | |||
| 0x07, 0x87, 0xCF, 0x7F, 0x36, 0x1A, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, | |||
| 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x1F, | |||
| 0x87, 0xFF, 0x3C, 0x7C, 0x00, 0xE0, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x06, | |||
| 0x00, 0x30, 0x03, 0x80, 0x38, 0x03, 0x80, 0x38, 0x03, 0x80, 0x38, 0x03, | |||
| 0x80, 0x38, 0x01, 0x80, 0x18, 0x01, 0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0x87, | |||
| 0xFF, 0x3C, 0x3C, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0xE0, 0x06, 0x00, | |||
| 0x71, 0xFF, 0x0F, 0xF8, 0x01, 0xE0, 0x03, 0x80, 0x1C, 0x00, 0x60, 0x03, | |||
| 0x00, 0x18, 0x01, 0xC0, 0x1F, 0xFF, 0xEF, 0xFE, 0x00, 0x03, 0x80, 0x0E, | |||
| 0x00, 0x18, 0x00, 0x70, 0x00, 0xE0, 0x01, 0x80, 0x07, 0x00, 0x0C, 0x1C, | |||
| 0x38, 0x38, 0x70, 0x70, 0xC0, 0xE3, 0x81, 0xC6, 0x03, 0x9C, 0x07, 0x3F, | |||
| 0xFF, 0xFF, 0xFF, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01, 0xC0, 0x7F, | |||
| 0xF9, 0xFF, 0xE6, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x0C, 0x00, 0x33, | |||
| 0xF0, 0xFF, 0xF3, 0xE1, 0xE0, 0x03, 0x80, 0x06, 0x00, 0x1C, 0x00, 0x70, | |||
| 0x01, 0xC0, 0x06, 0x00, 0x3A, 0x01, 0xEF, 0xFF, 0x3F, 0xF0, 0x07, 0xF0, | |||
| 0x7F, 0xE3, 0xC1, 0x9C, 0x00, 0x60, 0x03, 0x80, 0x0C, 0x00, 0x30, 0x00, | |||
| 0xC7, 0xC3, 0xFF, 0xCF, 0xCF, 0xB0, 0x0E, 0xC0, 0x1F, 0x00, 0x7C, 0x00, | |||
| 0xF8, 0x07, 0xE0, 0x1D, 0x80, 0x77, 0x03, 0x8F, 0xFC, 0x1F, 0xE0, 0xFF, | |||
| 0xFF, 0xFF, 0xC0, 0x06, 0x00, 0x70, 0x03, 0x00, 0x38, 0x01, 0x80, 0x1C, | |||
| 0x00, 0xE0, 0x0E, 0x00, 0x70, 0x03, 0x00, 0x38, 0x01, 0x80, 0x1C, 0x00, | |||
| 0xC0, 0x0E, 0x00, 0x60, 0x07, 0x00, 0x38, 0x00, 0x07, 0xE0, 0x7F, 0xF1, | |||
| 0xF1, 0xF3, 0x80, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xB0, 0x07, 0x70, | |||
| 0x1C, 0x7F, 0xF0, 0x7F, 0xC1, 0xE3, 0xE7, 0x01, 0xFC, 0x01, 0xF8, 0x01, | |||
| 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x1D, 0xC0, 0x7B, 0xFF, 0xE1, 0xFF, 0x00, | |||
| 0x07, 0xC0, 0x3F, 0xE0, 0xF1, 0xE3, 0x81, 0xC6, 0x01, 0xDC, 0x01, 0xB8, | |||
| 0x03, 0x70, 0x07, 0xE0, 0x0E, 0xC0, 0x1D, 0xC0, 0x79, 0xFF, 0xF1, 0xFE, | |||
| 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x06, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xE3, | |||
| 0xFF, 0x87, 0xFE, 0x00, 0xFF, 0xF0, 0x00, 0x03, 0xFF, 0xC0, 0x33, 0x33, | |||
| 0x00, 0x00, 0x00, 0x03, 0x37, 0x66, 0x6E, 0x00, 0x08, 0x01, 0xC0, 0x7C, | |||
| 0x0F, 0x81, 0xF0, 0x3E, 0x03, 0xC0, 0x1C, 0x00, 0xF8, 0x01, 0xF0, 0x03, | |||
| 0xE0, 0x07, 0xC0, 0x07, 0x80, 0x0C, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0xC0, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x80, 0x0E, 0x00, | |||
| 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0x70, 0x07, 0x01, 0xF0, 0x7C, | |||
| 0x1F, 0x07, 0xC0, 0xF0, 0x0C, 0x00, 0x80, 0x00, 0x1F, 0x0F, 0xFC, 0xE1, | |||
| 0xE0, 0x06, 0x00, 0x70, 0x07, 0x00, 0x70, 0x06, 0x00, 0xE0, 0x1C, 0x03, | |||
| 0x80, 0x70, 0x0E, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x0C, | |||
| 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x01, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0x80, | |||
| 0x3C, 0x00, 0x78, 0x0E, 0x00, 0x03, 0x83, 0x80, 0x00, 0x38, 0xE0, 0x00, | |||
| 0x03, 0x98, 0x07, 0x80, 0x77, 0x03, 0xFF, 0x06, 0xE0, 0xF9, 0xE0, 0xF8, | |||
| 0x1C, 0x0C, 0x1F, 0x07, 0x01, 0x83, 0xE0, 0xE0, 0x30, 0x3C, 0x18, 0x06, | |||
| 0x07, 0x83, 0x00, 0xC0, 0xF0, 0x60, 0x18, 0x1E, 0x0C, 0x03, 0x07, 0xC1, | |||
| 0x80, 0x60, 0xF8, 0x38, 0x0C, 0x1F, 0x07, 0x01, 0x83, 0x70, 0x70, 0xF8, | |||
| 0xEE, 0x0F, 0xFF, 0xF8, 0xC0, 0x7C, 0x3F, 0x1C, 0x00, 0x00, 0x01, 0xC0, | |||
| 0x00, 0x00, 0x3C, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x1F, 0xFF, 0x00, | |||
| 0x00, 0xFF, 0xE0, 0x00, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0x9C, 0x00, 0xC6, | |||
| 0x00, 0xE3, 0x00, 0x61, 0x80, 0x30, 0xE0, 0x38, 0x30, 0x1C, 0x18, 0x0C, | |||
| 0x0E, 0x06, 0x03, 0x07, 0x01, 0x83, 0x00, 0xC1, 0xFF, 0xF0, 0xFF, 0xF8, | |||
| 0xE0, 0x0C, 0x60, 0x07, 0x30, 0x03, 0xB8, 0x00, 0xDC, 0x00, 0x6C, 0x00, | |||
| 0x38, 0xFF, 0xF3, 0xFF, 0xEC, 0x03, 0xB0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, | |||
| 0x01, 0xF0, 0x06, 0xC0, 0x3B, 0xFF, 0xCF, 0xFF, 0x30, 0x0E, 0xC0, 0x1F, | |||
| 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x7C, 0x03, 0xFF, 0xFE, | |||
| 0xFF, 0xE0, 0x07, 0xE0, 0x7F, 0xF3, 0xE3, 0xDC, 0x00, 0x60, 0x03, 0x80, | |||
| 0x0E, 0x00, 0x38, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, | |||
| 0x03, 0x00, 0x0C, 0x00, 0x38, 0x00, 0xE0, 0x03, 0x80, 0x07, 0x00, 0x1E, | |||
| 0x00, 0x3F, 0xFC, 0x7F, 0xF0, 0xFF, 0xF1, 0xFF, 0xF3, 0x00, 0xF6, 0x00, | |||
| 0xEC, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, | |||
| 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, | |||
| 0x1D, 0x80, 0x3B, 0x01, 0xE7, 0xFF, 0x8F, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, | |||
| 0xF0, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x07, | |||
| 0xFF, 0x3F, 0xF9, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, | |||
| 0x06, 0x00, 0x30, 0x01, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xC0, | |||
| 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xFF, | |||
| 0xEF, 0xFE, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, | |||
| 0x0C, 0x00, 0xC0, 0x00, 0x07, 0xF0, 0x3F, 0xFC, 0xF8, 0x7B, 0x80, 0x06, | |||
| 0x00, 0x1C, 0x00, 0x38, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, | |||
| 0x06, 0x03, 0xFC, 0x07, 0xF8, 0x00, 0xF0, 0x01, 0xF0, 0x03, 0xE0, 0x06, | |||
| 0xC0, 0x0D, 0xC0, 0x1B, 0xC0, 0x33, 0xFF, 0xE1, 0xFF, 0xC0, 0xC0, 0x07, | |||
| 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x01, 0xE0, | |||
| 0x03, 0xC0, 0x07, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x3C, 0x00, 0x78, 0x00, | |||
| 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, | |||
| 0x00, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x18, 0xC6, 0x31, 0x8C, | |||
| 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x33, 0xFF, 0xC0, 0xC0, | |||
| 0x1F, 0x00, 0xEC, 0x07, 0x30, 0x1C, 0xC0, 0xE3, 0x03, 0x0C, 0x1C, 0x30, | |||
| 0x60, 0xC3, 0x83, 0x7C, 0x0F, 0xF0, 0x3F, 0xC0, 0xC3, 0x83, 0x07, 0x0C, | |||
| 0x1C, 0x30, 0x38, 0xC0, 0x63, 0x01, 0xCC, 0x03, 0xB0, 0x0E, 0xC0, 0x1C, | |||
| 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, | |||
| 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, | |||
| 0x03, 0x00, 0x7F, 0xFF, 0xFE, 0xF0, 0x00, 0xFF, 0x80, 0x1F, 0xD8, 0x01, | |||
| 0xBD, 0x80, 0x1B, 0xDC, 0x03, 0xBC, 0xC0, 0x33, 0xCC, 0x03, 0x3C, 0xE0, | |||
| 0x73, 0xC6, 0x06, 0x3C, 0x60, 0x63, 0xC7, 0x0E, 0x3C, 0x30, 0xC3, 0xC3, | |||
| 0x0C, 0x3C, 0x39, 0xC3, 0xC1, 0x98, 0x3C, 0x19, 0x83, 0xC1, 0xF8, 0x3C, | |||
| 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0x00, 0x30, 0xF8, 0x07, | |||
| 0xF0, 0x0F, 0x60, 0x1E, 0xE0, 0x3C, 0xC0, 0x79, 0xC0, 0xF1, 0x81, 0xE3, | |||
| 0x03, 0xC3, 0x07, 0x86, 0x0F, 0x0E, 0x1E, 0x0C, 0x3C, 0x1C, 0x78, 0x18, | |||
| 0xF0, 0x31, 0xE0, 0x33, 0xC0, 0x67, 0x80, 0xEF, 0x00, 0xDE, 0x01, 0xFC, | |||
| 0x01, 0xE0, 0x03, 0xE0, 0x0F, 0xFC, 0x0F, 0x0F, 0x8E, 0x01, 0xC6, 0x00, | |||
| 0x77, 0x00, 0x3B, 0x80, 0x0D, 0x80, 0x06, 0xC0, 0x03, 0xE0, 0x01, 0xF0, | |||
| 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0xC0, 0x06, | |||
| 0xE0, 0x03, 0x30, 0x03, 0x9C, 0x01, 0xCF, 0x01, 0xC3, 0xFF, 0xC0, 0x7F, | |||
| 0xC0, 0xFF, 0xF3, 0xFF, 0xEC, 0x03, 0xF0, 0x07, 0xC0, 0x0F, 0x00, 0x3C, | |||
| 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x7C, 0x01, 0xF0, 0x1E, 0xFF, 0xF3, | |||
| 0xFF, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, | |||
| 0xC0, 0x00, 0x03, 0xE0, 0x0F, 0xFC, 0x0F, 0x0F, 0x8E, 0x01, 0xC6, 0x00, | |||
| 0x77, 0x00, 0x3B, 0x80, 0x0D, 0x80, 0x06, 0xC0, 0x03, 0xE0, 0x01, 0xF0, | |||
| 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0xC0, 0x06, | |||
| 0xE0, 0x03, 0x30, 0x03, 0x9C, 0x01, 0xCF, 0x01, 0xC3, 0xFF, 0xC0, 0x7F, | |||
| 0xC0, 0x00, 0x70, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x01, 0x00, | |||
| 0xFF, 0xF1, 0xFF, 0xF3, 0x00, 0xF6, 0x00, 0xEC, 0x00, 0xD8, 0x01, 0xB0, | |||
| 0x03, 0x60, 0x06, 0xC0, 0x0D, 0x80, 0x3B, 0x01, 0xE7, 0xFF, 0x8F, 0xFE, | |||
| 0x18, 0x1C, 0x30, 0x1C, 0x60, 0x38, 0xC0, 0x31, 0x80, 0x73, 0x00, 0x66, | |||
| 0x00, 0xEC, 0x00, 0xE0, 0x07, 0xF0, 0xFF, 0xF7, 0xC3, 0xDC, 0x00, 0x60, | |||
| 0x03, 0x80, 0x0E, 0x00, 0x18, 0x00, 0x70, 0x01, 0xF0, 0x01, 0xFC, 0x01, | |||
| 0xFC, 0x00, 0x7C, 0x00, 0x70, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, | |||
| 0x01, 0xC0, 0x0E, 0x7F, 0xF9, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, | |||
| 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, | |||
| 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, | |||
| 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, | |||
| 0x80, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, | |||
| 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, | |||
| 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0x60, 0x06, 0xE0, 0x1D, 0xE0, | |||
| 0x79, 0xFF, 0xE0, 0xFF, 0x00, 0xC0, 0x03, 0xE0, 0x07, 0x60, 0x07, 0x60, | |||
| 0x06, 0x60, 0x06, 0x70, 0x0E, 0x30, 0x0C, 0x30, 0x0C, 0x38, 0x0C, 0x38, | |||
| 0x1C, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x18, 0x1C, 0x38, 0x0C, 0x30, 0x0C, | |||
| 0x30, 0x0E, 0x70, 0x0E, 0x70, 0x06, 0x60, 0x07, 0xE0, 0x07, 0xE0, 0xE0, | |||
| 0x1C, 0x01, 0xF8, 0x07, 0x80, 0x66, 0x01, 0xE0, 0x39, 0x80, 0xF8, 0x0E, | |||
| 0x60, 0x36, 0x03, 0x9C, 0x0D, 0x80, 0xC7, 0x03, 0x30, 0x30, 0xC0, 0xCC, | |||
| 0x0C, 0x30, 0x63, 0x07, 0x0C, 0x18, 0xC1, 0xC3, 0x06, 0x38, 0x60, 0xE1, | |||
| 0x86, 0x18, 0x18, 0xE1, 0x86, 0x06, 0x30, 0x63, 0x81, 0x8C, 0x1C, 0xC0, | |||
| 0x63, 0x03, 0x30, 0x1D, 0xC0, 0xCC, 0x03, 0x60, 0x33, 0x00, 0xD8, 0x0D, | |||
| 0xC0, 0x3E, 0x03, 0xE0, 0x0F, 0x80, 0x78, 0x00, 0xE0, 0x07, 0x60, 0x0E, | |||
| 0x70, 0x1C, 0x38, 0x18, 0x18, 0x38, 0x1C, 0x30, 0x0C, 0x70, 0x0E, 0xE0, | |||
| 0x07, 0xC0, 0x03, 0xC0, 0x03, 0x80, 0x03, 0xC0, 0x06, 0xC0, 0x0E, 0xE0, | |||
| 0x0C, 0x70, 0x1C, 0x30, 0x38, 0x38, 0x30, 0x1C, 0x70, 0x0C, 0x60, 0x0E, | |||
| 0xC0, 0x07, 0xF0, 0x07, 0x70, 0x06, 0x38, 0x0E, 0x38, 0x0C, 0x1C, 0x1C, | |||
| 0x0C, 0x38, 0x0E, 0x38, 0x06, 0x70, 0x07, 0x60, 0x03, 0xE0, 0x03, 0xC0, | |||
| 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, | |||
| 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0xF0, | |||
| 0x01, 0xC0, 0x06, 0x00, 0x38, 0x01, 0xC0, 0x06, 0x00, 0x38, 0x01, 0xC0, | |||
| 0x0E, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, | |||
| 0x30, 0x01, 0xC0, 0x0E, 0x00, 0x3F, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0x87, | |||
| 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, | |||
| 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xFF, 0xF8, 0x40, 0x0E, 0x00, | |||
| 0x60, 0x07, 0x00, 0x70, 0x03, 0x00, 0x38, 0x01, 0x80, 0x1C, 0x00, 0xC0, | |||
| 0x0E, 0x00, 0x60, 0x07, 0x00, 0x30, 0x03, 0x00, 0x38, 0x01, 0x80, 0x1C, | |||
| 0x00, 0xC0, 0x0E, 0x00, 0x60, 0x07, 0xFF, 0xFC, 0x38, 0x70, 0xE1, 0xC3, | |||
| 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, | |||
| 0xE1, 0xC3, 0x87, 0x0F, 0xFF, 0xF8, 0x07, 0x00, 0x3E, 0x00, 0xD8, 0x07, | |||
| 0x30, 0x18, 0xC0, 0xE1, 0x83, 0x07, 0x1C, 0x0C, 0x60, 0x3B, 0x80, 0x70, | |||
| 0xFF, 0xFF, 0xFF, 0xC0, 0x41, 0xE1, 0xF0, 0x70, 0x20, 0x1F, 0x81, 0xFF, | |||
| 0x84, 0x07, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x07, 0xFC, 0x7F, | |||
| 0x31, 0x80, 0xCE, 0x03, 0x38, 0x0C, 0xE0, 0x33, 0x80, 0xC7, 0xFF, 0xCF, | |||
| 0xE7, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x70, 0x03, 0x9E, | |||
| 0x1F, 0xFC, 0xF8, 0xF7, 0x01, 0xB8, 0x0D, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, | |||
| 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xB8, 0x0D, 0xC0, 0xEF, 0xFE, 0x7F, | |||
| 0xE0, 0x1F, 0x8F, 0xF7, 0x87, 0x80, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, | |||
| 0x30, 0x0C, 0x03, 0x00, 0xE0, 0x38, 0x07, 0xFC, 0xFF, 0x00, 0x30, 0x03, | |||
| 0x00, 0x30, 0x03, 0x00, 0x30, 0x03, 0x0F, 0xB3, 0xFF, 0x70, 0x7E, 0x03, | |||
| 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, | |||
| 0xE0, 0x3E, 0x07, 0x7F, 0xF3, 0xFB, 0x0F, 0x03, 0xFC, 0x70, 0xEE, 0x07, | |||
| 0xC0, 0x3C, 0x03, 0xC0, 0x3F, 0xFF, 0xFF, 0xFC, 0x00, 0xC0, 0x0C, 0x00, | |||
| 0xE0, 0x0E, 0x00, 0x7F, 0xF3, 0xFF, 0x06, 0x0F, 0xCF, 0xE7, 0x03, 0x01, | |||
| 0x80, 0xC1, 0xFF, 0xFF, 0xFF, 0xCC, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, | |||
| 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x1F, 0x0B, 0xFF, 0xF8, | |||
| 0x39, 0x80, 0xCC, 0x06, 0x60, 0x33, 0x01, 0x98, 0x0C, 0xF0, 0xE3, 0xFE, | |||
| 0x0F, 0xC0, 0xE0, 0x06, 0x00, 0x38, 0x00, 0xFF, 0x8F, 0xFE, 0xE0, 0x3E, | |||
| 0x00, 0xF0, 0x07, 0x80, 0x3E, 0x03, 0xFF, 0xF9, 0xFF, 0x80, 0xE0, 0x07, | |||
| 0x00, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0x70, 0x03, 0x9F, 0x1F, 0xFC, 0xF8, | |||
| 0xF7, 0x01, 0xB8, 0x0D, 0xC0, 0x6E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, | |||
| 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1C, 0xFF, 0x80, | |||
| 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x0E, 0x1C, 0x38, 0x00, 0x00, | |||
| 0x03, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, | |||
| 0x70, 0xE1, 0xC3, 0x86, 0x0C, 0x39, 0xE7, 0x84, 0x00, 0xE0, 0x0E, 0x00, | |||
| 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x7E, 0x06, 0xE0, 0xEE, 0x1C, | |||
| 0xE1, 0x8E, 0x38, 0xE7, 0x0F, 0xE0, 0xFF, 0x0E, 0x70, 0xE3, 0x8E, 0x18, | |||
| 0xE1, 0xCE, 0x0E, 0xE0, 0x6E, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | |||
| 0xFF, 0xFF, 0xC0, 0xE7, 0x83, 0xE3, 0xFF, 0xBF, 0xEF, 0x8F, 0xC3, 0xB8, | |||
| 0x1C, 0x06, 0xE0, 0x30, 0x1F, 0x80, 0xC0, 0x7E, 0x03, 0x01, 0xF8, 0x0C, | |||
| 0x07, 0xE0, 0x30, 0x0F, 0x80, 0xC0, 0x3E, 0x03, 0x00, 0xF8, 0x0C, 0x03, | |||
| 0xE0, 0x30, 0x0F, 0x80, 0xC0, 0x3E, 0x03, 0x00, 0xF8, 0x0C, 0x03, 0xE7, | |||
| 0xC7, 0xFF, 0x3E, 0x3D, 0xC0, 0x6E, 0x03, 0x70, 0x1B, 0x80, 0xFC, 0x07, | |||
| 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, | |||
| 0x07, 0x0F, 0x81, 0xFF, 0x1C, 0x3D, 0xC0, 0x6C, 0x03, 0x60, 0x1F, 0x00, | |||
| 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7E, 0x03, 0x70, 0x39, | |||
| 0xFF, 0x87, 0xF8, 0xE7, 0x87, 0xFF, 0x3E, 0x3D, 0xC0, 0xEE, 0x03, 0x70, | |||
| 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x6E, 0x03, | |||
| 0x70, 0x3B, 0xFF, 0x9F, 0xF8, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x0E, | |||
| 0x00, 0x70, 0x03, 0x80, 0x00, 0x0F, 0xF3, 0xFF, 0x78, 0x3E, 0x03, 0xC0, | |||
| 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xE0, | |||
| 0x3E, 0x07, 0x7F, 0xF3, 0xFB, 0x00, 0x30, 0x03, 0x00, 0x30, 0x03, 0x00, | |||
| 0x30, 0x03, 0x00, 0x30, 0xE1, 0xEF, 0xFF, 0xF8, 0xE0, 0xE0, 0xE0, 0xE0, | |||
| 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x0F, 0xC3, 0xFF, 0x70, | |||
| 0x7E, 0x00, 0xE0, 0x0E, 0x00, 0x70, 0x07, 0xF8, 0x1F, 0xE0, 0x0F, 0x00, | |||
| 0x70, 0x03, 0x00, 0x30, 0x07, 0x7F, 0xE7, 0xFC, 0x30, 0x18, 0x0C, 0x06, | |||
| 0x0F, 0xFF, 0xFF, 0xFE, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, | |||
| 0xC0, 0x60, 0x30, 0x1C, 0x07, 0xE3, 0xF0, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, | |||
| 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3E, | |||
| 0x03, 0xE0, 0x36, 0x07, 0x7F, 0xF3, 0xFB, 0xC0, 0x1F, 0x01, 0xF8, 0x0E, | |||
| 0xC0, 0x66, 0x03, 0x38, 0x39, 0xC1, 0x86, 0x0C, 0x30, 0x61, 0xC7, 0x06, | |||
| 0x30, 0x31, 0x81, 0x9C, 0x0E, 0xE0, 0x3E, 0x01, 0xF0, 0xC0, 0x00, 0x1F, | |||
| 0x81, 0xC0, 0x6E, 0x07, 0x01, 0x98, 0x1E, 0x06, 0x60, 0x78, 0x39, 0x83, | |||
| 0x60, 0xC7, 0x0C, 0xC3, 0x0C, 0x33, 0x0C, 0x31, 0xCC, 0x70, 0xC6, 0x31, | |||
| 0xC3, 0x98, 0x66, 0x06, 0x61, 0x98, 0x1B, 0x06, 0x60, 0x6C, 0x1F, 0x81, | |||
| 0xF0, 0x3C, 0x03, 0xC0, 0xF0, 0xC0, 0x3E, 0x07, 0x60, 0x63, 0x0C, 0x39, | |||
| 0xC1, 0x98, 0x1F, 0x80, 0xF0, 0x0F, 0x00, 0xF0, 0x1F, 0x83, 0x98, 0x30, | |||
| 0xC7, 0x0E, 0x60, 0x6E, 0x07, 0xC0, 0x1E, 0x00, 0xF8, 0x0E, 0xC0, 0x66, | |||
| 0x03, 0x38, 0x39, 0xC1, 0xC6, 0x0C, 0x30, 0x61, 0xC7, 0x06, 0x30, 0x31, | |||
| 0x81, 0xDC, 0x0E, 0xE0, 0x3E, 0x01, 0xF0, 0x03, 0x80, 0x18, 0x00, 0xC0, | |||
| 0x0E, 0x00, 0x60, 0x03, 0x00, 0x38, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, | |||
| 0x0E, 0x01, 0xC0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x00, 0xE0, 0x1C, 0x03, | |||
| 0x80, 0x70, 0x06, 0x00, 0xFF, 0xFF, 0xFF, 0x07, 0x87, 0xC7, 0x03, 0x01, | |||
| 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x07, 0x0F, 0x07, 0x03, 0xC0, | |||
| 0x70, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60, 0x38, 0x1E, 0x07, | |||
| 0xC0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | |||
| 0xFE, 0xF0, 0x7C, 0x07, 0x01, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, | |||
| 0x03, 0x01, 0xC0, 0x78, 0x1C, 0x1C, 0x1C, 0x0C, 0x06, 0x03, 0x01, 0x80, | |||
| 0xC0, 0x60, 0x30, 0x38, 0x38, 0x7C, 0x38, 0x00, 0x3C, 0x0F, 0xFC, 0xF1, | |||
| 0xFE, 0x01, 0xE0 }; | |||
| const GFXglyph titillium_web_regular16pt7bGlyphs[] PROGMEM = { | |||
| { 0, 1, 1, 7, 0, 0 }, // 0x20 ' ' | |||
| { 1, 2, 21, 8, 3, -20 }, // 0x21 '!' | |||
| { 7, 8, 6, 12, 2, -20 }, // 0x22 '"' | |||
| { 13, 16, 21, 17, 1, -20 }, // 0x23 '#' | |||
| { 55, 13, 29, 17, 2, -24 }, // 0x24 '$' | |||
| { 103, 15, 22, 17, 1, -20 }, // 0x25 '%' | |||
| { 145, 20, 22, 21, 1, -21 }, // 0x26 '&' | |||
| { 200, 2, 6, 6, 2, -20 }, // 0x27 ''' | |||
| { 202, 5, 27, 8, 2, -22 }, // 0x28 '(' | |||
| { 219, 6, 27, 8, 1, -22 }, // 0x29 ')' | |||
| { 240, 10, 11, 13, 2, -21 }, // 0x2A '*' | |||
| { 254, 14, 14, 17, 2, -14 }, // 0x2B '+' | |||
| { 279, 4, 7, 7, 1, -2 }, // 0x2C ',' | |||
| { 283, 10, 3, 14, 2, -9 }, // 0x2D '-' | |||
| { 287, 3, 4, 7, 2, -3 }, // 0x2E '.' | |||
| { 289, 11, 22, 13, 1, -21 }, // 0x2F '/' | |||
| { 320, 15, 21, 17, 1, -20 }, // 0x30 '0' | |||
| { 360, 9, 20, 17, 3, -19 }, // 0x31 '1' | |||
| { 383, 13, 21, 17, 2, -20 }, // 0x32 '2' | |||
| { 418, 13, 21, 17, 2, -20 }, // 0x33 '3' | |||
| { 453, 15, 20, 17, 1, -19 }, // 0x34 '4' | |||
| { 491, 14, 20, 17, 2, -19 }, // 0x35 '5' | |||
| { 526, 14, 21, 17, 2, -20 }, // 0x36 '6' | |||
| { 563, 13, 20, 17, 2, -19 }, // 0x37 '7' | |||
| { 596, 15, 21, 17, 1, -20 }, // 0x38 '8' | |||
| { 636, 15, 21, 17, 1, -20 }, // 0x39 '9' | |||
| { 676, 3, 14, 7, 2, -13 }, // 0x3A ':' | |||
| { 682, 4, 18, 8, 1, -13 }, // 0x3B ';' | |||
| { 691, 13, 15, 17, 2, -14 }, // 0x3C '<' | |||
| { 716, 13, 8, 17, 2, -11 }, // 0x3D '=' | |||
| { 729, 12, 15, 17, 3, -14 }, // 0x3E '>' | |||
| { 752, 12, 22, 14, 1, -21 }, // 0x3F '?' | |||
| { 785, 27, 28, 30, 2, -21 }, // 0x40 '@' | |||
| { 880, 17, 21, 18, 1, -20 }, // 0x41 'A' | |||
| { 925, 14, 21, 19, 3, -20 }, // 0x42 'B' | |||
| { 962, 14, 22, 17, 2, -21 }, // 0x43 'C' | |||
| { 1001, 15, 21, 20, 3, -20 }, // 0x44 'D' | |||
| { 1041, 13, 21, 17, 3, -20 }, // 0x45 'E' | |||
| { 1076, 12, 21, 16, 3, -20 }, // 0x46 'F' | |||
| { 1108, 15, 22, 19, 2, -21 }, // 0x47 'G' | |||
| { 1150, 15, 21, 21, 3, -20 }, // 0x48 'H' | |||
| { 1190, 2, 21, 8, 3, -20 }, // 0x49 'I' | |||
| { 1196, 5, 23, 9, 1, -20 }, // 0x4A 'J' | |||
| { 1211, 14, 21, 18, 3, -20 }, // 0x4B 'K' | |||
| { 1248, 11, 21, 15, 3, -20 }, // 0x4C 'L' | |||
| { 1277, 20, 21, 26, 3, -20 }, // 0x4D 'M' | |||
| { 1330, 15, 21, 21, 3, -20 }, // 0x4E 'N' | |||
| { 1370, 17, 22, 20, 2, -21 }, // 0x4F 'O' | |||
| { 1417, 14, 21, 18, 3, -20 }, // 0x50 'P' | |||
| { 1454, 17, 27, 20, 2, -21 }, // 0x51 'Q' | |||
| { 1512, 15, 21, 19, 3, -20 }, // 0x52 'R' | |||
| { 1552, 14, 22, 17, 1, -21 }, // 0x53 'S' | |||
| { 1591, 16, 21, 16, 0, -20 }, // 0x54 'T' | |||
| { 1633, 15, 21, 20, 2, -20 }, // 0x55 'U' | |||
| { 1673, 16, 21, 18, 1, -20 }, // 0x56 'V' | |||
| { 1715, 26, 21, 27, 1, -20 }, // 0x57 'W' | |||
| { 1784, 16, 21, 17, 1, -20 }, // 0x58 'X' | |||
| { 1826, 16, 21, 17, 0, -20 }, // 0x59 'Y' | |||
| { 1868, 14, 21, 17, 1, -20 }, // 0x5A 'Z' | |||
| { 1905, 7, 27, 10, 2, -22 }, // 0x5B '[' | |||
| { 1929, 12, 22, 14, 1, -21 }, // 0x5C '\' | |||
| { 1962, 7, 27, 10, 1, -22 }, // 0x5D ']' | |||
| { 1986, 14, 10, 17, 2, -19 }, // 0x5E '^' | |||
| { 2004, 13, 2, 20, 3, 4 }, // 0x5F '_' | |||
| { 2008, 7, 5, 7, 0, -22 }, // 0x60 '`' | |||
| { 2013, 14, 16, 16, 1, -15 }, // 0x61 'a' | |||
| { 2041, 13, 22, 16, 2, -21 }, // 0x62 'b' | |||
| { 2077, 10, 16, 14, 2, -15 }, // 0x63 'c' | |||
| { 2097, 12, 22, 16, 2, -21 }, // 0x64 'd' | |||
| { 2130, 12, 16, 16, 2, -15 }, // 0x65 'e' | |||
| { 2154, 9, 23, 10, 1, -22 }, // 0x66 'f' | |||
| { 2180, 13, 23, 16, 2, -15 }, // 0x67 'g' | |||
| { 2218, 13, 22, 17, 2, -21 }, // 0x68 'h' | |||
| { 2254, 3, 22, 7, 2, -21 }, // 0x69 'i' | |||
| { 2263, 7, 29, 7, -2, -21 }, // 0x6A 'j' | |||
| { 2289, 12, 22, 15, 2, -21 }, // 0x6B 'k' | |||
| { 2322, 3, 22, 7, 2, -21 }, // 0x6C 'l' | |||
| { 2331, 22, 16, 26, 2, -15 }, // 0x6D 'm' | |||
| { 2375, 13, 16, 17, 2, -15 }, // 0x6E 'n' | |||
| { 2401, 13, 16, 16, 2, -15 }, // 0x6F 'o' | |||
| { 2427, 13, 23, 16, 2, -15 }, // 0x70 'p' | |||
| { 2465, 12, 23, 16, 2, -15 }, // 0x71 'q' | |||
| { 2500, 8, 16, 11, 2, -15 }, // 0x72 'r' | |||
| { 2516, 12, 16, 14, 1, -15 }, // 0x73 's' | |||
| { 2540, 9, 20, 11, 1, -19 }, // 0x74 't' | |||
| { 2563, 12, 16, 16, 2, -15 }, // 0x75 'u' | |||
| { 2587, 13, 16, 15, 1, -15 }, // 0x76 'v' | |||
| { 2613, 22, 16, 24, 1, -15 }, // 0x77 'w' | |||
| { 2657, 12, 16, 14, 1, -15 }, // 0x78 'x' | |||
| { 2681, 13, 23, 15, 1, -15 }, // 0x79 'y' | |||
| { 2719, 12, 16, 14, 1, -15 }, // 0x7A 'z' | |||
| { 2743, 9, 27, 11, 1, -22 }, // 0x7B '{' | |||
| { 2774, 3, 29, 7, 2, -21 }, // 0x7C '|' | |||
| { 2785, 9, 27, 11, 1, -22 }, // 0x7D '}' | |||
| { 2816, 13, 4, 17, 2, -9 } }; // 0x7E '~' | |||
| const GFXfont titillium_web_regular16pt7b PROGMEM = { | |||
| (uint8_t *)titillium_web_regular16pt7bBitmaps, | |||
| (GFXglyph *)titillium_web_regular16pt7bGlyphs, | |||
| 0x20, 0x7E, 48 }; | |||
| // Approx. 3495 bytes | |||
| #pragma once | |||
| @@ -1,137 +0,0 @@ | |||
| const uint8_t titillium_web_regular5pt7bBitmaps[] PROGMEM = { | |||
| 0x00, 0xFA, 0xF0, 0x52, 0xBE, 0xAF, 0xA9, 0x40, 0x27, 0xAA, 0xE5, 0x5E, | |||
| 0x40, 0x55, 0xB4, 0x42, 0x9D, 0x60, 0x38, 0x90, 0xE3, 0x29, 0x51, 0x9E, | |||
| 0x80, 0xC0, 0xFF, 0x80, 0x95, 0x55, 0xC0, 0xDF, 0x00, 0x44, 0xF4, 0x40, | |||
| 0x60, 0xE0, 0x80, 0x12, 0x22, 0x44, 0x80, 0x32, 0x63, 0x18, 0xC5, 0xC0, | |||
| 0x3C, 0x92, 0x48, 0xE1, 0x12, 0x48, 0xF0, 0xE1, 0x1E, 0x11, 0xF0, 0x21, | |||
| 0x10, 0xA5, 0x7C, 0x40, 0xF8, 0x8F, 0x11, 0xE0, 0x3A, 0x20, 0xF8, 0xA5, | |||
| 0xE0, 0xF1, 0x22, 0x24, 0x40, 0x74, 0x62, 0xE8, 0xC5, 0xE0, 0x32, 0x62, | |||
| 0x93, 0x85, 0xC0, 0x90, 0x41, 0x80, 0x16, 0x86, 0x10, 0xF0, 0xF0, 0x86, | |||
| 0x16, 0x80, 0xF1, 0x12, 0x40, 0x40, 0x7E, 0x81, 0xBD, 0xA5, 0xA5, 0xA5, | |||
| 0xBF, 0x80, 0x7C, 0x30, 0xC4, 0x92, 0x79, 0x28, 0x40, 0xF4, 0xA5, 0xE8, | |||
| 0xC7, 0xC0, 0xF8, 0x88, 0x88, 0xF0, 0xF4, 0x63, 0x18, 0xC7, 0xC0, 0xF8, | |||
| 0x8E, 0x88, 0xF0, 0xF8, 0x8E, 0x88, 0x80, 0xFC, 0x21, 0x38, 0xC7, 0xE0, | |||
| 0x8C, 0x63, 0xF8, 0xC6, 0x20, 0xFE, 0x55, 0x57, 0x94, 0xA9, 0x8A, 0x4A, | |||
| 0x60, 0x88, 0x88, 0x88, 0xF0, 0x87, 0x8F, 0x2D, 0x5A, 0xB6, 0x64, 0x80, | |||
| 0x8E, 0x73, 0x5A, 0xCE, 0x60, 0xF4, 0x63, 0x18, 0xC7, 0xC0, 0xF4, 0x63, | |||
| 0x2E, 0x42, 0x00, 0xF4, 0x63, 0x18, 0xC7, 0xC3, 0xF4, 0x63, 0x2F, 0x4A, | |||
| 0x20, 0x7C, 0x10, 0x60, 0x85, 0xC0, 0xF9, 0x08, 0x42, 0x10, 0x80, 0x8C, | |||
| 0x63, 0x18, 0xC7, 0xC0, 0x86, 0x24, 0x92, 0x48, 0xC3, 0x00, 0x88, 0xC4, | |||
| 0x95, 0x4A, 0xA5, 0x52, 0xA8, 0x88, 0x8A, 0x4C, 0x43, 0x26, 0x20, 0x8A, | |||
| 0x54, 0x42, 0x10, 0x80, 0xF8, 0x44, 0x42, 0x23, 0xE0, 0xEA, 0xAB, 0x84, | |||
| 0x42, 0x21, 0x10, 0xE4, 0x92, 0x4F, 0x46, 0xA9, 0xF0, 0xC0, 0x70, 0x9D, | |||
| 0x27, 0x80, 0x88, 0xE9, 0x99, 0xE0, 0xF2, 0x4E, 0x08, 0x5F, 0x18, 0xC5, | |||
| 0xE0, 0x74, 0x7F, 0x07, 0x00, 0x6B, 0xA4, 0x90, 0x7C, 0x94, 0xC7, 0x45, | |||
| 0xE0, 0x88, 0xE9, 0x99, 0x90, 0xBE, 0xBF, 0x80, 0x88, 0xBA, 0xCA, 0xB0, | |||
| 0xFE, 0xFD, 0x26, 0x4C, 0x99, 0x20, 0xE9, 0x99, 0x90, 0x74, 0x63, 0x17, | |||
| 0x00, 0xE9, 0x99, 0xE8, 0x80, 0x7C, 0x63, 0x17, 0x84, 0x20, 0xEA, 0x80, | |||
| 0x78, 0x71, 0x70, 0x4B, 0xA4, 0x98, 0x99, 0x99, 0xF0, 0x8A, 0x94, 0xA2, | |||
| 0x00, 0x92, 0xB5, 0x6B, 0x56, 0x40, 0x96, 0x26, 0x90, 0x8A, 0x94, 0xA2, | |||
| 0x10, 0x80, 0xF1, 0x24, 0xF0, 0x29, 0x2C, 0x92, 0x60, 0xFF, 0x80, 0x89, | |||
| 0x22, 0x52, 0xC0, 0xF0 }; | |||
| const GFXglyph titillium_web_regular5pt7bGlyphs[] PROGMEM = { | |||
| { 0, 1, 1, 2, 0, 0 }, // 0x20 ' ' | |||
| { 1, 1, 7, 2, 1, -6 }, // 0x21 '!' | |||
| { 2, 2, 2, 4, 1, -6 }, // 0x22 '"' | |||
| { 3, 5, 7, 6, 0, -6 }, // 0x23 '#' | |||
| { 8, 4, 9, 6, 1, -7 }, // 0x24 '$' | |||
| { 13, 5, 7, 6, 0, -6 }, // 0x25 '%' | |||
| { 18, 7, 7, 7, 0, -6 }, // 0x26 '&' | |||
| { 25, 1, 2, 2, 1, -6 }, // 0x27 ''' | |||
| { 26, 1, 9, 3, 1, -7 }, // 0x28 '(' | |||
| { 28, 2, 9, 3, 0, -7 }, // 0x29 ')' | |||
| { 31, 3, 3, 4, 1, -6 }, // 0x2A '*' | |||
| { 33, 4, 5, 6, 1, -4 }, // 0x2B '+' | |||
| { 36, 2, 2, 2, 0, 0 }, // 0x2C ',' | |||
| { 37, 3, 1, 4, 1, -2 }, // 0x2D '-' | |||
| { 38, 1, 1, 2, 1, 0 }, // 0x2E '.' | |||
| { 39, 4, 7, 4, 0, -6 }, // 0x2F '/' | |||
| { 43, 5, 7, 6, 0, -6 }, // 0x30 '0' | |||
| { 48, 3, 7, 6, 1, -6 }, // 0x31 '1' | |||
| { 51, 4, 7, 6, 1, -6 }, // 0x32 '2' | |||
| { 55, 4, 7, 6, 1, -6 }, // 0x33 '3' | |||
| { 59, 5, 7, 6, 0, -6 }, // 0x34 '4' | |||
| { 64, 4, 7, 6, 1, -6 }, // 0x35 '5' | |||
| { 68, 5, 7, 6, 0, -6 }, // 0x36 '6' | |||
| { 73, 4, 7, 6, 1, -6 }, // 0x37 '7' | |||
| { 77, 5, 7, 6, 0, -6 }, // 0x38 '8' | |||
| { 82, 5, 7, 6, 0, -6 }, // 0x39 '9' | |||
| { 87, 1, 4, 2, 1, -3 }, // 0x3A ':' | |||
| { 88, 2, 5, 2, 0, -3 }, // 0x3B ';' | |||
| { 90, 4, 5, 6, 1, -4 }, // 0x3C '<' | |||
| { 93, 4, 3, 6, 1, -3 }, // 0x3D '=' | |||
| { 95, 4, 5, 6, 1, -4 }, // 0x3E '>' | |||
| { 98, 4, 7, 4, 0, -6 }, // 0x3F '?' | |||
| { 102, 8, 9, 10, 1, -6 }, // 0x40 '@' | |||
| { 111, 6, 7, 6, 0, -6 }, // 0x41 'A' | |||
| { 117, 5, 7, 6, 1, -6 }, // 0x42 'B' | |||
| { 122, 4, 7, 5, 1, -6 }, // 0x43 'C' | |||
| { 126, 5, 7, 6, 1, -6 }, // 0x44 'D' | |||
| { 131, 4, 7, 6, 1, -6 }, // 0x45 'E' | |||
| { 135, 4, 7, 5, 1, -6 }, // 0x46 'F' | |||
| { 139, 5, 7, 6, 1, -6 }, // 0x47 'G' | |||
| { 144, 5, 7, 7, 1, -6 }, // 0x48 'H' | |||
| { 149, 1, 7, 2, 1, -6 }, // 0x49 'I' | |||
| { 150, 2, 8, 3, 0, -6 }, // 0x4A 'J' | |||
| { 152, 5, 7, 6, 1, -6 }, // 0x4B 'K' | |||
| { 157, 4, 7, 5, 1, -6 }, // 0x4C 'L' | |||
| { 161, 7, 7, 8, 1, -6 }, // 0x4D 'M' | |||
| { 168, 5, 7, 7, 1, -6 }, // 0x4E 'N' | |||
| { 173, 5, 7, 7, 1, -6 }, // 0x4F 'O' | |||
| { 178, 5, 7, 6, 1, -6 }, // 0x50 'P' | |||
| { 183, 5, 8, 7, 1, -6 }, // 0x51 'Q' | |||
| { 188, 5, 7, 6, 1, -6 }, // 0x52 'R' | |||
| { 193, 5, 7, 5, 0, -6 }, // 0x53 'S' | |||
| { 198, 5, 7, 5, 0, -6 }, // 0x54 'T' | |||
| { 203, 5, 7, 6, 1, -6 }, // 0x55 'U' | |||
| { 208, 6, 7, 6, 0, -6 }, // 0x56 'V' | |||
| { 214, 9, 7, 9, 0, -6 }, // 0x57 'W' | |||
| { 222, 5, 7, 6, 0, -6 }, // 0x58 'X' | |||
| { 227, 5, 7, 5, 0, -6 }, // 0x59 'Y' | |||
| { 232, 5, 7, 5, 0, -6 }, // 0x5A 'Z' | |||
| { 237, 2, 8, 3, 1, -6 }, // 0x5B '[' | |||
| { 239, 4, 7, 4, 0, -6 }, // 0x5C '\' | |||
| { 243, 3, 8, 3, 0, -6 }, // 0x5D ']' | |||
| { 246, 4, 4, 6, 1, -6 }, // 0x5E '^' | |||
| { 248, 4, 1, 6, 1, 2 }, // 0x5F '_' | |||
| { 249, 2, 1, 2, 0, -6 }, // 0x60 '`' | |||
| { 250, 5, 5, 5, 0, -4 }, // 0x61 'a' | |||
| { 254, 4, 7, 5, 1, -6 }, // 0x62 'b' | |||
| { 258, 3, 5, 4, 1, -4 }, // 0x63 'c' | |||
| { 260, 5, 7, 5, 0, -6 }, // 0x64 'd' | |||
| { 265, 5, 5, 5, 0, -4 }, // 0x65 'e' | |||
| { 269, 3, 7, 3, 0, -6 }, // 0x66 'f' | |||
| { 272, 5, 7, 5, 0, -4 }, // 0x67 'g' | |||
| { 277, 4, 7, 5, 1, -6 }, // 0x68 'h' | |||
| { 281, 1, 7, 2, 1, -6 }, // 0x69 'i' | |||
| { 282, 1, 9, 2, 0, -6 }, // 0x6A 'j' | |||
| { 284, 4, 7, 5, 1, -6 }, // 0x6B 'k' | |||
| { 288, 1, 7, 2, 1, -6 }, // 0x6C 'l' | |||
| { 289, 7, 5, 8, 1, -4 }, // 0x6D 'm' | |||
| { 294, 4, 5, 5, 1, -4 }, // 0x6E 'n' | |||
| { 297, 5, 5, 5, 0, -4 }, // 0x6F 'o' | |||
| { 301, 4, 7, 5, 1, -4 }, // 0x70 'p' | |||
| { 305, 5, 7, 5, 0, -4 }, // 0x71 'q' | |||
| { 310, 2, 5, 3, 1, -4 }, // 0x72 'r' | |||
| { 312, 4, 5, 5, 0, -4 }, // 0x73 's' | |||
| { 315, 3, 7, 4, 0, -6 }, // 0x74 't' | |||
| { 318, 4, 5, 5, 1, -4 }, // 0x75 'u' | |||
| { 321, 5, 5, 5, 0, -4 }, // 0x76 'v' | |||
| { 325, 7, 5, 8, 0, -4 }, // 0x77 'w' | |||
| { 330, 4, 5, 5, 0, -4 }, // 0x78 'x' | |||
| { 333, 5, 7, 5, 0, -4 }, // 0x79 'y' | |||
| { 338, 4, 5, 5, 0, -4 }, // 0x7A 'z' | |||
| { 341, 3, 9, 4, 0, -7 }, // 0x7B '{' | |||
| { 345, 1, 9, 2, 1, -6 }, // 0x7C '|' | |||
| { 347, 3, 9, 4, 0, -7 }, // 0x7D '}' | |||
| { 351, 4, 1, 6, 1, -2 } }; // 0x7E '~' | |||
| const GFXfont titillium_web_regular5pt7b PROGMEM = { | |||
| (uint8_t *)titillium_web_regular5pt7bBitmaps, | |||
| (GFXglyph *)titillium_web_regular5pt7bGlyphs, | |||
| 0x20, 0x7E, 15 }; | |||
| // Approx. 1024 bytes | |||
| #pragma once | |||
| @@ -0,0 +1,173 @@ | |||
| const uint8_t titillium_web_regular8pt7bBitmaps[] PROGMEM = { | |||
| 0x00, 0xFF, 0xFC, 0x3C, 0x99, 0x90, 0x22, 0x11, 0x08, 0x9F, 0xF2, 0x21, | |||
| 0x10, 0x89, 0xFF, 0x22, 0x11, 0x08, 0x80, 0x08, 0x10, 0xF2, 0x59, 0x12, | |||
| 0x34, 0x3C, 0x16, 0x24, 0x48, 0xBF, 0xC4, 0x08, 0x00, 0x62, 0x2A, 0x25, | |||
| 0x0A, 0x86, 0x80, 0x40, 0x20, 0x2E, 0x14, 0x8A, 0x8D, 0xC0, 0x3C, 0x19, | |||
| 0x84, 0x21, 0x98, 0x3C, 0x36, 0x48, 0xD2, 0x1C, 0x83, 0x30, 0xE7, 0xCC, | |||
| 0xE0, 0x69, 0x69, 0x24, 0x93, 0x24, 0xC0, 0xAD, 0x55, 0x57, 0xA0, 0xB7, | |||
| 0x1F, 0x43, 0x00, 0x10, 0x20, 0x47, 0xFF, 0xE2, 0x04, 0x08, 0xEA, 0xF8, | |||
| 0xC0, 0x08, 0xC4, 0x62, 0x11, 0x08, 0xC4, 0x20, 0x38, 0xDA, 0x0C, 0x18, | |||
| 0x30, 0x60, 0xC1, 0x83, 0x8D, 0xF0, 0x17, 0xD9, 0x11, 0x11, 0x11, 0x10, | |||
| 0x79, 0x98, 0x18, 0x30, 0x41, 0x86, 0x18, 0x60, 0x83, 0xF8, 0x79, 0x18, | |||
| 0x18, 0x30, 0x4F, 0x01, 0x81, 0x02, 0x0F, 0xF0, 0x10, 0x60, 0x83, 0x04, | |||
| 0x08, 0xA1, 0x42, 0xFE, 0x08, 0x10, 0xFF, 0xFE, 0x04, 0x0B, 0x9D, 0xC0, | |||
| 0x81, 0x02, 0x0F, 0xF0, 0x3E, 0xC7, 0x04, 0x09, 0x9F, 0xE0, 0xC1, 0x82, | |||
| 0x8D, 0xF0, 0xFF, 0xFC, 0x18, 0x20, 0xC1, 0x02, 0x08, 0x10, 0x40, 0x80, | |||
| 0x39, 0x8E, 0x0C, 0x1C, 0x6F, 0xB1, 0xC1, 0x83, 0x05, 0xF0, 0x39, 0x9A, | |||
| 0x1C, 0x18, 0x38, 0xDF, 0x81, 0x02, 0x0B, 0xE0, 0xC6, 0xF0, 0x3A, 0x80, | |||
| 0x02, 0x1C, 0xC6, 0x0C, 0x06, 0x03, 0x81, 0xFE, 0x00, 0x07, 0xF0, 0x81, | |||
| 0xC0, 0x60, 0x30, 0x67, 0x38, 0x40, 0xF8, 0x20, 0xC2, 0x18, 0xC6, 0x18, | |||
| 0x01, 0x86, 0x00, 0x03, 0x00, 0x73, 0xC6, 0x01, 0x90, 0x02, 0xC7, 0xCE, | |||
| 0x21, 0x18, 0x84, 0x62, 0x11, 0x88, 0x46, 0x21, 0x18, 0x8C, 0xF1, 0xFE, | |||
| 0x40, 0x01, 0x80, 0x01, 0xF8, 0x00, 0x1C, 0x0B, 0x04, 0x86, 0x42, 0x21, | |||
| 0x18, 0x84, 0xFE, 0x41, 0x20, 0x70, 0x20, 0xFE, 0xC2, 0xC3, 0xC3, 0xC2, | |||
| 0xFE, 0xC3, 0xC1, 0xC1, 0xC3, 0xFE, 0x7E, 0x83, 0x04, 0x08, 0x10, 0x20, | |||
| 0x40, 0xC0, 0x81, 0xF8, 0xFE, 0xC3, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, | |||
| 0xC1, 0xC2, 0xFC, 0xFF, 0x83, 0x06, 0x0C, 0x1F, 0xB0, 0x60, 0xC1, 0x83, | |||
| 0xF8, 0xFF, 0x83, 0x06, 0x0C, 0x1F, 0xB0, 0x60, 0xC1, 0x83, 0x00, 0x7F, | |||
| 0x40, 0xC0, 0x80, 0x80, 0x87, 0x81, 0x81, 0xC1, 0x41, 0x3F, 0xC1, 0xC1, | |||
| 0xC1, 0xC1, 0xC1, 0xFF, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xFF, 0xFF, 0xFC, | |||
| 0x24, 0x92, 0x49, 0x24, 0xF0, 0xC3, 0xC6, 0xC4, 0xCC, 0xC8, 0xF0, 0xC8, | |||
| 0xCC, 0xC4, 0xC6, 0xC3, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0F, | |||
| 0xC0, 0xE0, 0x7C, 0x1F, 0x82, 0xE8, 0x5D, 0x1B, 0xA2, 0x72, 0x4E, 0x51, | |||
| 0xCA, 0x38, 0xC7, 0x10, 0x80, 0xE1, 0xE1, 0xD1, 0xD1, 0xD9, 0xC9, 0xC9, | |||
| 0xC5, 0xC5, 0xC3, 0xC3, 0x3E, 0x21, 0xB0, 0x50, 0x38, 0x1C, 0x0E, 0x07, | |||
| 0x03, 0xC1, 0x21, 0x8F, 0x80, 0xFE, 0xC3, 0xC1, 0xC1, 0xC1, 0xC3, 0xFE, | |||
| 0xC0, 0xC0, 0xC0, 0xC0, 0x3E, 0x21, 0xB0, 0x50, 0x38, 0x1C, 0x0E, 0x07, | |||
| 0x03, 0xC1, 0x21, 0x8F, 0x80, 0x40, 0x10, 0xFE, 0xC3, 0xC1, 0xC1, 0xC1, | |||
| 0xC2, 0xFC, 0xC4, 0xC2, 0xC2, 0xC3, 0x7F, 0x02, 0x04, 0x0E, 0x07, 0x81, | |||
| 0x81, 0x02, 0x0F, 0xF0, 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, | |||
| 0x08, 0x08, 0x08, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, | |||
| 0x43, 0x7E, 0xC1, 0xA0, 0xD0, 0x4C, 0x22, 0x31, 0x10, 0x88, 0x64, 0x16, | |||
| 0x0A, 0x07, 0x00, 0xC3, 0x0D, 0x0C, 0x24, 0x30, 0x90, 0xA2, 0x64, 0x88, | |||
| 0x92, 0x62, 0x49, 0x09, 0x34, 0x2C, 0x50, 0xE1, 0x41, 0x87, 0x00, 0xC1, | |||
| 0xB1, 0x88, 0x86, 0x81, 0x40, 0x40, 0x50, 0x28, 0x22, 0x31, 0xB0, 0x60, | |||
| 0xC1, 0x43, 0x22, 0x24, 0x14, 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0xFE, | |||
| 0x0C, 0x10, 0x41, 0x82, 0x08, 0x30, 0xC1, 0x03, 0xF8, 0xF8, 0x88, 0x88, | |||
| 0x88, 0x88, 0x88, 0x8F, 0xC1, 0x02, 0x08, 0x30, 0x41, 0x82, 0x08, 0x10, | |||
| 0x40, 0xE4, 0x92, 0x49, 0x24, 0x93, 0xC0, 0x10, 0x70, 0xA2, 0x64, 0x50, | |||
| 0x40, 0xFF, 0xF0, 0x86, 0x10, 0xF8, 0x18, 0x13, 0xE8, 0x50, 0xA1, 0x7F, | |||
| 0x81, 0x02, 0x07, 0xE8, 0x50, 0xE1, 0xC3, 0x85, 0x0B, 0xE0, 0x7E, 0x21, | |||
| 0x08, 0x43, 0x0F, 0x04, 0x10, 0x5F, 0xC6, 0x18, 0x61, 0x87, 0x17, 0xC0, | |||
| 0x7B, 0x18, 0x61, 0xFE, 0x0C, 0x1F, 0x19, 0x08, 0xCF, 0xB1, 0x8C, 0x63, | |||
| 0x18, 0xC0, 0x7F, 0x0A, 0x14, 0x2F, 0x88, 0x10, 0x3E, 0x87, 0x07, 0x13, | |||
| 0xC0, 0x81, 0x02, 0x07, 0xE8, 0x50, 0xA1, 0xC3, 0x87, 0x0E, 0x18, 0x9F, | |||
| 0xE0, 0x20, 0x12, 0x49, 0x24, 0x93, 0xA0, 0x82, 0x08, 0x21, 0x8A, 0x4F, | |||
| 0x24, 0x9A, 0x28, 0x40, 0xFF, 0xE0, 0xFF, 0xF0, 0x86, 0x10, 0xC2, 0x18, | |||
| 0x43, 0x08, 0x61, 0x0C, 0x21, 0xFD, 0x0A, 0x14, 0x38, 0x70, 0xE1, 0xC3, | |||
| 0x7D, 0x8A, 0x1C, 0x38, 0x70, 0xF1, 0x3E, 0xFD, 0x0A, 0x1C, 0x38, 0x70, | |||
| 0xE1, 0x7E, 0x81, 0x02, 0x04, 0x00, 0x7F, 0x18, 0x61, 0x86, 0x1C, 0x5F, | |||
| 0x04, 0x10, 0x41, 0xBE, 0x88, 0x88, 0x88, 0xFE, 0x08, 0x3C, 0x18, 0x10, | |||
| 0xFE, 0x21, 0x3E, 0x42, 0x10, 0x84, 0x21, 0xC0, 0x86, 0x18, 0x61, 0x86, | |||
| 0x1C, 0x5F, 0xC2, 0x85, 0x1B, 0x22, 0x44, 0x8A, 0x0C, 0xC6, 0x34, 0x62, | |||
| 0x46, 0x26, 0x52, 0x29, 0x62, 0x94, 0x29, 0x43, 0x8C, 0xC6, 0xC8, 0xA0, | |||
| 0xC1, 0x85, 0x19, 0x63, 0xC2, 0x85, 0x1B, 0x22, 0x44, 0x8A, 0x0C, 0x08, | |||
| 0x30, 0x40, 0x80, 0xFC, 0x21, 0x8C, 0x21, 0x08, 0x3F, 0x19, 0x88, 0x42, | |||
| 0x11, 0x9C, 0x21, 0x08, 0x43, 0x0C, 0xFF, 0xFE, 0xC4, 0x66, 0x66, 0x33, | |||
| 0x66, 0x66, 0x4C, 0xF3, 0x18 }; | |||
| const GFXglyph titillium_web_regular8pt7bGlyphs[] PROGMEM = { | |||
| { 0, 1, 1, 4, 0, 0 }, // 0x20 ' ' | |||
| { 1, 2, 11, 4, 1, -10 }, // 0x21 '!' | |||
| { 4, 4, 3, 6, 1, -10 }, // 0x22 '"' | |||
| { 6, 9, 11, 9, 0, -10 }, // 0x23 '#' | |||
| { 19, 7, 15, 9, 1, -12 }, // 0x24 '$' | |||
| { 33, 9, 11, 9, 0, -10 }, // 0x25 '%' | |||
| { 46, 10, 11, 11, 1, -10 }, // 0x26 '&' | |||
| { 60, 1, 3, 3, 1, -10 }, // 0x27 ''' | |||
| { 61, 3, 14, 4, 1, -11 }, // 0x28 '(' | |||
| { 67, 2, 14, 4, 1, -11 }, // 0x29 ')' | |||
| { 71, 5, 5, 7, 1, -10 }, // 0x2A '*' | |||
| { 75, 7, 8, 9, 1, -7 }, // 0x2B '+' | |||
| { 82, 2, 4, 4, 1, -1 }, // 0x2C ',' | |||
| { 83, 5, 1, 7, 1, -4 }, // 0x2D '-' | |||
| { 84, 1, 2, 3, 1, -1 }, // 0x2E '.' | |||
| { 85, 5, 11, 7, 1, -10 }, // 0x2F '/' | |||
| { 92, 7, 11, 9, 1, -10 }, // 0x30 '0' | |||
| { 102, 4, 11, 9, 2, -10 }, // 0x31 '1' | |||
| { 108, 7, 11, 9, 1, -10 }, // 0x32 '2' | |||
| { 118, 7, 11, 9, 1, -10 }, // 0x33 '3' | |||
| { 128, 7, 11, 9, 1, -10 }, // 0x34 '4' | |||
| { 138, 7, 11, 9, 1, -10 }, // 0x35 '5' | |||
| { 148, 7, 11, 9, 1, -10 }, // 0x36 '6' | |||
| { 158, 7, 11, 9, 1, -10 }, // 0x37 '7' | |||
| { 168, 7, 11, 9, 1, -10 }, // 0x38 '8' | |||
| { 178, 7, 11, 9, 1, -10 }, // 0x39 '9' | |||
| { 188, 1, 7, 3, 1, -6 }, // 0x3A ':' | |||
| { 189, 2, 9, 4, 1, -6 }, // 0x3B ';' | |||
| { 192, 7, 8, 9, 1, -7 }, // 0x3C '<' | |||
| { 199, 7, 4, 9, 1, -5 }, // 0x3D '=' | |||
| { 203, 7, 8, 9, 1, -7 }, // 0x3E '>' | |||
| { 210, 6, 11, 7, 1, -10 }, // 0x3F '?' | |||
| { 219, 14, 15, 16, 1, -11 }, // 0x40 '@' | |||
| { 246, 9, 11, 10, 0, -10 }, // 0x41 'A' | |||
| { 259, 8, 11, 10, 1, -10 }, // 0x42 'B' | |||
| { 270, 7, 11, 9, 1, -10 }, // 0x43 'C' | |||
| { 280, 8, 11, 10, 1, -10 }, // 0x44 'D' | |||
| { 291, 7, 11, 9, 1, -10 }, // 0x45 'E' | |||
| { 301, 7, 11, 8, 1, -10 }, // 0x46 'F' | |||
| { 311, 8, 11, 10, 1, -10 }, // 0x47 'G' | |||
| { 322, 8, 11, 11, 1, -10 }, // 0x48 'H' | |||
| { 333, 2, 11, 4, 1, -10 }, // 0x49 'I' | |||
| { 336, 3, 12, 5, 0, -10 }, // 0x4A 'J' | |||
| { 341, 8, 11, 9, 1, -10 }, // 0x4B 'K' | |||
| { 352, 6, 11, 8, 1, -10 }, // 0x4C 'L' | |||
| { 361, 11, 11, 13, 1, -10 }, // 0x4D 'M' | |||
| { 377, 8, 11, 11, 1, -10 }, // 0x4E 'N' | |||
| { 388, 9, 11, 11, 1, -10 }, // 0x4F 'O' | |||
| { 401, 8, 11, 9, 1, -10 }, // 0x50 'P' | |||
| { 412, 9, 13, 11, 1, -10 }, // 0x51 'Q' | |||
| { 427, 8, 11, 10, 1, -10 }, // 0x52 'R' | |||
| { 438, 7, 11, 9, 1, -10 }, // 0x53 'S' | |||
| { 448, 8, 11, 8, 0, -10 }, // 0x54 'T' | |||
| { 459, 8, 11, 10, 1, -10 }, // 0x55 'U' | |||
| { 470, 9, 11, 9, 0, -10 }, // 0x56 'V' | |||
| { 483, 14, 11, 14, 0, -10 }, // 0x57 'W' | |||
| { 503, 9, 11, 9, 0, -10 }, // 0x58 'X' | |||
| { 516, 8, 11, 9, 0, -10 }, // 0x59 'Y' | |||
| { 527, 7, 11, 9, 1, -10 }, // 0x5A 'Z' | |||
| { 537, 4, 14, 5, 1, -11 }, // 0x5B '[' | |||
| { 544, 6, 11, 7, 0, -10 }, // 0x5C '\' | |||
| { 553, 3, 14, 5, 1, -11 }, // 0x5D ']' | |||
| { 559, 7, 6, 9, 1, -10 }, // 0x5E '^' | |||
| { 565, 6, 2, 10, 2, 2 }, // 0x5F '_' | |||
| { 567, 4, 3, 4, 0, -11 }, // 0x60 '`' | |||
| { 569, 7, 8, 8, 1, -7 }, // 0x61 'a' | |||
| { 576, 7, 11, 8, 1, -10 }, // 0x62 'b' | |||
| { 586, 5, 8, 7, 1, -7 }, // 0x63 'c' | |||
| { 591, 6, 11, 8, 1, -10 }, // 0x64 'd' | |||
| { 600, 6, 8, 8, 1, -7 }, // 0x65 'e' | |||
| { 606, 5, 12, 5, 0, -11 }, // 0x66 'f' | |||
| { 614, 7, 12, 8, 1, -7 }, // 0x67 'g' | |||
| { 625, 7, 11, 9, 1, -10 }, // 0x68 'h' | |||
| { 635, 1, 11, 4, 1, -10 }, // 0x69 'i' | |||
| { 637, 3, 15, 4, -1, -10 }, // 0x6A 'j' | |||
| { 643, 6, 11, 8, 1, -10 }, // 0x6B 'k' | |||
| { 652, 1, 11, 4, 1, -10 }, // 0x6C 'l' | |||
| { 654, 11, 8, 13, 1, -7 }, // 0x6D 'm' | |||
| { 665, 7, 8, 9, 1, -7 }, // 0x6E 'n' | |||
| { 672, 7, 8, 8, 1, -7 }, // 0x6F 'o' | |||
| { 679, 7, 12, 8, 1, -7 }, // 0x70 'p' | |||
| { 690, 6, 12, 8, 1, -7 }, // 0x71 'q' | |||
| { 699, 4, 8, 6, 1, -7 }, // 0x72 'r' | |||
| { 703, 6, 8, 7, 1, -7 }, // 0x73 's' | |||
| { 709, 5, 10, 6, 0, -9 }, // 0x74 't' | |||
| { 716, 6, 8, 9, 1, -7 }, // 0x75 'u' | |||
| { 722, 7, 8, 8, 0, -7 }, // 0x76 'v' | |||
| { 729, 12, 8, 12, 0, -7 }, // 0x77 'w' | |||
| { 741, 7, 8, 7, 0, -7 }, // 0x78 'x' | |||
| { 748, 7, 12, 8, 0, -7 }, // 0x79 'y' | |||
| { 759, 6, 8, 7, 1, -7 }, // 0x7A 'z' | |||
| { 765, 5, 14, 6, 0, -11 }, // 0x7B '{' | |||
| { 774, 1, 15, 4, 1, -10 }, // 0x7C '|' | |||
| { 776, 4, 14, 6, 1, -11 }, // 0x7D '}' | |||
| { 783, 7, 2, 9, 1, -4 } }; // 0x7E '~' | |||
| const GFXfont titillium_web_regular8pt7b PROGMEM = { | |||
| (uint8_t *)titillium_web_regular8pt7bBitmaps, | |||
| (GFXglyph *)titillium_web_regular8pt7bGlyphs, | |||
| 0x20, 0x7E, 24 }; | |||
| // Approx. 1457 bytes | |||
| #pragma once | |||
| @@ -0,0 +1,27 @@ | |||
| /* | |||
| * air.h | |||
| * | |||
| * Created on: 07.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef IMAGES_AIR_H_ | |||
| #define IMAGES_AIR_H_ | |||
| // 'air', 24x24px | |||
| const unsigned char epd_bitmap_air [] PROGMEM = { | |||
| 0x00, 0x0f, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x39, 0xc0, 0x00, 0x30, 0xc0, 0x0e, 0x30, 0xc0, 0x3f, | |||
| 0x30, 0x00, 0x7b, 0xb8, 0x00, 0x61, 0x9f, 0xfe, 0x61, 0x8f, 0xfe, 0x60, 0x00, 0x00, 0x70, 0x00, | |||
| 0x00, 0x3f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfe, | |||
| 0x3f, 0xff, 0xfe, 0x70, 0x00, 0x00, 0x60, 0x00, 0x00, 0x61, 0x80, 0x00, 0x61, 0x80, 0x00, 0x73, | |||
| 0x80, 0x00, 0x3f, 0x00, 0x00, 0x1e, 0x00, 0x00 | |||
| }; | |||
| // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 96) | |||
| //const int epd_bitmap_allArray_LEN = 1; | |||
| //const unsigned char* epd_bitmap_allArray[1] = { | |||
| // epd_bitmap_air | |||
| //}; | |||
| #endif /* IMAGES_AIR_H_ */ | |||
| @@ -1,85 +0,0 @@ | |||
| #define ARDUINO_22429_HEIGHT 64 | |||
| #define ARDUINO_22429_WIDTH 64 | |||
| #ifndef __ARDUINO_22429_H | |||
| #define __ARDUINO_22429_H | |||
| #ifdef __AVR__ | |||
| #include <avr/pgmspace.h> | |||
| #elif defined(ESP8266) | |||
| #include <pgmspace.h> | |||
| #else | |||
| #define PROGMEM | |||
| #endif | |||
| // created with https://mischianti.org/rgb-image-to-byte-array-converter-for-arduino-tft-displays/ | |||
| // array size is 8192 | |||
| static const uint16_t arduino_22429[] PROGMEM = { | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0x1082, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x0861, 0x1082, 0x1082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0x0861, 0x10a2, 0x18e3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18e3, 0x10a2, 0x0861, 0x1082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0x18c3, 0x18e3, 0x10a2, 0x10a2, 0x18c3, 0x10a2, 0x10e3, 0x19e7, 0x1a69, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a8a, 0x1a69, 0x19e7, 0x10e3, 0x10a2, 0x18c3, 0x10a2, 0x10a2, 0x18e3, 0x18c3, 0x1082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0x1082, 0x10a2, 0x18c3, 0x10a2, 0x236e, 0x2cb3, 0x2d15, 0x2d55, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x3555, 0x2d55, 0x2d15, 0x2cb3, 0x236e, 0x10a2, 0x18c3, 0x10a2, 0x1082, 0x0861, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18c3, 0x18c3, 0x10a2, 0x10a2, 0x23cf, 0x2d14, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d14, 0x23cf, 0x10a2, 0x10a2, 0x18c3, 0x18c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18c3, 0x18c3, 0x18c3, 0x19a7, 0x24d3, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x2d55, 0x24d3, 0x19a7, 0x18c3, 0x18c3, 0x18c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0x18c3, 0x18c3, 0x1a69, 0x2514, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2514, 0x1a69, 0x18c3, 0x18c3, 0x0861, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x1082, 0x18e3, 0x10a2, 0x19e8, 0x24f4, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x24f4, 0x19e8, 0x10a2, 0x18e3, 0x1082, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x10a2, 0x10a2, 0x10c3, 0x1cd3, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x2535, 0x1cd3, 0x10c3, 0x10a2, 0x10a2, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0861, 0x18c3, 0x18c3, 0x1c10, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x14f4, 0x0cd3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cd3, 0x14f4, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1c10, 0x18c3, 0x18c3, 0x0861, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x18c3, 0x10a2, 0x1965, 0x1cf4, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x0cf4, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cf4, 0x1d14, 0x1d14, 0x1d14, 0x1d14, 0x1cf4, 0x1965, 0x10a2, 0x18c3, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x1082, 0x18c3, 0x1410, 0x1514, 0x1514, 0x1514, 0x14f4, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04d3, 0x14f4, 0x1514, 0x1514, 0x1514, 0x1410, 0x18c3, 0x1082, 0x0000, 0x0000, | |||
| 0x0000, 0x1082, 0x18c3, 0x10a2, 0x14b3, 0x14f4, 0x14f4, 0x0cf4, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cf4, 0x14f4, 0x14f4, 0x14b3, 0x10a2, 0x18c3, 0x1082, 0x0000, | |||
| 0x0000, 0x0861, 0x10a2, 0x1965, 0x0cf4, 0x0cf4, 0x0cf4, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cf4, 0x0cf4, 0x0cf4, 0x1965, 0x10a2, 0x0861, 0x0000, | |||
| 0x0000, 0x0861, 0x10a2, 0x130c, 0x0cf4, 0x0cf4, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cf4, 0x0cf4, 0x130c, 0x10a2, 0x0861, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x0bae, 0x0cd3, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04d3, 0x0cd3, 0x0baf, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x0bcf, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04d3, 0x0bcf, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x0bcf, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0bcf, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x14f4, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04d3, 0x14f4, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04d3, 0x55d7, 0x9edb, 0xdf9e, 0xffff, 0xffff, 0xffff, 0xefbe, 0xcf5d, 0x7e59, 0x3555, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x3555, 0x7e59, 0xcf5d, 0xefbe, 0xffff, 0xffff, 0xffff, 0xdf9e, 0x9edb, 0x55d7, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x5df8, 0xdf9e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1c, 0x3555, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x3555, 0xbf1c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf9e, 0x5df8, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cf4, 0xaefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8659, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x8659, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xaefb, 0x0cf4, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cf4, 0xcf5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb6fc, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04d3, 0xb6fc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf5d, 0x0cf4, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04d3, 0xb71c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9e79, 0x4514, 0x0c51, 0x0410, 0x0431, 0x1c92, 0x6596, 0xbefc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb6fc, 0x04d3, 0x04b3, 0x04b3, 0x04d3, 0xb6fc, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbefc, 0x6596, 0x1c92, 0x0431, 0x0410, 0x0c51, 0x4514, 0x9e79, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xb71c, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x6618, 0xffff, 0xffff, 0xffff, 0xffff, 0xcf3d, 0x24b3, 0x0410, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0410, 0x4d35, 0xef9e, 0xffff, 0xffff, 0xffff, 0xffff, 0x969a, 0x04b3, 0x04b3, 0x969a, 0xffff, 0xffff, 0xffff, 0xffff, 0xef9e, 0x4d35, 0x0410, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0410, 0x24b3, 0xcf3d, 0xffff, 0xffff, 0xffff, 0xffff, 0x6618, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cf4, 0xe7be, 0xffff, 0xffff, 0xffff, 0xcf3c, 0x0c51, 0x0431, 0x0451, 0x0451, 0x0451, 0x0452, 0x0452, 0x0451, 0x0451, 0x0451, 0x0431, 0x1c72, 0xd75d, 0xffff, 0xffff, 0xffff, 0xffff, 0x5dd7, 0x5dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xd75d, 0x1c92, 0x0431, 0x0451, 0x0451, 0x0451, 0x0452, 0x0452, 0x0451, 0x0451, 0x0451, 0x0431, 0x0c51, 0xcf3c, 0xffff, 0xffff, 0xffff, 0xe7be, 0x0cf4, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x5df8, 0xffff, 0xffff, 0xffff, 0xf7df, 0x1c92, 0x0431, 0x0451, 0x0472, 0x0472, 0x0492, 0x0492, 0x0492, 0x0492, 0x0472, 0x0472, 0x0451, 0x0431, 0x1c72, 0xdf7d, 0xffff, 0xffff, 0xffff, 0xefdf, 0xefdf, 0xffff, 0xffff, 0xffff, 0xdf7d, 0x1c72, 0x0431, 0x0451, 0x0472, 0x0472, 0x24f4, 0x5dd7, 0x5596, 0x0492, 0x0472, 0x0472, 0x0451, 0x0431, 0x1c92, 0xf7df, 0xffff, 0xffff, 0xffff, 0x5df8, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0xaefb, 0xffff, 0xffff, 0xffff, 0x8e39, 0x0431, 0x0472, 0x0492, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0472, 0x0452, 0x0431, 0x34d3, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0x34d3, 0x0431, 0x0452, 0x0472, 0x0492, 0x04b3, 0x65f8, 0xffff, 0xe79e, 0x04b3, 0x04b3, 0x0492, 0x0492, 0x0472, 0x0431, 0x8e39, 0xffff, 0xffff, 0xffff, 0xaefb, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0xe7be, 0xffff, 0xffff, 0xffff, 0x34f4, 0x0472, 0x0492, 0x04b3, 0x2535, 0x3576, 0x3576, 0x357f6, 0x3576, 0x3576, 0x3576, 0x1d14, 0x04b3, 0x0492, 0x0452, 0x0431, 0x6dd7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6dd7, 0x0431, 0x0452, 0x0492, 0x04b3, 0x1d14, 0x2d55, 0x7e59, 0xffff, 0xe7be, 0x2d55, 0x2d55, 0x04d3, 0x04b3, 0x0492, 0x0472, 0x34f4, 0xffff, 0xffff, 0xffff, 0xe7be, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04d3, 0xffff, 0xffff, 0xffff, 0xffff, 0x0452, 0x0492, 0x04b3, 0x04b3, 0x9eba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8e7a, 0x04b3, 0x04b3, 0x0492, 0x0452, 0x0431, 0xc71c, 0xffff, 0xffff, 0xffff, 0xffff, 0xc71c, 0x0431, 0x0452, 0x0492, 0x04b3, 0x04b3, 0x8e9a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x0cf4, 0x04b3, 0x04b3, 0x0492, 0x0452, 0xffff, 0xffff, 0xffff, 0xffff, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x0cf4, 0xffff, 0xffff, 0xffff, 0xffff, 0x0472, 0x04b3, 0x04b3, 0x04b3, 0x9eba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8e7a, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0451, 0xa69a, 0xffff, 0xffff, 0xffff, 0xffff, 0xa69a, 0x0451, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x8e9a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x0cf4, 0x04b3, 0x04b3, 0x04b3, 0x0472, 0xffff, 0xffff, 0xffff, 0xffff, 0x0cf4, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0xf7df, 0xffff, 0xffff, 0xffff, 0x14d4, 0x04b3, 0x04b3, 0x04b3, 0x0cb3, 0x1cb3, 0x1cb3, 0x1cb3, 0x1cb3, 0x1cb3, 0x1cb3, 0x0cb3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x4576, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x4576, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0c92, 0x6dd7, 0xffff, 0xe79e, 0x0c92, 0x0c92, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x14d4, 0xffff, 0xffff, 0xffff, 0xf7df, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0xd75d, 0xffff, 0xffff, 0xffff, 0x5dd7, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0452, 0x0452, 0x0452, 0x0452, 0x0452, 0x0452, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x0cd4, 0xdf9e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf9e, 0x0cd4, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0472, 0x65b7, 0xffff, 0xe79e, 0x0472, 0x0472, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x5dd7, 0xffff, 0xffff, 0xffff, 0xd75d, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x8638, 0xffff, 0xffff, 0xffff, 0xc73d, 0x04b3, 0x04b3, 0x04b3, 0x0472, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x9edb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xa6db, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0451, 0x1c92, 0x3d14, 0x3cf4, 0x0451, 0x0451, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0xc73d, 0xffff, 0xffff, 0xffff, 0x8638, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x34f4, 0xffff, 0xffff, 0xffff, 0xffff, 0x6618, 0x04b3, 0x04b3, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0493, 0x04b3, 0x04b3, 0x6e38, 0xffff, 0xffff, 0xffff, 0xffff, 0x9659, 0x9659, 0xffff, 0xffff, 0xffff, 0xffff, 0x6e38, 0x04b3, 0x04b3, 0x0493, 0x0492, 0x0452, 0x0431, 0x0431, 0x0492, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x6618, 0xffff, 0xffff, 0xffff, 0xffff, 0x34f4, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0451, 0xb6db, 0xffff, 0xffff, 0xffff, 0xffff, 0x55d7, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x6e18, 0xffff, 0xffff, 0xffff, 0xffff, 0xd75d, 0x0c51, 0x0c51, 0xd75d, 0xffff, 0xffff, 0xffff, 0xffff, 0x6e18, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0451, 0x0451, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x55d7, 0xffff, 0xffff, 0xffff, 0xffff, 0xb6db, 0x0451, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0472, 0x24b3, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0x96ba, 0x1d14, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x1d14, 0xa6db, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0x2cb3, 0x0451, 0x0451, 0x2cb3, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0xa6db, 0x1d14, 0x04b3, 0x04b3, 0x0492, 0x0492, 0x04b3, 0x04b3, 0x1d14, 0x96ba, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0x24b3, 0x0472, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0431, 0x5555, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1c, 0x8679, 0x6e18, 0x6e38, 0x7e59, 0xbf1c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0x4534, 0x0431, 0x0472, 0x0472, 0x0431, 0x4534, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbf1c, 0x7e59, 0x6e18, 0x6e18, 0x8679, 0xbf1c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x5555, 0x0431, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0472, 0x0431, 0x6596, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7df, 0x4d35, 0x0431, 0x0452, 0x0492, 0x0492, 0x0452, 0x0431, 0x4d35, 0xf7df, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6596, 0x0431, 0x0472, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0451, 0x0431, 0x3cf4, 0xdf7d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd75d, 0x2cb3, 0x0431, 0x0451, 0x0492, 0x04b3, 0x04b3, 0x0492, 0x0451, 0x0431, 0x2cb3, 0xd75d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf7d, 0x3cf4, 0x0431, 0x0451, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0472, 0x0451, 0x0431, 0x0431, 0x6db7, 0xdf7d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf7d, 0x6596, 0x0431, 0x0431, 0x0451, 0x0472, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0472, 0x0451, 0x0431, 0x0431, 0x6596, 0xdf7d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdf7d, 0x6db7, 0x0431, 0x0431, 0x0451, 0x0472, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0472, 0x0451, 0x0431, 0x0431, 0x0410, 0x24b3, 0x65b6, 0x8618, 0x9679, 0x9659, 0x8638, 0x6db7, 0x24b3, 0x0410, 0x0431, 0x0431, 0x0451, 0x0472, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0472, 0x0451, 0x0431, 0x0431, 0x0410, 0x24b3, 0x6db7, 0x8638, 0x9659, 0x9679, 0x8618, 0x65b6, 0x24b3, 0x0410, 0x0431, 0x0431, 0x0451, 0x0472, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0472, 0x0452, 0x0451, 0x0431, 0x0431, 0x0431, 0x0411, 0x0410, 0x0410, 0x0410, 0x0431, 0x0431, 0x0431, 0x0451, 0x0472, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0472, 0x0451, 0x0431, 0x0431, 0x0431, 0x0410, 0x0410, 0x0410, 0x0411, 0x0431, 0x0431, 0x0431, 0x0451, 0x0452, 0x0472, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x03af, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0472, 0x0472, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0472, 0x0472, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0472, 0x0472, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0451, 0x0472, 0x0472, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x03af, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x0baf, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0492, 0x0472, 0x0472, 0x0472, 0x0472, 0x0472, 0x0472, 0x0492, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0492, 0x0472, 0x0472, 0x0472, 0x0472, 0x0472, 0x0472, 0x0492, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0baf, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x0bae, 0x04d3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0493, 0x0492, 0x0492, 0x0493, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0493, 0x0492, 0x0492, 0x0493, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04d3, 0x0bae, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x18c3, 0x10a2, 0x0b4d, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0b4d, 0x10a2, 0x18c3, 0x0000, | |||
| 0x0000, 0x0861, 0x10a2, 0x1229, 0x0cb3, 0x0cb3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cb3, 0x0cb3, 0x1229, 0x10a2, 0x0861, 0x0000, | |||
| 0x0000, 0x0861, 0x18c3, 0x18c3, 0x0c92, 0x0cb3, 0x0cb3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cb3, 0x0cb3, 0x0c92, 0x18c3, 0x18c3, 0x0861, 0x0000, | |||
| 0x0000, 0x1082, 0x18c3, 0x18c3, 0x0bf0, 0x0cb3, 0x0cb3, 0x0cb3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0cb3, 0x0cb3, 0x0cb3, 0x0bf0, 0x18c3, 0x18c3, 0x1082, 0x0000, | |||
| 0x0000, 0x0000, 0x10a2, 0x18c3, 0x126a, 0x0c92, 0x0c92, 0x0c92, 0x0c92, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0c92, 0x0c92, 0x0c92, 0x0c92, 0x126a, 0x18c3, 0x10a2, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0861, 0x10a2, 0x10a2, 0x0c10, 0x0c92, 0x0c92, 0x0c92, 0x0c92, 0x0c92, 0x0493, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0493, 0x0c92, 0x0c92, 0x0c92, 0x0c92, 0x0c92, 0x0c10, 0x10a2, 0x10a2, 0x18c3, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x1082, 0x1082, 0x10a2, 0x1208, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0492, 0x0492, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x04b3, 0x0492, 0x0492, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x1208, 0x10a2, 0x18e3, 0x1082, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x18c3, 0x18c3, 0x10a2, 0x0b2c, 0x0c52, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c72, 0x0c52, 0x0b2c, 0x10a2, 0x18c3, 0x18c3, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0x18c3, 0x18c3, 0x0b6d, 0x0451, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0c51, 0x0451, 0x0b6e, 0x18c3, 0x18c3, 0x1082, 0x10a2, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0x10a2, 0x10a2, 0x18c3, 0x0b2c, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0431, 0x0b2c, 0x18c3, 0x10a2, 0x10a2, 0x1082, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0x18c3, 0x10a2, 0x18c3, 0x0a49, 0x03cf, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x0410, 0x03cf, 0x0a49, 0x18c3, 0x10a2, 0x18c3, 0x0861, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x10a2, 0x18c3, 0x10a2, 0x10a2, 0x10c3, 0x0acb, 0x03af, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03f0, 0x03af, 0x0acb, 0x10e3, 0x10a2, 0x10a2, 0x18c3, 0x10a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x10a2, 0x10a2, 0x18c3, 0x10a2, 0x10a2, 0x18c3, 0x1186, 0x0aab, 0x032c, 0x034d, 0x036e, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036d, 0x036e, 0x034d, 0x032c, 0x0aab, 0x1186, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x10a2, 0x10a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0x18c3, 0x18c3, 0x18c3, 0x10a2, 0x18c3, 0x10a2, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x10a2, 0x18c3, 0x10a2, 0x18c3, 0x18c3, 0x18c3, 0x18e3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18c3, 0x1082, 0x10a2, 0x18c3, 0x10a2, 0x10a2, 0x10a2, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x18c3, 0x10a2, 0x10a2, 0x10a2, 0x18c3, 0x10a2, 0x18e3, 0x18c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0x0861, 0x18c3, 0x10a2, 0x10a2, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x10a2, 0x10a2, 0x18c3, 0x0861, 0x1082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | |||
| 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x10a2, 0x10a2, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x1082, 0x10a2, 0x10a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 | |||
| }; | |||
| #endif | |||
| @@ -0,0 +1,55 @@ | |||
| /* | |||
| * arduino_logo.h | |||
| * | |||
| * Created on: 10.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef IMAGES_ARDUINO_LOGO_H_ | |||
| #define IMAGES_ARDUINO_LOGO_H_ | |||
| // 'arduino_logo_icon', 64x64px | |||
| const unsigned char epd_bitmap_arduino_logo_icon [] PROGMEM = { | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x0f, 0xf0, 0x06, 0x00, 0x7f, 0xfc, 0x00, 0x00, 0x3f, 0xfe, 0x05, | |||
| 0x01, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x86, 0x03, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xc5, | |||
| 0x07, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xe0, 0x0f, 0xf8, 0x3f, 0xf0, 0x0f, 0xfc, 0x1f, 0xf0, | |||
| 0x1f, 0xe0, 0x07, 0xf8, 0x1f, 0xe0, 0x07, 0xf8, 0x3f, 0x80, 0x01, 0xfc, 0x3f, 0x80, 0x01, 0xfc, | |||
| 0x3f, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xfc, 0x7e, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x7e, | |||
| 0x7c, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x3e, 0x7c, 0x00, 0x00, 0x1f, 0xf8, 0x03, 0x80, 0x3e, | |||
| 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x03, 0x80, 0x3f, 0xf8, 0x1f, 0xf8, 0x0f, 0xf0, 0x0f, 0xe0, 0x1f, | |||
| 0xf8, 0x1f, 0xf8, 0x07, 0xe0, 0x1f, 0xf0, 0x1f, 0xf8, 0x1f, 0xf8, 0x07, 0xe0, 0x1f, 0xf0, 0x1f, | |||
| 0xf8, 0x00, 0x00, 0x0f, 0xf0, 0x03, 0x80, 0x1f, 0xf8, 0x00, 0x00, 0x1f, 0xf0, 0x03, 0x80, 0x3f, | |||
| 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x03, 0x80, 0x3f, 0x7c, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x3e, | |||
| 0x7e, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7e, 0x3f, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xfc, | |||
| 0x3f, 0x00, 0x01, 0xfc, 0x3f, 0x80, 0x00, 0xfc, 0x1f, 0xc0, 0x03, 0xf8, 0x1f, 0xc0, 0x03, 0xf8, | |||
| 0x1f, 0xf0, 0x0f, 0xf8, 0x1f, 0xf0, 0x0f, 0xf8, 0x0f, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xf0, | |||
| 0x07, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xe0, 0x01, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0x80, | |||
| 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x3f, 0xfc, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x0f, 0x06, 0x33, 0xf9, 0x86, 0x38, | |||
| 0x0e, 0x1f, 0x8f, 0xc6, 0x33, 0xf9, 0xc6, 0x7e, 0x1e, 0x19, 0xcc, 0xe6, 0x30, 0x61, 0xc6, 0xc6, | |||
| 0x1b, 0x18, 0xcc, 0x66, 0x30, 0x61, 0xe6, 0xc3, 0x1b, 0x19, 0x8c, 0x66, 0x30, 0x61, 0xe6, 0xc3, | |||
| 0x33, 0x1f, 0x0c, 0x66, 0x30, 0x61, 0xb6, 0xc3, 0x33, 0x9b, 0x0c, 0x66, 0x30, 0x61, 0xbe, 0xc3, | |||
| 0x3f, 0x99, 0x8c, 0x66, 0x30, 0x61, 0x9e, 0xc3, 0x3f, 0x99, 0x8c, 0xe6, 0x30, 0x61, 0x9e, 0xc6, | |||
| 0x61, 0x98, 0xcf, 0xc7, 0xe3, 0xf9, 0x8e, 0x7e, 0xe0, 0xd8, 0xcf, 0x81, 0xc3, 0xf9, 0x8e, 0x38, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | |||
| }; | |||
| // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 528) | |||
| //const int epd_bitmap_allArray_LEN = 1; | |||
| //const unsigned char* epd_bitmap_allArray[1] = { | |||
| // epd_bitmap_arduino_logo_icon | |||
| //}; | |||
| #endif /* IMAGES_ARDUINO_LOGO_H_ */ | |||
| @@ -0,0 +1,27 @@ | |||
| /* | |||
| * gear.h | |||
| * | |||
| * Created on: 07.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef IMAGES_GEAR_H_ | |||
| #define IMAGES_GEAR_H_ | |||
| // 'gear', 24x24px | |||
| const unsigned char epd_bitmap_gear [] PROGMEM = { | |||
| 0x00, 0x3c, 0x00, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x0e, 0x42, 0x70, 0x11, 0xc3, 0x88, 0x10, | |||
| 0x00, 0x08, 0x10, 0x00, 0x08, 0x08, 0x00, 0x10, 0x08, 0x3c, 0x10, 0x18, 0x42, 0x18, 0xe0, 0x81, | |||
| 0x07, 0x80, 0x81, 0x01, 0x80, 0x81, 0x01, 0xe0, 0x81, 0x07, 0x18, 0x42, 0x18, 0x08, 0x3c, 0x10, | |||
| 0x08, 0x00, 0x10, 0x10, 0x00, 0x08, 0x10, 0x00, 0x08, 0x11, 0xc3, 0x88, 0x0e, 0x42, 0x70, 0x00, | |||
| 0x24, 0x00, 0x00, 0x24, 0x00, 0x00, 0x3c, 0x00 | |||
| }; | |||
| // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 96) | |||
| //const int epd_bitmap_allArray_LEN = 1; | |||
| //const unsigned char *epd_bitmap_allArray[1] = { | |||
| // epd_bitmap_gear | |||
| //}; | |||
| #endif /* IMAGES_GEAR_H_ */ | |||
| @@ -0,0 +1,29 @@ | |||
| /* | |||
| * ruler.h | |||
| * | |||
| * Created on: 07.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef IMAGES_RULER_H_ | |||
| #define IMAGES_RULER_H_ | |||
| // 'Measure_25', 25x25px | |||
| const unsigned char epd_bitmap_Measure_25 [] PROGMEM = { | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0xaa, 0xaa, 0xaa, 0x80, 0xaa, 0xaa, 0xaa, 0x80, 0xaa, 0xaa, 0xaa, 0x80, 0xaa, 0xaa, 0xaa, 0x80, | |||
| 0x82, 0x08, 0x20, 0x80, 0x82, 0x08, 0x20, 0x80, 0x80, 0x08, 0x00, 0x80, 0x80, 0x08, 0x00, 0x80, | |||
| 0x80, 0x08, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00 | |||
| }; | |||
| // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 128) | |||
| //const int epd_bitmap_allArray_LEN = 1; | |||
| //const unsigned char *epd_bitmap_allArray[1] = { | |||
| // epd_bitmap_Measure_25 | |||
| //}; | |||
| #endif /* IMAGES_RULER_H_ */ | |||
| @@ -0,0 +1,57 @@ | |||
| /* | |||
| * stm32duino_logo.h | |||
| * | |||
| * Created on: 20.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef IMAGES_STM32DUINO_LOGO_H_ | |||
| #define IMAGES_STM32DUINO_LOGO_H_ | |||
| // 'stm32duino_logo_icon', 64x64px | |||
| const unsigned char epd_bitmap_stm32duino_logo_icon [] PROGMEM = { | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x0f, 0xf0, 0x06, 0x00, 0x7f, 0xfc, 0x00, 0x00, 0x3f, 0xfe, 0x05, | |||
| 0x01, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x86, 0x03, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xc5, | |||
| 0x07, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xe0, 0x0f, 0xf8, 0x3f, 0xf0, 0x0f, 0xfc, 0x1f, 0xf0, | |||
| 0x1f, 0xe0, 0x07, 0xf8, 0x1f, 0xe0, 0x07, 0xf8, 0x3f, 0x80, 0x01, 0xfc, 0x3f, 0x80, 0x01, 0xfc, | |||
| 0x3f, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xfc, 0x7e, 0x00, 0x00, 0x7e, 0xfe, 0x00, 0x00, 0x7e, | |||
| 0x7c, 0x00, 0x00, 0x3f, 0xfc, 0x03, 0xc0, 0x3e, 0x7c, 0x00, 0x00, 0x1f, 0xf8, 0x03, 0xc0, 0x3e, | |||
| 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x03, 0xc0, 0x3f, 0xf8, 0x1f, 0xf8, 0x0f, 0xf0, 0x1f, 0xf8, 0x1f, | |||
| 0xf8, 0x1f, 0xf8, 0x07, 0xe0, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x07, 0xe0, 0x1f, 0xf8, 0x1f, | |||
| 0xf8, 0x1f, 0xf8, 0x0f, 0xf0, 0x1f, 0xf8, 0x1f, 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x03, 0xc0, 0x3f, | |||
| 0xfc, 0x00, 0x00, 0x1f, 0xf8, 0x03, 0xc0, 0x3f, 0x7c, 0x00, 0x00, 0x3f, 0xfc, 0x03, 0xc0, 0x3e, | |||
| 0x7e, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7e, 0x3f, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xfc, | |||
| 0x3f, 0x00, 0x01, 0xfc, 0x3f, 0x80, 0x00, 0xfc, 0x1f, 0xc0, 0x03, 0xf8, 0x1f, 0xc0, 0x03, 0xf8, | |||
| 0x1f, 0xf0, 0x0f, 0xf8, 0x1f, 0xf0, 0x0f, 0xf8, 0x0f, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xf0, | |||
| 0x07, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xe0, 0x01, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0x80, | |||
| 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x3f, 0xfc, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfb, 0xff, 0x78, 0x1e, 0xfe, 0x1f, 0x80, | |||
| 0x07, 0xfb, 0xff, 0x7c, 0x1e, 0xff, 0x1f, 0xe0, 0x06, 0x00, 0x38, 0x7c, 0x3e, 0x03, 0x80, 0xf0, | |||
| 0x06, 0x00, 0x38, 0x7c, 0x3e, 0x01, 0x80, 0x70, 0x06, 0x00, 0x38, 0x74, 0x3e, 0x03, 0x80, 0x70, | |||
| 0x07, 0xc0, 0x38, 0x76, 0x6e, 0x3f, 0x00, 0x70, 0x03, 0xf0, 0x38, 0x76, 0x6e, 0x3e, 0x00, 0xe0, | |||
| 0x00, 0x38, 0x38, 0x76, 0x6e, 0x3f, 0x81, 0xc0, 0x00, 0x1c, 0x38, 0x73, 0x4e, 0x03, 0x83, 0x80, | |||
| 0x00, 0x1c, 0x38, 0x73, 0xce, 0x01, 0x87, 0x00, 0x00, 0x18, 0x38, 0x73, 0xce, 0x03, 0x8e, 0x00, | |||
| 0x07, 0xf8, 0x38, 0x71, 0x8e, 0xff, 0x9f, 0xf0, 0x07, 0xf0, 0x38, 0x71, 0x8e, 0xff, 0x1f, 0xf0, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | |||
| }; | |||
| // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 528) | |||
| //const int epd_bitmap_allArray_LEN = 1; | |||
| //const unsigned char *epd_bitmap_allArray[1] = { | |||
| // epd_bitmap_stm32duino_logo_icon | |||
| //}; | |||
| #endif /* IMAGES_STM32DUINO_LOGO_H_ */ | |||
| @@ -0,0 +1,27 @@ | |||
| /* | |||
| * water.h | |||
| * | |||
| * Created on: 07.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef IMAGES_WATER_H_ | |||
| #define IMAGES_WATER_H_ | |||
| // 'water', 24x24px | |||
| const unsigned char epd_bitmap_water [] PROGMEM = { | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x60, 0xe0, 0x00, 0xf1, 0xe0, 0x01, | |||
| 0xf1, 0xf0, 0x01, 0xfb, 0xf0, 0x03, 0xfb, 0xf0, 0x03, 0xf7, 0xf8, 0x07, 0xf5, 0xf8, 0x07, 0xf5, | |||
| 0xf8, 0x0f, 0xf6, 0xf8, 0x0f, 0xfb, 0x70, 0x1f, 0xfd, 0xe0, 0x1f, 0xfe, 0x00, 0x17, 0xff, 0x80, | |||
| 0x13, 0xff, 0x80, 0x1b, 0xff, 0x00, 0x09, 0xff, 0x00, 0x0c, 0xfe, 0x00, 0x06, 0x3e, 0x00, 0x03, | |||
| 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | |||
| }; | |||
| // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 96) | |||
| //const int epd_bitmap_allArray_LEN = 1; | |||
| //const unsigned char* epd_bitmap_allArray[1] = { | |||
| // epd_bitmap_water | |||
| //}; | |||
| #endif /* IMAGES_WATER_H_ */ | |||
| @@ -0,0 +1,27 @@ | |||
| /* | |||
| * water_s.h | |||
| * | |||
| * Created on: 07.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef IMAGES_WATER_S_H_ | |||
| #define IMAGES_WATER_S_H_ | |||
| // 'water_s', 24x24px | |||
| const unsigned char epd_bitmap_water_s [] PROGMEM = { | |||
| 0x1f, 0x00, 0x00, 0x20, 0x90, 0x00, 0x4e, 0x50, 0x40, 0x91, 0x38, 0xe0, 0x90, 0x39, 0xe0, 0x8e, | |||
| 0x3d, 0xf0, 0x81, 0x3b, 0xf0, 0x91, 0x3b, 0xf0, 0x4e, 0x77, 0xf8, 0x20, 0xf5, 0xf8, 0x1f, 0xf5, | |||
| 0xf8, 0x0f, 0xf6, 0xf8, 0x0f, 0xfb, 0x70, 0x1f, 0xfd, 0xe0, 0x1f, 0xfe, 0x00, 0x17, 0xff, 0x80, | |||
| 0x13, 0xff, 0x80, 0x1b, 0xff, 0x00, 0x09, 0xff, 0x00, 0x0c, 0xfe, 0x00, 0x06, 0x3e, 0x00, 0x03, | |||
| 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | |||
| }; | |||
| // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 96) | |||
| //const int epd_bitmap_allArray_LEN = 1; | |||
| //const unsigned char *epd_bitmap_allArray[1] = { | |||
| // epd_bitmap_water_s | |||
| //}; | |||
| #endif /* IMAGES_WATER_S_H_ */ | |||
| @@ -0,0 +1,27 @@ | |||
| /* | |||
| * zzz.h | |||
| * | |||
| * Created on: 07.01.2026 | |||
| * Author: FSmilari | |||
| */ | |||
| #ifndef IMAGES_ZZZ_H_ | |||
| #define IMAGES_ZZZ_H_ | |||
| // 'Zzz_24', 24x24px | |||
| const unsigned char epd_bitmap_Zzz_24 [] PROGMEM = { | |||
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x70, 0x00, 0x00, | |||
| 0xe0, 0x00, 0x01, 0xc0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x03, 0xf0, 0x0e, 0x03, 0xf0, 0x0f, 0xf0, | |||
| 0x60, 0x0f, 0xf0, 0xc0, 0x00, 0x01, 0x80, 0x00, 0x03, 0xf0, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, | |||
| 0x00, 0xf8, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0xc0, 0x00, 0x00, | |||
| 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | |||
| }; | |||
| // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 96) | |||
| //const int epd_bitmap_allArray_LEN = 1; | |||
| //const unsigned char *epd_bitmap_allArray[1] = { | |||
| // epd_bitmap_Zzz_24 | |||
| //}; | |||
| #endif /* IMAGES_ZZZ_H_ */ | |||
| @@ -2,22 +2,17 @@ | |||
| //This is a automatic generated file | |||
| //Please do not modify this file | |||
| //If you touch this file your change will be overwritten during the next build | |||
| //This file has been generated on 2026-01-04 21:01:22 | |||
| //This file has been generated on 2026-01-20 23:10:32 | |||
| #include "Arduino.h" | |||
| #include "C:/Users/FSmilari/Documents/Arduino/libraries/Adafruit_GFX_Library/Adafruit_GFX.h" | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/libraries/Adafruit_ST7735_and_ST7789_Library/1.11.0/Adafruit_ST7735.h" | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/cores/arduino/Arduino.h" | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/cores/arduino/HardwareSerial.h" | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/cores/arduino/WString.h" | |||
| #include "D:/Programme/sloeber/4.4/arduinoPlugin/packages/arduino/hardware/avr/1.8.4/variants/standard/pins_arduino.h" | |||
| #include "Arduino.h" | |||
| #include "ExEzButton.h" | |||
| #include "Status.h" | |||
| #include "fonts/titillium_web_regular20pt7b.h" | |||
| #include "images/SFToolsLogo.h" | |||
| #include "images/thermometer_32.h" | |||
| #include "RotaryControler.h" | |||
| #include "EchoLotSetup.h" | |||
| #include "ThreePositionSwitch.h" | |||
| void Initialize() ; | |||
| void setup() ; | |||
| void loop() ; | |||
| void SetActualStatus(Status newStatus) ; | |||