Browse Source

[Keyboard] Add togkey pad & pad_plus (#25217)

* Initial Commit for Adding TogKey Pad and TogKey Pad Plus to QMK

* Added TogKey Pad default Keymap

* Changed Pins for Encoder

* added images to read me

* Updated Read Me Pictures Links

* Applied Suggested Changes and Formatting to keyboard.json

* Applied suggested keycodes to keymap.c for togkey pad

* Updated Hardware Availability Links in Readme

* Set development board instead of seperate bootloader and processor.

* Added pad_plus.c for oled. Added config.h for pad_plus.
Applied Suggested Changes.

* - Moved oled arrays outside of oled_task function.
- Removed white spaces from pad_plus keymaps.
- Made suggested changes to oled_task function.

* Updated with Changes
- Updated pad json. Removed extra features, remvoed rgb test from rgb animations.
- Updated pad_plus functions
- Updated Pad Plus Config file

* Readded display defintion.

* Corrected OLED resolution definition.

* Applied Suggested Changes
- Updated Copyright Information
- Updated Layout Names
- Updated TogKey Pad Layout

* Applied Suggested Changes
- Removed move layer function.
- Repolaced with "TO" keycodes
- Updated OLED images

* Fixed Layout name in keyboard.json for togkey pad

* - Updated Readme for both pad and pad plus.
- Updated Oled pictures for pad plus.

* - Added bootmagic and extrakey features to togkey pad keyboard.json.
Jon Henry Fernandez 1 year ago
parent
commit
177e461d90

+ 52 - 0
keyboards/togkey/pad/keyboard.json

@@ -0,0 +1,52 @@
+{
+    "manufacturer": "TogKey",
+    "keyboard_name": "Pad",
+    "maintainer": "togkey86",
+    "development_board": "promicro_rp2040",
+    "diode_direction": "COL2ROW",
+    "features": {
+        "bootmagic": true,
+        "extrakey": true,
+        "rgblight": true
+    },
+    "matrix_pins": {
+        "cols": ["GP2", "GP3", "GP4"],
+        "rows": ["GP5", "GP6"]
+    },
+    "rgblight": {
+        "animations": {
+            "alternating": true,
+            "breathing": true,
+            "christmas": true,
+            "knight": true,
+            "rainbow_mood": true,
+            "rainbow_swirl": true,
+            "snake": true,
+            "static_gradient": true,
+            "twinkle": true
+        },
+        "hue_steps": 10,
+        "led_count": 5
+    },
+    "url": "https://togkey.com/products/togkey-pad",
+    "usb": {
+        "device_version": "1.0.0",
+        "pid": "0x8686",
+        "vid": "0xFEED"
+    },
+    "ws2812": {
+        "driver": "vendor",
+        "pin": "GP7"
+    },
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0.5, "y": 0},
+                {"matrix": [0, 1], "x": 1.5, "y": 0},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1}
+            ]
+        }
+    }
+}

+ 11 - 0
keyboards/togkey/pad/keymaps/default/keymap.c

@@ -0,0 +1,11 @@
+// Copyright 2025 TogKey
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT(
+        KC_VOLD,  KC_VOLU,
+        KC_MPRV, KC_MPLY, KC_MNXT
+    )
+};

+ 27 - 0
keyboards/togkey/pad/readme.md

