aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/latinpad/config.h59
-rw-r--r--keyboards/latinpad/info.json34
-rw-r--r--keyboards/latinpad/keymaps/default/keymap.c70
-rw-r--r--keyboards/latinpad/keymaps/via/keymap.c68
-rw-r--r--keyboards/latinpad/keymaps/via/rules.mk1
-rw-r--r--keyboards/latinpad/latinpad.c40
-rw-r--r--keyboards/latinpad/latinpad.h42
-rw-r--r--keyboards/latinpad/lib/glcdfont.c228
-rw-r--r--keyboards/latinpad/readme.md14
-rw-r--r--keyboards/latinpad/rules.mk28
10 files changed, 584 insertions, 0 deletions
diff --git a/keyboards/latinpad/config.h b/keyboards/latinpad/config.h
new file mode 100644
index 000000000..2b7698d4c
--- /dev/null
+++ b/keyboards/latinpad/config.h
@@ -0,0 +1,59 @@
1/*
2Copyright 2020 latincompass
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.*/
16
17#pragma once
18
19#include "config_common.h"
20#define VENDOR_ID 0x6C63 // "lc" = latincompass
21#define PRODUCT_ID 0x6C70 // "lp" = latinpad
22#define DEVICE_VER 0x0001
23#define MANUFACTURER latincompass
24#define PRODUCT latinpad
25#define DESCRIPTION dual rotary encoder macro pad
26
27/* key matrix size */
28#define MATRIX_ROWS 5
29#define MATRIX_COLS 4
30#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1 }
31#define MATRIX_COL_PINS { D4, C6, D7, E6 }
32#define UNUSED_PINS
33
34#define DIODE_DIRECTION ROW2COL
35
36#define SSD1306OLED
37#define RGB_DI_PIN D3
38
39#define RGBLED_NUM 18
40#define DRIVER_LED_TOTAL RGBLED_NUM
41
42/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
43#define DEBOUNCE 5
44
45/* define if matrix has ghost (lacks anti-ghosting diodes) */
46//#define MATRIX_HAS_GHOST
47
48/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
49#define LOCKING_SUPPORT_ENABLE
50/* Locking resynchronize hack */
51#define LOCKING_RESYNC_ENABLE
52
53
54#define OLED_FONT_H "./lib/glcdfont.c"
55
56#define ENCODERS_PAD_A { B4, B5 }
57#define ENCODERS_PAD_B { B2, B6 }
58
59#define ENCODER_RESOLUTION 4
diff --git a/keyboards/latinpad/info.json b/keyboards/latinpad/info.json
new file mode 100644
index 000000000..024672d30
--- /dev/null
+++ b/keyboards/latinpad/info.json
@@ -0,0 +1,34 @@
1{
2 "keyboard_name": "latinpad",
3 "url": "https://github.com/latincompass/2-RotaryEncoder-pad",
4 "maintainer": "latincompass",
5
6 "width": 4,
7 "height": 5,
8 "layouts": {
9
10 "LAYOUT": {
11 "layout": [
12 {"label":"Num Lock", "x":0, "y":0, "w":0.8, "h":0.8},
13 {"label":"/", "x":0.8, "y":0, "w":0.8, "h":0.8},
14
15 {"label":"7", "x":0, "y":1},
16 {"label":"8", "x":1, "y":1},
17 {"label":"9", "x":2, "y":1},
18 {"label":"+", "x":3, "y":1},
19 {"label":"4", "x":0, "y":2},
20 {"label":"5", "x":1, "y":2},
21 {"label":"6", "x":2, "y":2},
22 {"label":"+", "x":3, "y":2},
23 {"label":"1", "x":0, "y":3},
24 {"label":"2", "x":1, "y":3},
25 {"label":"3", "x":2, "y":3},
26 {"label":"Enter", "x":3, "y":3},
27 {"label":"0", "x":0, "y":4},
28 {"label":"0", "x":1, "y":4},
29 {"label":".", "x":2, "y":4},
30 {"label":"Enter", "x":3, "y":4}
31 ]
32 }
33 }
34}
diff --git a/keyboards/latinpad/keymaps/default/keymap.c b/keyboards/latinpad/keymaps/default/keymap.c
new file mode 100644
index 000000000..8edc66f0a
--- /dev/null
+++ b/keyboards/latinpad/keymaps/default/keymap.c
@@ -0,0 +1,70 @@
1 /* Keymap _0: (Base Layer) Default Layer
2
3 * .-----------.
4 * |PGUP | PGDN|
5 * |-----------------------.
6 * | 7 | 8 | 9 | MO1 |
7 * |-----|-----|-----|-----|
8 * | 4 | 5 | 6 | + |
9 * |-----|-----|-----|-----|
10 * | 1 | 2 | 3 | — |
11 * |-----|-----|-----|-----|
12 * | 0 | . | DEL |Enter|
13 * .-----------------------.
14 */
15 /* Keymap _1: (Second Layer) second Layer
16
17 * .---------------.
18 * |NUMLOCK|Calc. |
19 * |--------------------------------.
20 * |RGB_TOG|RGB_MOD|RGB_M_K|RGB_M_X |
21 * |-------|-------|-------|--------|
22 * |RGB_SAI|RGB_SAD|RGB_HUI|RGB_HUD |
23 * |-------|-------|-------|--------|
24 * |RGB_VAI|RGB_VAD|RGB_SPI|RGB_SPD |
25 * |-------|-------|-------|--------|
26 * |RGB_SPI|RGB_SPD|RGB_TOG|KC_TRNS |
27 * .--------------------------------.
28*/
29
30#include QMK_KEYBOARD_H
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32 [0] = LAYOUT(
33 KC_PGUP, KC_PGDOWN,
34 KC_KP_7, KC_KP_8, KC_KP_9, MO(1),
35 KC_P4, KC_P5, KC_P6, KC_KP_PLUS,
36 KC_P1, KC_P2, KC_P3, KC_KP_MINUS,
37 KC_P0, KC_PDOT,KC_DELETE, KC_KP_ENTER),
38 [1] = LAYOUT(
39 KC_NUMLOCK, KC_CALCULATOR,
40 RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_X,
41 RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD,
42 RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
43 RGB_SPI, RGB_SPD, RGB_TOG, KC_TRNS),
44};
45
46static void render_logo(void) {
47 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};
48 oled_write_P(qmk_logo, false);
49}
50
51#ifdef OLED_DRIVER_ENABLE
52void oled_task_user(void) { render_logo(); }
53#endif
54
55void encoder_update_user(uint8_t index, bool clockwise) {
56 if (index == 0) {
57 if (clockwise) {
58 tap_code(KC_AUDIO_VOL_UP);
59 } else {
60 tap_code(KC_AUDIO_VOL_DOWN);
61 }
62 } else if (index == 1) {
63 if (clockwise) {
64 tap_code(KC_BRIGHTNESS_UP);
65 } else {
66 tap_code(KC_BRIGHTNESS_DOWN);
67 }
68 }
69}
70void matrix_init_user(void) { render_logo(); }
diff --git a/keyboards/latinpad/keymaps/via/keymap.c b/keyboards/latinpad/keymaps/via/keymap.c
new file mode 100644
index 000000000..c48dd88a8
--- /dev/null
+++ b/keyboards/latinpad/keymaps/via/keymap.c
@@ -0,0 +1,68 @@
1/* Keymap _0: (Base Layer) Default Layer
2 * .-----------.
3 * |PGUP | PGDN|
4 * |-----------------------.
5 * | 7 | 8 | 9 | MO1 |
6 * |-----|-----|-----|-----|
7 * | 4 | 5 | 6 | + |
8 * |-----|-----|-----|-----|
9 * | 1 | 2 | 3 | — |
10 * |-----|-----|-----|-----|
11 * | 0 | . | DEL |Enter|
12 * .-----------------------.
13 */
14 /* Keymap _1: (Second Layer) second Layer
15 * .---------------.
16 * |NUMLOCK|Calc. |
17 * |--------------------------------.
18 * |RGB_TOG|RGB_MOD|RGB_M_K|RGB_M_X |
19 * |-------|-------|-------|--------|
20 * |RGB_SAI|RGB_SAD|RGB_HUI|RGB_HUD |
21 * |-------|-------|-------|--------|
22 * |RGB_VAI|RGB_VAD|RGB_SPI|RGB_SPD |
23 * |-------|-------|-------|--------|
24 * |RGB_SPI|RGB_SPD|RGB_TOG|KC_TRNS |
25 * .--------------------------------.
26*/
27
28#include QMK_KEYBOARD_H
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30 [0] = LAYOUT(
31 KC_PGUP, KC_PGDOWN,
32 KC_KP_7, KC_KP_8, KC_KP_9, MO(1),
33 KC_P4, KC_P5, KC_P6, KC_KP_PLUS,
34 KC_P1, KC_P2, KC_P3, KC_KP_MINUS,
35 KC_P0, KC_PDOT,KC_DELETE, KC_KP_ENTER),
36 [1] = LAYOUT(
37 KC_NUMLOCK, KC_CALCULATOR,
38 RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_X,
39 RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD,
40 RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
41 RGB_SPI, RGB_SPD, RGB_TOG, KC_TRNS),
42};
43
44static void render_logo(void) {
45 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};
46 oled_write_P(qmk_logo, false);
47}
48
49#ifdef OLED_DRIVER_ENABLE
50void oled_task_user(void) { render_logo(); }
51#endif
52
53void encoder_update_user(uint8_t index, bool clockwise) {
54 if (index == 0) {
55 if (clockwise) {
56 tap_code(KC_AUDIO_VOL_UP);
57 } else {
58 tap_code(KC_AUDIO_VOL_DOWN);
59 }
60 } else if (index == 1) {
61 if (clockwise) {
62 tap_code(KC_BRIGHTNESS_UP);
63 } else {
64 tap_code(KC_BRIGHTNESS_DOWN);
65 }
66 }
67}
68void matrix_init_user(void) { render_logo(); }
diff --git a/keyboards/latinpad/keymaps/via/rules.mk b/keyboards/latinpad/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/latinpad/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/latinpad/latinpad.c b/keyboards/latinpad/latinpad.c
new file mode 100644
index 000000000..85f8eba7d
--- /dev/null
+++ b/keyboards/latinpad/latinpad.c
@@ -0,0 +1,40 @@
1/* Copyright 2020 latincompass
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include "latinpad.h"
17
18#ifdef RGB_MATRIX_ENABLE
19 led_config_t g_led_config = {
20 {
21 { 1, 2, 3, 4 },
22 { 5, 6, 7, 8 },
23 { 9, 10, 11, 12 },
24 { 13, 14, 15, 16 },
25 { 17, 18, NO_LED, NO_LED }
26 },{
27 { 74, 21 }, { 37, 21 }, { 24, 21 }, { 18, 21 },
28 { 74, 10 }, { 37, 10 }, { 28, 10 }, { 18, 10 },
29 { 74, 7 }, { 37, 7 }, { 20, 7 }, { 18, 7 },
30 { 74, 5 }, { 37, 5 }, { 22, 5 }, { 18, 5 },
31 { 74, 5 }, { 37, 5 },
32 },{
33 1, 1, 1, 1,
34 1, 1, 1, 1,
35 1, 1, 1, 1,
36 1, 1, 1, 1,
37 1, 1
38 }
39 };
40#endif
diff --git a/keyboards/latinpad/latinpad.h b/keyboards/latinpad/latinpad.h
new file mode 100644
index 000000000..a2c275aec
--- /dev/null
+++ b/keyboards/latinpad/latinpad.h
@@ -0,0 +1,42 @@
1/* Copyright 2020 latincompass
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#include "quantum.h"
19
20/* This a shortcut to help you visually see your layout.
21 *
22 * The first section contains all of the arguments representing the physical
23 * layout of the board and position of the keys.
24 *
25 * The second converts the arguments into a two-dimensional array which
26 * represents the switch matrix.
27 */
28
29#define LAYOUT( \
30 K40, K41, \
31 K00, K01, K02, K03, \
32 K10, K11, K12, K13, \
33 K20, K21, K22, K23, \
34 K30, K31, K32, K33 \
35) \
36{ \
37 { K00, K01, K02, K03 }, \
38 { K10, K11, K12, K13 }, \
39 { K20, K21, K22, K23 }, \
40 { K30, K31, K32, K33 }, \
41 { K40, K41, KC_NO, KC_NO } \
42}
diff --git a/keyboards/latinpad/lib/glcdfont.c b/keyboards/latinpad/lib/glcdfont.c
new file mode 100644
index 000000000..03ddddc5c
--- /dev/null
+++ b/keyboards/latinpad/lib/glcdfont.c
@@ -0,0 +1,228 @@
1#include "progmem.h"
2// Standard ASCII 5x7 font
3const unsigned char font[] PROGMEM = {
4 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
6 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
7 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
8 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
9 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
10 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
11 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
12 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
13 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
14 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
15 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
16 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
17 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
18 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
19 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
20 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
21 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
22 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
23 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
24 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
25 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
26 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
27 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
28 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
29 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
30 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
31 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
32 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
33 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
34 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
35 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
36 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
38 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
39 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
40 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
41 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
42 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
43 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
44 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
45 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
46 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
47 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
48 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
49 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
50 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
51 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
52 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
53 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
54 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
55 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
56 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
57 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
58 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
59 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
60 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
61 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
62 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
63 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
64 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
65 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
66 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
67 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
68 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
69 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
70 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
71 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
72 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
73 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
74 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
75 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
76 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
77 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
78 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
79 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
80 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
81 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
82 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
83 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
84 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
85 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
86 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
87 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
88 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
89 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
90 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
91 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
92 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
93 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
94 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
95 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
96 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
97 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
98 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
99 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
100 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
101 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
102 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
103 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
104 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
105 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
106 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
107 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
108 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
109 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
110 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
111 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
112 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
113 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
114 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
115 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
116 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
117 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
118 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
119 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
120 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
121 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
122 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
123 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
124 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
125 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
126 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
127 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
128 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
129 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
130 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
131 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
132 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
133 0x00, 0xF8, 0xF8, 0x58, 0x58, 0x5E,
134 0xDA, 0x5A, 0x5B, 0x59, 0xDB, 0x5A,
135 0x5B, 0x58, 0xD8, 0x58, 0x58, 0x58,
136 0xD8, 0x58, 0x58, 0x58, 0xD8, 0x58,
137 0x58, 0x58, 0xD8, 0x58, 0x58, 0x58,
138 0xD8, 0x58, 0x58, 0x78, 0xF8, 0xF8,
139 0xF8, 0x78, 0x78, 0x78, 0xF8, 0x00,
140 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
142 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
143 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
144 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
145 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
146 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
147 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
148 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
149 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
150 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
151 0x00, 0x44, 0x28, 0xFF, 0x5A, 0x24,
152 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
153 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
154 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
155 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
156 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
158 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
159 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
160 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
161 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
162 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
163 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
164 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
165 0x00, 0xFF, 0xFF, 0x44, 0x55, 0x44,
166 0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44,
167 0x55, 0x44, 0xFF, 0x44, 0x55, 0x44,
168 0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44,
169 0x55, 0x44, 0xFF, 0x44, 0x55, 0x44,
170 0xFF, 0x44, 0x55, 0x44, 0xFF, 0xFF,
171 0xFF, 0xC4, 0xD5, 0xC4, 0xFF, 0x00,
172 0x00, 0xFE, 0x21, 0x61, 0xA1, 0x1E,
173 0x00, 0xFE, 0x01, 0x21, 0x21, 0xEF,
174 0x00, 0xFF, 0x11, 0x11, 0x11, 0xFE,
175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
176 0xFF, 0x11, 0x11, 0x11, 0xFE, 0x00,
177 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
178 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00,
179 0xFF, 0x11, 0x11, 0x11, 0x01, 0x00,
180 0x01, 0x01, 0xFF, 0x01, 0x01, 0x00,
181 0xFF, 0x01, 0x01, 0xFF, 0x00, 0xFF,
182 0x01, 0x01, 0xFF, 0x00, 0x01, 0x01,
183 0xFF, 0x01, 0x01, 0x00, 0xFF, 0x20,
184 0x20, 0x20, 0xFF, 0x00, 0x00, 0x00,
185 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
186 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
187 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
189 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
190 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
191 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
194 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
195 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
196 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
197 0x00, 0x7F, 0x7F, 0x44, 0x55, 0x44,
198 0x7F, 0x44, 0x55, 0x54, 0x57, 0x54,
199 0x55, 0x54, 0x57, 0x54, 0x55, 0x54,
200 0x57, 0x54, 0x55, 0x54, 0x57, 0x54,
201 0x45, 0x7C, 0x47, 0x54, 0x45, 0x7C,
202 0x7F, 0x7C, 0x45, 0x54, 0x57, 0x50,
203 0x5E, 0x50, 0x57, 0x47, 0x7F, 0x00,
204 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
205 0x00, 0x01, 0x02, 0x02, 0x02, 0x03,
206 0x00, 0x03, 0x02, 0x02, 0x02, 0x01,
207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
208 0x03, 0x02, 0x02, 0x02, 0x01, 0x00,
209 0x03, 0x02, 0x02, 0x02, 0x02, 0x00,
210 0x03, 0x02, 0x02, 0x02, 0x03, 0x00,
211 0x03, 0x02, 0x02, 0x02, 0x02, 0x00,
212 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
213 0x03, 0x02, 0x02, 0x03, 0x00, 0x03,
214 0x02, 0x02, 0x03, 0x00, 0x00, 0x30,
215 0x2B, 0x7C, 0x20, 0x40, 0x03, 0x7C,
216 0x44, 0x7C, 0x03, 0x00, 0x00, 0x00,
217 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
218 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
222 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
223 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
225 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
228};
diff --git a/keyboards/latinpad/readme.md b/keyboards/latinpad/readme.md
new file mode 100644
index 000000000..620bf6430
--- /dev/null
+++ b/keyboards/latinpad/readme.md
@@ -0,0 +1,14 @@
1# Latinpad
2
3![Latinpad](https://github.com/latincompass/2-RotaryEncoder-pad/blob/master/1.jpg)
4
5macro 2 rotary encoder pad
6
7* Keyboard Maintainer: [latincompass](https://github.com/latincompass)
8* Hardware Availability: https://github.com/latincompass/2-RotaryEncoder-pad
9
10Make example for this keyboard (after setting up your build environment):
11
12 make latinpad:default
13
14See 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).
diff --git a/keyboards/latinpad/rules.mk b/keyboards/latinpad/rules.mk
new file mode 100644
index 000000000..47208aec2
--- /dev/null
+++ b/keyboards/latinpad/rules.mk
@@ -0,0 +1,28 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = caterina
13
14# Build Options
15# change yes to no to disable
16BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
17MOUSEKEY_ENABLE = no # Mouse keys
18EXTRAKEY_ENABLE = yes # Audio control and System control
19CONSOLE_ENABLE = no # Console for debug
20COMMAND_ENABLE = no # Commands for debug and configuration
21SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
22NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
23BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
24AUDIO_ENABLE = no
25RGBLIGHT_ENABLE = no
26OLED_DRIVER_ENABLE = yes
27ENCODER_ENABLE = yes
28RGB_MATRIX_ENABLE = WS2812