From 15469082448637f4c9a0d5ae31646075dae2234d Mon Sep 17 00:00:00 2001 From: Toto99303 Date: Sat, 16 Dec 2023 20:30:57 +0200 Subject: [PATCH 1/9] test --- platformio.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/platformio.ini b/platformio.ini index 318b84e..bbdf081 100644 --- a/platformio.ini +++ b/platformio.ini @@ -7,6 +7,7 @@ ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html +; test [platformio] globallib_dir = lib From 375bcf58d5953cc5faab4dd28398f5fea2e88dfa Mon Sep 17 00:00:00 2001 From: Toto99303 Date: Sat, 16 Dec 2023 20:32:22 +0200 Subject: [PATCH 2/9] test2 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index bbdf081..bc5dcb5 100644 --- a/platformio.ini +++ b/platformio.ini @@ -7,7 +7,7 @@ ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html -; test +; tes [platformio] globallib_dir = lib From 85617c4f054e26301812ee04176d53fd275160ba Mon Sep 17 00:00:00 2001 From: Toto99303 Date: Sat, 16 Dec 2023 20:47:53 +0200 Subject: [PATCH 3/9] M5StickC support added --- platformio.ini | 128 ++--- src/drivers/devices/M5Stick-C.h | 10 + src/drivers/devices/device.h | 8 +- src/drivers/displays/display.cpp | 8 +- src/drivers/displays/displayDriver.h | 2 +- src/drivers/displays/m5stickCDriver.cpp | 201 ++++++++ src/media/myFonts.h | 600 +++++++++++++++++++++++- 7 files changed, 848 insertions(+), 109 deletions(-) create mode 100644 src/drivers/devices/M5Stick-C.h create mode 100644 src/drivers/displays/m5stickCDriver.cpp diff --git a/platformio.ini b/platformio.ini index bc5dcb5..4c1c41b 100644 --- a/platformio.ini +++ b/platformio.ini @@ -7,105 +7,12 @@ ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html -; tes [platformio] globallib_dir = lib -default_envs = esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R, M5-StampS3, ESP32-S3-devKitv1, ESP32-S3-mini-wemos, ESP32-S3-mini-weact +default_envs = M5Stick-C ; M5Stick-C, esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R, M5-StampS3 -;-------------------------------------------------------------------- - -[env:ESP32-S3-mini-wemos] -platform = espressif32 -board = lolin_s3_mini -framework = arduino -monitor_filters = - esp32_exception_decoder - time - log2file -board_build.arduino.memory_type = qio_opi -monitor_speed = 115200 -upload_speed = 115200 -board_build.partitions = huge_app.csv -build_flags = - -D BOARD_HAS_PSRAM - -D ARDUINO_USB_MODE=1 - -D ARDUINO_USB_CDC_ON_BOOT=1 - -D S3MINIWEMOS=1 - ;-D DEBUG_MINING=1 -lib_deps = - https://github.com/takkaO/OpenFontRender - bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 - mathertel/OneButton @ ^2.0.3 - arduino-libraries/NTPClient - https://github.com/FastLED/FastLED -lib_ignore = - TFT_eSPI -;-------------------------------------------------------------------- - -;-------------------------------------------------------------------- - -[env:ESP32-S3-mini-weact] -platform = espressif32 -board = lolin_s3_mini -framework = arduino -monitor_filters = - esp32_exception_decoder - time - log2file -board_build.arduino.memory_type = qio_opi -monitor_speed = 115200 -upload_speed = 115200 -board_build.partitions = huge_app.csv -build_flags = - -D BOARD_HAS_PSRAM - -D ARDUINO_USB_MODE=1 - -D ARDUINO_USB_CDC_ON_BOOT=1 - -D S3MINIWEACT=1 - ;-D DEBUG_MINING=1 -lib_deps = - https://github.com/takkaO/OpenFontRender - bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 - mathertel/OneButton @ ^2.0.3 - arduino-libraries/NTPClient - https://github.com/FastLED/FastLED -lib_ignore = - TFT_eSPI -;-------------------------------------------------------------------- - -[env:ESP32-S3-devKitv1] -platform = espressif32 -board = esp32-s3-devkitc-1 -framework = arduino -monitor_filters = - esp32_exception_decoder - time - log2file -board_build.arduino.memory_type = qio_opi -monitor_speed = 115200 -upload_speed = 115200 -board_build.partitions = huge_app.csv -build_flags = - -D BOARD_HAS_PSRAM - -D ARDUINO_USB_MODE=1 - -D ARDUINO_USB_CDC_ON_BOOT=1 - -D DEVKITV1RGB=1 - ;-D DEBUG_MINING=1 -lib_deps = - https://github.com/takkaO/OpenFontRender - bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 - mathertel/OneButton @ ^2.0.3 - arduino-libraries/NTPClient - https://github.com/FastLED/FastLED -lib_ignore = - TFT_eSPI - -;-------------------------------------------------------------------- - [env:NerminerV2] platform = espressif32 board = esp32-s3-devkitc-1 @@ -149,7 +56,7 @@ monitor_filters = log2file ;board_build.arduino.memory_type = qio_opi monitor_speed = 115200 -upload_speed = 115200 +upload_speed = 1500000 ; 921600 460800 # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv build_flags = @@ -164,6 +71,35 @@ lib_deps = ;-------------------------------------------------------------------- +[env:M5Stick-C] +platform = espressif32 +board = m5stick-c +framework = arduino +monitor_filters = + esp32_exception_decoder + time + log2file +;board_build.arduino.memory_type = qio_opi +monitor_speed = 115200 +upload_speed = 1500000 +# 2 x 4.5MB app, 6.875MB SPIFFS +board_build.partitions = huge_app.csv +build_flags = + -D M5STICK_C=1 + ;-D DEBUG_MINING=1 +lib_deps = + https://github.com/takkaO/OpenFontRender + bblanchon/ArduinoJson@^6.21.2 + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 + mathertel/OneButton @ ^2.0.3 + arduino-libraries/NTPClient + M5StickC + Wire +lib_ignore = + TFT_eSPI + +;-------------------------------------------------------------------- + [env:TTGO-T-Display] platform = espressif32 board = esp32dev ;esp-wrover-kit @@ -351,8 +287,6 @@ lib_deps = mathertel/OneButton @ ^2.0.3 https://github.com/arduino-libraries/NTPClient -;-------------------------------------------------------------------- - [env:M5-StampS3] platform = espressif32 board = m5stack-stamps3 diff --git a/src/drivers/devices/M5Stick-C.h b/src/drivers/devices/M5Stick-C.h new file mode 100644 index 0000000..c3f5531 --- /dev/null +++ b/src/drivers/devices/M5Stick-C.h @@ -0,0 +1,10 @@ +#ifndef _M5_STICK_C_H +#define _M5_STICK_C_H + +#define PIN_BUTTON_1 37 +#define PIN_BUTTON_2 39 +#define LED_PIN 10 + +#define M5STICKC_DISPLAY + +#endif \ No newline at end of file diff --git a/src/drivers/devices/device.h b/src/drivers/devices/device.h index dc1af80..4ad9900 100644 --- a/src/drivers/devices/device.h +++ b/src/drivers/devices/device.h @@ -3,6 +3,8 @@ #if defined(NERDMINERV2) #include "nerdMinerV2.h" +#elif defined(M5STICK_C) +#include "M5Stick-C.h" #elif defined(DEVKITV1) #include "esp32DevKit.h" #elif defined(TDISPLAY) @@ -21,12 +23,6 @@ #include "esp32CAM.h" #elif defined(M5_STAMP_S3) #include "m5StampS3.h" -#elif defined(DEVKITV1RGB) -#include "esp32DevKitRGB.h" -#elif defined(S3MINIWEMOS) -#include "esp32S3MiniWemos.h" -#elif defined(S3MINIWEACT) -#include "esp32S3MiniWeact.h" #else #error "No device defined" diff --git a/src/drivers/displays/display.cpp b/src/drivers/displays/display.cpp index 43d2474..4b14e99 100644 --- a/src/drivers/displays/display.cpp +++ b/src/drivers/displays/display.cpp @@ -4,10 +4,6 @@ DisplayDriver *currentDisplayDriver = &noDisplayDriver; #endif -#ifdef LED_DISPLAY -DisplayDriver *currentDisplayDriver = &ledDisplayDriver; -#endif - #ifdef T_DISPLAY DisplayDriver *currentDisplayDriver = &tDisplayDriver; #endif @@ -32,6 +28,10 @@ DisplayDriver *currentDisplayDriver = &t_qtDisplayDriver; DisplayDriver *currentDisplayDriver = &tDisplayV1Driver; #endif +#ifdef M5STICKC_DISPLAY +DisplayDriver *currentDisplayDriver = &m5stickCDriver; +#endif + // Initialize the display void initDisplay() diff --git a/src/drivers/displays/displayDriver.h b/src/drivers/displays/displayDriver.h index c316939..3f4ce1a 100644 --- a/src/drivers/displays/displayDriver.h +++ b/src/drivers/displays/displayDriver.h @@ -29,13 +29,13 @@ typedef struct extern DisplayDriver *currentDisplayDriver; extern DisplayDriver noDisplayDriver; -extern DisplayDriver ledDisplayDriver; extern DisplayDriver tDisplayDriver; extern DisplayDriver amoledDisplayDriver; extern DisplayDriver dongleDisplayDriver; extern DisplayDriver esp32_2432S028RDriver; extern DisplayDriver t_qtDisplayDriver; extern DisplayDriver tDisplayV1Driver; +extern DisplayDriver m5stickCDriver; #define SCREENS_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) diff --git a/src/drivers/displays/m5stickCDriver.cpp b/src/drivers/displays/m5stickCDriver.cpp new file mode 100644 index 0000000..c18ace3 --- /dev/null +++ b/src/drivers/displays/m5stickCDriver.cpp @@ -0,0 +1,201 @@ +#include "displayDriver.h" + +#ifdef M5STICKC_DISPLAY + +#include + +#include "media/images_160_80.h" +#include "media/myFonts.h" +#include "media/Free_Fonts.h" +#include "version.h" +#include "monitor.h" + +#define WIDTH 80 +#define HEIGHT 160 + +#define GRAY 0x632C +#define LIGHTBLUE 0x4C77 + +int screen_state = 1; + +void m5stickCDriver_Init(void) +{ + M5.begin(); + M5.Lcd.setRotation(1); + M5.Lcd.setTextSize(1); + M5.Lcd.fillScreen(BLACK); + M5.Axp.ScreenBreath(10); //screen brightness 7-15 +} + +void m5stickCDriver_AlternateScreenState(void) +{ + if (screen_state==1) { + M5.Lcd.writecommand(ST7735_DISPOFF); + M5.Axp.ScreenBreath(0); + screen_state=0; + } else { + M5.Lcd.writecommand(ST7735_DISPON); + M5.Axp.ScreenBreath(10); + screen_state=1; + } +} + +void m5stickCDriver_AlternateRotation(void) +{ + if (M5.Lcd.getRotation() == 3) M5.Lcd.setRotation(1); + else M5.Lcd.setRotation(3); +} + +void m5stickCDriver_MinerScreen(unsigned long mElapsed) +{ + + mining_data data = getMiningData(mElapsed); + + M5.Lcd.drawBitmap(0,0,MinerWidth, MinerHeight, MinerScreen); + M5.Lcd.setFreeFont(&DSEG7_Classic_Bold_12); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.setCursor(69, 69); + M5.Lcd.println(String(data.currentHashRate)); + + M5.Lcd.setTextFont(2); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.setCursor(117, 56); + M5.Lcd.println("kH/s"); + + M5.Lcd.setFreeFont(FMB9); + M5.Lcd.setCursor(81, 22); + M5.Lcd.println("VALID"); + + M5.Lcd.setFreeFont(&DSEG7_Classic_Bold_17); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.setCursor(101, 44); + M5.Lcd.println(String(data.valids)); + +} + +void m5stickCDriver_ClockScreen(unsigned long mElapsed) +{ + mining_data data = getMiningData(mElapsed); + clock_data_t curr_clock_data = getClockData_t(mElapsed); + + + M5.Lcd.fillScreen(BLACK); + + //Mining Time + char timeMining[15]; + unsigned long secElapsed = millis() / 1000; + int days = secElapsed / 86400; + int hours = (secElapsed - (days * 86400)) / 3600; //Number of seconds in an hour + int mins = (secElapsed - (days * 86400) - (hours * 3600)) / 60; //Remove the number of hours and calculate the minutes. + int secs = secElapsed - (days * 86400) - (hours * 3600) - (mins * 60); + sprintf(timeMining, "%01d %02d:%02d:%02d", days, hours, mins, secs); + + M5.Lcd.setTextFont(2); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.setCursor(40, 2); + M5.Lcd.println("ELAPSED TIME"); + + M5.Lcd.setFreeFont(&DSEG7_Classic_Bold_17); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.setCursor(24, 42); + M5.Lcd.println(String(timeMining)); + + M5.Lcd.drawFastHLine(1, 52, 180, ORANGE); + + M5.Lcd.setFreeFont(&DSEG7_Classic_Bold_17); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.setCursor(82, 76); + M5.Lcd.println(String(data.currentTime)); + + M5.Lcd.setTextFont(2); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.setCursor(3, 63); + M5.Lcd.println("TIME NOW"); + +} + +void m5stickCDriver_GlobalHashScreen(unsigned long mElapsed) +{ + coin_data data = getCoinData(mElapsed); + + Serial.printf(">>> Completed %s share(s), %s Khashes, avg. hashrate %s KH/s\n", + data.completedShares.c_str(), data.totalKHashes.c_str(), data.currentHashRate.c_str()); + + M5.Lcd.fillScreen(BLACK); + + M5.Lcd.setTextFont(2); + M5.Lcd.setCursor(118, 1); + M5.Lcd.setTextColor(GREEN,BLACK); + M5.Lcd.print("STATS"); + + M5.Lcd.setCursor(5, 1); + M5.Lcd.setTextColor(ORANGE,BLACK); + M5.Lcd.print("BTC "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.btcPrice.c_str()); + + M5.Lcd.setCursor(5, 17); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.print("Fee "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.halfHourFee.c_str()); + + M5.Lcd.setCursor(5, 33); + M5.Lcd.setTextColor(ORANGE,BLACK); + M5.Lcd.print("Diff "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.netwrokDifficulty.c_str()); + + M5.Lcd.setCursor(5, 49); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.print("GHash "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.globalHashRate.c_str()); + + M5.Lcd.setCursor(5, 65); + M5.Lcd.setTextColor(ORANGE,BLACK); + M5.Lcd.print("Height "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.blockHeight.c_str()); + +} + +void m5stickCDriver_LoadingScreen(void) +{ + M5.Lcd.fillScreen(BLACK); + M5.Lcd.drawBitmap(0,0,MinerWidth, MinerHeight, MinerScreen); + M5.Lcd.setTextFont(2); + M5.Lcd.setTextColor(ORANGE,BLACK); + M5.Lcd.setCursor(100, 10); + M5.Lcd.println(CURRENT_VERSION); +} + +void m5stickCDriver_SetupScreen(void) +{ + +} + +void m5stickCDriver_AnimateCurrentScreen(unsigned long frame) +{ +} + +void m5stickCDriver_DoLedStuff(unsigned long frame) +{ +} + +CyclicScreenFunction m5stickCDriverCyclicScreens[] = { m5stickCDriver_MinerScreen,m5stickCDriver_ClockScreen,m5stickCDriver_GlobalHashScreen}; + +DisplayDriver m5stickCDriver = { + m5stickCDriver_Init, + m5stickCDriver_AlternateScreenState, + m5stickCDriver_AlternateRotation, + m5stickCDriver_LoadingScreen, + m5stickCDriver_SetupScreen, + m5stickCDriverCyclicScreens, + m5stickCDriver_AnimateCurrentScreen, + m5stickCDriver_DoLedStuff, + SCREENS_ARRAY_SIZE(m5stickCDriverCyclicScreens), + 0, + WIDTH, + HEIGHT}; +#endif diff --git a/src/media/myFonts.h b/src/media/myFonts.h index 8f48ba8..69e894d 100644 --- a/src/media/myFonts.h +++ b/src/media/myFonts.h @@ -1547,4 +1547,602 @@ const unsigned char DigitalNumbers[] PROGMEM = { 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xda, 0x32, 0xf0, 0x84, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x98, 0x6e, 0xf9, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf3, 0xcd, 0x87 -}; \ No newline at end of file +}; + +const uint8_t DSEG7_Classic_Bold_32Bitmaps[] PROGMEM = { + + // Bitmap Data: + 0x00, // ' ' + 0x00, // '!' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '"' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '#' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '$' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '%' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '&' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ''' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '(' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ')' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '*' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '+' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ',' + 0x7F,0xFB,0xFF,0xFF,0xFF,0xDF,0xFE, // '-' + 0x6F,0xF6, // '.' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '/' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '0' + 0x03,0x7F,0xFF,0xFF,0xFF,0xFF,0xF7,0x33,0x7F,0xFF,0xFF,0xFF,0xFF,0xF7,0x30, // '1' + 0x3F,0xFF,0xC3,0xFF,0xFC,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x0F,0xFF,0x71,0xFF,0xFB,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0x3F,0xFF,0xC3,0xFF,0xFC, // '2' + 0xFF,0xFF,0x3F,0xFF,0xC7,0xFF,0xEC,0xFF,0xF7,0x00,0x03,0xC0,0x00,0xF0,0x00,0x3C,0x00,0x0F,0x00,0x03,0xC0,0x00,0xF0,0x00,0x3C,0x00,0x0F,0x00,0x03,0xC0,0x00,0xF3,0xFF,0xDD,0xFF,0xFB,0x7F,0xFE,0xCF,0xFF,0x70,0x00,0x3C,0x00,0x0F,0x00,0x03,0xC0,0x00,0xF0,0x00,0x3C,0x00,0x0F,0x00,0x03,0xC0,0x00,0xF0,0x00,0x3C,0x00,0x0F,0x3F,0xFD,0xDF,0xFF,0xBF,0xFF,0xF3,0xFF,0xFC, // '3' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB1,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x07,0x00,0x00,0x30,0x00,0x00, // '4' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x0F,0xFF,0x71,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '5' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '6' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x30,0x00,0x07,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0x00,0x00,0x00, // '7' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '8' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x0F,0xFF,0x71,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '9' + 0x7F,0xF6,0x00,0x00,0x00,0x00,0x06,0xFF,0x70, // ':' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ';' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '<' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '=' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '>' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '?' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '@' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'A' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x8D,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'B' + 0x0F,0xFF,0x03,0xFF,0xF3,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0x3F,0xFF,0xC7,0xFF,0xF8, // 'C' + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'D' + 0x3F,0xFF,0xC7,0xFF,0xFB,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0xDF,0xFF,0x9D,0xFF,0xE3,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0E,0xFF,0xF1,0xBF,0xFF,0x0F,0xFF,0xF1,0xFF,0xFE, // 'E' + 0x3F,0xFF,0xC7,0xFF,0xFB,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0xDF,0xFF,0x9D,0xFF,0xE3,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0E,0x00,0x01,0x80,0x00,0x00,0x00,0x00, // 'F' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'G' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x8D,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x30,0x00,0x00, // 'H' + 0x37,0xFF,0xFF,0xFF,0xFF,0xFF,0x73,0x00, // 'I' + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x07,0x00,0x00,0x3C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'J' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'K' + 0x00,0x00,0x18,0x00,0x03,0x80,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xC0,0x00,0x30,0x00,0x06,0x00,0x00,0xE0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x77,0xFF,0x8D,0xFF,0xF8,0x7F,0xFF,0x8F,0xFF,0xF0, // 'L' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'M' + 0x0F,0xFF,0x01,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'N' + 0x0F,0xFF,0x01,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'O' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x00,0x00, // 'P' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0x00,0x00,0x00, // 'Q' + 0x0F,0xFF,0x0F,0xFF,0xF7,0xFF,0xFD,0xFF,0xEF,0x00,0x07,0x80,0x03,0xC0,0x01,0xE0,0x00,0xF0,0x00,0x78,0x00,0x3C,0x00,0x1E,0x00,0x0F,0x00,0x07,0x80,0x03,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // 'R' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x81,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'S' + 0x00,0x00,0x18,0x00,0x03,0x80,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xDF,0xFE,0x37,0xFF,0xE6,0xFF,0xFC,0xEF,0xFF,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x77,0xFF,0x8D,0xFF,0xF8,0x7F,0xFF,0x8F,0xFF,0xF0, // 'T' + 0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'U' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x3C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'V' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'W' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x30,0x00,0x00, // 'X' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB1,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'Y' + 0x3F,0xFF,0xC3,0xFF,0xFC,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0xC0,0x00,0x0E,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0x3F,0xFF,0xC3,0xFF,0xFC, // 'Z' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '[' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '\' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ']' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '^' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '_' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '`' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'a' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x8D,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'b' + 0x0F,0xFF,0x03,0xFF,0xF3,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0x3F,0xFF,0xC7,0xFF,0xF8, // 'c' + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'd' + 0x3F,0xFF,0xC7,0xFF,0xFB,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0xDF,0xFF,0x9D,0xFF,0xE3,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0E,0xFF,0xF1,0xBF,0xFF,0x0F,0xFF,0xF1,0xFF,0xFE, // 'e' + 0x3F,0xFF,0xC7,0xFF,0xFB,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0xDF,0xFF,0x9D,0xFF,0xE3,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0E,0x00,0x01,0x80,0x00,0x00,0x00,0x00, // 'f' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'g' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x8D,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x30,0x00,0x00, // 'h' + 0x37,0xFF,0xFF,0xFF,0xFF,0xFF,0x73,0x00, // 'i' + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x07,0x00,0x00,0x3C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'j' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'k' + 0x00,0x00,0x18,0x00,0x03,0x80,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xC0,0x00,0x30,0x00,0x06,0x00,0x00,0xE0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x77,0xFF,0x8D,0xFF,0xF8,0x7F,0xFF,0x8F,0xFF,0xF0, // 'l' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'm' + 0x0F,0xFF,0x01,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'n' + 0x0F,0xFF,0x01,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'o' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x00,0x00, // 'p' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0x00,0x00,0x00, // 'q' + 0x0F,0xFF,0x0F,0xFF,0xF7,0xFF,0xFD,0xFF,0xEF,0x00,0x07,0x80,0x03,0xC0,0x01,0xE0,0x00,0xF0,0x00,0x78,0x00,0x3C,0x00,0x1E,0x00,0x0F,0x00,0x07,0x80,0x03,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // 'r' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x81,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 's' + 0x00,0x00,0x18,0x00,0x03,0x80,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xDF,0xFE,0x37,0xFF,0xE6,0xFF,0xFC,0xEF,0xFF,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x77,0xFF,0x8D,0xFF,0xF8,0x7F,0xFF,0x8F,0xFF,0xF0, // 't' + 0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'u' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x3C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'v' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'w' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x30,0x00,0x00, // 'x' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB1,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'y' + 0x3F,0xFF,0xC3,0xFF,0xFC,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0xC0,0x00,0x0E,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0x3F,0xFF,0xC3,0xFF,0xFC, // 'z' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '{' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '|' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF // '}' +}; +const GFXglyph DSEG7_Classic_Bold_32Glyphs[] PROGMEM = { +// bitmapOffset, width, height, xAdvance, xOffset, yOffset + { 0, 1, 1, 7, 0, -1 }, // ' ' + { 1, 1, 1, 27, 0, -1 }, // '!' + { 2, 8, 21, 13, 1, -21 }, // '"' + { 23, 8, 21, 13, 1, -21 }, // '#' + { 44, 8, 21, 13, 1, -21 }, // '$' + { 65, 8, 21, 13, 1, -21 }, // '%' + { 86, 8, 21, 13, 1, -21 }, // '&' + { 107, 8, 21, 13, 1, -21 }, // ''' + { 128, 8, 21, 13, 1, -21 }, // '(' + { 149, 8, 21, 13, 1, -21 }, // ')' + { 170, 8, 21, 13, 1, -21 }, // '*' + { 191, 8, 21, 13, 1, -21 }, // '+' + { 212, 8, 21, 13, 1, -21 }, // ',' + { 233, 14, 4, 27, 6, -18 }, // '-' + { 240, 4, 4, 1, -2, -4 }, // '.' + { 242, 8, 21, 13, 1, -21 }, // '/' + { 263, 20, 32, 27, 3, -32 }, // '0' + { 343, 4, 30, 27, 19, -31 }, // '1' + { 358, 20, 32, 27, 3, -32 }, // '2' + { 438, 18, 32, 27, 5, -32 }, // '3' + { 510, 20, 30, 27, 3, -31 }, // '4' + { 585, 20, 32, 27, 3, -32 }, // '5' + { 665, 20, 32, 27, 3, -32 }, // '6' + { 745, 20, 31, 27, 3, -32 }, // '7' + { 823, 20, 32, 27, 3, -32 }, // '8' + { 903, 20, 32, 27, 3, -32 }, // '9' + { 983, 4, 17, 7, 1, -24 }, // ':' + { 992, 8, 21, 13, 1, -21 }, // ';' + { 1013, 8, 21, 13, 1, -21 }, // '<' + { 1034, 8, 21, 13, 1, -21 }, // '=' + { 1055, 8, 21, 13, 1, -21 }, // '>' + { 1076, 8, 21, 13, 1, -21 }, // '?' + { 1097, 8, 21, 13, 1, -21 }, // '@' + { 1118, 20, 31, 27, 3, -32 }, // 'A' + { 1196, 20, 31, 27, 3, -31 }, // 'B' + { 1274, 19, 18, 27, 3, -18 }, // 'C' + { 1317, 20, 31, 27, 3, -31 }, // 'D' + { 1395, 19, 32, 27, 3, -32 }, // 'E' + { 1471, 19, 31, 27, 3, -32 }, // 'F' + { 1545, 20, 32, 27, 3, -32 }, // 'G' + { 1625, 20, 30, 27, 3, -31 }, // 'H' + { 1700, 4, 15, 27, 19, -16 }, // 'I' + { 1708, 20, 31, 27, 3, -31 }, // 'J' + { 1786, 20, 31, 27, 3, -32 }, // 'K' + { 1864, 19, 31, 27, 3, -31 }, // 'L' + { 1938, 20, 31, 27, 3, -32 }, // 'M' + { 2016, 20, 17, 27, 3, -18 }, // 'N' + { 2059, 20, 18, 27, 3, -18 }, // 'O' + { 2104, 20, 31, 27, 3, -32 }, // 'P' + { 2182, 20, 31, 27, 3, -32 }, // 'Q' + { 2260, 17, 17, 27, 3, -18 }, // 'R' + { 2297, 20, 31, 27, 3, -31 }, // 'S' + { 2375, 19, 31, 27, 3, -31 }, // 'T' + { 2449, 20, 16, 27, 3, -16 }, // 'U' + { 2489, 20, 31, 27, 3, -31 }, // 'V' + { 2567, 20, 31, 27, 3, -31 }, // 'W' + { 2645, 20, 30, 27, 3, -31 }, // 'X' + { 2720, 20, 31, 27, 3, -31 }, // 'Y' + { 2798, 20, 32, 27, 3, -32 }, // 'Z' + { 2878, 8, 21, 13, 1, -21 }, // '[' + { 2899, 8, 21, 13, 1, -21 }, // '\' + { 2920, 8, 21, 13, 1, -21 }, // ']' + { 2941, 8, 21, 13, 1, -21 }, // '^' + { 2962, 8, 21, 13, 1, -21 }, // '_' + { 2983, 8, 21, 13, 1, -21 }, // '`' + { 3004, 20, 31, 27, 3, -32 }, // 'a' + { 3082, 20, 31, 27, 3, -31 }, // 'b' + { 3160, 19, 18, 27, 3, -18 }, // 'c' + { 3203, 20, 31, 27, 3, -31 }, // 'd' + { 3281, 19, 32, 27, 3, -32 }, // 'e' + { 3357, 19, 31, 27, 3, -32 }, // 'f' + { 3431, 20, 32, 27, 3, -32 }, // 'g' + { 3511, 20, 30, 27, 3, -31 }, // 'h' + { 3586, 4, 15, 27, 19, -16 }, // 'i' + { 3594, 20, 31, 27, 3, -31 }, // 'j' + { 3672, 20, 31, 27, 3, -32 }, // 'k' + { 3750, 19, 31, 27, 3, -31 }, // 'l' + { 3824, 20, 31, 27, 3, -32 }, // 'm' + { 3902, 20, 17, 27, 3, -18 }, // 'n' + { 3945, 20, 18, 27, 3, -18 }, // 'o' + { 3990, 20, 31, 27, 3, -32 }, // 'p' + { 4068, 20, 31, 27, 3, -32 }, // 'q' + { 4146, 17, 17, 27, 3, -18 }, // 'r' + { 4183, 20, 31, 27, 3, -31 }, // 's' + { 4261, 19, 31, 27, 3, -31 }, // 't' + { 4335, 20, 16, 27, 3, -16 }, // 'u' + { 4375, 20, 31, 27, 3, -31 }, // 'v' + { 4453, 20, 31, 27, 3, -31 }, // 'w' + { 4531, 20, 30, 27, 3, -31 }, // 'x' + { 4606, 20, 31, 27, 3, -31 }, // 'y' + { 4684, 20, 32, 27, 3, -32 }, // 'z' + { 4764, 8, 21, 13, 1, -21 }, // '{' + { 4785, 8, 21, 13, 1, -21 }, // '|' + { 4806, 8, 21, 13, 1, -21 } // '}' +}; +const GFXfont DSEG7_Classic_Bold_32 PROGMEM = { +(uint8_t *)DSEG7_Classic_Bold_32Bitmaps,(GFXglyph *)DSEG7_Classic_Bold_32Glyphs,0x20, 0x7E, 35}; + +// Created by http://oleddisplay.squix.ch/ Consider a donation +// In case of problems make sure that you are using the font file with the correct version! +const uint8_t DSEG7_Classic_Bold_17Bitmaps[] PROGMEM = { + + // Bitmap Data: + 0x00, // ' ' + 0x00, // '!' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '"' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '#' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '$' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '%' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '&' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ''' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '(' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ')' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '*' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '+' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ',' + 0x7E,0xFF,0x7E, // '-' + 0xF0, // '.' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '/' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x03,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // '0' + 0x7F,0xFC,0xFF,0xF4, // '1' + 0xFF,0x9F,0xD0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0xFF,0x7F,0xAF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x03,0xFC,0xFF,0x80, // '2' + 0xFF,0x9F,0xD0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0xFF,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0D,0xFD,0xFF,0x80, // '3' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x30,0x04, // '4' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0xFC,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0D,0xFD,0xFF,0x80, // '5' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0xFC,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // '6' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x03,0x00,0x00,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x01, // '7' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // '8' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0D,0xFD,0xFF,0x80, // '9' + 0xB0,0x02,0xC0, // ':' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ';' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '<' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '=' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '>' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '?' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '@' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'A' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'B' + 0x3F,0x3F,0xEF,0xD8,0x0C,0x06,0x03,0x01,0x80,0xFF,0x7F,0xC0, // 'C' + 0x00,0x40,0x30,0x0C,0x03,0x00,0xC0,0x33,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'D' + 0xFF,0xFF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x7E,0x7F,0xDF,0xB0,0x18,0x0C,0x06,0x03,0x01,0xFE,0xFF,0x80, // 'E' + 0xFF,0xFF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x7E,0x7F,0xDF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x00, // 'F' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0x00,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // 'G' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x04, // 'H' + 0xFF,0xF4, // 'I' + 0x00,0x40,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x00,0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'J' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0xFC,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'K' + 0x80,0x60,0x30,0x18,0x0C,0x06,0x02,0x00,0x00,0x80,0x60,0x30,0x18,0x0C,0x06,0x03,0xFD,0xFF, // 'L' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x03,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'M' + 0x3F,0x1F,0xEB,0xFF,0x03,0xC0,0xF0,0x3C,0x0F,0x03,0x80,0x40, // 'N' + 0x3F,0x1F,0xEB,0xFF,0x03,0xC0,0xF0,0x3C,0x0F,0x03,0xFF,0x7F,0xE0, // 'O' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0x00, // 'P' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x01, // 'Q' + 0x3F,0x3F,0xEF,0xD8,0x0C,0x06,0x03,0x01,0x80,0x80,0x00, // 'R' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x37,0xF7,0xFE, // 'S' + 0x80,0x60,0x30,0x18,0x0C,0x06,0x02,0xFC,0xFF,0xBF,0x60,0x30,0x18,0x0C,0x06,0x03,0xFD,0xFF, // 'T' + 0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'U' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x0C,0x00,0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'V' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'W' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x04, // 'X' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x37,0xF7,0xFE, // 'Y' + 0xFF,0x9F,0xD0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x03,0x00,0x20,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x03,0xFC,0xFF,0x80, // 'Z' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '[' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '\' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ']' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '^' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '_' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '`' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'a' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'b' + 0x3F,0x3F,0xEF,0xD8,0x0C,0x06,0x03,0x01,0x80,0xFF,0x7F,0xC0, // 'c' + 0x00,0x40,0x30,0x0C,0x03,0x00,0xC0,0x33,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'd' + 0xFF,0xFF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x7E,0x7F,0xDF,0xB0,0x18,0x0C,0x06,0x03,0x01,0xFE,0xFF,0x80, // 'e' + 0xFF,0xFF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x7E,0x7F,0xDF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x00, // 'f' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0x00,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // 'g' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x04, // 'h' + 0xFF,0xF4, // 'i' + 0x00,0x40,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x00,0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'j' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0xFC,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'k' + 0x80,0x60,0x30,0x18,0x0C,0x06,0x02,0x00,0x00,0x80,0x60,0x30,0x18,0x0C,0x06,0x03,0xFD,0xFF, // 'l' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x03,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'm' + 0x3F,0x1F,0xEB,0xFF,0x03,0xC0,0xF0,0x3C,0x0F,0x03,0x80,0x40, // 'n' + 0x3F,0x1F,0xEB,0xFF,0x03,0xC0,0xF0,0x3C,0x0F,0x03,0xFF,0x7F,0xE0, // 'o' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0x00, // 'p' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x01, // 'q' + 0x3F,0x3F,0xEF,0xD8,0x0C,0x06,0x03,0x01,0x80,0x80,0x00, // 'r' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x37,0xF7,0xFE, // 's' + 0x80,0x60,0x30,0x18,0x0C,0x06,0x02,0xFC,0xFF,0xBF,0x60,0x30,0x18,0x0C,0x06,0x03,0xFD,0xFF, // 't' + 0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'u' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x0C,0x00,0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'v' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'w' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x04, // 'x' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x37,0xF7,0xFE, // 'y' + 0xFF,0x9F,0xD0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x03,0x00,0x20,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x03,0xFC,0xFF,0x80, // 'z' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '{' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '|' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0 // '}' +}; +const GFXglyph DSEG7_Classic_Bold_17Glyphs[] PROGMEM = { +// bitmapOffset, width, height, xAdvance, xOffset, yOffset + { 0, 1, 1, 4, 0, -1 }, // ' ' + { 1, 1, 1, 15, 0, -1 }, // '!' + { 2, 5, 12, 7, 1, -12 }, // '"' + { 10, 5, 12, 7, 1, -12 }, // '#' + { 18, 5, 12, 7, 1, -12 }, // '$' + { 26, 5, 12, 7, 1, -12 }, // '%' + { 34, 5, 12, 7, 1, -12 }, // '&' + { 42, 5, 12, 7, 1, -12 }, // ''' + { 50, 5, 12, 7, 1, -12 }, // '(' + { 58, 5, 12, 7, 1, -12 }, // ')' + { 66, 5, 12, 7, 1, -12 }, // '*' + { 74, 5, 12, 7, 1, -12 }, // '+' + { 82, 5, 12, 7, 1, -12 }, // ',' + { 90, 8, 3, 15, 3, -10 }, // '-' + { 93, 2, 2, 1, -1, -2 }, // '.' + { 94, 5, 12, 7, 1, -12 }, // '/' + { 102, 10, 17, 15, 2, -17 }, // '0' + { 124, 2, 15, 15, 10, -16 }, // '1' + { 128, 10, 17, 15, 2, -17 }, // '2' + { 150, 10, 17, 15, 2, -17 }, // '3' + { 172, 10, 15, 15, 2, -16 }, // '4' + { 191, 10, 17, 15, 2, -17 }, // '5' + { 213, 10, 17, 15, 2, -17 }, // '6' + { 235, 10, 16, 15, 2, -17 }, // '7' + { 255, 10, 17, 15, 2, -17 }, // '8' + { 277, 10, 17, 15, 2, -17 }, // '9' + { 299, 2, 9, 4, 1, -13 }, // ':' + { 302, 5, 12, 7, 1, -12 }, // ';' + { 310, 5, 12, 7, 1, -12 }, // '<' + { 318, 5, 12, 7, 1, -12 }, // '=' + { 326, 5, 12, 7, 1, -12 }, // '>' + { 334, 5, 12, 7, 1, -12 }, // '?' + { 342, 5, 12, 7, 1, -12 }, // '@' + { 350, 10, 16, 15, 2, -17 }, // 'A' + { 370, 10, 16, 15, 2, -16 }, // 'B' + { 390, 9, 10, 15, 2, -10 }, // 'C' + { 402, 10, 16, 15, 2, -16 }, // 'D' + { 422, 9, 17, 15, 2, -17 }, // 'E' + { 442, 9, 16, 15, 2, -17 }, // 'F' + { 460, 10, 17, 15, 2, -17 }, // 'G' + { 482, 10, 15, 15, 2, -16 }, // 'H' + { 501, 2, 7, 15, 10, -8 }, // 'I' + { 503, 10, 16, 15, 2, -16 }, // 'J' + { 523, 10, 16, 15, 2, -17 }, // 'K' + { 543, 9, 16, 15, 2, -16 }, // 'L' + { 561, 10, 16, 15, 2, -17 }, // 'M' + { 581, 10, 9, 15, 2, -10 }, // 'N' + { 593, 10, 10, 15, 2, -10 }, // 'O' + { 606, 10, 16, 15, 2, -17 }, // 'P' + { 626, 10, 16, 15, 2, -17 }, // 'Q' + { 646, 9, 9, 15, 2, -10 }, // 'R' + { 657, 10, 16, 15, 2, -16 }, // 'S' + { 677, 9, 16, 15, 2, -16 }, // 'T' + { 695, 10, 8, 15, 2, -8 }, // 'U' + { 705, 10, 16, 15, 2, -16 }, // 'V' + { 725, 10, 16, 15, 2, -16 }, // 'W' + { 745, 10, 15, 15, 2, -16 }, // 'X' + { 764, 10, 16, 15, 2, -16 }, // 'Y' + { 784, 10, 17, 15, 2, -17 }, // 'Z' + { 806, 5, 12, 7, 1, -12 }, // '[' + { 814, 5, 12, 7, 1, -12 }, // '\' + { 822, 5, 12, 7, 1, -12 }, // ']' + { 830, 5, 12, 7, 1, -12 }, // '^' + { 838, 5, 12, 7, 1, -12 }, // '_' + { 846, 5, 12, 7, 1, -12 }, // '`' + { 854, 10, 16, 15, 2, -17 }, // 'a' + { 874, 10, 16, 15, 2, -16 }, // 'b' + { 894, 9, 10, 15, 2, -10 }, // 'c' + { 906, 10, 16, 15, 2, -16 }, // 'd' + { 926, 9, 17, 15, 2, -17 }, // 'e' + { 946, 9, 16, 15, 2, -17 }, // 'f' + { 964, 10, 17, 15, 2, -17 }, // 'g' + { 986, 10, 15, 15, 2, -16 }, // 'h' + { 1005, 2, 7, 15, 10, -8 }, // 'i' + { 1007, 10, 16, 15, 2, -16 }, // 'j' + { 1027, 10, 16, 15, 2, -17 }, // 'k' + { 1047, 9, 16, 15, 2, -16 }, // 'l' + { 1065, 10, 16, 15, 2, -17 }, // 'm' + { 1085, 10, 9, 15, 2, -10 }, // 'n' + { 1097, 10, 10, 15, 2, -10 }, // 'o' + { 1110, 10, 16, 15, 2, -17 }, // 'p' + { 1130, 10, 16, 15, 2, -17 }, // 'q' + { 1150, 9, 9, 15, 2, -10 }, // 'r' + { 1161, 10, 16, 15, 2, -16 }, // 's' + { 1181, 9, 16, 15, 2, -16 }, // 't' + { 1199, 10, 8, 15, 2, -8 }, // 'u' + { 1209, 10, 16, 15, 2, -16 }, // 'v' + { 1229, 10, 16, 15, 2, -16 }, // 'w' + { 1249, 10, 15, 15, 2, -16 }, // 'x' + { 1268, 10, 16, 15, 2, -16 }, // 'y' + { 1288, 10, 17, 15, 2, -17 }, // 'z' + { 1310, 5, 12, 7, 1, -12 }, // '{' + { 1318, 5, 12, 7, 1, -12 }, // '|' + { 1326, 5, 12, 7, 1, -12 } // '}' +}; +const GFXfont DSEG7_Classic_Bold_17 PROGMEM = { +(uint8_t *)DSEG7_Classic_Bold_17Bitmaps,(GFXglyph *)DSEG7_Classic_Bold_17Glyphs,0x20, 0x7E, 19}; + +// Created by http://oleddisplay.squix.ch/ Consider a donation +// In case of problems make sure that you are using the font file with the correct version! +const uint8_t DSEG7_Classic_Bold_12Bitmaps[] PROGMEM = { + + // Bitmap Data: + 0x00, // ' ' + 0x00, // '!' + 0xF9,0x99,0x99,0x99,0xF0, // '"' + 0xF9,0x99,0x99,0x99,0xF0, // '#' + 0xF9,0x99,0x99,0x99,0xF0, // '$' + 0xF9,0x99,0x99,0x99,0xF0, // '%' + 0xF9,0x99,0x99,0x99,0xF0, // '&' + 0xF9,0x99,0x99,0x99,0xF0, // ''' + 0xF9,0x99,0x99,0x99,0xF0, // '(' + 0xF9,0x99,0x99,0x99,0xF0, // ')' + 0xF9,0x99,0x99,0x99,0xF0, // '*' + 0xF9,0x99,0x99,0x99,0xF0, // '+' + 0xF9,0x99,0x99,0x99,0xF0, // ',' + 0x79,0xE0, // '-' + 0xC0, // '.' + 0xF9,0x99,0x99,0x99,0xF0, // '/' + 0x7E,0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // '0' + 0xFF,0x5F,0xF0, // '1' + 0x7E,0x03,0x03,0x03,0x03,0x3D,0xBC,0xC0,0xC0,0xC0,0xC0,0x7E, // '2' + 0xFC,0x0C,0x18,0x30,0x6F,0x5E,0x83,0x06,0x0C,0x1F,0xE0, // '3' + 0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03, // '4' + 0x7E,0xC0,0xC0,0xC0,0xC0,0xBC,0x3D,0x03,0x03,0x03,0x03,0x7E, // '5' + 0x7E,0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // '6' + 0x7E,0xC3,0xC3,0xC3,0xC3,0x81,0x01,0x03,0x03,0x03,0x03, // '7' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // '8' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03,0x7E, // '9' + 0xC0,0x30, // ':' + 0xF9,0x99,0x99,0x99,0xF0, // ';' + 0xF9,0x99,0x99,0x99,0xF0, // '<' + 0xF9,0x99,0x99,0x99,0xF0, // '=' + 0xF9,0x99,0x99,0x99,0xF0, // '>' + 0xF9,0x99,0x99,0x99,0xF0, // '?' + 0xF9,0x99,0x99,0x99,0xF0, // '@' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3, // 'A' + 0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'B' + 0x3D,0x7B,0x06,0x0C,0x18,0x1F,0x80, // 'C' + 0x03,0x03,0x03,0x03,0x3D,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'D' + 0x7F,0x83,0x06,0x0C,0x17,0xAF,0x60,0xC1,0x83,0x03,0xF0, // 'E' + 0x7F,0x83,0x06,0x0C,0x17,0xAF,0x60,0xC1,0x83,0x00, // 'F' + 0x7E,0xC0,0xC0,0xC0,0xC0,0x80,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'G' + 0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3, // 'H' + 0x7F,0xC0, // 'I' + 0x03,0x03,0x03,0x03,0x01,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'J' + 0x7E,0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3, // 'K' + 0xC1,0x83,0x06,0x08,0x10,0x30,0x60,0xC1,0x81,0xF8, // 'L' + 0x7E,0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3, // 'M' + 0x3C,0xBD,0xC3,0xC3,0xC3,0xC3, // 'N' + 0x3C,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'O' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBC,0xC0,0xC0,0xC0,0xC0, // 'P' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03, // 'Q' + 0x3D,0x7B,0x06,0x0C,0x18,0x00, // 'R' + 0xC0,0xC0,0xC0,0xC0,0xBC,0x3D,0x03,0x03,0x03,0x03,0x7E, // 'S' + 0xC1,0x83,0x06,0x0B,0xD7,0xB0,0x60,0xC1,0x81,0xF8, // 'T' + 0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'U' + 0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'V' + 0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'W' + 0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3, // 'X' + 0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03,0x7E, // 'Y' + 0x7E,0x03,0x03,0x03,0x03,0x01,0x80,0xC0,0xC0,0xC0,0xC0,0x7E, // 'Z' + 0xF9,0x99,0x99,0x99,0xF0, // '[' + 0xF9,0x99,0x99,0x99,0xF0, // '\' + 0xF9,0x99,0x99,0x99,0xF0, // ']' + 0xF9,0x99,0x99,0x99,0xF0, // '^' + 0xF9,0x99,0x99,0x99,0xF0, // '_' + 0xF9,0x99,0x99,0x99,0xF0, // '`' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3, // 'a' + 0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'b' + 0x3D,0x7B,0x06,0x0C,0x18,0x1F,0x80, // 'c' + 0x03,0x03,0x03,0x03,0x3D,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'd' + 0x7F,0x83,0x06,0x0C,0x17,0xAF,0x60,0xC1,0x83,0x03,0xF0, // 'e' + 0x7F,0x83,0x06,0x0C,0x17,0xAF,0x60,0xC1,0x83,0x00, // 'f' + 0x7E,0xC0,0xC0,0xC0,0xC0,0x80,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'g' + 0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3, // 'h' + 0x7F,0xC0, // 'i' + 0x03,0x03,0x03,0x03,0x01,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'j' + 0x7E,0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3, // 'k' + 0xC1,0x83,0x06,0x08,0x10,0x30,0x60,0xC1,0x81,0xF8, // 'l' + 0x7E,0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3, // 'm' + 0x3C,0xBD,0xC3,0xC3,0xC3,0xC3, // 'n' + 0x3C,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'o' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBC,0xC0,0xC0,0xC0,0xC0, // 'p' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03, // 'q' + 0x3D,0x7B,0x06,0x0C,0x18,0x00, // 'r' + 0xC0,0xC0,0xC0,0xC0,0xBC,0x3D,0x03,0x03,0x03,0x03,0x7E, // 's' + 0xC1,0x83,0x06,0x0B,0xD7,0xB0,0x60,0xC1,0x81,0xF8, // 't' + 0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'u' + 0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'v' + 0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'w' + 0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3, // 'x' + 0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03,0x7E, // 'y' + 0x7E,0x03,0x03,0x03,0x03,0x01,0x80,0xC0,0xC0,0xC0,0xC0,0x7E, // 'z' + 0xF9,0x99,0x99,0x99,0xF0, // '{' + 0xF9,0x99,0x99,0x99,0xF0, // '|' + 0xF9,0x99,0x99,0x99,0xF0 // '}' +}; +const GFXglyph DSEG7_Classic_Bold_12Glyphs[] PROGMEM = { +// bitmapOffset, width, height, xAdvance, xOffset, yOffset + { 0, 1, 1, 3, 0, -1 }, // ' ' + { 1, 1, 1, 11, 0, -1 }, // '!' + { 2, 4, 9, 5, 0, -9 }, // '"' + { 7, 4, 9, 5, 0, -9 }, // '#' + { 12, 4, 9, 5, 0, -9 }, // '$' + { 17, 4, 9, 5, 0, -9 }, // '%' + { 22, 4, 9, 5, 0, -9 }, // '&' + { 27, 4, 9, 5, 0, -9 }, // ''' + { 32, 4, 9, 5, 0, -9 }, // '(' + { 37, 4, 9, 5, 0, -9 }, // ')' + { 42, 4, 9, 5, 0, -9 }, // '*' + { 47, 4, 9, 5, 0, -9 }, // '+' + { 52, 4, 9, 5, 0, -9 }, // ',' + { 57, 6, 2, 11, 2, -7 }, // '-' + { 59, 2, 1, 1, -1, -1 }, // '.' + { 60, 4, 9, 5, 0, -9 }, // '/' + { 65, 8, 12, 11, 1, -12 }, // '0' + { 77, 2, 10, 11, 7, -11 }, // '1' + { 80, 8, 12, 11, 1, -12 }, // '2' + { 92, 7, 12, 11, 2, -12 }, // '3' + { 103, 8, 10, 11, 1, -11 }, // '4' + { 113, 8, 12, 11, 1, -12 }, // '5' + { 125, 8, 12, 11, 1, -12 }, // '6' + { 137, 8, 11, 11, 1, -12 }, // '7' + { 148, 8, 12, 11, 1, -12 }, // '8' + { 160, 8, 12, 11, 1, -12 }, // '9' + { 172, 2, 6, 3, 0, -9 }, // ':' + { 174, 4, 9, 5, 0, -9 }, // ';' + { 179, 4, 9, 5, 0, -9 }, // '<' + { 184, 4, 9, 5, 0, -9 }, // '=' + { 189, 4, 9, 5, 0, -9 }, // '>' + { 194, 4, 9, 5, 0, -9 }, // '?' + { 199, 4, 9, 5, 0, -9 }, // '@' + { 204, 8, 11, 11, 1, -12 }, // 'A' + { 215, 8, 11, 11, 1, -11 }, // 'B' + { 226, 7, 7, 11, 1, -7 }, // 'C' + { 233, 8, 11, 11, 1, -11 }, // 'D' + { 244, 7, 12, 11, 1, -12 }, // 'E' + { 255, 7, 11, 11, 1, -12 }, // 'F' + { 265, 8, 12, 11, 1, -12 }, // 'G' + { 277, 8, 10, 11, 1, -11 }, // 'H' + { 287, 2, 5, 11, 7, -6 }, // 'I' + { 289, 8, 11, 11, 1, -11 }, // 'J' + { 300, 8, 11, 11, 1, -12 }, // 'K' + { 311, 7, 11, 11, 1, -11 }, // 'L' + { 321, 8, 11, 11, 1, -12 }, // 'M' + { 332, 8, 6, 11, 1, -7 }, // 'N' + { 338, 8, 7, 11, 1, -7 }, // 'O' + { 345, 8, 11, 11, 1, -12 }, // 'P' + { 356, 8, 11, 11, 1, -12 }, // 'Q' + { 367, 7, 6, 11, 1, -7 }, // 'R' + { 373, 8, 11, 11, 1, -11 }, // 'S' + { 384, 7, 11, 11, 1, -11 }, // 'T' + { 394, 8, 6, 11, 1, -6 }, // 'U' + { 400, 8, 11, 11, 1, -11 }, // 'V' + { 411, 8, 11, 11, 1, -11 }, // 'W' + { 422, 8, 10, 11, 1, -11 }, // 'X' + { 432, 8, 11, 11, 1, -11 }, // 'Y' + { 443, 8, 12, 11, 1, -12 }, // 'Z' + { 455, 4, 9, 5, 0, -9 }, // '[' + { 460, 4, 9, 5, 0, -9 }, // '\' + { 465, 4, 9, 5, 0, -9 }, // ']' + { 470, 4, 9, 5, 0, -9 }, // '^' + { 475, 4, 9, 5, 0, -9 }, // '_' + { 480, 4, 9, 5, 0, -9 }, // '`' + { 485, 8, 11, 11, 1, -12 }, // 'a' + { 496, 8, 11, 11, 1, -11 }, // 'b' + { 507, 7, 7, 11, 1, -7 }, // 'c' + { 514, 8, 11, 11, 1, -11 }, // 'd' + { 525, 7, 12, 11, 1, -12 }, // 'e' + { 536, 7, 11, 11, 1, -12 }, // 'f' + { 546, 8, 12, 11, 1, -12 }, // 'g' + { 558, 8, 10, 11, 1, -11 }, // 'h' + { 568, 2, 5, 11, 7, -6 }, // 'i' + { 570, 8, 11, 11, 1, -11 }, // 'j' + { 581, 8, 11, 11, 1, -12 }, // 'k' + { 592, 7, 11, 11, 1, -11 }, // 'l' + { 602, 8, 11, 11, 1, -12 }, // 'm' + { 613, 8, 6, 11, 1, -7 }, // 'n' + { 619, 8, 7, 11, 1, -7 }, // 'o' + { 626, 8, 11, 11, 1, -12 }, // 'p' + { 637, 8, 11, 11, 1, -12 }, // 'q' + { 648, 7, 6, 11, 1, -7 }, // 'r' + { 654, 8, 11, 11, 1, -11 }, // 's' + { 665, 7, 11, 11, 1, -11 }, // 't' + { 675, 8, 6, 11, 1, -6 }, // 'u' + { 681, 8, 11, 11, 1, -11 }, // 'v' + { 692, 8, 11, 11, 1, -11 }, // 'w' + { 703, 8, 10, 11, 1, -11 }, // 'x' + { 713, 8, 11, 11, 1, -11 }, // 'y' + { 724, 8, 12, 11, 1, -12 }, // 'z' + { 736, 4, 9, 5, 0, -9 }, // '{' + { 741, 4, 9, 5, 0, -9 }, // '|' + { 746, 4, 9, 5, 0, -9 } // '}' +}; +const GFXfont DSEG7_Classic_Bold_12 PROGMEM = { +(uint8_t *)DSEG7_Classic_Bold_12Bitmaps,(GFXglyph *)DSEG7_Classic_Bold_12Glyphs,0x20, 0x7E, 14}; \ No newline at end of file From 6478a5fecc634be70969e5919fa0b690b1a1352c Mon Sep 17 00:00:00 2001 From: Toto99303 Date: Sat, 16 Dec 2023 21:15:43 +0200 Subject: [PATCH 4/9] M5StickC support added --- platformio.ini | 128 ++--- src/drivers/devices/M5Stick-C.h | 10 + src/drivers/devices/device.h | 8 +- src/drivers/displays/display.cpp | 8 +- src/drivers/displays/displayDriver.h | 2 +- src/drivers/displays/m5stickCDriver.cpp | 201 ++++++++ src/media/myFonts.h | 600 +++++++++++++++++++++++- 7 files changed, 848 insertions(+), 109 deletions(-) create mode 100644 src/drivers/devices/M5Stick-C.h create mode 100644 src/drivers/displays/m5stickCDriver.cpp diff --git a/platformio.ini b/platformio.ini index bc5dcb5..4c1c41b 100644 --- a/platformio.ini +++ b/platformio.ini @@ -7,105 +7,12 @@ ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html -; tes [platformio] globallib_dir = lib -default_envs = esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R, M5-StampS3, ESP32-S3-devKitv1, ESP32-S3-mini-wemos, ESP32-S3-mini-weact +default_envs = M5Stick-C ; M5Stick-C, esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R, M5-StampS3 -;-------------------------------------------------------------------- - -[env:ESP32-S3-mini-wemos] -platform = espressif32 -board = lolin_s3_mini -framework = arduino -monitor_filters = - esp32_exception_decoder - time - log2file -board_build.arduino.memory_type = qio_opi -monitor_speed = 115200 -upload_speed = 115200 -board_build.partitions = huge_app.csv -build_flags = - -D BOARD_HAS_PSRAM - -D ARDUINO_USB_MODE=1 - -D ARDUINO_USB_CDC_ON_BOOT=1 - -D S3MINIWEMOS=1 - ;-D DEBUG_MINING=1 -lib_deps = - https://github.com/takkaO/OpenFontRender - bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 - mathertel/OneButton @ ^2.0.3 - arduino-libraries/NTPClient - https://github.com/FastLED/FastLED -lib_ignore = - TFT_eSPI -;-------------------------------------------------------------------- - -;-------------------------------------------------------------------- - -[env:ESP32-S3-mini-weact] -platform = espressif32 -board = lolin_s3_mini -framework = arduino -monitor_filters = - esp32_exception_decoder - time - log2file -board_build.arduino.memory_type = qio_opi -monitor_speed = 115200 -upload_speed = 115200 -board_build.partitions = huge_app.csv -build_flags = - -D BOARD_HAS_PSRAM - -D ARDUINO_USB_MODE=1 - -D ARDUINO_USB_CDC_ON_BOOT=1 - -D S3MINIWEACT=1 - ;-D DEBUG_MINING=1 -lib_deps = - https://github.com/takkaO/OpenFontRender - bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 - mathertel/OneButton @ ^2.0.3 - arduino-libraries/NTPClient - https://github.com/FastLED/FastLED -lib_ignore = - TFT_eSPI -;-------------------------------------------------------------------- - -[env:ESP32-S3-devKitv1] -platform = espressif32 -board = esp32-s3-devkitc-1 -framework = arduino -monitor_filters = - esp32_exception_decoder - time - log2file -board_build.arduino.memory_type = qio_opi -monitor_speed = 115200 -upload_speed = 115200 -board_build.partitions = huge_app.csv -build_flags = - -D BOARD_HAS_PSRAM - -D ARDUINO_USB_MODE=1 - -D ARDUINO_USB_CDC_ON_BOOT=1 - -D DEVKITV1RGB=1 - ;-D DEBUG_MINING=1 -lib_deps = - https://github.com/takkaO/OpenFontRender - bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 - mathertel/OneButton @ ^2.0.3 - arduino-libraries/NTPClient - https://github.com/FastLED/FastLED -lib_ignore = - TFT_eSPI - -;-------------------------------------------------------------------- - [env:NerminerV2] platform = espressif32 board = esp32-s3-devkitc-1 @@ -149,7 +56,7 @@ monitor_filters = log2file ;board_build.arduino.memory_type = qio_opi monitor_speed = 115200 -upload_speed = 115200 +upload_speed = 1500000 ; 921600 460800 # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv build_flags = @@ -164,6 +71,35 @@ lib_deps = ;-------------------------------------------------------------------- +[env:M5Stick-C] +platform = espressif32 +board = m5stick-c +framework = arduino +monitor_filters = + esp32_exception_decoder + time + log2file +;board_build.arduino.memory_type = qio_opi +monitor_speed = 115200 +upload_speed = 1500000 +# 2 x 4.5MB app, 6.875MB SPIFFS +board_build.partitions = huge_app.csv +build_flags = + -D M5STICK_C=1 + ;-D DEBUG_MINING=1 +lib_deps = + https://github.com/takkaO/OpenFontRender + bblanchon/ArduinoJson@^6.21.2 + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 + mathertel/OneButton @ ^2.0.3 + arduino-libraries/NTPClient + M5StickC + Wire +lib_ignore = + TFT_eSPI + +;-------------------------------------------------------------------- + [env:TTGO-T-Display] platform = espressif32 board = esp32dev ;esp-wrover-kit @@ -351,8 +287,6 @@ lib_deps = mathertel/OneButton @ ^2.0.3 https://github.com/arduino-libraries/NTPClient -;-------------------------------------------------------------------- - [env:M5-StampS3] platform = espressif32 board = m5stack-stamps3 diff --git a/src/drivers/devices/M5Stick-C.h b/src/drivers/devices/M5Stick-C.h new file mode 100644 index 0000000..c3f5531 --- /dev/null +++ b/src/drivers/devices/M5Stick-C.h @@ -0,0 +1,10 @@ +#ifndef _M5_STICK_C_H +#define _M5_STICK_C_H + +#define PIN_BUTTON_1 37 +#define PIN_BUTTON_2 39 +#define LED_PIN 10 + +#define M5STICKC_DISPLAY + +#endif \ No newline at end of file diff --git a/src/drivers/devices/device.h b/src/drivers/devices/device.h index dc1af80..4ad9900 100644 --- a/src/drivers/devices/device.h +++ b/src/drivers/devices/device.h @@ -3,6 +3,8 @@ #if defined(NERDMINERV2) #include "nerdMinerV2.h" +#elif defined(M5STICK_C) +#include "M5Stick-C.h" #elif defined(DEVKITV1) #include "esp32DevKit.h" #elif defined(TDISPLAY) @@ -21,12 +23,6 @@ #include "esp32CAM.h" #elif defined(M5_STAMP_S3) #include "m5StampS3.h" -#elif defined(DEVKITV1RGB) -#include "esp32DevKitRGB.h" -#elif defined(S3MINIWEMOS) -#include "esp32S3MiniWemos.h" -#elif defined(S3MINIWEACT) -#include "esp32S3MiniWeact.h" #else #error "No device defined" diff --git a/src/drivers/displays/display.cpp b/src/drivers/displays/display.cpp index 43d2474..4b14e99 100644 --- a/src/drivers/displays/display.cpp +++ b/src/drivers/displays/display.cpp @@ -4,10 +4,6 @@ DisplayDriver *currentDisplayDriver = &noDisplayDriver; #endif -#ifdef LED_DISPLAY -DisplayDriver *currentDisplayDriver = &ledDisplayDriver; -#endif - #ifdef T_DISPLAY DisplayDriver *currentDisplayDriver = &tDisplayDriver; #endif @@ -32,6 +28,10 @@ DisplayDriver *currentDisplayDriver = &t_qtDisplayDriver; DisplayDriver *currentDisplayDriver = &tDisplayV1Driver; #endif +#ifdef M5STICKC_DISPLAY +DisplayDriver *currentDisplayDriver = &m5stickCDriver; +#endif + // Initialize the display void initDisplay() diff --git a/src/drivers/displays/displayDriver.h b/src/drivers/displays/displayDriver.h index c316939..3f4ce1a 100644 --- a/src/drivers/displays/displayDriver.h +++ b/src/drivers/displays/displayDriver.h @@ -29,13 +29,13 @@ typedef struct extern DisplayDriver *currentDisplayDriver; extern DisplayDriver noDisplayDriver; -extern DisplayDriver ledDisplayDriver; extern DisplayDriver tDisplayDriver; extern DisplayDriver amoledDisplayDriver; extern DisplayDriver dongleDisplayDriver; extern DisplayDriver esp32_2432S028RDriver; extern DisplayDriver t_qtDisplayDriver; extern DisplayDriver tDisplayV1Driver; +extern DisplayDriver m5stickCDriver; #define SCREENS_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) diff --git a/src/drivers/displays/m5stickCDriver.cpp b/src/drivers/displays/m5stickCDriver.cpp new file mode 100644 index 0000000..c18ace3 --- /dev/null +++ b/src/drivers/displays/m5stickCDriver.cpp @@ -0,0 +1,201 @@ +#include "displayDriver.h" + +#ifdef M5STICKC_DISPLAY + +#include + +#include "media/images_160_80.h" +#include "media/myFonts.h" +#include "media/Free_Fonts.h" +#include "version.h" +#include "monitor.h" + +#define WIDTH 80 +#define HEIGHT 160 + +#define GRAY 0x632C +#define LIGHTBLUE 0x4C77 + +int screen_state = 1; + +void m5stickCDriver_Init(void) +{ + M5.begin(); + M5.Lcd.setRotation(1); + M5.Lcd.setTextSize(1); + M5.Lcd.fillScreen(BLACK); + M5.Axp.ScreenBreath(10); //screen brightness 7-15 +} + +void m5stickCDriver_AlternateScreenState(void) +{ + if (screen_state==1) { + M5.Lcd.writecommand(ST7735_DISPOFF); + M5.Axp.ScreenBreath(0); + screen_state=0; + } else { + M5.Lcd.writecommand(ST7735_DISPON); + M5.Axp.ScreenBreath(10); + screen_state=1; + } +} + +void m5stickCDriver_AlternateRotation(void) +{ + if (M5.Lcd.getRotation() == 3) M5.Lcd.setRotation(1); + else M5.Lcd.setRotation(3); +} + +void m5stickCDriver_MinerScreen(unsigned long mElapsed) +{ + + mining_data data = getMiningData(mElapsed); + + M5.Lcd.drawBitmap(0,0,MinerWidth, MinerHeight, MinerScreen); + M5.Lcd.setFreeFont(&DSEG7_Classic_Bold_12); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.setCursor(69, 69); + M5.Lcd.println(String(data.currentHashRate)); + + M5.Lcd.setTextFont(2); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.setCursor(117, 56); + M5.Lcd.println("kH/s"); + + M5.Lcd.setFreeFont(FMB9); + M5.Lcd.setCursor(81, 22); + M5.Lcd.println("VALID"); + + M5.Lcd.setFreeFont(&DSEG7_Classic_Bold_17); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.setCursor(101, 44); + M5.Lcd.println(String(data.valids)); + +} + +void m5stickCDriver_ClockScreen(unsigned long mElapsed) +{ + mining_data data = getMiningData(mElapsed); + clock_data_t curr_clock_data = getClockData_t(mElapsed); + + + M5.Lcd.fillScreen(BLACK); + + //Mining Time + char timeMining[15]; + unsigned long secElapsed = millis() / 1000; + int days = secElapsed / 86400; + int hours = (secElapsed - (days * 86400)) / 3600; //Number of seconds in an hour + int mins = (secElapsed - (days * 86400) - (hours * 3600)) / 60; //Remove the number of hours and calculate the minutes. + int secs = secElapsed - (days * 86400) - (hours * 3600) - (mins * 60); + sprintf(timeMining, "%01d %02d:%02d:%02d", days, hours, mins, secs); + + M5.Lcd.setTextFont(2); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.setCursor(40, 2); + M5.Lcd.println("ELAPSED TIME"); + + M5.Lcd.setFreeFont(&DSEG7_Classic_Bold_17); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.setCursor(24, 42); + M5.Lcd.println(String(timeMining)); + + M5.Lcd.drawFastHLine(1, 52, 180, ORANGE); + + M5.Lcd.setFreeFont(&DSEG7_Classic_Bold_17); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.setCursor(82, 76); + M5.Lcd.println(String(data.currentTime)); + + M5.Lcd.setTextFont(2); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.setCursor(3, 63); + M5.Lcd.println("TIME NOW"); + +} + +void m5stickCDriver_GlobalHashScreen(unsigned long mElapsed) +{ + coin_data data = getCoinData(mElapsed); + + Serial.printf(">>> Completed %s share(s), %s Khashes, avg. hashrate %s KH/s\n", + data.completedShares.c_str(), data.totalKHashes.c_str(), data.currentHashRate.c_str()); + + M5.Lcd.fillScreen(BLACK); + + M5.Lcd.setTextFont(2); + M5.Lcd.setCursor(118, 1); + M5.Lcd.setTextColor(GREEN,BLACK); + M5.Lcd.print("STATS"); + + M5.Lcd.setCursor(5, 1); + M5.Lcd.setTextColor(ORANGE,BLACK); + M5.Lcd.print("BTC "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.btcPrice.c_str()); + + M5.Lcd.setCursor(5, 17); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.print("Fee "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.halfHourFee.c_str()); + + M5.Lcd.setCursor(5, 33); + M5.Lcd.setTextColor(ORANGE,BLACK); + M5.Lcd.print("Diff "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.netwrokDifficulty.c_str()); + + M5.Lcd.setCursor(5, 49); + M5.Lcd.setTextColor(LIGHTBLUE,BLACK); + M5.Lcd.print("GHash "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.globalHashRate.c_str()); + + M5.Lcd.setCursor(5, 65); + M5.Lcd.setTextColor(ORANGE,BLACK); + M5.Lcd.print("Height "); + M5.Lcd.setTextColor(GRAY,BLACK); + M5.Lcd.print(data.blockHeight.c_str()); + +} + +void m5stickCDriver_LoadingScreen(void) +{ + M5.Lcd.fillScreen(BLACK); + M5.Lcd.drawBitmap(0,0,MinerWidth, MinerHeight, MinerScreen); + M5.Lcd.setTextFont(2); + M5.Lcd.setTextColor(ORANGE,BLACK); + M5.Lcd.setCursor(100, 10); + M5.Lcd.println(CURRENT_VERSION); +} + +void m5stickCDriver_SetupScreen(void) +{ + +} + +void m5stickCDriver_AnimateCurrentScreen(unsigned long frame) +{ +} + +void m5stickCDriver_DoLedStuff(unsigned long frame) +{ +} + +CyclicScreenFunction m5stickCDriverCyclicScreens[] = { m5stickCDriver_MinerScreen,m5stickCDriver_ClockScreen,m5stickCDriver_GlobalHashScreen}; + +DisplayDriver m5stickCDriver = { + m5stickCDriver_Init, + m5stickCDriver_AlternateScreenState, + m5stickCDriver_AlternateRotation, + m5stickCDriver_LoadingScreen, + m5stickCDriver_SetupScreen, + m5stickCDriverCyclicScreens, + m5stickCDriver_AnimateCurrentScreen, + m5stickCDriver_DoLedStuff, + SCREENS_ARRAY_SIZE(m5stickCDriverCyclicScreens), + 0, + WIDTH, + HEIGHT}; +#endif diff --git a/src/media/myFonts.h b/src/media/myFonts.h index 8f48ba8..69e894d 100644 --- a/src/media/myFonts.h +++ b/src/media/myFonts.h @@ -1547,4 +1547,602 @@ const unsigned char DigitalNumbers[] PROGMEM = { 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xda, 0x32, 0xf0, 0x84, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x98, 0x6e, 0xf9, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf3, 0xcd, 0x87 -}; \ No newline at end of file +}; + +const uint8_t DSEG7_Classic_Bold_32Bitmaps[] PROGMEM = { + + // Bitmap Data: + 0x00, // ' ' + 0x00, // '!' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '"' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '#' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '$' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '%' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '&' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ''' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '(' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ')' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '*' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '+' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ',' + 0x7F,0xFB,0xFF,0xFF,0xFF,0xDF,0xFE, // '-' + 0x6F,0xF6, // '.' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '/' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '0' + 0x03,0x7F,0xFF,0xFF,0xFF,0xFF,0xF7,0x33,0x7F,0xFF,0xFF,0xFF,0xFF,0xF7,0x30, // '1' + 0x3F,0xFF,0xC3,0xFF,0xFC,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x0F,0xFF,0x71,0xFF,0xFB,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0x3F,0xFF,0xC3,0xFF,0xFC, // '2' + 0xFF,0xFF,0x3F,0xFF,0xC7,0xFF,0xEC,0xFF,0xF7,0x00,0x03,0xC0,0x00,0xF0,0x00,0x3C,0x00,0x0F,0x00,0x03,0xC0,0x00,0xF0,0x00,0x3C,0x00,0x0F,0x00,0x03,0xC0,0x00,0xF3,0xFF,0xDD,0xFF,0xFB,0x7F,0xFE,0xCF,0xFF,0x70,0x00,0x3C,0x00,0x0F,0x00,0x03,0xC0,0x00,0xF0,0x00,0x3C,0x00,0x0F,0x00,0x03,0xC0,0x00,0xF0,0x00,0x3C,0x00,0x0F,0x3F,0xFD,0xDF,0xFF,0xBF,0xFF,0xF3,0xFF,0xFC, // '3' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB1,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x07,0x00,0x00,0x30,0x00,0x00, // '4' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x0F,0xFF,0x71,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '5' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '6' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x30,0x00,0x07,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0x00,0x00,0x00, // '7' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '8' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x0F,0xFF,0x71,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // '9' + 0x7F,0xF6,0x00,0x00,0x00,0x00,0x06,0xFF,0x70, // ':' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ';' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '<' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '=' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '>' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '?' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '@' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'A' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x8D,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'B' + 0x0F,0xFF,0x03,0xFF,0xF3,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0x3F,0xFF,0xC7,0xFF,0xF8, // 'C' + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'D' + 0x3F,0xFF,0xC7,0xFF,0xFB,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0xDF,0xFF,0x9D,0xFF,0xE3,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0E,0xFF,0xF1,0xBF,0xFF,0x0F,0xFF,0xF1,0xFF,0xFE, // 'E' + 0x3F,0xFF,0xC7,0xFF,0xFB,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0xDF,0xFF,0x9D,0xFF,0xE3,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0E,0x00,0x01,0x80,0x00,0x00,0x00,0x00, // 'F' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'G' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x8D,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x30,0x00,0x00, // 'H' + 0x37,0xFF,0xFF,0xFF,0xFF,0xFF,0x73,0x00, // 'I' + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x07,0x00,0x00,0x3C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'J' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'K' + 0x00,0x00,0x18,0x00,0x03,0x80,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xC0,0x00,0x30,0x00,0x06,0x00,0x00,0xE0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x77,0xFF,0x8D,0xFF,0xF8,0x7F,0xFF,0x8F,0xFF,0xF0, // 'L' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'M' + 0x0F,0xFF,0x01,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'N' + 0x0F,0xFF,0x01,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'O' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x00,0x00, // 'P' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0x00,0x00,0x00, // 'Q' + 0x0F,0xFF,0x0F,0xFF,0xF7,0xFF,0xFD,0xFF,0xEF,0x00,0x07,0x80,0x03,0xC0,0x01,0xE0,0x00,0xF0,0x00,0x78,0x00,0x3C,0x00,0x1E,0x00,0x0F,0x00,0x07,0x80,0x03,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // 'R' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x81,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'S' + 0x00,0x00,0x18,0x00,0x03,0x80,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xDF,0xFE,0x37,0xFF,0xE6,0xFF,0xFC,0xEF,0xFF,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x77,0xFF,0x8D,0xFF,0xF8,0x7F,0xFF,0x8F,0xFF,0xF0, // 'T' + 0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'U' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x3C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'V' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'W' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x30,0x00,0x00, // 'X' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB1,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'Y' + 0x3F,0xFF,0xC3,0xFF,0xFC,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0xC0,0x00,0x0E,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0x3F,0xFF,0xC3,0xFF,0xFC, // 'Z' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '[' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '\' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // ']' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '^' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '_' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '`' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'a' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x8D,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'b' + 0x0F,0xFF,0x03,0xFF,0xF3,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0x3F,0xFF,0xC7,0xFF,0xF8, // 'c' + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'd' + 0x3F,0xFF,0xC7,0xFF,0xFB,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0xDF,0xFF,0x9D,0xFF,0xE3,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0E,0xFF,0xF1,0xBF,0xFF,0x0F,0xFF,0xF1,0xFF,0xFE, // 'e' + 0x3F,0xFF,0xC7,0xFF,0xFB,0x7F,0xFE,0x77,0xFF,0x8F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3B,0xFF,0xC6,0xFF,0xFC,0xDF,0xFF,0x9D,0xFF,0xE3,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0E,0x00,0x01,0x80,0x00,0x00,0x00,0x00, // 'f' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'g' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x8D,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x30,0x00,0x00, // 'h' + 0x37,0xFF,0xFF,0xFF,0xFF,0xFF,0x73,0x00, // 'i' + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x07,0x00,0x00,0x3C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'j' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'k' + 0x00,0x00,0x18,0x00,0x03,0x80,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xC0,0x00,0x30,0x00,0x06,0x00,0x00,0xE0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x77,0xFF,0x8D,0xFF,0xF8,0x7F,0xFF,0x8F,0xFF,0xF0, // 'l' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'm' + 0x0F,0xFF,0x01,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x03,0x00,0x00,0x00, // 'n' + 0x0F,0xFF,0x01,0xFF,0xF8,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'o' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0xDF,0xFF,0x8E,0xFF,0xF0,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0x00,0x00, // 'p' + 0x3F,0xFF,0xC3,0xFF,0xFC,0xDF,0xFF,0xBE,0xFF,0xF7,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0x00,0x00,0x00, // 'q' + 0x0F,0xFF,0x0F,0xFF,0xF7,0xFF,0xFD,0xFF,0xEF,0x00,0x07,0x80,0x03,0xC0,0x01,0xE0,0x00,0xF0,0x00,0x78,0x00,0x3C,0x00,0x1E,0x00,0x0F,0x00,0x07,0x80,0x03,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // 'r' + 0x00,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0E,0xFF,0xF0,0xDF,0xFF,0x81,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 's' + 0x00,0x00,0x18,0x00,0x03,0x80,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xDF,0xFE,0x37,0xFF,0xE6,0xFF,0xFC,0xEF,0xFF,0x1E,0x00,0x03,0xC0,0x00,0x78,0x00,0x0F,0x00,0x01,0xE0,0x00,0x3C,0x00,0x07,0x80,0x00,0xF0,0x00,0x1E,0x00,0x03,0xC0,0x00,0x77,0xFF,0x8D,0xFF,0xF8,0x7F,0xFF,0x8F,0xFF,0xF0, // 't' + 0xC0,0x00,0x3E,0x00,0x07,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xEF,0xFF,0x7D,0xFF,0xFB,0x3F,0xFF,0xC3,0xFF,0xFC, // 'u' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x3C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'v' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'w' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xBD,0xFF,0xFB,0xEF,0xFF,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0x00,0x07,0xC0,0x00,0x30,0x00,0x00, // 'x' + 0x00,0x00,0x0C,0x00,0x03,0xE0,0x00,0x7F,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFF,0x00,0x0F,0xF0,0x00,0xFE,0xFF,0xF7,0xDF,0xFF,0xB1,0xFF,0xFB,0x0F,0xFF,0x70,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0xFF,0xF7,0x1F,0xFF,0xB3,0xFF,0xFC,0x3F,0xFF,0xC0, // 'y' + 0x3F,0xFF,0xC3,0xFF,0xFC,0x1F,0xFF,0xB0,0xFF,0xF7,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x70,0x00,0x03,0xC0,0x00,0x0E,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0xEF,0xFF,0x0D,0xFF,0xF8,0x3F,0xFF,0xC3,0xFF,0xFC, // 'z' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '{' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF, // '|' + 0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF // '}' +}; +const GFXglyph DSEG7_Classic_Bold_32Glyphs[] PROGMEM = { +// bitmapOffset, width, height, xAdvance, xOffset, yOffset + { 0, 1, 1, 7, 0, -1 }, // ' ' + { 1, 1, 1, 27, 0, -1 }, // '!' + { 2, 8, 21, 13, 1, -21 }, // '"' + { 23, 8, 21, 13, 1, -21 }, // '#' + { 44, 8, 21, 13, 1, -21 }, // '$' + { 65, 8, 21, 13, 1, -21 }, // '%' + { 86, 8, 21, 13, 1, -21 }, // '&' + { 107, 8, 21, 13, 1, -21 }, // ''' + { 128, 8, 21, 13, 1, -21 }, // '(' + { 149, 8, 21, 13, 1, -21 }, // ')' + { 170, 8, 21, 13, 1, -21 }, // '*' + { 191, 8, 21, 13, 1, -21 }, // '+' + { 212, 8, 21, 13, 1, -21 }, // ',' + { 233, 14, 4, 27, 6, -18 }, // '-' + { 240, 4, 4, 1, -2, -4 }, // '.' + { 242, 8, 21, 13, 1, -21 }, // '/' + { 263, 20, 32, 27, 3, -32 }, // '0' + { 343, 4, 30, 27, 19, -31 }, // '1' + { 358, 20, 32, 27, 3, -32 }, // '2' + { 438, 18, 32, 27, 5, -32 }, // '3' + { 510, 20, 30, 27, 3, -31 }, // '4' + { 585, 20, 32, 27, 3, -32 }, // '5' + { 665, 20, 32, 27, 3, -32 }, // '6' + { 745, 20, 31, 27, 3, -32 }, // '7' + { 823, 20, 32, 27, 3, -32 }, // '8' + { 903, 20, 32, 27, 3, -32 }, // '9' + { 983, 4, 17, 7, 1, -24 }, // ':' + { 992, 8, 21, 13, 1, -21 }, // ';' + { 1013, 8, 21, 13, 1, -21 }, // '<' + { 1034, 8, 21, 13, 1, -21 }, // '=' + { 1055, 8, 21, 13, 1, -21 }, // '>' + { 1076, 8, 21, 13, 1, -21 }, // '?' + { 1097, 8, 21, 13, 1, -21 }, // '@' + { 1118, 20, 31, 27, 3, -32 }, // 'A' + { 1196, 20, 31, 27, 3, -31 }, // 'B' + { 1274, 19, 18, 27, 3, -18 }, // 'C' + { 1317, 20, 31, 27, 3, -31 }, // 'D' + { 1395, 19, 32, 27, 3, -32 }, // 'E' + { 1471, 19, 31, 27, 3, -32 }, // 'F' + { 1545, 20, 32, 27, 3, -32 }, // 'G' + { 1625, 20, 30, 27, 3, -31 }, // 'H' + { 1700, 4, 15, 27, 19, -16 }, // 'I' + { 1708, 20, 31, 27, 3, -31 }, // 'J' + { 1786, 20, 31, 27, 3, -32 }, // 'K' + { 1864, 19, 31, 27, 3, -31 }, // 'L' + { 1938, 20, 31, 27, 3, -32 }, // 'M' + { 2016, 20, 17, 27, 3, -18 }, // 'N' + { 2059, 20, 18, 27, 3, -18 }, // 'O' + { 2104, 20, 31, 27, 3, -32 }, // 'P' + { 2182, 20, 31, 27, 3, -32 }, // 'Q' + { 2260, 17, 17, 27, 3, -18 }, // 'R' + { 2297, 20, 31, 27, 3, -31 }, // 'S' + { 2375, 19, 31, 27, 3, -31 }, // 'T' + { 2449, 20, 16, 27, 3, -16 }, // 'U' + { 2489, 20, 31, 27, 3, -31 }, // 'V' + { 2567, 20, 31, 27, 3, -31 }, // 'W' + { 2645, 20, 30, 27, 3, -31 }, // 'X' + { 2720, 20, 31, 27, 3, -31 }, // 'Y' + { 2798, 20, 32, 27, 3, -32 }, // 'Z' + { 2878, 8, 21, 13, 1, -21 }, // '[' + { 2899, 8, 21, 13, 1, -21 }, // '\' + { 2920, 8, 21, 13, 1, -21 }, // ']' + { 2941, 8, 21, 13, 1, -21 }, // '^' + { 2962, 8, 21, 13, 1, -21 }, // '_' + { 2983, 8, 21, 13, 1, -21 }, // '`' + { 3004, 20, 31, 27, 3, -32 }, // 'a' + { 3082, 20, 31, 27, 3, -31 }, // 'b' + { 3160, 19, 18, 27, 3, -18 }, // 'c' + { 3203, 20, 31, 27, 3, -31 }, // 'd' + { 3281, 19, 32, 27, 3, -32 }, // 'e' + { 3357, 19, 31, 27, 3, -32 }, // 'f' + { 3431, 20, 32, 27, 3, -32 }, // 'g' + { 3511, 20, 30, 27, 3, -31 }, // 'h' + { 3586, 4, 15, 27, 19, -16 }, // 'i' + { 3594, 20, 31, 27, 3, -31 }, // 'j' + { 3672, 20, 31, 27, 3, -32 }, // 'k' + { 3750, 19, 31, 27, 3, -31 }, // 'l' + { 3824, 20, 31, 27, 3, -32 }, // 'm' + { 3902, 20, 17, 27, 3, -18 }, // 'n' + { 3945, 20, 18, 27, 3, -18 }, // 'o' + { 3990, 20, 31, 27, 3, -32 }, // 'p' + { 4068, 20, 31, 27, 3, -32 }, // 'q' + { 4146, 17, 17, 27, 3, -18 }, // 'r' + { 4183, 20, 31, 27, 3, -31 }, // 's' + { 4261, 19, 31, 27, 3, -31 }, // 't' + { 4335, 20, 16, 27, 3, -16 }, // 'u' + { 4375, 20, 31, 27, 3, -31 }, // 'v' + { 4453, 20, 31, 27, 3, -31 }, // 'w' + { 4531, 20, 30, 27, 3, -31 }, // 'x' + { 4606, 20, 31, 27, 3, -31 }, // 'y' + { 4684, 20, 32, 27, 3, -32 }, // 'z' + { 4764, 8, 21, 13, 1, -21 }, // '{' + { 4785, 8, 21, 13, 1, -21 }, // '|' + { 4806, 8, 21, 13, 1, -21 } // '}' +}; +const GFXfont DSEG7_Classic_Bold_32 PROGMEM = { +(uint8_t *)DSEG7_Classic_Bold_32Bitmaps,(GFXglyph *)DSEG7_Classic_Bold_32Glyphs,0x20, 0x7E, 35}; + +// Created by http://oleddisplay.squix.ch/ Consider a donation +// In case of problems make sure that you are using the font file with the correct version! +const uint8_t DSEG7_Classic_Bold_17Bitmaps[] PROGMEM = { + + // Bitmap Data: + 0x00, // ' ' + 0x00, // '!' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '"' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '#' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '$' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '%' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '&' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ''' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '(' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ')' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '*' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '+' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ',' + 0x7E,0xFF,0x7E, // '-' + 0xF0, // '.' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '/' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x03,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // '0' + 0x7F,0xFC,0xFF,0xF4, // '1' + 0xFF,0x9F,0xD0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0xFF,0x7F,0xAF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x03,0xFC,0xFF,0x80, // '2' + 0xFF,0x9F,0xD0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0xFF,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0D,0xFD,0xFF,0x80, // '3' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x30,0x04, // '4' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0xFC,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0D,0xFD,0xFF,0x80, // '5' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0xFC,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // '6' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x03,0x00,0x00,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x01, // '7' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // '8' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0D,0xFD,0xFF,0x80, // '9' + 0xB0,0x02,0xC0, // ':' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ';' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '<' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '=' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '>' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '?' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '@' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'A' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'B' + 0x3F,0x3F,0xEF,0xD8,0x0C,0x06,0x03,0x01,0x80,0xFF,0x7F,0xC0, // 'C' + 0x00,0x40,0x30,0x0C,0x03,0x00,0xC0,0x33,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'D' + 0xFF,0xFF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x7E,0x7F,0xDF,0xB0,0x18,0x0C,0x06,0x03,0x01,0xFE,0xFF,0x80, // 'E' + 0xFF,0xFF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x7E,0x7F,0xDF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x00, // 'F' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0x00,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // 'G' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x04, // 'H' + 0xFF,0xF4, // 'I' + 0x00,0x40,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x00,0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'J' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0xFC,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'K' + 0x80,0x60,0x30,0x18,0x0C,0x06,0x02,0x00,0x00,0x80,0x60,0x30,0x18,0x0C,0x06,0x03,0xFD,0xFF, // 'L' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x03,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'M' + 0x3F,0x1F,0xEB,0xFF,0x03,0xC0,0xF0,0x3C,0x0F,0x03,0x80,0x40, // 'N' + 0x3F,0x1F,0xEB,0xFF,0x03,0xC0,0xF0,0x3C,0x0F,0x03,0xFF,0x7F,0xE0, // 'O' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0x00, // 'P' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x01, // 'Q' + 0x3F,0x3F,0xEF,0xD8,0x0C,0x06,0x03,0x01,0x80,0x80,0x00, // 'R' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x37,0xF7,0xFE, // 'S' + 0x80,0x60,0x30,0x18,0x0C,0x06,0x02,0xFC,0xFF,0xBF,0x60,0x30,0x18,0x0C,0x06,0x03,0xFD,0xFF, // 'T' + 0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'U' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x0C,0x00,0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'V' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'W' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x04, // 'X' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x37,0xF7,0xFE, // 'Y' + 0xFF,0x9F,0xD0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x03,0x00,0x20,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x03,0xFC,0xFF,0x80, // 'Z' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '[' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '\' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // ']' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '^' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '_' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '`' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'a' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'b' + 0x3F,0x3F,0xEF,0xD8,0x0C,0x06,0x03,0x01,0x80,0xFF,0x7F,0xC0, // 'c' + 0x00,0x40,0x30,0x0C,0x03,0x00,0xC0,0x33,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'd' + 0xFF,0xFF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x7E,0x7F,0xDF,0xB0,0x18,0x0C,0x06,0x03,0x01,0xFE,0xFF,0x80, // 'e' + 0xFF,0xFF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x7E,0x7F,0xDF,0xB0,0x18,0x0C,0x06,0x03,0x01,0x00, // 'f' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0x00,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0F,0xFD,0xFF,0x80, // 'g' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x04, // 'h' + 0xFF,0xF4, // 'i' + 0x00,0x40,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x00,0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'j' + 0xFF,0xBF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0xFC,0x7F,0xAF,0xFC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'k' + 0x80,0x60,0x30,0x18,0x0C,0x06,0x02,0x00,0x00,0x80,0x60,0x30,0x18,0x0C,0x06,0x03,0xFD,0xFF, // 'l' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x03,0x00,0x20,0x3C,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0x01, // 'm' + 0x3F,0x1F,0xEB,0xFF,0x03,0xC0,0xF0,0x3C,0x0F,0x03,0x80,0x40, // 'n' + 0x3F,0x1F,0xEB,0xFF,0x03,0xC0,0xF0,0x3C,0x0F,0x03,0xFF,0x7F,0xE0, // 'o' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0xAF,0xCC,0x03,0x00,0xC0,0x30,0x0C,0x02,0x00, // 'p' + 0xFF,0xBF,0xDC,0x0F,0x03,0xC0,0xF0,0x3C,0x0E,0xFF,0x7F,0x8F,0xF0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x01, // 'q' + 0x3F,0x3F,0xEF,0xD8,0x0C,0x06,0x03,0x01,0x80,0x80,0x00, // 'r' + 0x80,0x30,0x0C,0x03,0x00,0xC0,0x30,0x0B,0xF1,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x37,0xF7,0xFE, // 's' + 0x80,0x60,0x30,0x18,0x0C,0x06,0x02,0xFC,0xFF,0xBF,0x60,0x30,0x18,0x0C,0x06,0x03,0xFD,0xFF, // 't' + 0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'u' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x0C,0x00,0x80,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'v' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x3F,0xF7,0xFE, // 'w' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0xBF,0xF0,0x3C,0x0F,0x03,0xC0,0xF0,0x38,0x04, // 'x' + 0x80,0x70,0x3C,0x0F,0x03,0xC0,0xF0,0x3B,0xFD,0xFE,0x3F,0xC0,0x30,0x0C,0x03,0x00,0xC0,0x37,0xF7,0xFE, // 'y' + 0xFF,0x9F,0xD0,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x03,0x00,0x20,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x03,0xFC,0xFF,0x80, // 'z' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '{' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0, // '|' + 0xFC,0x63,0x18,0xC6,0x31,0x8C,0x63,0xF0 // '}' +}; +const GFXglyph DSEG7_Classic_Bold_17Glyphs[] PROGMEM = { +// bitmapOffset, width, height, xAdvance, xOffset, yOffset + { 0, 1, 1, 4, 0, -1 }, // ' ' + { 1, 1, 1, 15, 0, -1 }, // '!' + { 2, 5, 12, 7, 1, -12 }, // '"' + { 10, 5, 12, 7, 1, -12 }, // '#' + { 18, 5, 12, 7, 1, -12 }, // '$' + { 26, 5, 12, 7, 1, -12 }, // '%' + { 34, 5, 12, 7, 1, -12 }, // '&' + { 42, 5, 12, 7, 1, -12 }, // ''' + { 50, 5, 12, 7, 1, -12 }, // '(' + { 58, 5, 12, 7, 1, -12 }, // ')' + { 66, 5, 12, 7, 1, -12 }, // '*' + { 74, 5, 12, 7, 1, -12 }, // '+' + { 82, 5, 12, 7, 1, -12 }, // ',' + { 90, 8, 3, 15, 3, -10 }, // '-' + { 93, 2, 2, 1, -1, -2 }, // '.' + { 94, 5, 12, 7, 1, -12 }, // '/' + { 102, 10, 17, 15, 2, -17 }, // '0' + { 124, 2, 15, 15, 10, -16 }, // '1' + { 128, 10, 17, 15, 2, -17 }, // '2' + { 150, 10, 17, 15, 2, -17 }, // '3' + { 172, 10, 15, 15, 2, -16 }, // '4' + { 191, 10, 17, 15, 2, -17 }, // '5' + { 213, 10, 17, 15, 2, -17 }, // '6' + { 235, 10, 16, 15, 2, -17 }, // '7' + { 255, 10, 17, 15, 2, -17 }, // '8' + { 277, 10, 17, 15, 2, -17 }, // '9' + { 299, 2, 9, 4, 1, -13 }, // ':' + { 302, 5, 12, 7, 1, -12 }, // ';' + { 310, 5, 12, 7, 1, -12 }, // '<' + { 318, 5, 12, 7, 1, -12 }, // '=' + { 326, 5, 12, 7, 1, -12 }, // '>' + { 334, 5, 12, 7, 1, -12 }, // '?' + { 342, 5, 12, 7, 1, -12 }, // '@' + { 350, 10, 16, 15, 2, -17 }, // 'A' + { 370, 10, 16, 15, 2, -16 }, // 'B' + { 390, 9, 10, 15, 2, -10 }, // 'C' + { 402, 10, 16, 15, 2, -16 }, // 'D' + { 422, 9, 17, 15, 2, -17 }, // 'E' + { 442, 9, 16, 15, 2, -17 }, // 'F' + { 460, 10, 17, 15, 2, -17 }, // 'G' + { 482, 10, 15, 15, 2, -16 }, // 'H' + { 501, 2, 7, 15, 10, -8 }, // 'I' + { 503, 10, 16, 15, 2, -16 }, // 'J' + { 523, 10, 16, 15, 2, -17 }, // 'K' + { 543, 9, 16, 15, 2, -16 }, // 'L' + { 561, 10, 16, 15, 2, -17 }, // 'M' + { 581, 10, 9, 15, 2, -10 }, // 'N' + { 593, 10, 10, 15, 2, -10 }, // 'O' + { 606, 10, 16, 15, 2, -17 }, // 'P' + { 626, 10, 16, 15, 2, -17 }, // 'Q' + { 646, 9, 9, 15, 2, -10 }, // 'R' + { 657, 10, 16, 15, 2, -16 }, // 'S' + { 677, 9, 16, 15, 2, -16 }, // 'T' + { 695, 10, 8, 15, 2, -8 }, // 'U' + { 705, 10, 16, 15, 2, -16 }, // 'V' + { 725, 10, 16, 15, 2, -16 }, // 'W' + { 745, 10, 15, 15, 2, -16 }, // 'X' + { 764, 10, 16, 15, 2, -16 }, // 'Y' + { 784, 10, 17, 15, 2, -17 }, // 'Z' + { 806, 5, 12, 7, 1, -12 }, // '[' + { 814, 5, 12, 7, 1, -12 }, // '\' + { 822, 5, 12, 7, 1, -12 }, // ']' + { 830, 5, 12, 7, 1, -12 }, // '^' + { 838, 5, 12, 7, 1, -12 }, // '_' + { 846, 5, 12, 7, 1, -12 }, // '`' + { 854, 10, 16, 15, 2, -17 }, // 'a' + { 874, 10, 16, 15, 2, -16 }, // 'b' + { 894, 9, 10, 15, 2, -10 }, // 'c' + { 906, 10, 16, 15, 2, -16 }, // 'd' + { 926, 9, 17, 15, 2, -17 }, // 'e' + { 946, 9, 16, 15, 2, -17 }, // 'f' + { 964, 10, 17, 15, 2, -17 }, // 'g' + { 986, 10, 15, 15, 2, -16 }, // 'h' + { 1005, 2, 7, 15, 10, -8 }, // 'i' + { 1007, 10, 16, 15, 2, -16 }, // 'j' + { 1027, 10, 16, 15, 2, -17 }, // 'k' + { 1047, 9, 16, 15, 2, -16 }, // 'l' + { 1065, 10, 16, 15, 2, -17 }, // 'm' + { 1085, 10, 9, 15, 2, -10 }, // 'n' + { 1097, 10, 10, 15, 2, -10 }, // 'o' + { 1110, 10, 16, 15, 2, -17 }, // 'p' + { 1130, 10, 16, 15, 2, -17 }, // 'q' + { 1150, 9, 9, 15, 2, -10 }, // 'r' + { 1161, 10, 16, 15, 2, -16 }, // 's' + { 1181, 9, 16, 15, 2, -16 }, // 't' + { 1199, 10, 8, 15, 2, -8 }, // 'u' + { 1209, 10, 16, 15, 2, -16 }, // 'v' + { 1229, 10, 16, 15, 2, -16 }, // 'w' + { 1249, 10, 15, 15, 2, -16 }, // 'x' + { 1268, 10, 16, 15, 2, -16 }, // 'y' + { 1288, 10, 17, 15, 2, -17 }, // 'z' + { 1310, 5, 12, 7, 1, -12 }, // '{' + { 1318, 5, 12, 7, 1, -12 }, // '|' + { 1326, 5, 12, 7, 1, -12 } // '}' +}; +const GFXfont DSEG7_Classic_Bold_17 PROGMEM = { +(uint8_t *)DSEG7_Classic_Bold_17Bitmaps,(GFXglyph *)DSEG7_Classic_Bold_17Glyphs,0x20, 0x7E, 19}; + +// Created by http://oleddisplay.squix.ch/ Consider a donation +// In case of problems make sure that you are using the font file with the correct version! +const uint8_t DSEG7_Classic_Bold_12Bitmaps[] PROGMEM = { + + // Bitmap Data: + 0x00, // ' ' + 0x00, // '!' + 0xF9,0x99,0x99,0x99,0xF0, // '"' + 0xF9,0x99,0x99,0x99,0xF0, // '#' + 0xF9,0x99,0x99,0x99,0xF0, // '$' + 0xF9,0x99,0x99,0x99,0xF0, // '%' + 0xF9,0x99,0x99,0x99,0xF0, // '&' + 0xF9,0x99,0x99,0x99,0xF0, // ''' + 0xF9,0x99,0x99,0x99,0xF0, // '(' + 0xF9,0x99,0x99,0x99,0xF0, // ')' + 0xF9,0x99,0x99,0x99,0xF0, // '*' + 0xF9,0x99,0x99,0x99,0xF0, // '+' + 0xF9,0x99,0x99,0x99,0xF0, // ',' + 0x79,0xE0, // '-' + 0xC0, // '.' + 0xF9,0x99,0x99,0x99,0xF0, // '/' + 0x7E,0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // '0' + 0xFF,0x5F,0xF0, // '1' + 0x7E,0x03,0x03,0x03,0x03,0x3D,0xBC,0xC0,0xC0,0xC0,0xC0,0x7E, // '2' + 0xFC,0x0C,0x18,0x30,0x6F,0x5E,0x83,0x06,0x0C,0x1F,0xE0, // '3' + 0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03, // '4' + 0x7E,0xC0,0xC0,0xC0,0xC0,0xBC,0x3D,0x03,0x03,0x03,0x03,0x7E, // '5' + 0x7E,0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // '6' + 0x7E,0xC3,0xC3,0xC3,0xC3,0x81,0x01,0x03,0x03,0x03,0x03, // '7' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // '8' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03,0x7E, // '9' + 0xC0,0x30, // ':' + 0xF9,0x99,0x99,0x99,0xF0, // ';' + 0xF9,0x99,0x99,0x99,0xF0, // '<' + 0xF9,0x99,0x99,0x99,0xF0, // '=' + 0xF9,0x99,0x99,0x99,0xF0, // '>' + 0xF9,0x99,0x99,0x99,0xF0, // '?' + 0xF9,0x99,0x99,0x99,0xF0, // '@' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3, // 'A' + 0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'B' + 0x3D,0x7B,0x06,0x0C,0x18,0x1F,0x80, // 'C' + 0x03,0x03,0x03,0x03,0x3D,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'D' + 0x7F,0x83,0x06,0x0C,0x17,0xAF,0x60,0xC1,0x83,0x03,0xF0, // 'E' + 0x7F,0x83,0x06,0x0C,0x17,0xAF,0x60,0xC1,0x83,0x00, // 'F' + 0x7E,0xC0,0xC0,0xC0,0xC0,0x80,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'G' + 0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3, // 'H' + 0x7F,0xC0, // 'I' + 0x03,0x03,0x03,0x03,0x01,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'J' + 0x7E,0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3, // 'K' + 0xC1,0x83,0x06,0x08,0x10,0x30,0x60,0xC1,0x81,0xF8, // 'L' + 0x7E,0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3, // 'M' + 0x3C,0xBD,0xC3,0xC3,0xC3,0xC3, // 'N' + 0x3C,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'O' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBC,0xC0,0xC0,0xC0,0xC0, // 'P' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03, // 'Q' + 0x3D,0x7B,0x06,0x0C,0x18,0x00, // 'R' + 0xC0,0xC0,0xC0,0xC0,0xBC,0x3D,0x03,0x03,0x03,0x03,0x7E, // 'S' + 0xC1,0x83,0x06,0x0B,0xD7,0xB0,0x60,0xC1,0x81,0xF8, // 'T' + 0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'U' + 0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'V' + 0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'W' + 0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3, // 'X' + 0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03,0x7E, // 'Y' + 0x7E,0x03,0x03,0x03,0x03,0x01,0x80,0xC0,0xC0,0xC0,0xC0,0x7E, // 'Z' + 0xF9,0x99,0x99,0x99,0xF0, // '[' + 0xF9,0x99,0x99,0x99,0xF0, // '\' + 0xF9,0x99,0x99,0x99,0xF0, // ']' + 0xF9,0x99,0x99,0x99,0xF0, // '^' + 0xF9,0x99,0x99,0x99,0xF0, // '_' + 0xF9,0x99,0x99,0x99,0xF0, // '`' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3, // 'a' + 0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'b' + 0x3D,0x7B,0x06,0x0C,0x18,0x1F,0x80, // 'c' + 0x03,0x03,0x03,0x03,0x3D,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'd' + 0x7F,0x83,0x06,0x0C,0x17,0xAF,0x60,0xC1,0x83,0x03,0xF0, // 'e' + 0x7F,0x83,0x06,0x0C,0x17,0xAF,0x60,0xC1,0x83,0x00, // 'f' + 0x7E,0xC0,0xC0,0xC0,0xC0,0x80,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'g' + 0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3, // 'h' + 0x7F,0xC0, // 'i' + 0x03,0x03,0x03,0x03,0x01,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'j' + 0x7E,0xC0,0xC0,0xC0,0xC0,0xBC,0xBD,0xC3,0xC3,0xC3,0xC3, // 'k' + 0xC1,0x83,0x06,0x08,0x10,0x30,0x60,0xC1,0x81,0xF8, // 'l' + 0x7E,0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3, // 'm' + 0x3C,0xBD,0xC3,0xC3,0xC3,0xC3, // 'n' + 0x3C,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'o' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0xBC,0xC0,0xC0,0xC0,0xC0, // 'p' + 0x7E,0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03, // 'q' + 0x3D,0x7B,0x06,0x0C,0x18,0x00, // 'r' + 0xC0,0xC0,0xC0,0xC0,0xBC,0x3D,0x03,0x03,0x03,0x03,0x7E, // 's' + 0xC1,0x83,0x06,0x0B,0xD7,0xB0,0x60,0xC1,0x81,0xF8, // 't' + 0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'u' + 0xC3,0xC3,0xC3,0xC3,0x81,0x81,0xC3,0xC3,0xC3,0xC3,0x7E, // 'v' + 0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3,0x7E, // 'w' + 0xC3,0xC3,0xC3,0xC3,0xBD,0xBD,0xC3,0xC3,0xC3,0xC3, // 'x' + 0xC3,0xC3,0xC3,0xC3,0xBD,0x3D,0x03,0x03,0x03,0x03,0x7E, // 'y' + 0x7E,0x03,0x03,0x03,0x03,0x01,0x80,0xC0,0xC0,0xC0,0xC0,0x7E, // 'z' + 0xF9,0x99,0x99,0x99,0xF0, // '{' + 0xF9,0x99,0x99,0x99,0xF0, // '|' + 0xF9,0x99,0x99,0x99,0xF0 // '}' +}; +const GFXglyph DSEG7_Classic_Bold_12Glyphs[] PROGMEM = { +// bitmapOffset, width, height, xAdvance, xOffset, yOffset + { 0, 1, 1, 3, 0, -1 }, // ' ' + { 1, 1, 1, 11, 0, -1 }, // '!' + { 2, 4, 9, 5, 0, -9 }, // '"' + { 7, 4, 9, 5, 0, -9 }, // '#' + { 12, 4, 9, 5, 0, -9 }, // '$' + { 17, 4, 9, 5, 0, -9 }, // '%' + { 22, 4, 9, 5, 0, -9 }, // '&' + { 27, 4, 9, 5, 0, -9 }, // ''' + { 32, 4, 9, 5, 0, -9 }, // '(' + { 37, 4, 9, 5, 0, -9 }, // ')' + { 42, 4, 9, 5, 0, -9 }, // '*' + { 47, 4, 9, 5, 0, -9 }, // '+' + { 52, 4, 9, 5, 0, -9 }, // ',' + { 57, 6, 2, 11, 2, -7 }, // '-' + { 59, 2, 1, 1, -1, -1 }, // '.' + { 60, 4, 9, 5, 0, -9 }, // '/' + { 65, 8, 12, 11, 1, -12 }, // '0' + { 77, 2, 10, 11, 7, -11 }, // '1' + { 80, 8, 12, 11, 1, -12 }, // '2' + { 92, 7, 12, 11, 2, -12 }, // '3' + { 103, 8, 10, 11, 1, -11 }, // '4' + { 113, 8, 12, 11, 1, -12 }, // '5' + { 125, 8, 12, 11, 1, -12 }, // '6' + { 137, 8, 11, 11, 1, -12 }, // '7' + { 148, 8, 12, 11, 1, -12 }, // '8' + { 160, 8, 12, 11, 1, -12 }, // '9' + { 172, 2, 6, 3, 0, -9 }, // ':' + { 174, 4, 9, 5, 0, -9 }, // ';' + { 179, 4, 9, 5, 0, -9 }, // '<' + { 184, 4, 9, 5, 0, -9 }, // '=' + { 189, 4, 9, 5, 0, -9 }, // '>' + { 194, 4, 9, 5, 0, -9 }, // '?' + { 199, 4, 9, 5, 0, -9 }, // '@' + { 204, 8, 11, 11, 1, -12 }, // 'A' + { 215, 8, 11, 11, 1, -11 }, // 'B' + { 226, 7, 7, 11, 1, -7 }, // 'C' + { 233, 8, 11, 11, 1, -11 }, // 'D' + { 244, 7, 12, 11, 1, -12 }, // 'E' + { 255, 7, 11, 11, 1, -12 }, // 'F' + { 265, 8, 12, 11, 1, -12 }, // 'G' + { 277, 8, 10, 11, 1, -11 }, // 'H' + { 287, 2, 5, 11, 7, -6 }, // 'I' + { 289, 8, 11, 11, 1, -11 }, // 'J' + { 300, 8, 11, 11, 1, -12 }, // 'K' + { 311, 7, 11, 11, 1, -11 }, // 'L' + { 321, 8, 11, 11, 1, -12 }, // 'M' + { 332, 8, 6, 11, 1, -7 }, // 'N' + { 338, 8, 7, 11, 1, -7 }, // 'O' + { 345, 8, 11, 11, 1, -12 }, // 'P' + { 356, 8, 11, 11, 1, -12 }, // 'Q' + { 367, 7, 6, 11, 1, -7 }, // 'R' + { 373, 8, 11, 11, 1, -11 }, // 'S' + { 384, 7, 11, 11, 1, -11 }, // 'T' + { 394, 8, 6, 11, 1, -6 }, // 'U' + { 400, 8, 11, 11, 1, -11 }, // 'V' + { 411, 8, 11, 11, 1, -11 }, // 'W' + { 422, 8, 10, 11, 1, -11 }, // 'X' + { 432, 8, 11, 11, 1, -11 }, // 'Y' + { 443, 8, 12, 11, 1, -12 }, // 'Z' + { 455, 4, 9, 5, 0, -9 }, // '[' + { 460, 4, 9, 5, 0, -9 }, // '\' + { 465, 4, 9, 5, 0, -9 }, // ']' + { 470, 4, 9, 5, 0, -9 }, // '^' + { 475, 4, 9, 5, 0, -9 }, // '_' + { 480, 4, 9, 5, 0, -9 }, // '`' + { 485, 8, 11, 11, 1, -12 }, // 'a' + { 496, 8, 11, 11, 1, -11 }, // 'b' + { 507, 7, 7, 11, 1, -7 }, // 'c' + { 514, 8, 11, 11, 1, -11 }, // 'd' + { 525, 7, 12, 11, 1, -12 }, // 'e' + { 536, 7, 11, 11, 1, -12 }, // 'f' + { 546, 8, 12, 11, 1, -12 }, // 'g' + { 558, 8, 10, 11, 1, -11 }, // 'h' + { 568, 2, 5, 11, 7, -6 }, // 'i' + { 570, 8, 11, 11, 1, -11 }, // 'j' + { 581, 8, 11, 11, 1, -12 }, // 'k' + { 592, 7, 11, 11, 1, -11 }, // 'l' + { 602, 8, 11, 11, 1, -12 }, // 'm' + { 613, 8, 6, 11, 1, -7 }, // 'n' + { 619, 8, 7, 11, 1, -7 }, // 'o' + { 626, 8, 11, 11, 1, -12 }, // 'p' + { 637, 8, 11, 11, 1, -12 }, // 'q' + { 648, 7, 6, 11, 1, -7 }, // 'r' + { 654, 8, 11, 11, 1, -11 }, // 's' + { 665, 7, 11, 11, 1, -11 }, // 't' + { 675, 8, 6, 11, 1, -6 }, // 'u' + { 681, 8, 11, 11, 1, -11 }, // 'v' + { 692, 8, 11, 11, 1, -11 }, // 'w' + { 703, 8, 10, 11, 1, -11 }, // 'x' + { 713, 8, 11, 11, 1, -11 }, // 'y' + { 724, 8, 12, 11, 1, -12 }, // 'z' + { 736, 4, 9, 5, 0, -9 }, // '{' + { 741, 4, 9, 5, 0, -9 }, // '|' + { 746, 4, 9, 5, 0, -9 } // '}' +}; +const GFXfont DSEG7_Classic_Bold_12 PROGMEM = { +(uint8_t *)DSEG7_Classic_Bold_12Bitmaps,(GFXglyph *)DSEG7_Classic_Bold_12Glyphs,0x20, 0x7E, 14}; \ No newline at end of file From afb82a732ef25559b2e0d08f6c3567fdf302de6e Mon Sep 17 00:00:00 2001 From: Toto99303 Date: Sat, 16 Dec 2023 21:16:15 +0200 Subject: [PATCH 5/9] M5StickC support added --- platformio.ini | 156 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 124 insertions(+), 32 deletions(-) diff --git a/platformio.ini b/platformio.ini index 4c1c41b..bcb6348 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,9 +10,128 @@ [platformio] globallib_dir = lib -default_envs = M5Stick-C ; M5Stick-C, esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R, M5-StampS3 +default_envs = M5Stick-C, esp32cam, ESP32-2432S028R, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R, M5-StampS3, ESP32-S3-devKitv1, ESP32-S3-mini-wemos, ESP32-S3-mini-weact +[env:M5Stick-C] +platform = espressif32 +board = m5stick-c +framework = arduino +monitor_filters = + esp32_exception_decoder + time + log2file +;board_build.arduino.memory_type = qio_opi +monitor_speed = 115200 +upload_speed = 1500000 +# 2 x 4.5MB app, 6.875MB SPIFFS +board_build.partitions = huge_app.csv +build_flags = + -D M5STICK_C=1 + ;-D DEBUG_MINING=1 +lib_deps = + https://github.com/takkaO/OpenFontRender + bblanchon/ArduinoJson@^6.21.2 + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 + mathertel/OneButton @ ^2.0.3 + arduino-libraries/NTPClient + M5StickC + Wire +lib_ignore = + TFT_eSPI + +;-------------------------------------------------------------------- + +[env:ESP32-S3-mini-wemos] +platform = espressif32 +board = lolin_s3_mini +framework = arduino +monitor_filters = + esp32_exception_decoder + time + log2file +board_build.arduino.memory_type = qio_opi +monitor_speed = 115200 +upload_speed = 115200 +board_build.partitions = huge_app.csv +build_flags = + -D BOARD_HAS_PSRAM + -D ARDUINO_USB_MODE=1 + -D ARDUINO_USB_CDC_ON_BOOT=1 + -D S3MINIWEMOS=1 + ;-D DEBUG_MINING=1 +lib_deps = + https://github.com/takkaO/OpenFontRender + bblanchon/ArduinoJson@^6.21.2 + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 + mathertel/OneButton @ ^2.0.3 + arduino-libraries/NTPClient + https://github.com/FastLED/FastLED +lib_ignore = + TFT_eSPI +;-------------------------------------------------------------------- + +;-------------------------------------------------------------------- + +[env:ESP32-S3-mini-weact] +platform = espressif32 +board = lolin_s3_mini +framework = arduino +monitor_filters = + esp32_exception_decoder + time + log2file +board_build.arduino.memory_type = qio_opi +monitor_speed = 115200 +upload_speed = 115200 +board_build.partitions = huge_app.csv +build_flags = + -D BOARD_HAS_PSRAM + -D ARDUINO_USB_MODE=1 + -D ARDUINO_USB_CDC_ON_BOOT=1 + -D S3MINIWEACT=1 + ;-D DEBUG_MINING=1 +lib_deps = + https://github.com/takkaO/OpenFontRender + bblanchon/ArduinoJson@^6.21.2 + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 + mathertel/OneButton @ ^2.0.3 + arduino-libraries/NTPClient + https://github.com/FastLED/FastLED +lib_ignore = + TFT_eSPI +;-------------------------------------------------------------------- + +[env:ESP32-S3-devKitv1] +platform = espressif32 +board = esp32-s3-devkitc-1 +framework = arduino +monitor_filters = + esp32_exception_decoder + time + log2file +board_build.arduino.memory_type = qio_opi +monitor_speed = 115200 +upload_speed = 115200 +board_build.partitions = huge_app.csv +build_flags = + -D BOARD_HAS_PSRAM + -D ARDUINO_USB_MODE=1 + -D ARDUINO_USB_CDC_ON_BOOT=1 + -D DEVKITV1RGB=1 + ;-D DEBUG_MINING=1 +lib_deps = + https://github.com/takkaO/OpenFontRender + bblanchon/ArduinoJson@^6.21.2 + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 + mathertel/OneButton @ ^2.0.3 + arduino-libraries/NTPClient + https://github.com/FastLED/FastLED +lib_ignore = + TFT_eSPI + +;-------------------------------------------------------------------- + [env:NerminerV2] platform = espressif32 board = esp32-s3-devkitc-1 @@ -56,7 +175,7 @@ monitor_filters = log2file ;board_build.arduino.memory_type = qio_opi monitor_speed = 115200 -upload_speed = 1500000 ; 921600 460800 +upload_speed = 115200 # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv build_flags = @@ -71,35 +190,6 @@ lib_deps = ;-------------------------------------------------------------------- -[env:M5Stick-C] -platform = espressif32 -board = m5stick-c -framework = arduino -monitor_filters = - esp32_exception_decoder - time - log2file -;board_build.arduino.memory_type = qio_opi -monitor_speed = 115200 -upload_speed = 1500000 -# 2 x 4.5MB app, 6.875MB SPIFFS -board_build.partitions = huge_app.csv -build_flags = - -D M5STICK_C=1 - ;-D DEBUG_MINING=1 -lib_deps = - https://github.com/takkaO/OpenFontRender - bblanchon/ArduinoJson@^6.21.2 - https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 - mathertel/OneButton @ ^2.0.3 - arduino-libraries/NTPClient - M5StickC - Wire -lib_ignore = - TFT_eSPI - -;-------------------------------------------------------------------- - [env:TTGO-T-Display] platform = espressif32 board = esp32dev ;esp-wrover-kit @@ -287,6 +377,8 @@ lib_deps = mathertel/OneButton @ ^2.0.3 https://github.com/arduino-libraries/NTPClient +;-------------------------------------------------------------------- + [env:M5-StampS3] platform = espressif32 board = m5stack-stamps3 @@ -311,4 +403,4 @@ lib_ignore = TFT_eSPI SD rm67162 - SPI + SPI \ No newline at end of file From 9b33dd15cc0811b22b71d15a5438ec52b92786fb Mon Sep 17 00:00:00 2001 From: Toto99303 Date: Sat, 16 Dec 2023 21:33:52 +0200 Subject: [PATCH 6/9] M5StickC support added --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index b5dd4e9..e90d3d6 100644 --- a/platformio.ini +++ b/platformio.ini @@ -174,7 +174,7 @@ monitor_filters = log2file ;board_build.arduino.memory_type = qio_opi monitor_speed = 115200 -upload_speed = 1500000 ; 921600 460800 +upload_speed = 115200 # 2 x 4.5MB app, 6.875MB SPIFFS board_build.partitions = huge_app.csv build_flags = From 1a22645964b62e8131ff74624ad7cc13894aca0a Mon Sep 17 00:00:00 2001 From: Toto99303 Date: Sat, 16 Dec 2023 21:38:32 +0200 Subject: [PATCH 7/9] M5StickC support added --- src/drivers/devices/device.h | 6 ++++++ src/drivers/displays/display.cpp | 4 ++++ src/drivers/displays/displayDriver.h | 1 + 3 files changed, 11 insertions(+) diff --git a/src/drivers/devices/device.h b/src/drivers/devices/device.h index 4ad9900..5f01a81 100644 --- a/src/drivers/devices/device.h +++ b/src/drivers/devices/device.h @@ -23,6 +23,12 @@ #include "esp32CAM.h" #elif defined(M5_STAMP_S3) #include "m5StampS3.h" +#elif defined(DEVKITV1RGB) +#include "esp32DevKitRGB.h" +#elif defined(S3MINIWEMOS) +#include "esp32S3MiniWemos.h" +#elif defined(S3MINIWEACT) +#include "esp32S3MiniWeact.h" #else #error "No device defined" diff --git a/src/drivers/displays/display.cpp b/src/drivers/displays/display.cpp index 4b14e99..9061d8e 100644 --- a/src/drivers/displays/display.cpp +++ b/src/drivers/displays/display.cpp @@ -1,5 +1,9 @@ #include "display.h" +#ifdef LED_DISPLAY +DisplayDriver *currentDisplayDriver = &ledDisplayDriver; +#endif + #ifdef NO_DISPLAY DisplayDriver *currentDisplayDriver = &noDisplayDriver; #endif diff --git a/src/drivers/displays/displayDriver.h b/src/drivers/displays/displayDriver.h index 3f4ce1a..d8858ad 100644 --- a/src/drivers/displays/displayDriver.h +++ b/src/drivers/displays/displayDriver.h @@ -29,6 +29,7 @@ typedef struct extern DisplayDriver *currentDisplayDriver; extern DisplayDriver noDisplayDriver; +extern DisplayDriver ledDisplayDriver; extern DisplayDriver tDisplayDriver; extern DisplayDriver amoledDisplayDriver; extern DisplayDriver dongleDisplayDriver; From 58800050b3dec5c320b9176acf4670bb562c55c7 Mon Sep 17 00:00:00 2001 From: Toto99303 Date: Sat, 16 Dec 2023 21:40:50 +0200 Subject: [PATCH 8/9] M5StickC support added --- src/drivers/displays/display.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/drivers/displays/display.cpp b/src/drivers/displays/display.cpp index 9061d8e..7d718be 100644 --- a/src/drivers/displays/display.cpp +++ b/src/drivers/displays/display.cpp @@ -1,13 +1,13 @@ #include "display.h" -#ifdef LED_DISPLAY -DisplayDriver *currentDisplayDriver = &ledDisplayDriver; -#endif - #ifdef NO_DISPLAY DisplayDriver *currentDisplayDriver = &noDisplayDriver; #endif +#ifdef LED_DISPLAY +DisplayDriver *currentDisplayDriver = &ledDisplayDriver; +#endif + #ifdef T_DISPLAY DisplayDriver *currentDisplayDriver = &tDisplayDriver; #endif From 471b4198b4f435a01da0bb28b35b9f81db571bf1 Mon Sep 17 00:00:00 2001 From: Toto99303 Date: Sat, 16 Dec 2023 21:43:10 +0200 Subject: [PATCH 9/9] M5StickC support added --- platformio.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platformio.ini b/platformio.ini index e90d3d6..1645c50 100644 --- a/platformio.ini +++ b/platformio.ini @@ -376,6 +376,8 @@ lib_deps = mathertel/OneButton @ ^2.0.3 https://github.com/arduino-libraries/NTPClient +;-------------------------------------------------------------------- + [env:M5-StampS3] platform = espressif32 board = m5stack-stamps3