@@ -0,0 +1,27 @@
+# pad
+
+![pad](https://i.imgur.com/KMS1btN.jpeg)
+
+A simple 5-Key Macropad based off an RP2040 and custom PCB.
+
+* Keyboard Maintainer: [Jon Henry](https://github.com/togkey86)
+* Hardware Supported: TogKey Pad PCB, RP2040 Pro Micro Development Board
+* Hardware Availability: (https://togkey.com)
+
+Make example for this keyboard (after setting up your build environment):
+
+     make togkey/pad:default
+
+Flashing example for this keyboard:
+
+    make togkey/pad: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 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

+ 10 - 0
keyboards/togkey/pad_plus/config.h

@@ -0,0 +1,10 @@
+// Copyright 2025 TogKey
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+//OLED
+#define OLED_DISPLAY_128X64
+#define I2C_DRIVER I2CD1
+#define I2C1_SDA_PIN GP2
+#define I2C1_SCL_PIN GP3

+ 63 - 0
keyboards/togkey/pad_plus/keyboard.json

@@ -0,0 +1,63 @@
+{
+    "manufacturer": "TogKey",
+    "keyboard_name": "Pad Plus",
+    "maintainer": "togkey86",
+    "development_board": "promicro_rp2040",
+    "diode_direction": "COL2ROW",
+    "encoder": {
+        "rotary": [
+            {"pin_a": "GP28", "pin_b": "GP29", "resolution": 2}
+        ]
+    },
+    "features": {
+        "bootmagic": true,
+        "encoder": true,
+        "extrakey": true,
+        "mousekey": true,
+        "oled": true,
+        "rgblight": true
+    },
+    "matrix_pins": {
+        "cols": ["GP4", "GP5", "GP6"],
+        "rows": ["GP26", "GP22", "GP20"]
+    },
+
+    "rgblight": {
+        "animations": {
+            "alternating": true,
+            "breathing": true,
+            "christmas": true,
+            "knight": true,
+            "rainbow_mood": true,
+            "rainbow_swirl": true,
+            "snake": true,
+            "static_gradient": true,
+            "twinkle": true
+        },
+        "hue_steps": 10,
+        "led_count": 3
+    },
+    "url": "https://togkey.com/products/togkey-pad-plus",
+    "usb": {
+        "device_version": "1.0.0",
+        "pid": "0x8687",
+        "vid": "0xFEED"
+    },
+    "ws2812": {
+        "driver": "vendor",
+        "pin": "GP27"
+    },
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2}
+            ]
+        }
+    }
+}

+ 30 - 0
keyboards/togkey/pad_plus/keymaps/default/keymap.c

@@ -0,0 +1,30 @@
+// Copyright 2025 TogKey
+// SPDX-License-Identifier: GPL-2.0-or-later6
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT(
+        TO(1),
+        KC_VOLD, KC_MUTE, KC_VOLU,
+        KC_MPRV, KC_MPLY, KC_MNXT
+    ),
+
+    [1] = LAYOUT(
+        TO(2),
+        KC_1,   KC_2, KC_3,
+        KC_4,   KC_5,   KC_6
+    ),
+
+    [2] = LAYOUT(
+        TO(3),
+        KC_A,   KC_B, KC_C,
+        KC_D,   KC_E,   KC_F
+    ),
+
+    [3] = LAYOUT(
+        TO(0),
+        KC_J,   KC_K, KC_L,
+        KC_M,   KC_N, KC_O
+    )
+};

+ 731 - 0
keyboards/togkey/pad_plus/pad_plus.c

