@@ 0,0 1,129 @@
+/* Copyright 2022 CyanDuck
+*
+* 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 3 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 <http://www.gnu.org/licenses/>.
+*/
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _COLEMAKDH,
+ _NAVNUM,
+ _SYM,
+ _FUNC,
+ _GAME
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Colemak-DH
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | F | P | B | | J | L | U | Y | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | R | S | T | G | | M | N | E | I | O |
+ * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------|
+ * | Z | X | C | D | V | | 2 | | 3 | | K | H | , | . | / |
+ * `----------------------------------' `-----' `-----' `----------------------------------'
+ * ,-----. ,--------------------. ,--------------------. ,-----.
+ * | 1 | | DEL | SPACE | TAB | | TO(0) | BS | ENTER | | 4 |
+ * `-----' `--------------------' `--------------------' `-----'
+ */
+[_COLEMAKDH] = LAYOUT(
+ KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
+ KC_A, MT(MOD_LALT, KC_R), MT(MOD_LCTL, KC_S), MT(MOD_LSFT, KC_T), KC_G, KC_M, MT(MOD_LSFT, KC_N), MT(MOD_LCTL, KC_E), MT(MOD_LALT, KC_I), KC_O,
+ KC_Z, KC_X, KC_C, MT(MOD_LGUI, KC_D), KC_V, KC_K, MT(MOD_LGUI, KC_H), KC_COMM, KC_DOT, KC_SLSH,
+ KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4
+),
+
+/* NAVNUM
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ESC | PgUp | UP | PgDn | TO(4)| | / | 7 | 8 | 9 | - |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Home | Left | Down | Right| End | | = | 4 | 5 | 6 | + |
+ * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------|
+ * | | | INS | TO(2)| | | 2 | | 3 | | 0 | 1 | 2 | 3 | * |
+ * `----------------------------------' `-----' `-----' `----------------------------------'
+ * ,-----. ,--------------------. ,--------------------. ,-----.
+ * | 1 | | DEL | SPACE | MO(3)| | TO(0) | BS | ENTER | | 4 |
+ * `-----' `--------------------' `--------------------' `-----'
+ */
+[_NAVNUM] = LAYOUT(
+ KC_ESC, KC_PGUP, KC_UP, KC_PGDN, TO(4), KC_SLSH, KC_7, KC_8, KC_9, KC_MINS,
+ KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_EQL, KC_4, KC_5, KC_6, KC_PLUS,
+ KC_NO, KC_NO, KC_INS, TO(2), KC_NO, KC_0, KC_1, KC_2, KC_3, KC_ASTR,
+ KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_ESC, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4
+),
+
+/* SYM
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | % | @ | [ | ] | \ | | ¦ | ¬ | ^ | | |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | # | ! | ( | ) | | | | _ | ' | " | ~ | ` |
+ * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------|
+ * | $ | £ | { | } | & | | 2 | | 3 | | TO(1)| | | | |
+ * `----------------------------------' `-----' `-----' `----------------------------------'
+ * ,-----. ,--------------------. ,--------------------. ,-----.
+ * | 1 | | DEL | SPACE | TAB | | TO(0) | BS | ENTER | | 4 |
+ * `-----' `--------------------' `--------------------' `-----'
+ */
+[_SYM] = LAYOUT(
+ KC_PERC, S(KC_QUOT), KC_LBRC, KC_RBRC, KC_NUBS, RALT(KC_GRV), S(KC_GRV), KC_CIRC, KC_NO, KC_NO,
+ KC_NONUS_HASH, KC_EXLM, KC_LPRN, KC_RPRN, S(KC_NUBS), KC_UNDS, KC_QUOT, S(KC_2), S(KC_NUHS), KC_GRV,
+ KC_DLR, S(KC_3), KC_LCBR, KC_RCBR, KC_AMPR, TO(1), KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4
+),
+
+/* FUNC
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | | | | | | | | F7 | F8 | F9 | F11 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | | | | | | | | F4 | F5 | F6 | F12 |
+ * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------|
+ * | Reset| | | | | | 2 | | 3 | | F10 | F1 | F2 | F3 | F13 |
+ * `----------------------------------' `-----' `-----' `----------------------------------'
+ * ,-----. ,--------------------. ,--------------------. ,-----.
+ * | 1 | | DEL | SPACE | TAB | | TO(0) | BS | ENTER | | 4 |
+ * `-----' `--------------------' `--------------------' `-----'
+ */
+[_FUNC] = LAYOUT(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F11,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F4, KC_F5, KC_F6, KC_F12,
+ RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_F10, KC_F1, KC_F2, KC_F3, KC_F13,
+ KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4
+),
+
+/* GAME
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | ESC | Q | W | E | R | | | | | | |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * |Shift | A | S | D | F | | | | | | |
+ * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------|
+ * | Ctrl | Z | X | C | V | | 2 | | 3 | | | | | | |
+ * `----------------------------------' `-----' `-----' `----------------------------------'
+ * ,-----. ,--------------------. ,--------------------. ,-----.
+ * | 1 | | T | SPACE | TAB | | TO(0) | BS | ENTER | | 4 |
+ * `-----' `--------------------' `--------------------' `-----'
+ */
+[_GAME] = LAYOUT(
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_1, KC_T, KC_SPC, KC_TAB, KC_2, KC_3, TO(0), KC_BSPC, LT(2,KC_ENT), KC_4
+),
+};
@@ 0,0 1,108 @@
+/* Copyright 2022 CyanDuck
+*
+* 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 3 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 <http://www.gnu.org/licenses/>.
+*/
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _QWERTY,
+ _NAVNUM,
+ _SYM,
+ _FUNC,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | R | T | | Y | U | I | O | P |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | S | D | F | G | | H | J | K | L | ; |
+ * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------|
+ * | Z | X | C | V | B | | 2 | | 3 | | N | M | , | . | / |
+ * `----------------------------------' `-----' `-----' `----------------------------------'
+ * ,-----. ,--------------------. ,--------------------. ,-----.
+ * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 |
+ * `-----' `--------------------' `--------------------' `-----'
+ */
+[_QWERTY] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LCTL, KC_D), MT(MOD_LSFT, KC_F), KC_G, KC_H, MT(MOD_LSFT, KC_J), MT(MOD_LCTL, KC_K), MT(MOD_LALT, KC_L), MT(MOD_LGUI, KC_SCLN),
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4
+),
+
+/* NAVNUM
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | | PgUp | UP | PgDn | | | / | 7 | 8 | 9 | - |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Home | Left | Down | Right| End | | = | 4 | 5 | 6 | + |
+ * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------|
+ * | | | INS | | | | 2 | | 3 | | 0 | 1 | 2 | 3 | * |
+ * `----------------------------------' `-----' `-----' `----------------------------------'
+ * ,-----. ,--------------------. ,--------------------. ,-----.
+ * | 1 | | DEL | SPACE | MO(3)| | ESC | BS | ENTER | | 4 |
+ * `-----' `--------------------' `--------------------' `-----'
+ */
+[_NAVNUM] = LAYOUT(
+ KC_NO, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_SLSH, KC_7, KC_8, KC_9, KC_MINS,
+ KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_EQL, KC_4, KC_5, KC_6, KC_PLUS,
+ KC_NO, KC_NO, KC_INS, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_ASTR,
+ KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4
+),
+
+/* SYM
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | % | @ | [ | ] | \ | | ¦ | ¬ | ^ | | |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | # | ! | ( | ) | | | | _ | ' | " | ~ | ` |
+ * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------|
+ * | $ | £ | { | } | & | | 2 | | 3 | | | | | | |
+ * `----------------------------------' `-----' `-----' `----------------------------------'
+ * ,-----. ,--------------------. ,--------------------. ,-----.
+ * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 |
+ * `-----' `--------------------' `--------------------' `-----'
+ */
+[_SYM] = LAYOUT(
+ KC_PERC, S(KC_QUOT), KC_LBRC, KC_RBRC, KC_NUBS, RALT(KC_GRV), S(KC_GRV), KC_CIRC, KC_NO, KC_NO,
+ KC_NONUS_HASH, KC_EXLM, KC_LPRN, KC_RPRN, S(KC_NUBS), KC_UNDS, KC_QUOT, S(KC_2), S(KC_NUHS), KC_GRV,
+ KC_DLR, S(KC_3), KC_LCBR, KC_RCBR, KC_AMPR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4
+),
+
+/* FUNC
+ *
+ * ,----------------------------------. ,----------------------------------.
+ * | | | | | | | | F7 | F8 | F9 | F11 |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | | | | | | | | F4 | F5 | F6 | F12 |
+ * |------+------+------+------+------| ,-----. ,-----. |------+------+------+------+------|
+ * | Reset| | | | | | 2 | | 3 | | F10 | F1 | F2 | F3 | F13 |
+ * `----------------------------------' `-----' `-----' `----------------------------------'
+ * ,-----. ,--------------------. ,--------------------. ,-----.
+ * | 1 | | DEL | SPACE | TAB | | ESC | BS | ENTER | | 4 |
+ * `-----' `--------------------' `--------------------' `-----'
+ */
+[_FUNC] = LAYOUT(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F11,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F4, KC_F5, KC_F6, KC_F12,
+ RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_F10, KC_F1, KC_F2, KC_F3, KC_F13,
+ KC_1, LT(3,KC_DEL), LT(1,KC_SPC), KC_TAB, KC_2, KC_3, KC_ESC, KC_BSPC, LT(2,KC_ENT), KC_4
+),
+};
@@ 0,0 1,161 @@
+/* Copyright 2022 CyanDuck
+*
+* 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 3 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 <http://www.gnu.org/licenses/>.
+*/
+
+#include "waterfowl.h"
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) {
+ return false;
+ }
+ if (index == 0) { // Left roller
+ if (clockwise) {
+ tap_code(KC_MS_WH_DOWN);
+ } else {
+ tap_code(KC_MS_WH_UP);
+ }
+ } else if (index == 1) { // Left encoder
+ if (clockwise) {
+ tap_code16(S(KC_TAB));
+ } else {
+ tap_code(KC_TAB);
+ }
+ } else if (index == 2) { // Right roller
+ if (clockwise) {
+ tap_code16(S(KC_MS_WH_DOWN));
+ } else {
+ tap_code16(S(KC_MS_WH_UP));
+ }
+ } else if (index == 3) { // Right encoder
+ if (clockwise) {
+ tap_code(KC_RIGHT);
+ } else {
+ tap_code(KC_LEFT);
+ }
+ }
+
+ return true;
+}
+#endif
+
+#ifdef OLED_ENABLE
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+ if (is_keyboard_master() && is_keyboard_left()) {
+ return OLED_ROTATION_90;
+ } else {
+ return OLED_ROTATION_270;
+ }
+}
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ if (is_keyboard_master()) {
+ // Host Keyboard Layer Status
+ oled_write_P(PSTR("LAYER:\n"), false);
+ oled_write_P(PSTR("\n"), false);
+
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ oled_write_P(PSTR("DEFAULT\n\n\n\n"), false);
+ break;
+ case 3:
+ oled_write_P(PSTR("FUNCTION\n\n\n\n"), false);
+ break;
+ case 2:
+ oled_write_P(PSTR("SYMBOLS\n\n\n\n"), false);
+ break;
+ case 1:
+ oled_write_P(PSTR("NAVIGATIONAND\nNUMBERS\n"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("Undefined"), false);
+ }
+ } else {
+ static const char PROGMEM my_logo[] = {
+ // Paste the code from the previous step below this line!
+ // 'waterfowl for OLED', 64x128px
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 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, 0x00, 0x00,
+0x00, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x10, 0x10, 0x08, 0x0c, 0x04, 0x04, 0x02, 0x02, 0x02, 0x01,
+0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1a, 0x26, 0x40,
+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, 0xe0,
+0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1e, 0x16, 0x1c, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x03, 0x0c, 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, 0x80, 0xf0, 0xfc, 0xff,
+0x78, 0xf8, 0xfc, 0xfe, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xfc,
+0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x3f, 0x1e, 0x1c, 0x1c, 0x14, 0x10, 0x10, 0x08, 0x08, 0x10, 0x10,
+0x10, 0x10, 0x10, 0x30, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x38, 0x7c, 0x7e, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x0f, 0x07, 0x03,
+0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xc0, 0x38, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x38,
+0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3c, 0x03, 0x80,
+0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x80, 0x80, 0xc0, 0x40, 0x7f, 0xc0, 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, 0x06, 0x04, 0x0c, 0x0c, 0x0c, 0x04, 0x07, 0x02, 0x03, 0x01,
+0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x02, 0x06, 0x06, 0x06,
+0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+
+ oled_write_raw_P(my_logo, sizeof(my_logo));
+ }
+ return true;
+}
+#endif