[Keyboard] latinpad(Original:hasupad,RENAMED latinpad) (#8766) Co-Authored-By: ridingqwerty <george.g.koenig@gmail.com> Co-Authored-By: Ryan <fauxpark@gmail.com> Co-Authored-By: Joel Challis <git@zvecr.com> Co-Authored-By: Drashna Jaelre <drashna@live.com> Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
10 files changed, 584 insertions(+), 0 deletions(-) A keyboards/latinpad/config.h A keyboards/latinpad/info.json A keyboards/latinpad/keymaps/default/keymap.c A keyboards/latinpad/keymaps/via/keymap.c A keyboards/latinpad/keymaps/via/rules.mk A keyboards/latinpad/latinpad.c A keyboards/latinpad/latinpad.h A keyboards/latinpad/lib/glcdfont.c A keyboards/latinpad/readme.md A keyboards/latinpad/rules.mk
A keyboards/latinpad/config.h => keyboards/latinpad/config.h +59 -0
@@ 0,0 1,59 @@ /* Copyright 2020 latincompass 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 <http://www.gnu.org/licenses/>.*/ #pragma once #include "config_common.h" #define VENDOR_ID 0x6C63 // "lc" = latincompass #define PRODUCT_ID 0x6C70 // "lp" = latinpad #define DEVICE_VER 0x0001 #define MANUFACTURER latincompass #define PRODUCT latinpad #define DESCRIPTION dual rotary encoder macro pad /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 #define MATRIX_ROW_PINS { F4, F5, F6, F7, B1 } #define MATRIX_COL_PINS { D4, C6, D7, E6 } #define UNUSED_PINS #define DIODE_DIRECTION ROW2COL #define SSD1306OLED #define RGB_DI_PIN D3 #define RGBLED_NUM 18 #define DRIVER_LED_TOTAL RGBLED_NUM /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 /* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE #define OLED_FONT_H "./lib/glcdfont.c" #define ENCODERS_PAD_A { B4, B5 } #define ENCODERS_PAD_B { B2, B6 } #define ENCODER_RESOLUTION 4
A keyboards/latinpad/info.json => keyboards/latinpad/info.json +34 -0
@@ 0,0 1,34 @@ { "keyboard_name": "latinpad", "url": "https://github.com/latincompass/2-RotaryEncoder-pad", "maintainer": "latincompass", "width": 4, "height": 5, "layouts": { "LAYOUT": { "layout": [ {"label":"Num Lock", "x":0, "y":0, "w":0.8, "h":0.8}, {"label":"/", "x":0.8, "y":0, "w":0.8, "h":0.8}, {"label":"7", "x":0, "y":1}, {"label":"8", "x":1, "y":1}, {"label":"9", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"4", "x":0, "y":2}, {"label":"5", "x":1, "y":2}, {"label":"6", "x":2, "y":2}, {"label":"+", "x":3, "y":2}, {"label":"1", "x":0, "y":3}, {"label":"2", "x":1, "y":3}, {"label":"3", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"0", "x":0, "y":4}, {"label":"0", "x":1, "y":4}, {"label":".", "x":2, "y":4}, {"label":"Enter", "x":3, "y":4} ] } } }
A keyboards/latinpad/keymaps/default/keymap.c => keyboards/latinpad/keymaps/default/keymap.c +70 -0
@@ 0,0 1,70 @@ /* Keymap _0: (Base Layer) Default Layer * .-----------. * |PGUP | PGDN| * |-----------------------. * | 7 | 8 | 9 | MO1 | * |-----|-----|-----|-----| * | 4 | 5 | 6 | + | * |-----|-----|-----|-----| * | 1 | 2 | 3 | — | * |-----|-----|-----|-----| * | 0 | . | DEL |Enter| * .-----------------------. */ /* Keymap _1: (Second Layer) second Layer * .---------------. * |NUMLOCK|Calc. | * |--------------------------------. * |RGB_TOG|RGB_MOD|RGB_M_K|RGB_M_X | * |-------|-------|-------|--------| * |RGB_SAI|RGB_SAD|RGB_HUI|RGB_HUD | * |-------|-------|-------|--------| * |RGB_VAI|RGB_VAD|RGB_SPI|RGB_SPD | * |-------|-------|-------|--------| * |RGB_SPI|RGB_SPD|RGB_TOG|KC_TRNS | * .--------------------------------. */ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_PGUP, KC_PGDOWN, KC_KP_7, KC_KP_8, KC_KP_9, MO(1), KC_P4, KC_P5, KC_P6, KC_KP_PLUS, KC_P1, KC_P2, KC_P3, KC_KP_MINUS, KC_P0, KC_PDOT,KC_DELETE, KC_KP_ENTER), [1] = LAYOUT( KC_NUMLOCK, KC_CALCULATOR, RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_X, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, RGB_SPI, RGB_SPD, RGB_TOG, KC_TRNS), }; static void render_logo(void) { static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0}; oled_write_P(qmk_logo, false); } #ifdef OLED_DRIVER_ENABLE void oled_task_user(void) { render_logo(); } #endif void encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { tap_code(KC_AUDIO_VOL_UP); } else { tap_code(KC_AUDIO_VOL_DOWN); } } else if (index == 1) { if (clockwise) { tap_code(KC_BRIGHTNESS_UP); } else { tap_code(KC_BRIGHTNESS_DOWN); } } } void matrix_init_user(void) { render_logo(); }
A keyboards/latinpad/keymaps/via/keymap.c => keyboards/latinpad/keymaps/via/keymap.c +68 -0
@@ 0,0 1,68 @@ /* Keymap _0: (Base Layer) Default Layer * .-----------. * |PGUP | PGDN| * |-----------------------. * | 7 | 8 | 9 | MO1 | * |-----|-----|-----|-----| * | 4 | 5 | 6 | + | * |-----|-----|-----|-----| * | 1 | 2 | 3 | — | * |-----|-----|-----|-----| * | 0 | . | DEL |Enter| * .-----------------------. */ /* Keymap _1: (Second Layer) second Layer * .---------------. * |NUMLOCK|Calc. | * |--------------------------------. * |RGB_TOG|RGB_MOD|RGB_M_K|RGB_M_X | * |-------|-------|-------|--------| * |RGB_SAI|RGB_SAD|RGB_HUI|RGB_HUD | * |-------|-------|-------|--------| * |RGB_VAI|RGB_VAD|RGB_SPI|RGB_SPD | * |-------|-------|-------|--------| * |RGB_SPI|RGB_SPD|RGB_TOG|KC_TRNS | * .--------------------------------. */ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_PGUP, KC_PGDOWN, KC_KP_7, KC_KP_8, KC_KP_9, MO(1), KC_P4, KC_P5, KC_P6, KC_KP_PLUS, KC_P1, KC_P2, KC_P3, KC_KP_MINUS, KC_P0, KC_PDOT,KC_DELETE, KC_KP_ENTER), [1] = LAYOUT( KC_NUMLOCK, KC_CALCULATOR, RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_X, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, RGB_SPI, RGB_SPD, RGB_TOG, KC_TRNS), }; static void render_logo(void) { static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0}; oled_write_P(qmk_logo, false); } #ifdef OLED_DRIVER_ENABLE void oled_task_user(void) { render_logo(); } #endif void encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { tap_code(KC_AUDIO_VOL_UP); } else { tap_code(KC_AUDIO_VOL_DOWN); } } else if (index == 1) { if (clockwise) { tap_code(KC_BRIGHTNESS_UP); } else { tap_code(KC_BRIGHTNESS_DOWN); } } } void matrix_init_user(void) { render_logo(); }
A keyboards/latinpad/keymaps/via/rules.mk => keyboards/latinpad/keymaps/via/rules.mk +1 -0
A keyboards/latinpad/latinpad.c => keyboards/latinpad/latinpad.c +40 -0
@@ 0,0 1,40 @@ /* Copyright 2020 latincompass * * 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 <http://www.gnu.org/licenses/>. */ #include "latinpad.h" #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 }, { 17, 18, NO_LED, NO_LED } },{ { 74, 21 }, { 37, 21 }, { 24, 21 }, { 18, 21 }, { 74, 10 }, { 37, 10 }, { 28, 10 }, { 18, 10 }, { 74, 7 }, { 37, 7 }, { 20, 7 }, { 18, 7 }, { 74, 5 }, { 37, 5 }, { 22, 5 }, { 18, 5 }, { 74, 5 }, { 37, 5 }, },{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } }; #endif
A keyboards/latinpad/latinpad.h => keyboards/latinpad/latinpad.h +42 -0
@@ 0,0 1,42 @@ /* Copyright 2020 latincompass * * 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 <http://www.gnu.org/licenses/>. */ #pragma once #include "quantum.h" /* This a shortcut to help you visually see your layout. * * The first section contains all of the arguments representing the physical * layout of the board and position of the keys. * * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ #define LAYOUT( \ K40, K41, \ K00, K01, K02, K03, \ K10, K11, K12, K13, \ K20, K21, K22, K23, \ K30, K31, K32, K33 \ ) \ { \ { K00, K01, K02, K03 }, \ { K10, K11, K12, K13 }, \ { K20, K21, K22, K23 }, \ { K30, K31, K32, K33 }, \ { K40, K41, KC_NO, KC_NO } \ }
A keyboards/latinpad/lib/glcdfont.c => keyboards/latinpad/lib/glcdfont.c +228 -0
@@ 0,0 1,228 @@ #include "progmem.h" // Standard ASCII 5x7 font const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x58, 0x58, 0x5E, 0xDA, 0x5A, 0x5B, 0x59, 0xDB, 0x5A, 0x5B, 0x58, 0xD8, 0x58, 0x58, 0x58, 0xD8, 0x58, 0x58, 0x58, 0xD8, 0x58, 0x58, 0x58, 0xD8, 0x58, 0x58, 0x58, 0xD8, 0x58, 0x58, 0x78, 0xF8, 0xF8, 0xF8, 0x78, 0x78, 0x78, 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, 0x44, 0x28, 0xFF, 0x5A, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x44, 0x55, 0x44, 0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44, 0x55, 0x44, 0xFF, 0xFF, 0xFF, 0xC4, 0xD5, 0xC4, 0xFF, 0x00, 0x00, 0xFE, 0x21, 0x61, 0xA1, 0x1E, 0x00, 0xFE, 0x01, 0x21, 0x21, 0xEF, 0x00, 0xFF, 0x11, 0x11, 0x11, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x11, 0x11, 0xFE, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x11, 0x11, 0x11, 0x01, 0x00, 0x01, 0x01, 0xFF, 0x01, 0x01, 0x00, 0xFF, 0x01, 0x01, 0xFF, 0x00, 0xFF, 0x01, 0x01, 0xFF, 0x00, 0x01, 0x01, 0xFF, 0x01, 0x01, 0x00, 0xFF, 0x20, 0x20, 0x20, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x44, 0x55, 0x44, 0x7F, 0x44, 0x55, 0x54, 0x57, 0x54, 0x55, 0x54, 0x57, 0x54, 0x55, 0x54, 0x57, 0x54, 0x55, 0x54, 0x57, 0x54, 0x45, 0x7C, 0x47, 0x54, 0x45, 0x7C, 0x7F, 0x7C, 0x45, 0x54, 0x57, 0x50, 0x5E, 0x50, 0x57, 0x47, 0x7F, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x02, 0x02, 0x02, 0x03, 0x00, 0x03, 0x02, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x01, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x00, 0x03, 0x02, 0x02, 0x02, 0x03, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x03, 0x00, 0x03, 0x02, 0x02, 0x03, 0x00, 0x00, 0x30, 0x2B, 0x7C, 0x20, 0x40, 0x03, 0x7C, 0x44, 0x7C, 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, };
A keyboards/latinpad/readme.md => keyboards/latinpad/readme.md +14 -0
@@ 0,0 1,14 @@ # Latinpad  macro 2 rotary encoder pad * Keyboard Maintainer: [latincompass](https://github.com/latincompass) * Hardware Availability: https://github.com/latincompass/2-RotaryEncoder-pad Make example for this keyboard (after setting up your build environment): make latinpad: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).
A keyboards/latinpad/rules.mk => keyboards/latinpad/rules.mk +28 -0
@@ 0,0 1,28 @@ # MCU name MCU = atmega32u4 # Bootloader selection # Teensy halfkay # Pro Micro caterina # Atmel DFU atmel-dfu # LUFA DFU lufa-dfu # QMK DFU qmk-dfu # ATmega32A bootloadHID # ATmega328P USBasp BOOTLOADER = caterina # Build Options # change yes to no to disable BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no RGBLIGHT_ENABLE = no OLED_DRIVER_ENABLE = yes ENCODER_ENABLE = yes RGB_MATRIX_ENABLE = WS2812