@@ -0,0 +1,731 @@
+// Copyright 2025 TogKey
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#if defined(OLED_ENABLE)
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+    return OLED_ROTATION_180;
+}
+
+static const char image_layer_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,
+    0xE0, 0xE0, 0xE0, 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, 0xFC, 0xFC, 0xFC, 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, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE,
+    0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE,
+    0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF,
+    0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF,
+    0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F,
+    0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF,
+    0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8,
+    0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0,
+    0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03,
+    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, 0x00, 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, 0x07, 0x07, 0x03, 0x00, 0x01,
+    0x03, 0x03, 0x03, 0x07, 0x07, 0x03,
+    0x03, 0x03, 0x01, 0x00, 0x00, 0x39,
+    0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B,
+    0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03,
+    0x03, 0x03, 0x03, 0x00, 0x01, 0x03,
+    0x03, 0x03, 0x03, 0x02, 0x00, 0x01,
+    0x03, 0x03, 0x07, 0x07, 0x03, 0x03,
+    0x03, 0x01, 0x00, 0x60, 0x78, 0x7E,
+    0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00,
+    0x00, 0x00, 0x03, 0x07, 0x07, 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, 0xF0, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+    0x78, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0xF0,
+    0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+    0xC0, 0xF0, 0xF0, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x78, 0xF0, 0xE0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xF0, 0xF0, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xBF, 0x9F, 0xDF, 0x0F,
+    0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x60, 0x70,
+    0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x20, 0x70, 0x70, 0x30, 0x30, 0xF0,
+    0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
+    0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xBF,
+    0xBF, 0x80, 0x80, 0xBF, 0xBF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+    0xF0, 0xF8, 0xFC, 0xEE, 0xEF, 0xE7,
+    0xE3, 0xC1, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x70, 0x70, 0xE7, 0xE7,
+    0xE7, 0xEF, 0xFF, 0x7C, 0x10, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F,
+    0x1F, 0x1B, 0x18, 0xFF, 0xFF, 0x7F,
+    0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF,
+    0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00,
+    0x1F, 0x7F, 0xFF, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0x7F, 0x7F, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 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,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 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 image_layer_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,
+    0xE0, 0xE0, 0xE0, 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, 0xFC, 0xFC, 0xFC, 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, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE,
+    0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE,
+    0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF,
+    0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF,
+    0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F,
+    0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF,
+    0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8,
+    0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0,
+    0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03,
+    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, 0x00, 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, 0x07, 0x07, 0x03, 0x00, 0x01,
+    0x03, 0x03, 0x03, 0x07, 0x07, 0x03,
+    0x03, 0x03, 0x01, 0x00, 0x00, 0x39,
+    0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B,
+    0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03,
+    0x03, 0x03, 0x03, 0x00, 0x01, 0x03,
+    0x03, 0x03, 0x03, 0x02, 0x00, 0x01,
+    0x03, 0x03, 0x07, 0x07, 0x03, 0x03,
+    0x03, 0x01, 0x00, 0x60, 0x78, 0x7E,
+    0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00,
+    0x00, 0x00, 0x03, 0x07, 0x07, 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, 0xF0, 0xF8, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0,
+    0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+    0xC0, 0xF0, 0xF0, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x78, 0xF0, 0xE0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xF0, 0xF0, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x60, 0x60, 0xF0, 0xF0,
+    0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xDF,
+    0xCF, 0xCF, 0xCF, 0x1F, 0x1F, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x20, 0x70, 0x70, 0x30, 0x30, 0xF0,
+    0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
+    0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0,
+    0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xC0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x9F, 0x87, 0xB7, 0xB3, 0xB9, 0xBC,
+    0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x70, 0x70, 0xE7, 0xE7,
+    0xE7, 0xEF, 0xFF, 0x7C, 0x10, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F,
+    0x1F, 0x1B, 0x18, 0xFF, 0xFF, 0x7F,
+    0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x7F, 0x3F, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00,
+    0x1F, 0x7F, 0xFF, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0x7F, 0x7F, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 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,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 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 image_layer_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,
+    0xE0, 0xE0, 0xE0, 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, 0xFC, 0xFC, 0xFC, 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, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE,
+    0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE,
+    0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF,
+    0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF,
+    0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F,
+    0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF,
+    0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8,
+    0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0,
+    0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03,
+    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, 0x00, 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, 0x07, 0x07, 0x03, 0x00, 0x01,
+    0x03, 0x03, 0x03, 0x07, 0x07, 0x03,
+    0x03, 0x03, 0x01, 0x00, 0x00, 0x39,
+    0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B,
+    0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03,
+    0x03, 0x03, 0x03, 0x00, 0x01, 0x03,
+    0x03, 0x03, 0x03, 0x02, 0x00, 0x01,
+    0x03, 0x03, 0x07, 0x07, 0x03, 0x03,
+    0x03, 0x01, 0x00, 0x60, 0x78, 0x7E,
+    0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00,
+    0x00, 0x00, 0x03, 0x07, 0x07, 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, 0xF0, 0xF8, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+    0x78, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0xF0,
+    0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+    0xC0, 0xF0, 0xF0, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF0, 0xE0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xF0, 0xF0, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0xF0, 0xF0,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x60, 0x60, 0xF0, 0xF0,
+    0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x60, 0x70,
+    0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0x9F, 0xDF, 0xEF, 0xCF, 0xCF,
+    0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
+    0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0,
+    0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xC0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+    0xF0, 0xF8, 0xFC, 0xEE, 0xEF, 0xE7,
+    0xE3, 0xC1, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xDF, 0x8F, 0xBF, 0xBD,
+    0xBD, 0xB8, 0x82, 0xC7, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F,
+    0x1F, 0x1B, 0x18, 0xFF, 0xFF, 0x7F,
+    0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x7F, 0x3F, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF,
+    0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00,
+    0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 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,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 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 image_layer_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,
+    0xE0, 0xE0, 0xE0, 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, 0xFC, 0xFC, 0xFC, 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, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x8F, 0x8F, 0x70, 0xFC, 0xFE, 0xFE,
+    0xCF, 0x8F, 0x8F, 0x8F, 0xFE, 0xFE,
+    0xFC, 0x78, 0xF8, 0xFC, 0xFE, 0xFF,
+    0x8F, 0x8F, 0x8F, 0xCE, 0xFF, 0xFF,
+    0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xF8, 0xFC, 0xFE, 0xDF, 0x8F,
+    0x07, 0x23, 0xFC, 0xFE, 0xFE, 0xFF,
+    0xB7, 0xB7, 0xBF, 0xBE, 0xBE, 0xB8,
+    0x07, 0x1F, 0x3F, 0xFE, 0xFC, 0xF0,
+    0xF0, 0xFE, 0xFF, 0x3F, 0x0F, 0x03,
+    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, 0x00, 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, 0x07, 0x07, 0x03, 0x00, 0x01,
+    0x03, 0x03, 0x03, 0x07, 0x07, 0x03,
+    0x03, 0x03, 0x01, 0x00, 0x00, 0x39,
+    0x7B, 0x7B, 0x77, 0x77, 0x73, 0x7B,
+    0x7F, 0x3F, 0x1F, 0x07, 0x00, 0x03,
+    0x03, 0x03, 0x03, 0x00, 0x01, 0x03,
+    0x03, 0x03, 0x03, 0x02, 0x00, 0x01,
+    0x03, 0x03, 0x07, 0x07, 0x03, 0x03,
+    0x03, 0x01, 0x00, 0x60, 0x78, 0x7E,
+    0x7F, 0x3F, 0x0F, 0x03, 0x00, 0x00,
+    0x00, 0x00, 0x03, 0x07, 0x07, 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, 0xF0, 0xF8, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
+    0x78, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0xF0,
+    0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+    0xC0, 0xF0, 0xF0, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
+    0x38, 0x78, 0xF0, 0xE0, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+    0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x60, 0x60, 0xF0, 0xF0,
+    0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x60, 0x70,
+    0x30, 0x30, 0x30, 0xF0, 0xF0, 0xC0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x20, 0x70, 0x70, 0x30, 0x30, 0xF0,
+    0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F,
+    0x9F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0,
+    0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xC0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+    0xF0, 0xF8, 0xFC, 0xEE, 0xEF, 0xE7,
+    0xE3, 0xC1, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
+    0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x70, 0x70, 0xE7, 0xE7,
+    0xE7, 0xEF, 0xFF, 0x7C, 0x10, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xE1,
+    0xE4, 0xEF, 0xEF, 0x80, 0x80, 0xE7,
+    0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+    0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+    0x60, 0x60, 0x60, 0x7F, 0x3F, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF,
+    0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00,
+    0x1F, 0x7F, 0xFF, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+    0xE0, 0xE0, 0x7F, 0x7F, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 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,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00,
+};
+
+bool oled_task_kb(void) {
+    if (!oled_task_user()) {
+        return false;
+    }
+
+    switch (get_highest_layer(layer_state)) {
+        case 0:
+            oled_write_raw_P(image_layer_1, sizeof(image_layer_1));
+            break;
+        case 1:
+            oled_write_raw_P(image_layer_2, sizeof(image_layer_2));
+            break;
+        case 2:
+            oled_write_raw_P(image_layer_3, sizeof(image_layer_3));
+            break;
+        case 3:
+            oled_write_raw_P(image_layer_4, sizeof(image_layer_4));
+            break;
+        default:
+            oled_write_ln_P(PSTR("Undefined"), false);
+    }
+
+    return false;
+}
+#endif

+ 27 - 0
keyboards/togkey/pad_plus/readme.md

@@ -0,0 +1,27 @@
+# pad_plus
+
+![pad_plus](https://i.imgur.com/9g3gNMZ.jpeg)
+
+A 6-Key Macropad featuring a Oled Screen and Rotary Encoder based off an RP2040 and custom PCB.
+
+* Keyboard Maintainer: [Jon Henry](https://github.com/togkey86)
+* Hardware Supported: TogKey Pad Plus PCB, RP2040 Development Board
+* Hardware Availability: (https://togkey.com)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make togkey/pad_plus:default
+
+Flashing example for this keyboard:
+
+    make togkey/pad_plus: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 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