From 40db716e881c37b3b1a45f62dfe15879669f3c56 Mon Sep 17 00:00:00 2001 From: Blake Drayson Date: Wed, 5 Jun 2024 18:27:05 +0100 Subject: [PATCH 01/17] Addition of Daisy V2 Macro Pad & Updates To Elise V1/V2 & Daisy. --- .vscode/settings.json | 3 +- keyboards/draytronics/daisy_v2/config.h | 14 + keyboards/draytronics/daisy_v2/daisy_v2.c | 79 + keyboards/draytronics/daisy_v2/daisy_v2.h | 42 + keyboards/draytronics/daisy_v2/halconfig.h | 5 + keyboards/draytronics/daisy_v2/keyboard.json | 86 + .../daisy_v2/keymaps/default/keymap.c | 61 + keyboards/draytronics/daisy_v2/mcuconf.h | 6 + keyboards/draytronics/daisy_v2/oled.c | 1873 +++++++++++++++++ keyboards/draytronics/daisy_v2/readme.md | 18 + keyboards/draytronics/daisy_v2/rules.mk | 1 + keyboards/draytronics/elise/keyboard.json | 3 +- keyboards/draytronics/elise/readme.md | 9 +- keyboards/draytronics/elise_v2/config.h | 4 + keyboards/draytronics/elise_v2/keyboard.json | 3 +- .../elise_v2/keymaps/blake_iso/keymap.c | 24 +- .../elise_v2/keymaps/default/keymap.c | 2 +- .../elise_v2/keymaps/default_iso/keymap.c | 24 +- keyboards/draytronics/elise_v2/readme.md | 6 +- 19 files changed, 2225 insertions(+), 38 deletions(-) create mode 100644 keyboards/draytronics/daisy_v2/config.h create mode 100644 keyboards/draytronics/daisy_v2/daisy_v2.c create mode 100644 keyboards/draytronics/daisy_v2/daisy_v2.h create mode 100644 keyboards/draytronics/daisy_v2/halconfig.h create mode 100644 keyboards/draytronics/daisy_v2/keyboard.json create mode 100644 keyboards/draytronics/daisy_v2/keymaps/default/keymap.c create mode 100644 keyboards/draytronics/daisy_v2/mcuconf.h create mode 100644 keyboards/draytronics/daisy_v2/oled.c create mode 100644 keyboards/draytronics/daisy_v2/readme.md create mode 100644 keyboards/draytronics/daisy_v2/rules.mk create mode 100644 keyboards/draytronics/elise_v2/config.h diff --git a/.vscode/settings.json b/.vscode/settings.json index f369ecb1748c..5fd3178003ee 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -30,5 +30,6 @@ }, "clangd.arguments": [ "--header-insertion=never" - ] + ], + "C_Cpp.dimInactiveRegions": true } diff --git a/keyboards/draytronics/daisy_v2/config.h b/keyboards/draytronics/daisy_v2/config.h new file mode 100644 index 000000000000..6e5eff6f6c7e --- /dev/null +++ b/keyboards/draytronics/daisy_v2/config.h @@ -0,0 +1,14 @@ +#pragma once + +#define I2C_DRIVER I2CD1 +#define I2C1_SCL_PIN B8 +#define I2C1_SDA_PIN B9 +#define I2C1_SCL_PAL_MODE 1 +#define I2C1_SDA_PAL_MODE 1 +#define I2C1_TIMINGR_PRESC 0x00U +#define I2C1_TIMINGR_SCLDEL 0x03U +#define I2C1_TIMINGR_SDADEL 0x01U +#define I2C1_TIMINGR_SCLH 0x03U +#define I2C1_TIMINGR_SCLL 0x09U + +#define OLED_TIMEOUT 300000 \ No newline at end of file diff --git a/keyboards/draytronics/daisy_v2/daisy_v2.c b/keyboards/draytronics/daisy_v2/daisy_v2.c new file mode 100644 index 000000000000..ca193c8ac86e --- /dev/null +++ b/keyboards/draytronics/daisy_v2/daisy_v2.c @@ -0,0 +1,79 @@ +/*Copyright 2024 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +This code is inspired by and adapted from the code used in the Printed Pad by Noah Beidelman (@noahbei) + +It also references the concept and some pixel frames (the arasaka logo) form Aleks (@aleksbrgt) + +Other pixel images are either created by me or use the resources of Velency Grpahics https://www.valencygraphics.com/cyberpunk-2077 + +No claim for licence or ownership is made for any logos or similarities to logos or brand names. +*/ + +#include QMK_KEYBOARD_H +#include "daisy_v2.h" + +void board_init(void) { + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; +} + +const uint8_t max_layer = 3; +uint8_t current_display_mode = 0; + +bool hidden = false; + +bool key_pressed = false; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } +#ifdef OLED_ENABLE + key_pressed = record->event.pressed; +#endif + switch(keycode) { + case LT(0, KC_NO): + if (record->event.pressed) { + // on tap + if (record->tap.count) { + tap_code(KC_MUTE); + } +#ifdef OLED_ENABLE + // on hold + else { + hidden = false; + current_display_mode = (current_display_mode + 1) % 4; + } +#endif + } + return false; + } + return true; +} + +#ifdef OLED_ENABLE +uint32_t flash_timer = 0; +bool layer_changed = false; + +// when the layer is changed, flash the layer number on the screen +layer_state_t layer_state_set_kb(layer_state_t state) { + flash_timer = timer_read(); + layer_changed = true; + + return layer_state_set_user(state); +} +#endif diff --git a/keyboards/draytronics/daisy_v2/daisy_v2.h b/keyboards/draytronics/daisy_v2/daisy_v2.h new file mode 100644 index 000000000000..5880ed58255d --- /dev/null +++ b/keyboards/draytronics/daisy_v2/daisy_v2.h @@ -0,0 +1,42 @@ +/*Copyright 2024 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +This code is inspired by and adapted from the code used in the Printed Pad by Noah Beidelman (@noahbei) + +It also references the concept and some pixel frames (the arasaka logo) form Aleks (@aleksbrgt) + +Other pixel images are either created by me or use the resources of Velency Grpahics https://www.valencygraphics.com/cyberpunk-2077 + +No claim for licence or ownership is made for any logos or similarities to logos or brand names. +*/ + +#pragma once + +#include "quantum.h" + +//for oled key press +extern bool key_pressed; + +// for changing oled display mode +extern uint8_t current_display_mode; + +// for hidden animation toggle +extern bool hidden; + +//for determining when the layer is changed and having a timer for how long we flash the layer +extern uint32_t flash_timer; +extern bool layer_changed; diff --git a/keyboards/draytronics/daisy_v2/halconfig.h b/keyboards/draytronics/daisy_v2/halconfig.h new file mode 100644 index 000000000000..817e808834d0 --- /dev/null +++ b/keyboards/draytronics/daisy_v2/halconfig.h @@ -0,0 +1,5 @@ +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/draytronics/daisy_v2/keyboard.json b/keyboards/draytronics/daisy_v2/keyboard.json new file mode 100644 index 000000000000..034282d153bf --- /dev/null +++ b/keyboards/draytronics/daisy_v2/keyboard.json @@ -0,0 +1,86 @@ +{ + "manufacturer": "Draytronics", + "keyboard_name": "DAISY", + "maintainer": "ghostseven", + "bootloader": "stm32-dfu", + "bootmagic": { + "enabled": true + }, + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "A15", "pin_b": "A14"} + ] + }, + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "oled": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1"], + "rows": ["A2", "A1", "A0"] + }, + "mouse_key": { + "enabled": true + }, + "processor": "STM32F072", + "qmk": { + "locking": { + "enabled": true, + "resync": true + }, + "tap_keycode_delay": 10 + }, + "rgblight": { + "led_count": 4, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "url": "https://www.draytronics.co.uk/daisy", + "usb": { + "device_version": "2.0.0", + "pid": "0x4441", + "vid": "0x4454" + }, + "ws2812": { + "pin": "B12" + }, + "layout_aliases": { + "LAYOUT_daisy": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "", "matrix": [2, 3], "x": 3, "y": 2} + ] + } + } +} diff --git a/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c b/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c new file mode 100644 index 000000000000..8367330a0845 --- /dev/null +++ b/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c @@ -0,0 +1,61 @@ +/*Copyright 2024 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H +#define _BASE 0 // Base layer +#define _CODE 1 // Code layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * ┌────────────┐ + * │ Vol / Anim │ + * ├────────────┼────────────┬────────────┬─────────────┐ + * │ Code Layer │ Media Next │ Media Prev │ Media Pause │ + * ├────────────┼────────────┼────────────┼─────────────┤ + * │ Prev Desk │ Miss Ctrl │ App Window │ Next Desk │ + * └────────────┴────────────┴────────────┴─────────────┘ + */ + [_BASE] = LAYOUT( + LT(0, KC_NO), + MO(_CODE), KC_MPRV, KC_MNXT, KC_MPLY, + C(KC_LEFT), C(KC_UP), C(KC_DOWN), C(KC_RIGHT) + ), + /* + * ┌────────────┐ + * │ Vol / Anim │ + * ├────────────┼────────────┬────────────┬─────────────┐ + * │ │ RGB Mode │ RBG Hue │ RGB Toggle │ + * ├────────────┼────────────┼────────────┼─────────────┤ + * │ Scrn Shot │ Force Quit │ GUI + F │ DFU Mode │ + * └────────────┴────────────┴────────────┴─────────────┘ + */ + [_CODE] = LAYOUT( + LT(0, KC_NO), + _______, RGB_MOD, RGB_HUI, RGB_TOG, + G(S(KC_5)), G(A(KC_ESC)), G(KC_F), QK_BOOT + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + return false; +} diff --git a/keyboards/draytronics/daisy_v2/mcuconf.h b/keyboards/draytronics/daisy_v2/mcuconf.h new file mode 100644 index 000000000000..cefbd8c163a7 --- /dev/null +++ b/keyboards/draytronics/daisy_v2/mcuconf.h @@ -0,0 +1,6 @@ +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/draytronics/daisy_v2/oled.c b/keyboards/draytronics/daisy_v2/oled.c new file mode 100644 index 000000000000..958df4f1572e --- /dev/null +++ b/keyboards/draytronics/daisy_v2/oled.c @@ -0,0 +1,1873 @@ +/*Copyright 2024 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +This code is inspired by and adapted from the code used in the Printed Pad by Noah Beidelman (@noahbei) + +It also references the concept and some pixel frames (the arasaka logo) form Aleks (@aleksbrgt) + +Other pixel images are either created by me or use the resources of Velency Grpahics https://www.valencygraphics.com/cyberpunk-2077 + +No claim for licence or ownership is made for any logos or similarities to logos or brand names. +*/ + +#include "daisy_v2.h" + +#ifdef OLED_ENABLE +static void flash_current_layer(void); + +uint8_t FRAME_DURATION = 100; + +uint32_t animation_timer = 0; +uint8_t current_frame = 0; + +static bool glitch = true; +static bool dirty = false; + +static void render_MaxTac_animation(void){ + + // 'MaxTac_Clean', 128x32px + static const char bmp_MaxTac_Clean [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xe0, 0xf0, 0xf8, 0xfc, 0xf8, 0xf0, 0xc0, 0x80, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xf8, + 0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, + 0xfc, 0xfc, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0x7c, 0xbc, 0xd8, + 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x0c, + 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0xfe, 0xff, 0xff, + 0x7f, 0x3f, 0x0f, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0f, 0x1f, + 0x3f, 0x7f, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0x7f, 0xff, 0xef, 0xf7, + 0xf7, 0xef, 0xdf, 0xbf, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0x7f, + 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x0b, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x0f, 0x0c, 0x30, 0xc0, 0x00, 0x07, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + // 'MaxTac_Glitch_1', 128x32px + static const char bmp_MaxTac_Glitch_1 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, + 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xe0, + 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xc0, 0xc0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x10, 0x00, + 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7c, 0x7e, + 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, + 0x0f, 0x1f, 0x3f, 0x7f, 0x7e, 0x7e, 0x78, 0x70, 0x78, 0x7c, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7c, 0x78, 0x70, 0x79, 0x7f, 0x7f, 0x7f, 0x7f, + 0x3f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x0c, 0x0b, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x09, 0x0e, 0x08, 0x10, 0x40, 0x00, 0x07, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'MaxTac_Glitch_2', 128x32px + static const char bmp_MaxTac_Glitch_2 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, + 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x40, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xe0, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x90, 0x6c, 0x12, 0x12, + 0xe8, 0xb0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x48, 0x00, 0x12, 0x12, 0x00, 0x00, 0x00, 0x12, + 0x12, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7c, 0x7e, + 0x7f, 0x7f, 0x3f, 0x9f, 0xcf, 0xcf, 0x9f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x8f, 0xcf, + 0xcf, 0x9f, 0x3f, 0x7f, 0x7f, 0x7e, 0x7c, 0x78, 0x78, 0x7c, 0x7e, 0x7f, 0x7f, 0x3f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x7e, 0x7c, 0x78, 0xf8, 0xfc, 0xfd, 0xff, 0xff, 0xff, + 0xbf, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x12, 0x0d, 0x0b, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x0f, 0x0d, 0x36, 0x48, 0x00, 0x07, 0x12, 0x24, 0x24, 0x48, 0x48, 0x48, 0x48, 0x48, + 0x48, 0x24, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x04, 0x04, 0x04, 0x06, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x06, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x04, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'MaxTac_Glitch_3', 128x32px + static const char bmp_MaxTac_Glitch_3 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xc0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x60, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x10, 0x10, + 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7f, 0x7f, + 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x0f, + 0x0f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x3f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x0c, 0x0b, 0x18, 0x0c, 0x0a, 0x0e, + 0x0c, 0x19, 0x0e, 0x08, 0x10, 0x40, 0x00, 0x1f, 0x18, 0x20, 0x22, 0x42, 0x40, 0x40, 0x40, 0x42, + 0x42, 0x20, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'MaxTac_Glitch_4', 128x32px + static const char bmp_MaxTac_Glitch_4 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, + 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x10, 0x10, + 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7c, 0x7e, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7c, 0x78, 0x78, 0x7c, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7c, 0x78, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x7f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x0c, 0x0b, 0x08, 0xc8, 0x28, 0x28, + 0x88, 0x09, 0x0e, 0x08, 0x30, 0x40, 0x00, 0x07, 0x90, 0x60, 0x60, 0x60, 0x40, 0x40, 0x40, 0x60, + 0x60, 0x60, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x16, 0x11, 0x10, 0x10, 0x10, + 0x10, 0x13, 0x1c, 0x10, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'MaxTac_Glitch_5', 128x32px + static const char bmp_MaxTac_Glitch_5 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x78, + 0x7c, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7c, 0x7c, 0x7c, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0x7c, 0x78, 0x70, 0x60, 0x60, 0x70, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7c, 0x78, 0x70, 0x60, 0x71, 0xf3, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xe3, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, 0x01, 0x01, 0x81, 0x61, 0x11, 0x11, + 0x41, 0x81, 0x01, 0x01, 0x06, 0x08, 0x00, 0x00, 0x42, 0x04, 0x14, 0x18, 0x08, 0x08, 0x08, 0x18, + 0x18, 0x04, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7c, 0x7e, + 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x0f, + 0x0f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7e, 0x7c, 0x78, 0x78, 0x7c, 0x7e, 0x7f, 0x7f, 0x3f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7c, 0x78, 0x78, 0x7c, 0x7d, 0x7f, 0x7f, 0x7f, + 0x3f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x0c, 0x0b, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x09, 0x0e, 0x08, 0x10, 0x40, 0x00, 0x07, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'MaxTac_Glitch_6', 128x32px + static const char bmp_MaxTac_Glitch_6 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, + 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xf0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, + 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xb0, 0xc8, 0xe6, 0x91, 0x91, + 0xe4, 0x98, 0xe0, 0x80, 0x00, 0x00, 0x00, 0xf0, 0x44, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x11, + 0x11, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x0f, + 0x0f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x3f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x11, 0x0c, 0x0b, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x09, 0x0e, 0x08, 0x33, 0x44, 0x00, 0x07, 0x11, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x22, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 3168) + static const char* const bmp_MaxTac_Glitch_allArray[6] = { + bmp_MaxTac_Glitch_1, + bmp_MaxTac_Glitch_2, + bmp_MaxTac_Glitch_3, + bmp_MaxTac_Glitch_4, + bmp_MaxTac_Glitch_5, + bmp_MaxTac_Glitch_6 + }; + + // 'MaxTac_Dirty_1', 128x32px + static const char bmp_MaxTac_Dirty_1 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x07, 0x03, 0xf0, 0xf0, 0x60, 0x40, 0x3f, 0x7f, 0x7f, 0x00, 0x80, 0xc0, 0xe0, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0x7f, + 0x7f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf3, 0xf0, 0xf0, 0x00, 0x00, + 0x00, 0xf8, 0xf8, 0xff, 0xff, 0xfe, 0xfe, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x18, 0x00, 0x00, 0x60, 0x10, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x20, 0x00, 0x02, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x3e, + 0x3f, 0x3f, 0x3f, 0x1f, 0x3f, 0x3f, 0xf8, 0xf0, 0x3f, 0x7f, 0x7f, 0x7f, 0x3f, 0xff, 0x7f, 0x7f, + 0x7f, 0xf8, 0xf0, 0x7f, 0x7e, 0x7c, 0x7c, 0x78, 0x80, 0xc0, 0xe0, 0xf0, 0x1f, 0x0f, 0x1f, 0x7f, + 0x7f, 0x7c, 0x7c, 0xfc, 0xf8, 0xfe, 0xfc, 0xf8, 0x80, 0x00, 0x01, 0x01, 0xe1, 0xe3, 0xfe, 0xfe, + 0xfc, 0x19, 0x3b, 0x07, 0x07, 0x7f, 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x40, 0x40, 0x00, 0x00, 0x41, + 0x41, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x1b, 0x1f, 0x07, 0x07, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x04, 0x03, 0x00, 0x00, + 0x00, 0x01, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'MaxTac_Dirty_2', 128x32px + static const char bmp_MaxTac_Dirty_2 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, + 0xe0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x0f, + 0x0f, 0x8f, 0xc3, 0xe3, 0x70, 0x70, 0xe0, 0xc0, 0x80, 0x00, 0xc0, 0xc0, 0x60, 0x30, 0x18, 0x0c, + 0xef, 0xdf, 0xbf, 0xff, 0x7f, 0x7e, 0x3e, 0x3c, 0x3c, 0x3e, 0x3f, 0x3f, 0x87, 0xc3, 0xe7, 0xf7, + 0xf7, 0xf7, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x0c, 0x0c, + 0x08, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x10, 0x10, + 0x40, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x90, + 0x90, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x7c, 0x7e, + 0x7f, 0x7f, 0x3f, 0x1f, 0x70, 0x70, 0xe0, 0xc1, 0x83, 0x87, 0x60, 0x60, 0x30, 0x18, 0x0c, 0x0c, + 0x0f, 0x1f, 0x3f, 0x7f, 0x7f, 0x7e, 0x7c, 0x78, 0x78, 0x7c, 0x7e, 0x7f, 0x7f, 0x3f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x40, 0x40, 0x00, 0x00, 0x40, 0x41, 0x7c, 0x78, 0x38, 0xfc, 0xfd, 0xff, 0x60, 0x60, + 0x30, 0x18, 0x30, 0x60, 0x60, 0x60, 0x60, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x0c, 0x0b, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x00, 0x0e, 0x09, 0x12, 0x48, 0x00, 0x07, 0x40, 0x00, 0x00, 0x50, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'MaxTac_Dirty_3', 128x32px + static const char bmp_MaxTac_Dirty_3 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x10, 0x10, + 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, + 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x0c, 0x0b, 0x88, 0x68, 0x18, 0x18, + 0x48, 0x89, 0x0e, 0x08, 0x10, 0x40, 0x00, 0x07, 0x50, 0x20, 0x30, 0x50, 0x40, 0x40, 0x40, 0x50, + 0x50, 0x20, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbc, 0x9e, + 0x8f, 0x87, 0xc3, 0xe1, 0xf0, 0xf0, 0xe1, 0xc3, 0x87, 0x8f, 0x8f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf0, + 0xf0, 0xe1, 0xc3, 0x87, 0x8f, 0x9e, 0xbc, 0xf8, 0xf8, 0xbc, 0x9e, 0x8f, 0x7f, 0x3f, 0x7f, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7c, 0x78, 0x78, 0xfc, 0xfd, 0xff, 0xff, 0xff, + 0x3f, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x0c, 0x0b, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x09, 0x0e, 0x08, 0x10, 0x40, 0x00, 0x07, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x1c, 0x1e, 0x1f, 0x1f, + 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, 0x1c, 0x18, 0x10, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x1f, 0x1f, 0x1f, + 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'MaxTac_Dirty_4', 128x32px + static const char bmp_MaxTac_Dirty_4 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, + 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x1f, 0x60, 0x30, 0xe0, 0xf0, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, + 0xee, 0xde, 0xc6, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x38, 0x1c, 0x0f, + 0x0f, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0xfc, 0xf8, 0x00, 0x00, 0x80, 0x10, 0x30, 0x30, 0x0f, 0x0f, + 0x1f, 0xdf, 0xdf, 0xf0, 0xf0, 0xf0, 0xf0, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xa0, 0x23, 0x50, 0x30, + 0xc0, 0x80, 0x00, 0x08, 0x10, 0x00, 0x00, 0x1c, 0x01, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x10, + 0x18, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7c, 0x7e, + 0x7f, 0x70, 0x30, 0xe7, 0xf3, 0x0f, 0x1f, 0x3f, 0x07, 0x4f, 0x73, 0x73, 0x40, 0x20, 0x00, 0x00, + 0x0f, 0x1f, 0x3f, 0x7f, 0xbf, 0xfe, 0x7c, 0x78, 0x78, 0x3c, 0x1e, 0x7f, 0x7b, 0x38, 0x78, 0x7f, + 0x7f, 0x40, 0x40, 0x41, 0x40, 0x41, 0x7e, 0x7f, 0x7c, 0x78, 0x7b, 0x7f, 0x7d, 0x7f, 0x7e, 0x7e, + 0x3f, 0x1f, 0x3f, 0xbf, 0xbf, 0x81, 0x81, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x14, 0x0d, 0x0b, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x91, 0xee, 0x08, 0x10, 0x00, 0x00, 0x07, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 2112) + static const char* const bmp_MaxTac_Dirty_allArray[4] = { + bmp_MaxTac_Dirty_1, + bmp_MaxTac_Dirty_2, + bmp_MaxTac_Dirty_3, + bmp_MaxTac_Dirty_4 + }; + + uint16_t frame_size = sizeof(bmp_MaxTac_Clean); + + if (layer_changed) // flash_current_layer will change layer_changed to false after a short time, resuming the animation + flash_current_layer(); + + else if (timer_elapsed(animation_timer) > FRAME_DURATION) { + // Set animation_timer to updated time + animation_timer = timer_read(); + + //1. Do we have glitch set + if(glitch){ + //Randomly pick a glitch frame (add one to frame count) + current_frame = rand() % 7; + if(current_frame < 6){ + oled_write_raw_P(bmp_MaxTac_Glitch_allArray[current_frame], frame_size); + return; + } + glitch = false; + } + + // //2. Do we have dirty set + if(dirty){ + //Randomly pick a dirty frame (add one to frame count) + current_frame = rand() % 5; + if(current_frame < 4){ + oled_write_raw_P(bmp_MaxTac_Dirty_allArray[current_frame], frame_size); + return; + } + + //So occasionally we want to glitch to somewhere else, we just do a rand and set a flag + if(rand() % 100 > 85) { hidden = true;} + dirty = false; + } + + //3. Not glitch or dirty do probability loop + //Lets get a random number between 0 and 99 + //We can use this to weight the chance of a clean, glitch or dirty + + uint8_t rand_weight = rand() % 100; + if(rand_weight < 91){ + FRAME_DURATION = 100; + glitch = false; + dirty = false; + oled_write_raw_P(bmp_MaxTac_Clean, frame_size); + } else if(rand_weight < 97){ + //Up the frame rate for the glitch frames + FRAME_DURATION = 50; + //Randomly pick a glitch frame + current_frame = rand() % 6; + glitch = true; + dirty = false; + oled_write_raw_P(bmp_MaxTac_Glitch_allArray[current_frame], frame_size); + }else{ + //Up the frame rate for the dirty frames + FRAME_DURATION = 50; + //Randomly pick a dirty frame + current_frame = rand() % 4; + glitch = false; + dirty = true; + oled_write_raw_P(bmp_MaxTac_Dirty_allArray[current_frame], frame_size); + } + } +} + +static void render_Arasaka_animation(void) { + // 'Arasaka_Clean', 128x32px + static const char bmp_Arasaka_Clean[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0xfe, 0xfc, + 0xf8, 0xf0, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x3f, 0x3f, 0x3f, 0x3c, 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, + 0x07, 0x07, 0x07, 0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x08, 0x18, 0x18, 0x38, 0x78, + 0xf8, 0xf8, 0xf7, 0xe7, 0xe7, 0xc7, 0x87, 0x07, 0x07, 0x06, 0x06, 0x00, 0x00, 0xc0, 0xf0, 0xfc, + 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7c, 0x3c, 0x3e, 0x1f, 0x0f, 0x0f, 0x07, 0x03, 0xf3, 0xfd, + 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, + 0x01, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0xe0, 0x40, 0x00, 0xff, 0xff, + 0xff, 0xfe, 0xfc, 0x00, 0x1c, 0x1d, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x3e, 0x7c, 0x78, 0xf8, 0xf0, + 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0x78, 0xf0, + 0xf0, 0xf0, 0xe0, 0x40, 0x00, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x00, 0x3e, 0x7e, 0xfe, 0xfe, 0xf0, + 0xf0, 0xf0, 0xf1, 0xf3, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xf8, 0x01, 0x07, 0x1f, + 0x3f, 0x3f, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0xe0, 0x40, 0x00, 0xff, 0xff, 0xff, 0xfe, 0xfc, + 0x00, 0x1c, 0x1d, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x3e, 0x3c, 0x78, 0x78, 0xf0, 0xe0, 0xc7, 0xdf, + 0xbf, 0x3f, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0xe0, 0x40, 0x00, 0xff, 0xff, 0xff, 0xfe, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + // 'Arasaka_Glitch_1', 128x32px + static const char bmp_Arasaka_Glitch_1 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xfc, 0x9e, 0x8e, 0x0e, 0x0e, 0x0f, 0x07, 0x07, 0x07, 0x17, 0x7f, 0x7f, 0xff, 0xfd, + 0xe8, 0x80, 0xf0, 0x70, 0xfe, 0xfe, 0x8f, 0x8f, 0x8f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x0f, 0x4d, 0x71, 0xf0, 0xf0, 0xfc, 0x9e, 0x8e, 0x0e, 0x0e, 0x0f, 0x07, + 0x07, 0x07, 0x17, 0x7f, 0x7f, 0xff, 0xfd, 0xe8, 0x80, 0x80, 0x10, 0x18, 0x38, 0x78, 0x78, 0x78, + 0xf8, 0xe8, 0xe6, 0xc6, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, 0x07, 0x40, 0x70, 0xf0, 0xf0, 0xfc, + 0x9e, 0x8e, 0x0e, 0x0e, 0x0f, 0x07, 0x07, 0x07, 0x17, 0x7f, 0x7f, 0xff, 0xfd, 0xe8, 0x80, 0xf0, + 0x70, 0xfe, 0xfe, 0xff, 0xff, 0xb9, 0x3d, 0x1c, 0x0e, 0x0e, 0x0e, 0x0f, 0x77, 0x73, 0xf3, 0xfd, + 0x9f, 0x8f, 0x0e, 0x0e, 0x0f, 0x07, 0x07, 0x07, 0x17, 0x7f, 0x7f, 0xff, 0xfd, 0xe8, 0x80, 0x80, + 0x01, 0x07, 0x0f, 0x0f, 0x1f, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x20, 0xcf, 0xcf, + 0xff, 0xfe, 0xfc, 0x30, 0x3c, 0x0d, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x1e, 0x5c, 0x78, 0xf8, 0xf0, + 0xf0, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0f, 0x1f, 0x7c, 0x78, 0x78, 0xf0, + 0xf0, 0xf0, 0xf0, 0x70, 0x20, 0xcf, 0xcf, 0xff, 0xfe, 0xfc, 0x30, 0x3e, 0x4e, 0xfe, 0xfe, 0xf0, + 0xf0, 0xf0, 0xf1, 0xf3, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xf8, 0x31, 0x37, 0x0f, + 0x0f, 0x1f, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x20, 0xcf, 0xcf, 0xff, 0xfe, 0xfc, + 0x30, 0x3c, 0x0d, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x1e, 0x1c, 0x78, 0x78, 0xf0, 0xf0, 0xf7, 0xef, + 0x8f, 0x1f, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x20, 0xcf, 0xcf, 0xff, 0xfe, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Arasaka_Glitch_2', 128x32px + static const char bmp_Arasaka_Glitch_2 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x40, 0x40, + 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0xf0, + 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x3f, 0x3f, 0x3f, 0x3c, 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x07, + 0x07, 0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x08, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, + 0xf7, 0xe7, 0xe7, 0xc7, 0x87, 0x07, 0x07, 0x83, 0x83, 0x00, 0x00, 0x60, 0x78, 0xfe, 0xff, 0xff, + 0x8f, 0x87, 0x07, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0f, 0x7f, 0x7e, 0xfc, 0xf8, 0xf0, 0x00, 0x7f, + 0x7f, 0x7f, 0xff, 0xfc, 0xbe, 0x9e, 0x9f, 0x0f, 0x07, 0x07, 0x03, 0x01, 0x79, 0x7e, 0xff, 0xff, + 0x8f, 0x87, 0x07, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0f, 0x7f, 0x7e, 0xfc, 0xf8, 0xf0, 0x00, 0x00, + 0x01, 0x07, 0x0f, 0x1f, 0x3f, 0x3c, 0x78, 0x78, 0x70, 0xf0, 0xf0, 0xf0, 0xe0, 0x40, 0x0f, 0xff, + 0xff, 0xfe, 0xfc, 0xf0, 0x0c, 0x1d, 0x1f, 0x1f, 0x1f, 0x0f, 0x1e, 0x1e, 0x3c, 0x78, 0x78, 0xf0, + 0xf0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x3f, 0x3c, 0x78, 0x78, 0x70, + 0xf0, 0xf0, 0xf0, 0xe0, 0x40, 0x0f, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x0e, 0x3e, 0x7e, 0xfe, 0xf0, + 0xf0, 0xf0, 0xf1, 0xf3, 0xf3, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7c, 0x78, 0x03, 0x07, + 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x38, 0x78, 0x78, 0x78, 0x70, 0x20, 0x07, 0x7f, 0x7f, 0x7f, 0x7e, + 0x78, 0x06, 0x0e, 0x0f, 0x0f, 0x0f, 0x07, 0x0f, 0x0f, 0x1e, 0x1c, 0x3c, 0x38, 0x78, 0x73, 0x67, + 0x6f, 0x5f, 0x1e, 0x3c, 0x3c, 0x38, 0x78, 0x78, 0x78, 0x70, 0x20, 0x07, 0x7f, 0x7f, 0x7f, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Arasaka_Glitch_3', 128x32px + static const char bmp_Arasaka_Glitch_3 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xe0, 0xf8, 0xfc, 0xfc, 0x3e, 0x1e, 0x1e, 0x0e, 0x0f, 0x0f, 0x0f, 0x1f, 0x3e, 0xfc, 0xf8, + 0xf0, 0xe0, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, + 0x1f, 0x1f, 0x7f, 0x7e, 0x7e, 0x78, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0xfc, 0x3e, 0x1e, 0x1e, 0x0e, + 0x0f, 0x0f, 0x1f, 0x1f, 0x3e, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x10, 0x30, 0x18, 0x38, 0x78, + 0xf8, 0xf8, 0xf7, 0xe7, 0xe7, 0xc7, 0x87, 0x07, 0x07, 0x06, 0x06, 0x00, 0x00, 0x80, 0xf0, 0xf8, + 0xfc, 0xfc, 0x3e, 0x3c, 0x3c, 0x0e, 0x0f, 0x0f, 0x1f, 0x1f, 0x7e, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf8, 0x78, 0x7c, 0x3e, 0x1e, 0x1f, 0x0f, 0x07, 0xe7, 0xfb, + 0xfd, 0xfd, 0x3e, 0x1e, 0x1e, 0x0e, 0x0f, 0x0f, 0x0f, 0x1f, 0x3e, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, + 0x01, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0xe0, 0x40, 0x00, 0xff, 0xff, + 0xff, 0xfb, 0xf3, 0x00, 0x1d, 0x1d, 0x1f, 0x1f, 0x0f, 0x1e, 0x3e, 0x3e, 0x7c, 0xf8, 0xf8, 0xf0, + 0xe0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0x78, 0xf0, + 0xf0, 0xf0, 0xe0, 0x40, 0x00, 0xff, 0xff, 0xff, 0xfb, 0xf3, 0x00, 0x3e, 0x7e, 0x7f, 0x7f, 0x78, + 0x78, 0x78, 0x78, 0x79, 0x79, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7c, 0x01, 0x0f, 0x1f, + 0x3f, 0x3f, 0x7c, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0xff, 0xff, 0xff, 0xfd, 0xf9, + 0x00, 0x39, 0x3b, 0x3f, 0x3f, 0x1f, 0x3e, 0x3c, 0x7c, 0xf8, 0xf0, 0xf0, 0xe0, 0xc0, 0xcf, 0xbf, + 0x7f, 0x7f, 0xf8, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0xff, 0xff, 0xff, 0xfb, 0xf3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01 + }; + // 'Arasaka_Glitch_4', 128x32px + static const char bmp_Arasaka_Glitch_4 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0xc0, 0xf0, 0xf0, 0xfc, 0xf8, 0x78, 0x3c, 0x3c, 0x3c, 0x1c, 0x1e, 0x1e, 0x1e, 0x7e, 0xfc, 0xf8, + 0xf0, 0xe0, 0x80, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x8f, 0x0f, 0x0f, 0x0f, 0x0f, 0x7c, 0x7c, 0x7c, + 0x1f, 0x1f, 0x7f, 0x7f, 0x7e, 0x7e, 0x18, 0x80, 0xe0, 0xe0, 0xf8, 0xf0, 0xf0, 0x78, 0x78, 0x78, + 0x38, 0x3c, 0x3c, 0x7c, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0x3c, 0xe7, 0xc7, 0x87, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0xe0, 0xf8, 0xfc, + 0xfe, 0xff, 0x0f, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x07, 0x1f, 0xff, 0xff, 0xfe, 0xfc, 0xf0, + 0x00, 0x78, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x78, 0x78, 0x3c, 0x1e, 0x1e, 0x1f, 0x07, 0xf3, 0xf3, + 0xfd, 0xfe, 0x3d, 0x1e, 0x1e, 0x1e, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xfe, 0xf8, + 0x01, 0x07, 0x1f, 0x3f, 0xff, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xef, 0xcf, 0x00, 0x73, 0x1d, 0x1f, 0x1f, 0x0f, 0x1f, 0x3e, 0x3e, 0x7c, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xa0, 0xa0, 0x00, 0x00, 0x03, 0x0f, 0x0f, 0x0f, 0x3f, 0x60, 0x40, 0x40, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0xff, 0xff, 0xff, 0x9f, 0xdf, 0x00, 0x30, 0x70, 0xf0, 0xf1, 0xc3, + 0xc7, 0xc7, 0xcf, 0xdf, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7e, 0x7e, 0x7c, 0x00, 0x07, 0x0f, + 0x1f, 0x1f, 0x3e, 0x3c, 0x3c, 0x78, 0x78, 0x78, 0x70, 0x60, 0x00, 0x7f, 0x7f, 0x7f, 0x7b, 0x73, + 0x00, 0x0e, 0x0e, 0x0f, 0x3f, 0x1f, 0x3e, 0x3c, 0x7c, 0xf8, 0xf0, 0xf0, 0xe0, 0xe0, 0xe7, 0xdf, + 0xbf, 0xbf, 0xf8, 0xf0, 0xf0, 0xe0, 0xf0, 0xf0, 0xe0, 0xc0, 0x00, 0x3f, 0x3f, 0x3f, 0x3e, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Arasaka_Glitch_5', 128x32px + static const char bmp_Arasaka_Glitch_5 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0xe0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0xfc, 0xff, 0xff, 0xff, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x03, 0x1f, 0xfe, 0xfc, + 0xf8, 0xf0, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x0f, 0x83, 0x83, 0x03, 0x03, 0x0f, 0x0f, + 0x0f, 0x0f, 0xfc, 0xf8, 0xf8, 0x3c, 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0x07, 0x03, 0x03, 0x01, + 0x01, 0x1e, 0xf8, 0xf8, 0xf0, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x08, 0x18, 0x18, 0x38, 0x3c, + 0x1f, 0x1f, 0x3e, 0x7c, 0xf3, 0x8f, 0x0f, 0x1e, 0x07, 0x06, 0x18, 0x00, 0x00, 0x00, 0xe0, 0xfc, + 0xfe, 0xfe, 0x1f, 0x0f, 0x03, 0x01, 0x01, 0x01, 0x0f, 0x0f, 0x3f, 0xfe, 0xfc, 0xf8, 0x80, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xdf, 0x8f, 0x3e, 0x1f, 0x0f, 0x0f, 0x07, 0x03, 0xf3, 0xf6, + 0xfa, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x01, 0x01, 0x3e, 0x7c, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, + 0x00, 0x01, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x38, 0x10, 0x00, 0xff, 0xff, + 0xff, 0xf7, 0xe7, 0x00, 0x1c, 0x1d, 0x1f, 0x1f, 0x0f, 0x1f, 0x0f, 0x0f, 0x1f, 0x3e, 0xf8, 0xf0, + 0xe0, 0xe0, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x3f, 0x3f, 0x1f, 0x1e, 0x1e, 0x3c, + 0x3c, 0xc0, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf7, 0xe7, 0x00, 0x3e, 0x7e, 0xfe, 0xfe, 0x78, + 0x1e, 0x1e, 0x1e, 0x1e, 0x79, 0xff, 0xff, 0xfc, 0xff, 0xfe, 0xf0, 0xf0, 0xe0, 0x07, 0x3f, 0x1f, + 0x3f, 0x3f, 0x7c, 0x78, 0x1e, 0x3c, 0x3c, 0x3c, 0xe0, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xfb, 0xe7, + 0x00, 0x1c, 0x1d, 0x1f, 0x1f, 0x03, 0x07, 0x07, 0x3e, 0x7c, 0x78, 0xf8, 0xf0, 0xe0, 0xe7, 0x7f, + 0xff, 0xbf, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0x3c, 0x38, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfb, 0xf3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x0e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Arasaka_Glitch_6', 128x32px + static const char bmp_Arasaka_Glitch_6 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, + 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x03, 0x07, 0x0f, 0xff, 0xfe, + 0xfc, 0x78, 0x70, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xc7, 0x87, 0x07, 0x07, 0x07, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x3f, 0x3f, 0x3f, 0x3c, 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0x1f, 0x0f, 0x03, 0x01, + 0x01, 0x01, 0x03, 0x03, 0x07, 0xff, 0xff, 0xfe, 0x7c, 0x78, 0x00, 0x82, 0x86, 0x86, 0x8e, 0x1e, + 0x3e, 0xf8, 0xf7, 0xe7, 0xe7, 0xc7, 0x87, 0x3c, 0x38, 0x30, 0x06, 0x00, 0x00, 0xc0, 0xe0, 0xf0, + 0xf8, 0xf8, 0x7c, 0x3c, 0x07, 0x03, 0x1e, 0x1e, 0x3e, 0x3e, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7c, 0x3c, 0x3e, 0x1f, 0x0f, 0x0f, 0x07, 0x03, 0xf3, 0xfd, + 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, + 0x01, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0x70, 0x60, 0x00, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7e, 0x00, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x0f, 0x1f, 0x1f, 0x3e, 0xf8, 0xf8, 0xf0, + 0xe0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0x1e, 0x3c, + 0x3c, 0x3c, 0x38, 0x30, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3e, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3c, + 0x3c, 0xf0, 0xf1, 0xf3, 0xf3, 0xff, 0xff, 0xf8, 0xf8, 0xf0, 0xfc, 0xfc, 0xf8, 0x01, 0x3f, 0x7f, + 0xff, 0xff, 0xf0, 0xe0, 0x3c, 0x78, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0x9f, + 0x00, 0x39, 0x3b, 0x3f, 0x3f, 0x0f, 0x1f, 0x1e, 0x3e, 0x7c, 0x78, 0xf8, 0xf0, 0xe0, 0xe7, 0xdf, + 0xbf, 0xbf, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0xe0, 0x40, 0x00, 0xff, 0xff, 0xff, 0xfd, 0xf9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 3168) + static const char* const bmp_Arasaka_Glitch_allArray[6] = { + bmp_Arasaka_Glitch_1, + bmp_Arasaka_Glitch_2, + bmp_Arasaka_Glitch_3, + bmp_Arasaka_Glitch_4, + bmp_Arasaka_Glitch_5, + bmp_Arasaka_Glitch_6 + }; + + // 'Arasaka_Dirty_1', 128x32px + static const char bmp_Arasaka_Dirty_1 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x0f, 0x3f, 0xf0, + 0xe0, 0xc0, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x0c, 0xc0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x7c, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xf0, 0x80, 0x80, 0x80, 0x1e, 0x1c, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x78, 0x3c, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x07, 0xf3, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xfc, 0xf8, 0xf0, 0x00, 0x00, + 0xc0, 0xf0, 0xf0, 0xfc, 0xf8, 0x7c, 0x78, 0x80, 0x80, 0x38, 0x01, 0x01, 0x01, 0x00, 0x00, 0x03, + 0x03, 0x03, 0x03, 0x00, 0x03, 0xf8, 0xf8, 0xf8, 0x00, 0x0f, 0x7c, 0x7c, 0xf8, 0x7c, 0x7c, 0x7c, + 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01, 0x07, 0xe0, 0xf8, 0xf0, 0xf0, 0x00, 0x00, 0x00, + 0x38, 0x3c, 0xc0, 0xc0, 0x00, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xc0, 0xf8, 0xf8, 0xe7, 0x7c, 0xc7, 0x87, 0x07, 0xfc, 0xf8, 0xf8, 0xf8, 0x00, 0xe0, 0xf8, 0xfc, + 0xfe, 0xff, 0xf0, 0xe0, 0x07, 0x07, 0x70, 0x78, 0x78, 0xf8, 0xf8, 0xff, 0xff, 0x80, 0x00, 0x00, + 0x00, 0x3c, 0x7f, 0xf0, 0xc0, 0xff, 0xf0, 0x78, 0x78, 0x3c, 0x1e, 0x1e, 0xe0, 0xe0, 0xe7, 0xf3, + 0xfd, 0xfe, 0x3d, 0x1e, 0x1e, 0x1e, 0x07, 0x3c, 0x3c, 0x07, 0x07, 0xff, 0xff, 0xff, 0xfe, 0xf8, + 0x01, 0x07, 0x1f, 0x3f, 0xff, 0x00, 0x00, 0x07, 0x07, 0x00, 0xc0, 0x80, 0x00, 0x00, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0x00, 0x72, 0x1f, 0x1f, 0x1f, 0x7c, 0x1f, 0x00, 0x00, 0x02, 0xf0, 0xf0, 0xf0, + 0x0f, 0x0f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x3f, 0x60, 0x1e, 0x1e, 0x1e, + 0xc0, 0xc0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8, 0xe0, 0x00, 0x00, 0x18, 0x18, 0x38, 0xc3, + 0xc7, 0x18, 0x19, 0x1b, 0x1e, 0xff, 0xff, 0xff, 0x03, 0x03, 0x01, 0x01, 0x7c, 0x00, 0x07, 0x0f, + 0x1f, 0x00, 0x01, 0x01, 0x3c, 0x78, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7f, 0x7f, 0xff, 0xff, 0xfc, + 0x00, 0x07, 0x07, 0xff, 0xff, 0x1f, 0x3e, 0x3c, 0x7c, 0xf8, 0xf0, 0xf0, 0x01, 0x00, 0x00, 0xdf, + 0xbf, 0xbf, 0xf8, 0xf0, 0xf0, 0xe0, 0xf0, 0x80, 0x00, 0xc0, 0x00, 0x03, 0x03, 0x03, 0x3f, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x78, 0x78, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, + 0x78, 0x78, 0x78, 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x06, 0x0e, 0x1e, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0e, 0x0c, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Arasaka_Dirty_2', 128x32px + static const char bmp_Arasaka_Dirty_2 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xf0, 0xf8, 0x78, 0x3c, 0x3c, 0x3c, 0x1c, 0x1e, 0x07, 0x07, 0x8f, + 0xff, 0xff, 0xfe, 0x7c, 0x70, 0x80, 0xf8, 0xff, 0xff, 0xff, 0x47, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x1f, 0x1f, 0x1f, 0x9f, 0x86, 0xe0, 0xf8, 0xf8, 0xfc, 0xfe, 0x1e, 0x0f, + 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0x1f, 0xdc, 0xc0, 0xc0, 0xc3, 0x03, + 0x07, 0x0f, 0x3f, 0x7f, 0x7f, 0xfc, 0xfc, 0xf8, 0x87, 0x07, 0x07, 0x07, 0x06, 0x18, 0x00, 0x00, + 0xc0, 0xe0, 0xf0, 0xf8, 0x78, 0x3c, 0x3c, 0x3c, 0x1c, 0x1e, 0x1e, 0x3e, 0xfe, 0xfc, 0xf8, 0xf0, + 0xe0, 0x80, 0x00, 0xc0, 0xfe, 0xfe, 0xfe, 0xfe, 0xe0, 0xf0, 0xf0, 0x78, 0x3c, 0x3c, 0x3e, 0x07, + 0xf3, 0xf3, 0xfd, 0xfe, 0x1e, 0x0f, 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x1f, 0xff, 0xfe, 0xfc, + 0xdc, 0xdc, 0xdf, 0xd3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x80, 0x00, 0xc0, 0x7c, 0x0c, 0x3f, 0x3f, + 0x3f, 0x63, 0xd7, 0x14, 0x16, 0x16, 0x07, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3e, 0x78, 0x70, 0x70, + 0x60, 0x60, 0x60, 0x40, 0x40, 0x00, 0x00, 0x08, 0x1b, 0x1b, 0x3f, 0x73, 0xf0, 0xe0, 0xe0, 0xe0, + 0xc0, 0x80, 0x80, 0xf4, 0x74, 0x3f, 0x1f, 0x1e, 0x1b, 0x1f, 0x04, 0x07, 0x0f, 0x1f, 0x1f, 0x1e, + 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0x04, 0x3c, 0x7c, 0xfc, 0xff, + 0xf3, 0xe3, 0xe3, 0xc3, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0x03, 0x73, + 0x77, 0x7f, 0x7c, 0x3f, 0x7f, 0x7b, 0xfb, 0xf3, 0xe1, 0xe0, 0xc0, 0x80, 0x9c, 0xdc, 0xfc, 0xff, + 0xbf, 0xbb, 0x78, 0x70, 0x70, 0xf0, 0xe0, 0xc0, 0xc0, 0xfc, 0x3c, 0xff, 0xff, 0xff, 0xc3, 0xc3, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Arasaka_Dirty_3', 128x32px + static const char bmp_Arasaka_Dirty_3 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x08, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3c, 0x38, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xf0, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xfc, 0xfc, 0xc0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x01, 0x03, 0xff, 0xff, + 0xf8, 0xf0, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x00, 0x00, 0x00, 0x81, 0x01, 0x0f, 0x0f, + 0x0f, 0x0f, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xfe, 0x1f, 0x0f, 0x3c, 0x1c, + 0x1e, 0x07, 0x0f, 0x0f, 0x1f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3e, 0x7e, 0x18, 0x38, 0x78, + 0xe0, 0xf8, 0xf7, 0xe7, 0xe7, 0xc7, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xfc, + 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x01, 0x01, 0x07, 0x3f, 0xf0, 0xe0, 0x00, 0x00, + 0x00, 0xfc, 0x7f, 0x9f, 0x9f, 0x9f, 0x9b, 0x91, 0xc0, 0x80, 0x80, 0x0f, 0x07, 0x03, 0xf3, 0xfd, + 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0xc0, 0xc0, 0x3c, 0x00, 0x01, 0xff, 0xff, 0xf8, 0xf0, 0xe0, + 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0x1f, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x1c, 0x18, 0x00, 0x1f, 0x1f, + 0xff, 0xff, 0xff, 0x00, 0x1c, 0x1d, 0x1f, 0x1f, 0x0f, 0xe0, 0x8c, 0x8c, 0x0f, 0x8f, 0xf8, 0xf0, + 0xe0, 0xe0, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x0e, 0x00, 0x03, 0x07, 0x3f, 0x7c, 0x78, 0xe0, 0xc0, + 0xc0, 0xf0, 0xe0, 0xc0, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xf0, + 0xc3, 0xf0, 0xf1, 0xf3, 0xf3, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x70, 0xf0, 0x1f, + 0x3f, 0x3f, 0x7c, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc7, 0xc7, 0xfe, 0xfc, + 0x00, 0x87, 0x1c, 0x03, 0x03, 0x01, 0x03, 0x03, 0x47, 0x0f, 0x07, 0xf8, 0xf0, 0xe0, 0xe7, 0xdf, + 0xbf, 0xbf, 0x7c, 0x78, 0x78, 0xf0, 0x03, 0x03, 0x00, 0xc0, 0x00, 0xf0, 0xf0, 0xff, 0xff, 0xff, + 0x01, 0x07, 0x1f, 0x3f, 0x3f, 0x7c, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x70, 0x60, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Arasaka_Dirty_4', 128x32px + static const char bmp_Arasaka_Dirty_4 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x03, 0x03, 0x0b, 0x3f, 0x3f, 0xff, 0xd0, + 0x80, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, + 0xf8, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xe0, 0xe0, 0xf0, 0xf0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0xf8, 0xf8, 0xfe, 0xcf, 0xc7, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x00, 0x00, 0xe8, 0xfd, 0xd0, 0x9e, 0x0e, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0xdc, 0xce, 0xce, 0xf6, 0x7e, 0x3e, 0x3a, 0x3a, 0x3c, 0x1c, 0x1c, 0x1c, 0x5e, + 0xf8, 0xf8, 0xfe, 0xcf, 0xc7, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0, 0xf0, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x80, 0x00, + 0x03, 0x03, 0x3f, 0x3f, 0x0f, 0x4d, 0x71, 0xf0, 0xf0, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x02, 0x0f, 0x7f, 0xff, 0xfd, 0xe8, 0x80, 0x80, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xe6, 0xc6, 0x87, 0x87, 0x07, 0x70, 0x70, + 0x70, 0x40, 0x44, 0x07, 0x18, 0x1b, 0x07, 0x07, 0x0f, 0x3e, 0x8e, 0x8f, 0x07, 0x07, 0x07, 0x17, + 0x7f, 0xe0, 0xe0, 0xff, 0x9f, 0x9f, 0x1f, 0x06, 0x7e, 0x7e, 0x7f, 0x7f, 0x39, 0x3d, 0x9c, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 0xc0, 0x80, 0x3e, 0x3e, 0xfe, 0xfa, 0xf2, + 0x00, 0x03, 0x07, 0x07, 0x0f, 0x3e, 0x3c, 0x3c, 0x78, 0x78, 0x78, 0x78, 0x38, 0x10, 0x67, 0xff, + 0xfe, 0xe8, 0xcf, 0x07, 0xcf, 0xbf, 0xf1, 0xf1, 0xf1, 0x3e, 0x1c, 0x3c, 0xb8, 0xf0, 0x0f, 0x0f, + 0x0f, 0x0f, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x00, 0x8e, 0x0e, 0x0e, 0x01, 0x1e, + 0x1e, 0x1e, 0x1e, 0x0e, 0x20, 0xcf, 0xcf, 0xff, 0xfe, 0xfc, 0x30, 0x30, 0x70, 0xf0, 0xf0, 0xf0, + 0xf0, 0xd0, 0xf1, 0xf3, 0xf3, 0xff, 0xff, 0xe0, 0xe0, 0xc0, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x78, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x0d, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x1e, 0x1c, 0x78, 0x78, 0xf0, 0xf0, 0xf7, 0x38, + 0x38, 0x38, 0xc0, 0x80, 0x80, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x0f, 0x0f, 0x0f, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x9c, 0xfc, 0xfc, 0xe0, + 0xe1, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x33, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, + 0x3e, 0x7e, 0x07, 0x07, 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 2112) + static const char* const bmp_Arasaka_Dirty_allArray[4] = { + bmp_Arasaka_Dirty_1, + bmp_Arasaka_Dirty_2, + bmp_Arasaka_Dirty_3, + bmp_Arasaka_Dirty_4 + }; + + uint16_t frame_size = sizeof(bmp_Arasaka_Clean); + + if (layer_changed) // flash_current_layer will change layer_changed to false after a short time, resuming the animation + flash_current_layer(); + + else if (timer_elapsed(animation_timer) > FRAME_DURATION) { + // Set animation_timer to updated time + animation_timer = timer_read(); + + //1. Do we have glitch set + if(glitch){ + //Randomly pick a glitch frame (add one to frame count) + current_frame = rand() % 7; + if(current_frame < 6){ + oled_write_raw_P(bmp_Arasaka_Glitch_allArray[current_frame], frame_size); + return; + } + glitch = false; + } + + //2. Do we have dirty set + if(dirty){ + //Randomly pick a dirty frame (add one to frame count) + current_frame = rand() % 5; + if(current_frame < 4){ + oled_write_raw_P(bmp_Arasaka_Dirty_allArray[current_frame], frame_size); + return; + } + + //So occasionally we want to glitch to somewhere else, we just do a rand and set a flag + if(rand() % 100 > 85) { hidden = true;} + dirty = false; + } + + //3. Not glitch or dirty do probability loop + //Lets get a random number between 0 and 99 + //We can use this to weight the chance of a clean, glitch or dirty + + uint8_t rand_weight = rand() % 100; + if(rand_weight < 85){ + FRAME_DURATION = 100; + glitch = false; + dirty = false; + oled_write_raw_P(bmp_Arasaka_Clean, frame_size); + } else if(rand_weight < 95){ + //Up the frame rate for the glitch frames + FRAME_DURATION = 50; + //Randomly pick a glitch frame + current_frame = rand() % 6; + glitch = true; + dirty = false; + oled_write_raw_P(bmp_Arasaka_Glitch_allArray[current_frame], frame_size); + }else{ + //Up the frame rate for the dirty frames + FRAME_DURATION = 50; + //Randomly pick a dirty frame + current_frame = rand() % 4; + glitch = false; + dirty = true; + oled_write_raw_P(bmp_Arasaka_Dirty_allArray[current_frame], frame_size); + } + } +} + +static void render_Hidden_animation(void) { + + // 'Hidden_Clean', 128x32px + static const char bmp_Hidden_Clean [] PROGMEM = { + 0x00, 0x00, 0x00, 0xfe, 0x02, 0x72, 0x72, 0x72, 0x02, 0x02, 0xfe, 0x00, 0xf0, 0xa2, 0xa0, 0x84, + 0xce, 0x5e, 0x22, 0x20, 0x3c, 0xb0, 0xe2, 0x00, 0xfe, 0x02, 0x72, 0x72, 0x72, 0x72, 0x02, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x38, 0x28, 0x00, + 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x38, 0x10, 0x00, + 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x78, 0x78, 0xf8, 0x78, 0x78, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x31, 0x69, 0x39, 0x79, 0x79, 0x39, 0xa9, 0xe0, 0x03, 0x80, 0x81, 0x01, + 0x00, 0xdf, 0xb8, 0xae, 0x66, 0x66, 0x33, 0xe0, 0x89, 0x39, 0x29, 0x29, 0x29, 0x89, 0xb1, 0xe1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0x98, 0x98, 0x98, 0xf8, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xf0, 0x98, 0x98, 0x98, 0xf8, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x10, 0x18, + 0x18, 0x18, 0x98, 0xf8, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x06, 0x02, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xf0, 0x78, 0x3c, 0x3c, 0x7c, 0xf8, 0xf0, 0xe0, 0xc0, + 0x80, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x9e, 0x83, 0x94, 0x90, 0x88, 0x88, 0x88, 0x95, 0x03, 0x0c, 0x37, 0xf7, 0xff, + 0x1c, 0x35, 0xf1, 0x87, 0x0c, 0x00, 0xf2, 0x13, 0x95, 0x1e, 0xfc, 0xe6, 0x06, 0x91, 0x87, 0x8d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1d, 0x0f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x0f, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x1c, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x20, 0x20, 0x20, 0x00, + 0x00, 0x00, 0x83, 0xc3, 0xe3, 0xf3, 0x79, 0x3c, 0x1e, 0x0f, 0x0f, 0x0f, 0x1e, 0x3d, 0x79, 0xf3, + 0xe3, 0xe3, 0xe3, 0xe3, 0xe1, 0xe0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x40, 0x4e, 0x4e, 0x4e, 0x40, 0x40, 0x7f, 0x00, 0x4f, 0x63, 0x03, 0x07, + 0x66, 0x42, 0x4a, 0x62, 0x22, 0x22, 0x33, 0x3e, 0x66, 0x62, 0x67, 0x7d, 0x7c, 0x4e, 0x45, 0x7d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x04, 0x04, 0x00, + 0x00, 0x00, 0x07, 0x0f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, + 0x1e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00 + }; + + // 'Hidden_Glitch_1', 128x34px + static const char bmp_Hidden_Glitch_1 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x80, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf8, 0xff, 0xff, 0xfb, 0xe8, 0xf8, 0xff, 0xb0, 0xdf, 0x7a, + 0xfa, 0xcc, 0xf4, 0xf0, 0xf2, 0xf2, 0xf3, 0xbe, 0xb0, 0x7f, 0xf8, 0xf8, 0xfb, 0xff, 0x3b, 0xf8, + 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd0, 0x50, 0xf0, 0xf0, 0xf0, 0x80, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0xd0, 0x50, 0xf0, 0xf0, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xf0, 0xf0, 0x80, 0x80, 0x00, 0x00, 0x40, + 0xc0, 0xe0, 0x70, 0xd0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0x11, 0x10, 0x00, + 0x00, 0x10, 0xff, 0xff, 0xff, 0xb3, 0xd3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xf3, 0xd3, 0xb0, 0x30, + 0x30, 0xff, 0xff, 0xff, 0x17, 0xfb, 0xff, 0xfb, 0xf3, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0x86, 0xff, 0xff, 0xf7, 0xd4, 0xfe, 0xff, 0x07, 0x7f, 0x7f, + 0xff, 0x7f, 0x3b, 0x7b, 0xef, 0x5e, 0x5d, 0xff, 0x7f, 0x7f, 0x7d, 0x7f, 0xff, 0x7f, 0x7e, 0x9e, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x1a, 0x0e, 0x07, 0x01, + 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x1e, 0x0e, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x18, 0x1c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x01, 0x01, 0x21, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7b, 0x79, 0x7d, 0x7c, 0x7c, 0x7d, 0x7f, 0x7f, 0xf7, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x79, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x16, 0x16, 0x16, 0x10, 0x10, 0x0f, 0x00, 0x17, 0x13, + 0x03, 0x03, 0x12, 0x10, 0x10, 0x10, 0x01, 0x09, 0x0f, 0x1a, 0x1a, 0x1b, 0x1b, 0x1e, 0x16, 0x12, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Hidden_Glitch_2', 128x34px + static const char bmp_Hidden_Glitch_2 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x80, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0xef, 0xc8, 0xef, 0xef, 0xeb, 0xe8, 0xe8, 0xef, 0x80, 0xff, 0xaa, + 0xaa, 0xcc, 0x64, 0xf0, 0xe2, 0xb2, 0xf3, 0xfe, 0x80, 0xef, 0xe8, 0xe8, 0xeb, 0xef, 0xeb, 0xc8, + 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x40, 0x40, 0x40, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x11, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x8f, 0xc7, 0xc7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc7, 0x87, 0x80, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xfe, 0xef, 0xbb, 0xbf, 0x9f, 0x9f, 0x9f, 0xff, 0x7f, 0xf9, 0xff, + 0xfe, 0xf8, 0xbf, 0xff, 0xef, 0xff, 0xdb, 0xfd, 0x7f, 0xff, 0xfe, 0xff, 0xff, 0xee, 0xe2, 0xef, + 0xff, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe3, 0x22, 0x3a, 0x3e, 0xe7, 0xc1, + 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0xc1, 0xe3, 0x22, 0x3e, 0x3e, 0xe7, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0xff, 0xff, 0x10, 0x10, 0x00, 0x00, 0x10, + 0x18, 0x1c, 0x96, 0xf3, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x03, 0xcf, 0xcf, 0xef, 0xff, 0xff, 0x7f, 0x3f, 0x3d, 0x3f, 0x7f, 0x7f, 0xff, 0xff, 0xef, + 0xef, 0xcf, 0xcf, 0xc7, 0xe3, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x10, 0x17, 0x17, 0x17, 0x11, 0x13, 0x0f, 0x00, 0x17, 0x13, + 0x03, 0x03, 0x13, 0x13, 0x13, 0x11, 0x01, 0x0b, 0x0f, 0x1b, 0x1b, 0x1b, 0x1b, 0x1f, 0x16, 0x12, + 0x1f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0d, 0x07, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0f, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x07, 0x07, 0x04, 0x04, 0x00, 0x00, 0x00, + 0x06, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x03, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0f, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Hidden_Glitch_3', 128x34px + static const char bmp_Hidden_Glitch_3 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x80, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0xdf, 0xd8, 0xff, 0xff, 0xff, 0xf8, 0xfc, 0x8f, 0x80, 0x1f, 0x0e, + 0x8e, 0x0c, 0x7c, 0xf0, 0xf2, 0xba, 0xbf, 0xfe, 0x8c, 0x2f, 0xfc, 0xf8, 0xff, 0xbf, 0x3f, 0xd8, + 0x9f, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x40, 0xd0, 0xd0, 0xf0, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xd0, 0xd0, 0xf0, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x50, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x50, + 0x50, 0x50, 0xd0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x11, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x83, 0xc3, 0xc3, 0xe3, 0xe3, 0xe3, 0xe3, 0xc3, 0x83, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x07, 0xfb, 0xff, 0xfb, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x9c, 0xfe, 0xc7, 0xe9, 0xe3, 0xd1, 0xd1, 0xd8, 0x8f, 0x07, 0xfc, 0xff, + 0xff, 0xfe, 0x7b, 0x6b, 0xee, 0x8f, 0x9d, 0xf5, 0xe7, 0xaf, 0x3e, 0xfc, 0xfe, 0xec, 0xe6, 0xce, + 0xdf, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02, 0x1f, 0x0f, 0x07, 0x01, + 0x00, 0x00, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x1f, 0x0f, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14, 0x14, 0x1f, 0x1f, 0x14, 0x14, 0x00, 0x00, 0x00, + 0x1e, 0x1f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x21, 0x23, 0x21, 0x00, + 0x00, 0x82, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xdf, 0xdf, 0xdf, 0xdf, 0xbf, 0xff, 0xf7, 0xe7, + 0xe7, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x10, 0x1f, 0x1f, 0x1f, 0x16, 0x1f, 0x1f, 0x00, 0x1f, 0x1b, + 0x13, 0x1b, 0x13, 0x13, 0x1f, 0x1b, 0x1b, 0x0b, 0x0f, 0x1f, 0x1b, 0x1b, 0x1f, 0x1f, 0x1f, 0x17, + 0x1f, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x02, 0x02, 0x00, + 0x00, 0x03, 0x0f, 0x0f, 0x0f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x0e, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x3f, 0x3f, 0x3f, 0x0f, 0x3f, 0x3f, 0x3f, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + // 'Hidden_Glitch_4', 128x34px + static const char bmp_Hidden_Glitch_4 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x80, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc8, 0x8f, 0xef, 0xeb, 0xe8, 0xc8, 0x8f, 0x80, 0x1f, 0x0a, + 0x0a, 0x0c, 0x64, 0x70, 0xe2, 0xb2, 0x93, 0x9e, 0x80, 0x0f, 0x68, 0xe8, 0x8b, 0x8f, 0x0b, 0xc8, + 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0x40, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0xf8, 0xf8, 0x40, 0x40, 0x00, 0x00, 0x40, + 0x60, 0x70, 0x58, 0xc8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x11, 0x00, 0x00, + 0x00, 0x08, 0xff, 0xff, 0xff, 0xdb, 0xeb, 0xe3, 0xf3, 0xf3, 0xf3, 0xf3, 0xfb, 0xeb, 0xd8, 0x98, + 0x98, 0xff, 0xff, 0xff, 0x87, 0xfb, 0xff, 0xfb, 0xf3, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb8, 0xfc, 0x8e, 0xf9, 0xe0, 0xb1, 0xb0, 0xf0, 0x9b, 0x0f, 0xf8, 0xfe, + 0xfe, 0xf8, 0x78, 0xfa, 0xea, 0x9e, 0x39, 0xe8, 0xef, 0xfa, 0x7c, 0xf8, 0xf8, 0xfc, 0xc0, 0x9e, + 0x9b, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x3a, 0x3e, 0x0f, 0x01, + 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x3e, 0x1e, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x18, 0x1c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x02, 0xdf, 0xff, 0xff, 0xff, 0x7b, 0x3d, 0x3c, 0x3c, 0x3c, 0x3d, 0x3f, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x00, 0x3f, 0x37, + 0x07, 0x37, 0x36, 0x37, 0x3f, 0x3b, 0x13, 0x1b, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x37, + 0x3f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 2624) + static const char* const bmp_Hidden_Glitch_allArray[4] = { + bmp_Hidden_Glitch_1, + bmp_Hidden_Glitch_2, + bmp_Hidden_Glitch_3, + bmp_Hidden_Glitch_4 + }; + + // 'Hidden_Dirty_1', 128x32px + static const char bmp_Hidden_Dirty_1 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x20, 0xa0, 0xa0, 0xa0, 0x20, 0x20, 0xc0, 0x00, 0x80, 0x00, + 0x00, 0x60, 0x60, 0x60, 0x00, 0x40, 0xc0, 0x00, 0x00, 0xe0, 0x20, 0x80, 0xb0, 0xf0, 0xb0, 0x80, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xc0, 0x40, 0xc0, 0xc0, 0xc0, 0x40, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x86, 0x89, 0x77, 0xf5, 0x74, 0x64, 0xc7, 0xc0, 0x0f, 0x05, + 0x05, 0x06, 0x32, 0x38, 0x71, 0x59, 0xc9, 0x4f, 0xc0, 0x07, 0x34, 0x8e, 0x88, 0xc8, 0x00, 0xec, + 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x20, 0x20, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x0d, 0xef, 0xe7, 0x73, 0x73, 0x73, 0x77, 0xff, 0xee, 0xdc, 0x9c, + 0x1c, 0x1f, 0xf1, 0xf0, 0xf8, 0xff, 0xbf, 0xbf, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x42, 0x44, 0x03, 0x47, 0x43, 0x03, 0x0e, 0x1e, 0xf0, 0xa1, + 0xa1, 0xcc, 0x4c, 0x0d, 0x21, 0x3b, 0x24, 0x80, 0x9f, 0x29, 0xf2, 0xb3, 0xbf, 0xe0, 0x60, 0x28, + 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1c, 0x04, 0x04, 0x04, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x03, 0x07, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x1f, 0x9f, 0xce, 0x39, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x39, 0x3b, 0x3b, + 0x3f, 0x3f, 0xe3, 0xe3, 0xf3, 0xf3, 0x73, 0x73, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x08, 0x0b, 0x1a, 0x1a, 0x02, 0x02, 0x1e, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x0e, 0x00, 0x04, 0x07, 0x1c, 0x08, 0x08, 0x0d, 0x0d, 0x0f, 0x0b, 0x09, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x1c, 0x1c, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1b, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00 + }; + // 'Hidden_Dirty_2', 128x32px + static const char bmp_Hidden_Dirty_2 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0xa0, 0xa0, 0x20, 0x20, 0xc0, 0x00, 0x80, 0x00, + 0x00, 0x20, 0x60, 0x60, 0x00, 0x40, 0x10, 0x10, 0x00, 0x20, 0x20, 0x20, 0xa0, 0xa0, 0xa0, 0xe0, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x20, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x10, 0x30, 0xa0, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x40, 0xc0, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x77, 0xf5, 0x74, 0x64, 0x43, 0x80, 0x21, 0x00, + 0xb1, 0xe0, 0x02, 0x08, 0x01, 0x01, 0x00, 0x40, 0x50, 0x40, 0x00, 0x00, 0x00, 0x47, 0x05, 0x50, + 0xd4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x20, 0x20, 0x20, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0x21, 0xa0, 0x20, 0xef, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x18, 0x29, 0xef, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x2a, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x1c, 0x87, 0xb9, 0x0e, 0x06, 0x71, 0x71, 0x71, 0x00, 0x02, 0xb1, 0x60, 0x80, + 0x80, 0x0f, 0x0f, 0x3f, 0x03, 0xfd, 0xff, 0x00, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x41, 0x18, 0x10, 0x00, 0x00, 0xc9, 0x09, 0x04, 0x01, + 0xf8, 0x98, 0x00, 0x00, 0x08, 0x10, 0x80, 0xf0, 0x90, 0x00, 0x1c, 0x9c, 0xf4, 0x08, 0x0c, 0x47, + 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0x03, 0x11, 0x07, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01, 0x31, 0x11, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0f, 0x08, 0x04, 0x08, 0x00, 0x00, 0x00, + 0x0c, 0x0e, 0x03, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xe0, 0x0d, 0x16, 0x00, 0x04, 0x35, 0x37, 0x37, 0x0e, 0x1f, 0xf0, 0xa5, 0x15, + 0x05, 0x6c, 0x6c, 0xee, 0x60, 0x00, 0x80, 0x44, 0x18, 0xe0, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x08, 0x0b, 0x03, 0x01, 0x08, 0x08, 0x07, 0x00, 0x0b, 0x09, + 0x01, 0x01, 0x00, 0x00, 0x08, 0x08, 0x00, 0x04, 0x07, 0x0d, 0x0d, 0x0d, 0x0d, 0x04, 0x03, 0x09, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x1b, 0x1b, 0x1b, 0x07, 0x07, 0x06, 0x06, 0x08, + 0x08, 0x18, 0x18, 0x18, 0x18, 0x08, 0x08, 0x07, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00 + }; + // 'Hidden_Dirty_3', 128x32px + static const char bmp_Hidden_Dirty_3 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x00, 0x00, 0xa0, 0xa0, 0x40, 0x00, 0x00, 0xc0, + 0x80, 0x80, 0x60, 0x60, 0x00, 0x40, 0xc0, 0x00, 0x00, 0xe0, 0x20, 0x20, 0xa0, 0xa0, 0xa0, 0x20, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc0, 0x20, 0x00, 0x20, 0x20, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, + 0x00, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x41, 0x00, 0x60, 0x50, 0x64, 0x44, 0x40, 0x80, 0x10, 0x10, + 0x10, 0x11, 0x40, 0x22, 0x47, 0x01, 0x01, 0x01, 0x00, 0x07, 0x14, 0x14, 0x05, 0x47, 0x05, 0x64, + 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xb0, 0xa0, 0x20, 0xe0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x20, 0x20, 0x20, 0xef, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0xe0, 0xe0, 0x00, 0x40, 0x00, 0x00, 0x20, + 0x20, 0x20, 0x20, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x7f, 0x04, 0xb8, 0xdc, 0xed, 0x71, 0x71, 0x71, 0x11, 0x21, 0x41, 0x00, 0x1c, + 0x18, 0x60, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x1f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0c, 0x04, 0x40, 0x40, 0xc0, 0x00, 0x8c, 0xb7, + 0xff, 0x9c, 0x04, 0x32, 0x60, 0x00, 0x80, 0xe0, 0x80, 0x00, 0x40, 0x48, 0x00, 0x04, 0x00, 0x58, + 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0c, 0x17, 0x33, 0x20, + 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x00, 0x18, 0xf1, 0x91, 0x97, 0x97, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xe3, 0xe7, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x0c, 0x0e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xec, 0xec, 0xf4, 0x7a, 0x3a, 0x1b, 0xc0, 0xc0, 0xc0, 0x00, 0x20, 0x40, 0x0c, 0x48, + 0xc8, 0xd8, 0xdc, 0xe0, 0xf0, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0b, 0x0b, 0x0b, 0x08, 0x08, 0x07, 0x00, 0x0b, 0x09, + 0x01, 0x01, 0x09, 0x08, 0x08, 0x08, 0x00, 0x04, 0x07, 0x11, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x09, 0x09, 0x09, 0x09, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x00, 0x00, 0x00, 0x00 + }; + // 'Hidden_Dirty_4', 128x32px + static const char bmp_Hidden_Dirty_4 [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x20, 0xa0, 0xa0, 0xa0, 0x20, 0x20, 0xc0, 0x00, 0x80, 0x00, + 0x00, 0x60, 0x60, 0x60, 0x00, 0x40, 0xc0, 0x00, 0x00, 0xe0, 0x20, 0x20, 0xa0, 0xa0, 0xa0, 0x20, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xe4, 0xc7, 0x7f, 0xfd, 0x7d, 0x7d, 0xf7, 0xf0, 0x8f, 0x05, + 0x05, 0x86, 0xb2, 0x38, 0x71, 0x59, 0xc9, 0x4f, 0xc0, 0x07, 0xb4, 0xf4, 0xf5, 0xf7, 0xb5, 0xe4, + 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x20, 0x20, 0x20, 0xe0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x20, 0x20, 0x20, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0xe1, 0xe1, 0x01, 0x01, 0x00, 0x00, 0x20, + 0x20, 0x20, 0x20, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xe1, 0xef, 0xf7, 0xf7, 0xf7, 0xff, 0xff, 0xc1, 0x80, 0x80, + 0x80, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x6f, 0xdc, 0x50, 0x5a, 0x5a, 0x50, 0xf1, 0x03, 0x8f, 0xf7, + 0xff, 0x9d, 0x1c, 0x7f, 0xfb, 0x3f, 0xa6, 0xf2, 0x9f, 0x2d, 0xde, 0x9e, 0xfc, 0xce, 0x00, 0xef, + 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3d, 0x25, 0x4d, 0xcf, 0xfb, 0x30, + 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x8f, 0x87, 0x83, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0f, 0x0f, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x0c, 0x0e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x79, 0xbd, 0x1d, 0x0e, 0x0e, 0x0e, 0x0e, 0x1f, 0x3f, 0x7f, 0x7f, + 0xef, 0xef, 0xef, 0xe3, 0xf0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x08, 0x0b, 0x0b, 0x0b, 0x08, 0x08, 0x07, 0x00, 0x0b, 0x0d, + 0x07, 0x07, 0x0f, 0x0c, 0x0b, 0x08, 0x04, 0x07, 0x1f, 0x0d, 0x0f, 0x1f, 0x1f, 0x0f, 0x0b, 0x09, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x04, 0x1c, 0x1c, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00 + }; + + // Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 2112) + static const char* const bmp_Hidden_Dirty_allArray[4] = { + bmp_Hidden_Dirty_1, + bmp_Hidden_Dirty_2, + bmp_Hidden_Dirty_3, + bmp_Hidden_Dirty_4 + }; + + uint16_t frame_size = sizeof(bmp_Hidden_Clean); + + if (layer_changed) // flash_current_layer will change layer_changed to false after a short time, resuming the animation + flash_current_layer(); + + else if (timer_elapsed(animation_timer) > FRAME_DURATION) { + // Set animation_timer to updated time + animation_timer = timer_read(); + + //1. Do we have glitch set + if(glitch){ + //Randomly pick a glitch frame (add one to frame count) + current_frame = rand() % 7; + if(current_frame < 6){ + oled_write_raw_P(bmp_Hidden_Glitch_allArray[current_frame], frame_size); + return; + } + glitch = false; + } + + //2. Do we have dirty set + if(dirty){ + //Randomly pick a dirty frame (add one to frame count) + current_frame = rand() % 5; + if(current_frame < 4){ + oled_write_raw_P(bmp_Hidden_Dirty_allArray[current_frame], frame_size); + return; + } + //Slightly higher prob of glitching back + if(rand() % 100 > 75) { hidden = false;} + dirty = false; + } + + //3. Not glitch or dirty do probability loop + //Lets get a random number between 0 and 99 + //We can use this to weight the chance of a clean, glitch or dirty + + uint8_t rand_weight = rand() % 100; + if(rand_weight < 85){ + FRAME_DURATION = 100; + glitch = false; + dirty = false; + oled_write_raw_P(bmp_Hidden_Clean, frame_size); + } else if(rand_weight < 95){ + //Up the frame rate for the glitch frames + FRAME_DURATION = 50; + //Randomly pick a glitch frame + current_frame = rand() % 6; + glitch = true; + dirty = false; + oled_write_raw_P(bmp_Hidden_Glitch_allArray[current_frame], frame_size); + }else{ + //Up the frame rate for the dirty frames + FRAME_DURATION = 50; + //Randomly pick a dirty frame + current_frame = rand() % 4; + glitch = false; + dirty = true; + oled_write_raw_P(bmp_Hidden_Dirty_allArray[current_frame], frame_size); + } + } +} + +static void render_layers(void) { + static const char pop[][525] = { + { + // 'Pop1', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0xf0, 0xf0, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0xf0, 0xf0, 0xb0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xb0, 0xf0, 0xf0, 0x40, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0xb0, 0xf0, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x07, 0x1f, 0x1e, 0x3c, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x70, 0x1c, 0x1f, 0x0f, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x0f, 0x1f, 0x1c, 0x70, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0x3c, 0x1e, 0x1f, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1e, 0x78, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x38, 0x1e, 0x1f, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x5e, 0xf8, 0xe0, 0xc0, 0x04, 0x0e, + 0x0e, 0x00, 0xc0, 0xf0, 0xf8, 0x4e, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0e, 0xf8, 0xf0, 0xc0, 0x00, 0x0e, + 0x0e, 0x04, 0xc0, 0xe0, 0xf8, 0x5e, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0xfc, 0xf0, 0xc0, 0x80, 0x0c, + 0x0e, 0x0c, 0x80, 0xe0, 0xf8, 0x7c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, + 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0f, 0x0f, 0x0c, + 0x0c, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x0f, 0x0e, + 0x0c, 0x0f, 0x0f, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0e, + 0x0c, 0x0e, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + // 'Pop2', 128x32px + 0x00, 0xc0, 0xf0, 0xf0, 0xb0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xb0, 0xf0, 0xf0, 0x40, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0xb0, 0xf0, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x1f, 0x1e, 0x38, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x78, 0x1e, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x0f, 0x1f, 0x1c, 0x70, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0x3c, 0x1e, 0x1f, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1e, 0x78, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x38, 0x1e, 0x1f, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x7c, 0xf8, 0xe0, 0x80, 0x0c, 0x0e, + 0x0c, 0x80, 0xc0, 0xf0, 0xfc, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x1e, + 0x0f, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0e, 0xf8, 0xf0, 0xc0, 0x00, 0x0e, + 0x0e, 0x04, 0xc0, 0xe0, 0xf8, 0x5e, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0xfc, 0xf0, 0xc0, 0x80, 0x0c, + 0x0e, 0x0c, 0x80, 0xe0, 0xf8, 0x7c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0e, 0x0c, + 0x0e, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, + 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x0f, 0x0e, + 0x0c, 0x0f, 0x0f, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0e, + 0x0c, 0x0e, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + // 'Pop3', 128x32px + 0x00, 0xc0, 0xf0, 0xf0, 0xb0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 0xe0, 0x00, 0x00, + 0x00, 0x40, 0xf0, 0xf0, 0xb0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0xb0, 0xf0, 0xf0, 0xc0, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x1f, 0x1e, 0x38, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x78, 0x1e, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x07, 0x1f, 0x1e, 0x3c, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x70, 0x1c, 0x1f, 0x0f, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x1e, 0x78, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x38, 0x1e, 0x1f, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x7c, 0xf8, 0xe0, 0x80, 0x0c, 0x0e, + 0x0c, 0x80, 0xc0, 0xf0, 0xfc, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x5e, 0xf8, 0xe0, 0xc0, 0x04, 0x0e, + 0x0e, 0x00, 0xc0, 0xf0, 0xf8, 0x4e, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0xfc, 0xf0, 0xc0, 0x80, 0x0c, + 0x0e, 0x0c, 0x80, 0xe0, 0xf8, 0x7c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0e, 0x0c, + 0x0e, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0f, 0x0f, 0x0c, + 0x0c, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x0f, 0x0e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0e, + 0x0c, 0x0e, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + // 'Pop4', 128x32px + 0x00, 0xc0, 0xf0, 0xf0, 0xb0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 0xe0, 0x00, 0x00, + 0x00, 0x40, 0xf0, 0xf0, 0xb0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xb0, 0xf0, 0xf0, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x07, 0x1f, 0x1e, 0x38, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x78, 0x1e, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x07, 0x1f, 0x1e, 0x3c, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x70, 0x1c, 0x1f, 0x0f, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x0f, 0x1f, 0x1c, 0x70, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0x3c, 0x1e, 0x1f, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, + 0x07, 0x03, 0x01, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x7c, 0xf8, 0xe0, 0x80, 0x0c, 0x0e, + 0x0c, 0x80, 0xc0, 0xf0, 0xfc, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x5e, 0xf8, 0xe0, 0xc0, 0x04, 0x0e, + 0x0e, 0x00, 0xc0, 0xf0, 0xf8, 0x4e, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0e, 0xf8, 0xf0, 0xc0, 0x00, 0x0e, + 0x0e, 0x04, 0xc0, 0xe0, 0xf8, 0x5e, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x1f, 0x1f, 0x1d, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0e, 0x0c, + 0x0e, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0f, 0x0f, 0x0c, + 0x0c, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x0f, 0x0e, + 0x0c, 0x0f, 0x0f, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x0c, 0x0f, 0x0f, 0x0f, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + oled_write_raw_P(pop[get_highest_layer(layer_state)], sizeof(pop[0])); +} + +static void render_button_pressed(void) { + static const char pressed[] = { + // 'pressed', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x08, 0x08, 0x08, 0x90, 0x00, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x08, 0x00, 0xf0, 0x08, 0x08, 0x08, 0x90, 0x00, 0xf8, 0x20, + 0xd0, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x38, 0x08, 0x0c, 0x0c, 0x1e, 0x1e, + 0x1e, 0x1e, 0x0e, 0x0e, 0x0e, 0x0e, 0x1e, 0x3c, 0xf8, 0xf8, 0xd8, 0x10, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, + 0x01, 0x01, 0xc1, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x3c, 0x42, 0x81, 0x00, 0x02, 0x01, 0x21, 0x41, 0x42, + 0x40, 0x42, 0x41, 0x21, 0x01, 0x02, 0x00, 0x00, 0x01, 0x8f, 0xff, 0x3e, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x41, 0x22, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x10, 0x10, 0x11, 0x12, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x12, 0x11, 0x10, 0x10, + 0x10, 0x18, 0x2a, 0x45, 0xc4, 0x42, 0x42, 0x22, 0x21, 0x11, 0x12, 0xfe, 0x02, 0x02, 0x02, 0x02, + 0x7a, 0x84, 0x84, 0x4c, 0x3c, 0xfc, 0xfe, 0x87, 0x83, 0x99, 0xa4, 0xa2, 0x92, 0x44, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x42, 0x42, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x43, 0x42, 0x44, 0x3c, 0x04, + 0x0c, 0x08, 0x08, 0x08, 0x3c, 0x46, 0x43, 0x43, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + static const char not_pressed[] = { + // 'not_pressed', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x38, 0x08, 0x0c, 0x0c, 0x1e, 0x1e, + 0x1e, 0x1e, 0x0e, 0x0e, 0x0e, 0x0e, 0x1e, 0x3c, 0xf8, 0xf8, 0xd8, 0x10, 0xf0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0x10, 0x3c, 0x42, 0x81, 0x00, 0x02, 0x01, 0x21, 0x41, 0x42, + 0x40, 0x42, 0x41, 0x21, 0x01, 0x02, 0x00, 0x00, 0x01, 0x8f, 0xff, 0x3e, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x48, 0xc4, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0xc4, 0x48, 0x71, 0x02, 0x04, 0x04, 0x08, 0x09, 0x12, 0xfe, 0x02, 0x02, 0x02, 0x02, + 0x7a, 0x84, 0x84, 0x4c, 0x3c, 0xfc, 0xfe, 0x87, 0x83, 0x99, 0xa4, 0xa2, 0x92, 0x44, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x42, 0x43, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x42, 0x42, 0x43, 0x42, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x42, 0x43, 0x42, 0x44, 0x3c, 0x04, + 0x0c, 0x08, 0x08, 0x08, 0x3c, 0x46, 0x43, 0x43, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + if (layer_changed) + flash_current_layer(); + + else if (key_pressed) + oled_write_raw_P(pressed, sizeof(pressed)); + else + oled_write_raw_P(not_pressed, sizeof(not_pressed)); +} + +static void flash_current_layer(void) { + // will flash for 500 ms + if (timer_elapsed(flash_timer) > 500) + layer_changed = false; + + static const char flash[][525] = { + { + // 'flash1', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0xc0, 0xf0, 0x70, 0x78, 0x38, 0x1c, 0x1c, 0x0c, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x18, 0x18, 0x10, 0x30, 0x60, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x38, 0x1c, 0x18, 0x0c, 0x8c, 0x86, 0x06, 0x03, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x81, 0x81, 0x82, + 0x80, 0x84, 0x88, 0x88, 0x90, 0x10, 0x30, 0x20, 0x60, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x38, 0x18, 0x30, 0x31, 0x61, 0x60, 0xc0, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x81, 0x81, 0x41, + 0x01, 0x21, 0x11, 0x11, 0x09, 0x18, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x03, 0x0f, 0x0e, 0x1e, 0x1c, 0x38, 0x38, 0x30, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x18, 0x18, 0x08, 0x0c, 0x06, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + { + // 'flash2', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0xc0, 0xf0, 0x70, 0x78, 0x38, 0x1c, 0x1c, 0x0c, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x18, 0x18, 0x10, 0x30, 0x60, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x38, 0x1c, 0x18, 0x0c, 0x8c, 0x86, 0x06, 0x03, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x81, 0x81, 0x82, + 0x80, 0x84, 0x88, 0x88, 0x90, 0x10, 0x30, 0x20, 0x60, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x38, 0x18, 0x30, 0x31, 0x61, 0x60, 0xc0, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1e, + 0x3c, 0x78, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x81, 0x81, 0x41, + 0x01, 0x21, 0x11, 0x11, 0x09, 0x18, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x03, 0x0f, 0x0e, 0x1e, 0x1c, 0x38, 0x38, 0x30, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x18, 0x18, 0x08, 0x0c, 0x06, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + // 'flash3', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0xc0, 0xf0, 0x70, 0x78, 0x38, 0x1c, 0x1c, 0x0c, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x18, 0x18, 0x10, 0x30, 0x60, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x38, 0x1c, 0x18, 0x0c, 0x8c, 0x86, 0x06, 0x03, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x81, 0x81, 0x82, + 0x80, 0x84, 0x88, 0x88, 0x90, 0x10, 0x30, 0x20, 0x60, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x38, 0x18, 0x30, 0x31, 0x61, 0x60, 0xc0, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, + 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x81, 0x81, 0x41, + 0x01, 0x21, 0x11, 0x11, 0x09, 0x18, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x03, 0x0f, 0x0e, 0x1e, 0x1c, 0x38, 0x38, 0x30, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x18, 0x18, 0x08, 0x0c, 0x06, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { + // 'flash4', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0xc0, 0xf0, 0x70, 0x78, 0x38, 0x1c, 0x1c, 0x0c, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x18, 0x18, 0x10, 0x30, 0x60, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0x70, 0x78, 0x38, 0x1c, 0x18, 0x0c, 0x8c, 0x86, 0x06, 0x03, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x07, + 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x81, 0x81, 0x82, + 0x80, 0x84, 0x88, 0x88, 0x90, 0x10, 0x30, 0x20, 0x60, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0e, 0x1e, 0x1c, 0x38, 0x18, 0x30, 0x31, 0x61, 0x60, 0xc0, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x70, 0x70, 0x70, 0x70, 0x70, 0xff, 0xff, 0xff, 0x70, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0x71, 0x73, 0x77, 0x7f, 0x7e, 0x7c, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x81, 0x81, 0x41, + 0x01, 0x21, 0x11, 0x11, 0x09, 0x18, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x03, 0x0f, 0x0e, 0x1e, 0x1c, 0x38, 0x38, 0x30, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x18, 0x18, 0x08, 0x0c, 0x06, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + oled_write_raw_P(flash[get_highest_layer(layer_state)], sizeof(flash[0])); +} + +static void render_daisy_logo(void){ + static const char Daisy_OLED[] = { + // 'Daisy-Logo', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xd8, 0xd8, 0x00, 0x40, 0xc0, + 0x40, 0xd8, 0x00, 0xfc, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x0c, 0x06, 0x03, 0x01, 0x88, 0x00, 0x62, 0x62, 0x62, 0x00, 0x88, 0x00, + 0x62, 0x62, 0x62, 0x00, 0x88, 0x01, 0x03, 0x06, 0x0c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc2, 0xfe, 0xfe, 0xfe, 0x06, 0x02, 0x02, 0x02, 0x02, 0xfe, 0xfc, 0xf8, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x30, 0xf8, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x82, 0xfe, 0xfe, 0xfe, 0x0e, 0x02, 0x02, 0x00, 0x30, 0xfc, 0xf2, 0xe0, 0xe0, 0xc0, 0x82, 0x84, + 0x1e, 0x00, 0x00, 0x02, 0x06, 0x1e, 0xfe, 0xfe, 0xf2, 0x80, 0x80, 0x40, 0x12, 0x0e, 0x02, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x6e, 0x00, 0x4d, 0x40, + 0x41, 0x6c, 0x00, 0x01, 0x01, 0x00, 0x01, 0xfe, 0x01, 0x00, 0xfe, 0xfe, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x30, 0x60, 0xc0, 0x80, 0x11, 0x00, 0x46, 0x46, 0x46, 0x00, 0x19, 0x00, + 0x46, 0x46, 0x46, 0x00, 0x11, 0x80, 0xc0, 0x60, 0x30, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x40, 0x78, 0x7f, 0x7f, 0x5f, 0x40, 0x40, 0x40, 0x40, 0x20, 0x3c, 0x1f, 0x1f, 0x07, 0x43, + 0x40, 0x60, 0x48, 0x06, 0x05, 0x04, 0x44, 0x7f, 0x7f, 0x7f, 0x70, 0x40, 0x00, 0x40, 0x40, 0x78, + 0x7f, 0x7f, 0x5f, 0x41, 0x00, 0x00, 0x00, 0x78, 0x20, 0x40, 0x01, 0x01, 0x03, 0x43, 0x3f, 0x1f, + 0x06, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7c, 0x7f, 0x7f, 0x4f, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x80, 0x10, 0x00, 0x32, 0x95, + 0x95, 0x36, 0x00, 0x80, 0x80, 0x7f, 0x00, 0x80, 0x7f, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0d, 0x09, 0x00, 0x19, 0x0a, + 0x0a, 0x0b, 0x00, 0x3f, 0x3f, 0x00, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00 + }; + + oled_write_raw_P(Daisy_OLED, sizeof(Daisy_OLED)); +} + +bool logo_rendered = false; + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (!logo_rendered) { + //render_logo(); + render_daisy_logo(); + if (timer_read() > 2500) + logo_rendered = true; + } + else { + switch(current_display_mode) { + case 0: + render_layers(); + break; + case 1: + if(hidden){ + render_Hidden_animation(); + }else{ + render_Arasaka_animation(); + } + break; + case 2: + if(hidden){ + render_Hidden_animation(); + }else{ + render_MaxTac_animation(); + } + break; + case 3: + render_button_pressed(); + break; + } + } + return false; +} +#endif diff --git a/keyboards/draytronics/daisy_v2/readme.md b/keyboards/draytronics/daisy_v2/readme.md new file mode 100644 index 000000000000..6755bd75ef04 --- /dev/null +++ b/keyboards/draytronics/daisy_v2/readme.md @@ -0,0 +1,18 @@ +# DAISY V2 +![daisy](https://www.draytronics.co.uk/wp-content/uploads/2024/06/repository-open-graph-template-v2.png) + +An open source macro pad with a rotary encoder and OLED panel, this is an alternative version to the original through hole Daisy kit. More info / PCB designs available at [draytronics.co.uk/daisyV2](https://www.draytronics.co.uk/daisyV2) + +* Keyboard Maintainer: [Blake Drayson](https://github.com/ghostseven) +* Hardware Supported: DAISY PCB V2 / STM32F072 +* Hardware Availability: [draytronics.co.uk](https://draytronics.co.uk) + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb draytronics/daisy_v2 -km default + +Flashing example for this keyboard: + + qmk flash -kb draytronics/daisy_v2 -km default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with [The QMK Tutorial](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/draytronics/daisy_v2/rules.mk b/keyboards/draytronics/daisy_v2/rules.mk new file mode 100644 index 000000000000..dbfa81b6ce06 --- /dev/null +++ b/keyboards/draytronics/daisy_v2/rules.mk @@ -0,0 +1 @@ +SRC += oled.c diff --git a/keyboards/draytronics/elise/keyboard.json b/keyboards/draytronics/elise/keyboard.json index 782c61d76434..046a9854859b 100644 --- a/keyboards/draytronics/elise/keyboard.json +++ b/keyboards/draytronics/elise/keyboard.json @@ -18,6 +18,7 @@ "rgblight": true }, "qmk": { + "tap_keycode_delay": 10, "locking": { "enabled": true, "resync": true @@ -29,8 +30,6 @@ }, "diode_direction": "COL2ROW", "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, "led_count": 7, "sleep": true, "animations": { diff --git a/keyboards/draytronics/elise/readme.md b/keyboards/draytronics/elise/readme.md index 278bc1065647..5c86f78e4432 100644 --- a/keyboards/draytronics/elise/readme.md +++ b/keyboards/draytronics/elise/readme.md @@ -15,17 +15,16 @@ Entering DFU mode (to allow flashing): - Pressing the reset button on the back of the board when it is plugged in will enter DFU. - Holding down the ESC key whilst plugging in the keyboard will enter DFU. - If you have one of the provided keymaps flashed, then pressing FN-Tab will enter DFU. - + Make example for this keyboard (after setting up your build environment): - make draytronics/elise:default + qmk compile -kb draytronics/elise -km default Flashing example for this keyboard: - make draytronics/elise:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + qmk flash -kb draytronics/elise -km default +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with [The QMK Tutorial](https://docs.qmk.fm/#/newbs). ![elise-pcb-top](https://www.draytronics.co.uk/wp-content/uploads/2021/04/Draytronics-Elise-PCB-V1-top.png) diff --git a/keyboards/draytronics/elise_v2/config.h b/keyboards/draytronics/elise_v2/config.h new file mode 100644 index 000000000000..b268ecd6f4e3 --- /dev/null +++ b/keyboards/draytronics/elise_v2/config.h @@ -0,0 +1,4 @@ +//KVM Specific tweaks to prevent key repeat on wake from sleep. +//Please comment out and recompile if you do not wish to use them. +#define USB_POLLING_INTERVAL_MS 8 +#define USB_SUSPEND_WAKEUP_DELAY 3000 diff --git a/keyboards/draytronics/elise_v2/keyboard.json b/keyboards/draytronics/elise_v2/keyboard.json index 217f837e197b..dfa1c48132f2 100644 --- a/keyboards/draytronics/elise_v2/keyboard.json +++ b/keyboards/draytronics/elise_v2/keyboard.json @@ -9,8 +9,6 @@ "device_version": "2.0.0" }, "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, "led_count": 16, "sleep": true, "animations": { @@ -39,6 +37,7 @@ "rgblight": true }, "qmk": { + "tap_keycode_delay": 10, "locking": { "enabled": true, "resync": true diff --git a/keyboards/draytronics/elise_v2/keymaps/blake_iso/keymap.c b/keyboards/draytronics/elise_v2/keymaps/blake_iso/keymap.c index c8a0ecd95988..186394ae3ae7 100644 --- a/keyboards/draytronics/elise_v2/keymaps/blake_iso/keymap.c +++ b/keyboards/draytronics/elise_v2/keymaps/blake_iso/keymap.c @@ -26,30 +26,30 @@ enum custom_layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: (Base Layer) Default Layer * ,----------------------------------------------------------------. - * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Del | * |----------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |PgUp| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |Home| * |------------------------------------------------------- -----| - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Entr|PgDn| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Entr|PgUp| * |----------------------------------------------------------------| - * |Shift| \ | Z| X| C| V| B| N| M| ,| .| /|RShif| ↑ |End | + * |Shift| \ | Z| X| C| V| B| N| M| ,| .| /|RShif| ↑ |PgDn| * |----------------------------------------------------------------| - * |Ctrl|Win |Alt | Space |RAlt|RCtrl|Fn| ← | ↓ | → | + * |Ctrl|Alt | GUI | Space |Fn|RAlt|RCtrl| ← | ↓ | → | * `----------------------------------------------------------------' */ [_BL] = LAYOUT_65_iso( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(_FL), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), /* Keymap _FL1: Function Layer 1 * ,----------------------------------------------------------------. * |~ `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Delete| Ins| * |----------------------------------------------------------------| - * |QK_BOOT| | ↑ | | | | | | | | | | | | | + * |QK_BOOT| | ↑ | | | | | | | | | | | |End | * |------------------------------------------------------- -----| * | | ← | ↓ | → | | | | | | | | | | | | * |----------------------------------------------------------------| @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FL] = LAYOUT_65_iso( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, - QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, _______, _______, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/draytronics/elise_v2/keymaps/default/keymap.c b/keyboards/draytronics/elise_v2/keymaps/default/keymap.c index 1989f22f97cc..86ca97b1b67f 100644 --- a/keyboards/draytronics/elise_v2/keymaps/default/keymap.c +++ b/keyboards/draytronics/elise_v2/keymaps/default/keymap.c @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FL] = LAYOUT_65_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, - QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, _______, KC_TRNS, _______, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/draytronics/elise_v2/keymaps/default_iso/keymap.c b/keyboards/draytronics/elise_v2/keymaps/default_iso/keymap.c index 02f4b9c1cc8a..94db918b8b3d 100644 --- a/keyboards/draytronics/elise_v2/keymaps/default_iso/keymap.c +++ b/keyboards/draytronics/elise_v2/keymaps/default_iso/keymap.c @@ -26,30 +26,30 @@ enum custom_layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: (Base Layer) Default Layer * ,----------------------------------------------------------------. - * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | Del| * |----------------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |PgUp| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |Home| * |------------------------------------------------------- -----| - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Entr|PgDn| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Entr|PgUp| * |----------------------------------------------------------------| - * |Shift| \ | Z| X| C| V| B| N| M| ,| .| /|RShif| ↑ |End | + * |Shift| \ | Z| X| C| V| B| N| M| ,| .| /|RShif| ↑ |PgDn| * |----------------------------------------------------------------| - * |Ctrl|Win |Alt | Space |RAlt|RCtrl|Fn| ← | ↓ | → | + * |Ctrl|Win |Alt | Space |Fn|RAlt|RCtrl| ← | ↓ | → | * `----------------------------------------------------------------' */ [_BL] = LAYOUT_65_iso( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FL), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), /* Keymap _FL1: Function Layer 1 * ,----------------------------------------------------------------. * |~ `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Delete| Ins| * |----------------------------------------------------------------| - * |QK_BOOT| | ↑ | | | | | | | | | | | | | + * |QK_BOOT| | ↑ | | | | | | | | | | | | End| * |------------------------------------------------------- -----| * | | ← | ↓ | → | | | | | | | | | | | | * |----------------------------------------------------------------| @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FL] = LAYOUT_65_iso( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, - QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE, RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, _______, _______, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/draytronics/elise_v2/readme.md b/keyboards/draytronics/elise_v2/readme.md index 32730f930a6f..0b864393cb01 100644 --- a/keyboards/draytronics/elise_v2/readme.md +++ b/keyboards/draytronics/elise_v2/readme.md @@ -20,13 +20,13 @@ Entering DFU mode (to allow flashing): Make example for this keyboard (after setting up your build environment): - make draytronics/elise_v2:default + qmk compile -kb draytronics/elise_v2 -km default Flashing example for this keyboard: - make draytronics/elise_v2:default:flash + qmk flash -kb draytronics/elise_v2 -km default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with [The QMK Tutorial](https://docs.qmk.fm/#/newbs). ![elise-pcb-top](https://www.draytronics.co.uk/wp-content/uploads/2021/08/Draytronics-Elise-PCB-V2-top.png) From 67be8d5312a333ff09b3f43ef5db93e11e8fedba Mon Sep 17 00:00:00 2001 From: Blake Drayson Date: Wed, 5 Jun 2024 18:59:53 +0100 Subject: [PATCH 02/17] Addition of Daisy V2 Macro Pad & Updates To Elise V1/V2 & Daisy. From a0b4219f3bdc388530487325a625f5220a764c08 Mon Sep 17 00:00:00 2001 From: Blake Drayson Date: Thu, 6 Jun 2024 12:12:26 +0100 Subject: [PATCH 03/17] Revert settings.json change. --- .vscode/settings.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5fd3178003ee..f369ecb1748c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -30,6 +30,5 @@ }, "clangd.arguments": [ "--header-insertion=never" - ], - "C_Cpp.dimInactiveRegions": true + ] } From 003afd15e5591179f061d4492758aaceae781ee4 Mon Sep 17 00:00:00 2001 From: Blake Drayson Date: Thu, 6 Jun 2024 13:15:30 +0100 Subject: [PATCH 04/17] Added missing licence headers. --- keyboards/draytronics/daisy_v2/config.h | 27 +++++++++++++++++++++- keyboards/draytronics/daisy_v2/halconfig.h | 27 +++++++++++++++++++++- keyboards/draytronics/daisy_v2/mcuconf.h | 27 +++++++++++++++++++++- 3 files changed, 78 insertions(+), 3 deletions(-) diff --git a/keyboards/draytronics/daisy_v2/config.h b/keyboards/draytronics/daisy_v2/config.h index 6e5eff6f6c7e..beefdbe3a237 100644 --- a/keyboards/draytronics/daisy_v2/config.h +++ b/keyboards/draytronics/daisy_v2/config.h @@ -1,3 +1,28 @@ +/*Copyright 2024 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +This code is inspired by and adapted from the code used in the Printed Pad by Noah Beidelman (@noahbei) + +It also references the concept and some pixel frames (the arasaka logo) form Aleks (@aleksbrgt) + +Other pixel images are either created by me or use the resources of Velency Grpahics https://www.valencygraphics.com/cyberpunk-2077 + +No claim for licence or ownership is made for any logos or similarities to logos or brand names. +*/ #pragma once #define I2C_DRIVER I2CD1 @@ -11,4 +36,4 @@ #define I2C1_TIMINGR_SCLH 0x03U #define I2C1_TIMINGR_SCLL 0x09U -#define OLED_TIMEOUT 300000 \ No newline at end of file +#define OLED_TIMEOUT 300000 diff --git a/keyboards/draytronics/daisy_v2/halconfig.h b/keyboards/draytronics/daisy_v2/halconfig.h index 817e808834d0..7dedeb39a3ec 100644 --- a/keyboards/draytronics/daisy_v2/halconfig.h +++ b/keyboards/draytronics/daisy_v2/halconfig.h @@ -1,5 +1,30 @@ +/*Copyright 2024 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +This code is inspired by and adapted from the code used in the Printed Pad by Noah Beidelman (@noahbei) + +It also references the concept and some pixel frames (the arasaka logo) form Aleks (@aleksbrgt) + +Other pixel images are either created by me or use the resources of Velency Grpahics https://www.valencygraphics.com/cyberpunk-2077 + +No claim for licence or ownership is made for any logos or similarities to logos or brand names. +*/ #pragma once #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/draytronics/daisy_v2/mcuconf.h b/keyboards/draytronics/daisy_v2/mcuconf.h index cefbd8c163a7..8fb9be665c44 100644 --- a/keyboards/draytronics/daisy_v2/mcuconf.h +++ b/keyboards/draytronics/daisy_v2/mcuconf.h @@ -1,6 +1,31 @@ +/*Copyright 2024 Blake Drayson / Draytronics + +Contact info@draytronics.co.uk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +This code is inspired by and adapted from the code used in the Printed Pad by Noah Beidelman (@noahbei) + +It also references the concept and some pixel frames (the arasaka logo) form Aleks (@aleksbrgt) + +Other pixel images are either created by me or use the resources of Velency Grpahics https://www.valencygraphics.com/cyberpunk-2077 + +No claim for licence or ownership is made for any logos or similarities to logos or brand names. +*/ #pragma once #include_next #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE From 13467a0485d28c2b8711286a6eb0cb586307a39c Mon Sep 17 00:00:00 2001 From: Blake Date: Thu, 6 Jun 2024 20:58:11 +0100 Subject: [PATCH 05/17] Update keyboards/draytronics/daisy_v2/daisy_v2.c Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/draytronics/daisy_v2/daisy_v2.c | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/draytronics/daisy_v2/daisy_v2.c b/keyboards/draytronics/daisy_v2/daisy_v2.c index ca193c8ac86e..44e7c588d803 100644 --- a/keyboards/draytronics/daisy_v2/daisy_v2.c +++ b/keyboards/draytronics/daisy_v2/daisy_v2.c @@ -24,7 +24,6 @@ Other pixel images are either created by me or use the resources of Velency Grpa No claim for licence or ownership is made for any logos or similarities to logos or brand names. */ -#include QMK_KEYBOARD_H #include "daisy_v2.h" void board_init(void) { From d7d8e2bfd5a72cc53a6bcbf1c45f95cc358c5d5c Mon Sep 17 00:00:00 2001 From: Blake Date: Thu, 6 Jun 2024 21:14:25 +0100 Subject: [PATCH 06/17] Update keyboards/draytronics/daisy_v2/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/draytronics/daisy_v2/keyboard.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/keyboards/draytronics/daisy_v2/keyboard.json b/keyboards/draytronics/daisy_v2/keyboard.json index 034282d153bf..b7074faa849f 100644 --- a/keyboards/draytronics/daisy_v2/keyboard.json +++ b/keyboards/draytronics/daisy_v2/keyboard.json @@ -14,15 +14,10 @@ ] }, "features": { - "audio": false, - "backlight": false, "bootmagic": true, - "command": false, - "console": true, "encoder": true, "extrakey": true, "mousekey": true, - "nkro": false, "oled": true, "rgblight": true }, From 670524aef6361f99092055e15c3311fef0b1f432 Mon Sep 17 00:00:00 2001 From: Blake Date: Thu, 6 Jun 2024 21:14:36 +0100 Subject: [PATCH 07/17] Update keyboards/draytronics/daisy_v2/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/draytronics/daisy_v2/keyboard.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/draytronics/daisy_v2/keyboard.json b/keyboards/draytronics/daisy_v2/keyboard.json index b7074faa849f..1ea2c81a666e 100644 --- a/keyboards/draytronics/daisy_v2/keyboard.json +++ b/keyboards/draytronics/daisy_v2/keyboard.json @@ -3,9 +3,6 @@ "keyboard_name": "DAISY", "maintainer": "ghostseven", "bootloader": "stm32-dfu", - "bootmagic": { - "enabled": true - }, "diode_direction": "COL2ROW", "encoder": { "enabled": true, From 4f8881216bf204588f07e1ed93c1ae8da4a77270 Mon Sep 17 00:00:00 2001 From: Blake Date: Thu, 6 Jun 2024 21:14:57 +0100 Subject: [PATCH 08/17] Update keyboards/draytronics/daisy_v2/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/draytronics/daisy_v2/keyboard.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/draytronics/daisy_v2/keyboard.json b/keyboards/draytronics/daisy_v2/keyboard.json index 1ea2c81a666e..eb1bdd5ba790 100644 --- a/keyboards/draytronics/daisy_v2/keyboard.json +++ b/keyboards/draytronics/daisy_v2/keyboard.json @@ -22,9 +22,6 @@ "cols": ["B11", "B10", "B2", "B1"], "rows": ["A2", "A1", "A0"] }, - "mouse_key": { - "enabled": true - }, "processor": "STM32F072", "qmk": { "locking": { From e672b6b901f6fdcbb9cadc296822997fdafb61a3 Mon Sep 17 00:00:00 2001 From: Blake Date: Thu, 6 Jun 2024 22:12:33 +0100 Subject: [PATCH 09/17] Update keyboards/draytronics/elise_v2/config.h Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/draytronics/elise_v2/config.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/draytronics/elise_v2/config.h b/keyboards/draytronics/elise_v2/config.h index b268ecd6f4e3..8bf16db1df57 100644 --- a/keyboards/draytronics/elise_v2/config.h +++ b/keyboards/draytronics/elise_v2/config.h @@ -1,4 +1,6 @@ //KVM Specific tweaks to prevent key repeat on wake from sleep. //Please comment out and recompile if you do not wish to use them. +#pragma once + #define USB_POLLING_INTERVAL_MS 8 #define USB_SUSPEND_WAKEUP_DELAY 3000 From 22aa20e62311d264648c4096ddcc2c12963a4669 Mon Sep 17 00:00:00 2001 From: Blake Date: Thu, 6 Jun 2024 22:17:29 +0100 Subject: [PATCH 10/17] Update keyboards/draytronics/daisy_v2/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/draytronics/daisy_v2/keyboard.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/draytronics/daisy_v2/keyboard.json b/keyboards/draytronics/daisy_v2/keyboard.json index eb1bdd5ba790..7472de163fa7 100644 --- a/keyboards/draytronics/daisy_v2/keyboard.json +++ b/keyboards/draytronics/daisy_v2/keyboard.json @@ -54,9 +54,6 @@ "ws2812": { "pin": "B12" }, - "layout_aliases": { - "LAYOUT_daisy": "LAYOUT" - }, "layouts": { "LAYOUT": { "layout": [ From 3b086902209fd91e1df8b6d57c4a221ff11af731 Mon Sep 17 00:00:00 2001 From: Blake Date: Thu, 6 Jun 2024 22:19:22 +0100 Subject: [PATCH 11/17] Update keyboards/draytronics/daisy_v2/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/draytronics/daisy_v2/keyboard.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/keyboards/draytronics/daisy_v2/keyboard.json b/keyboards/draytronics/daisy_v2/keyboard.json index 7472de163fa7..b6e3f953ce29 100644 --- a/keyboards/draytronics/daisy_v2/keyboard.json +++ b/keyboards/draytronics/daisy_v2/keyboard.json @@ -24,10 +24,6 @@ }, "processor": "STM32F072", "qmk": { - "locking": { - "enabled": true, - "resync": true - }, "tap_keycode_delay": 10 }, "rgblight": { From 6e00080a109c064015c3ceb72928a99553245ec5 Mon Sep 17 00:00:00 2001 From: Blake Date: Thu, 6 Jun 2024 22:26:25 +0100 Subject: [PATCH 12/17] Update readme.md Image moved to imgur as request and Bootloader instructions added. --- keyboards/draytronics/daisy_v2/readme.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/keyboards/draytronics/daisy_v2/readme.md b/keyboards/draytronics/daisy_v2/readme.md index 6755bd75ef04..06e80522b7ef 100644 --- a/keyboards/draytronics/daisy_v2/readme.md +++ b/keyboards/draytronics/daisy_v2/readme.md @@ -1,5 +1,5 @@ # DAISY V2 -![daisy](https://www.draytronics.co.uk/wp-content/uploads/2024/06/repository-open-graph-template-v2.png) +![daisy](https://i.imgur.com/42p02KD.png) An open source macro pad with a rotary encoder and OLED panel, this is an alternative version to the original through hole Daisy kit. More info / PCB designs available at [draytronics.co.uk/daisyV2](https://www.draytronics.co.uk/daisyV2) @@ -16,3 +16,11 @@ Flashing example for this keyboard: qmk flash -kb draytronics/daisy_v2 -km default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with [The QMK Tutorial](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 3a96d62c43c5b70f5c853ee4ae51ce161487afdf Mon Sep 17 00:00:00 2001 From: Blake Date: Thu, 6 Jun 2024 22:27:59 +0100 Subject: [PATCH 13/17] Update keyboards/draytronics/daisy_v2/keymaps/default/keymap.c Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/draytronics/daisy_v2/keymaps/default/keymap.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c b/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c index 8367330a0845..2c515237c82c 100644 --- a/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c +++ b/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c @@ -16,8 +16,11 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include QMK_KEYBOARD_H -#define _BASE 0 // Base layer -#define _CODE 1 // Code layer + +enum layers { + _BASE, + _CODE +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { From 950d7653708965bb37f3b4919db041ab98d42f69 Mon Sep 17 00:00:00 2001 From: "Syenasweta a.k.a. Nashrullah Ali Fauzi" Date: Fri, 7 Jun 2024 08:17:21 +0700 Subject: [PATCH 14/17] Add SyenaKeyboards Elaruus (#23870) * add syenakeyboard elaruus * add syenakeyboards elaruus * add syenakeyboards elaruus * add syenakeyboards elaruus * add syenakeyboards/elaruus * add syenakeyboards elaruus * add syenakeyboards elaruus * add syenakeyboards elaruus * Update keyboards/syenakeyboards/elaruus/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> * Update keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c Co-authored-by: jack <0x6a73@protonmail.com> * Update keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c Co-authored-by: jack <0x6a73@protonmail.com> --------- Co-authored-by: Syenasweta Co-authored-by: jack <0x6a73@protonmail.com> --- .../syenakeyboards/elaruus/keyboard.json | 31 +++++++++++++++++++ .../elaruus/keymaps/default/keymap.c | 16 ++++++++++ .../elaruus/keymaps/via/keymap.c | 16 ++++++++++ .../elaruus/keymaps/via/rules.mk | 1 + keyboards/syenakeyboards/elaruus/readme.md | 25 +++++++++++++++ 5 files changed, 89 insertions(+) create mode 100644 keyboards/syenakeyboards/elaruus/keyboard.json create mode 100644 keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c create mode 100644 keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c create mode 100644 keyboards/syenakeyboards/elaruus/keymaps/via/rules.mk create mode 100644 keyboards/syenakeyboards/elaruus/readme.md diff --git a/keyboards/syenakeyboards/elaruus/keyboard.json b/keyboards/syenakeyboards/elaruus/keyboard.json new file mode 100644 index 000000000000..535a46eb7cbc --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/keyboard.json @@ -0,0 +1,31 @@ +{ + "manufacturer": "Syenasweta", + "keyboard_name": "SyenaKeyboards Elaruus", + "maintainer": "syenasweta", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["GP21", "GP19"], + "rows": ["GP10"] + }, + "processor": "RP2040", + "url": "https://github.com/syenasweta/syenakeyboards", + "usb": { + "device_version": "1.0.0", + "pid": "0x6172", + "vid": "0x5373" + }, + "layouts": { + "LAYOUT_ortho_1x2": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0} + ] + } + } +} diff --git a/keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c b/keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c new file mode 100644 index 000000000000..329ad7f77efd --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_1x2( + LT(1,KC_LEFT), LT(2,KC_RIGHT) + ), + [1] = LAYOUT_ortho_1x2( + _______, KC_UP + ), + [2] = LAYOUT_ortho_1x2( + KC_DOWN, _______ + ) +}; diff --git a/keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c b/keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c new file mode 100644 index 000000000000..329ad7f77efd --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_1x2( + LT(1,KC_LEFT), LT(2,KC_RIGHT) + ), + [1] = LAYOUT_ortho_1x2( + _______, KC_UP + ), + [2] = LAYOUT_ortho_1x2( + KC_DOWN, _______ + ) +}; diff --git a/keyboards/syenakeyboards/elaruus/keymaps/via/rules.mk b/keyboards/syenakeyboards/elaruus/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/syenakeyboards/elaruus/readme.md b/keyboards/syenakeyboards/elaruus/readme.md new file mode 100644 index 000000000000..4d95dd6cf089 --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/readme.md @@ -0,0 +1,25 @@ +# SyenaKeyboards Elaruus + +![SyenaKeyboards Elaruus](https://i.imgur.com/6qU13gi.jpeg) + +Elaruus is ortholinear 1x2 mechanical keyboard with two switch for everythinks. The default functions are `left`, `right`. Elaruus is supported by QMK Firmware and VIA. + +* Keyboard Maintainer: [Syenasweta](https://github.com/syenasweta) +* Hardware Supported: RP2040 +* Hardware Availability: [Tokopedia (Syenasweta)](https://tokopedia.link/Ak0c4uqpbKb) + +Make example for this keyboard (after setting up your build environment): + + make syenakeyboards/elaruus:default + +Flashing example for this keyboard: + + make syenakeyboards/elaruss:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 1 ways: + +* **Bootmagic reset**: Hold down the top left key (assigned to `left` by default) and plug in the keyboard. From c26f6706616bc5b5394a92c091490df6a07df5b1 Mon Sep 17 00:00:00 2001 From: Blake Date: Fri, 7 Jun 2024 08:46:30 +0100 Subject: [PATCH 15/17] Update readme.md --- keyboards/draytronics/daisy_v2/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/draytronics/daisy_v2/readme.md b/keyboards/draytronics/daisy_v2/readme.md index 06e80522b7ef..420c10a5fe8e 100644 --- a/keyboards/draytronics/daisy_v2/readme.md +++ b/keyboards/draytronics/daisy_v2/readme.md @@ -21,6 +21,6 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 3 ways: -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Bootmagic reset**: Hold down the rotary encoder button and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From e7a08ef1a99b407f7326e146239d785e552c9aba Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 7 Jun 2024 14:25:20 +0100 Subject: [PATCH 16/17] Fix broken link in PR checklist (#23877) --- docs/pr_checklist.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index f7b16e1d8527..e0b0810aef7b 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -88,7 +88,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - RGB Matrix Configuration - Run `qmk format-json` on this file before submitting your PR. Be sure to append the `-i` flag to directly modify the file, or paste the outputted code into the file. - `readme.md` - - must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme) + - must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) - flash command is present, and has `:flash` at end - valid hardware availability link (unless handwired) -- private groupbuys are okay, but one-off prototypes will be questioned. If open-source, a link to files should be provided. - clear instructions on how to reset the board into bootloader mode From c25c74d6ea58854db96e154e77d49ef0a4a01f39 Mon Sep 17 00:00:00 2001 From: Blake Drayson Date: Sat, 8 Jun 2024 14:47:14 +0100 Subject: [PATCH 17/17] Addtion of custom keycode for rotary encoder functions and fix for underglow bug in hardware. --- keyboards/draytronics/daisy_v2/daisy_v2.c | 13 ++++++++++++- .../draytronics/daisy_v2/keymaps/default/keymap.c | 9 +++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/keyboards/draytronics/daisy_v2/daisy_v2.c b/keyboards/draytronics/daisy_v2/daisy_v2.c index 44e7c588d803..8db04104c6b0 100644 --- a/keyboards/draytronics/daisy_v2/daisy_v2.c +++ b/keyboards/draytronics/daisy_v2/daisy_v2.c @@ -26,6 +26,10 @@ No claim for licence or ownership is made for any logos or similarities to logos #include "daisy_v2.h" +enum my_keycodes { + ENCODER_PRESS = SAFE_RANGE +}; + void board_init(void) { SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; } @@ -45,7 +49,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { key_pressed = record->event.pressed; #endif switch(keycode) { - case LT(0, KC_NO): + case ENCODER_PRESS: if (record->event.pressed) { // on tap if (record->tap.count) { @@ -76,3 +80,10 @@ layer_state_t layer_state_set_kb(layer_state_t state) { return layer_state_set_user(state); } #endif + +void keyboard_post_init_user(void) { + //This is an adjustment to resolve the issue that occurs when there is a + //static colour underglow the first LED can be a different colour on first init. + rgblight_disable_noeeprom(); + rgblight_enable_noeeprom(); +} diff --git a/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c b/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c index 2c515237c82c..8617a20096fa 100644 --- a/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c +++ b/keyboards/draytronics/daisy_v2/keymaps/default/keymap.c @@ -22,6 +22,11 @@ enum layers { _CODE }; +enum my_keycodes { + ENCODER_PRESS = SAFE_RANGE +}; + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -34,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └────────────┴────────────┴────────────┴─────────────┘ */ [_BASE] = LAYOUT( - LT(0, KC_NO), + ENCODER_PRESS, MO(_CODE), KC_MPRV, KC_MNXT, KC_MPLY, C(KC_LEFT), C(KC_UP), C(KC_DOWN), C(KC_RIGHT) ), @@ -48,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └────────────┴────────────┴────────────┴─────────────┘ */ [_CODE] = LAYOUT( - LT(0, KC_NO), + ENCODER_PRESS, _______, RGB_MOD, RGB_HUI, RGB_TOG, G(S(KC_5)), G(A(KC_ESC)), G(KC_F), QK_BOOT )