aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/meson/config.h172
-rw-r--r--keyboards/meson/info.json108
-rw-r--r--keyboards/meson/keymaps/default/config.h19
-rw-r--r--keyboards/meson/keymaps/default/keymap.c78
-rw-r--r--keyboards/meson/keymaps/default/readme.md1
-rw-r--r--keyboards/meson/meson.c51
-rw-r--r--keyboards/meson/meson.h56
-rw-r--r--keyboards/meson/readme.md13
-rw-r--r--keyboards/meson/rules.mk81
9 files changed, 579 insertions, 0 deletions
diff --git a/keyboards/meson/config.h b/keyboards/meson/config.h
new file mode 100644
index 000000000..3e37c89fd
--- /dev/null
+++ b/keyboards/meson/config.h
@@ -0,0 +1,172 @@
1/*
2Copyright 2019 Luciano M
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
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xFEED
24#define PRODUCT_ID 0x0000
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Luciano M
27#define PRODUCT Meson
28#define DESCRIPTION 3x14 split keyboard with two thumb keys per side
29
30/* key matrix size */
31#define MATRIX_ROWS 8 // 4 rows each half
32#define MATRIX_COLS 7
33
34#define MATRIX_ROW_PINS { F7, C6, F6, F5 }
35#define MATRIX_COL_PINS { D4, D7, E6, B3, B2, B6, F4 }
36// #define UNUSED_PINS
37
38/* COL2ROW, ROW2COL*/
39#define DIODE_DIRECTION COL2ROW
40
41#define USE_I2C
42#define SOFT_SERIAL_PIN D0
43
44#define RGB_DI_PIN B5
45#ifdef RGB_DI_PIN
46 #define RGBLED_NUM 10
47 #define RGBLIGHT_SPLIT
48 #define RGBLED_SPLIT { 5, 5 }
49 #define RGBLIGHT_HUE_STEP 8
50 #define RGBLIGHT_SAT_STEP 8
51 #define RGBLIGHT_VAL_STEP 8
52 #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
53 #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
54 /*== all animations enable ==*/
55 #define RGBLIGHT_ANIMATIONS
56 /*== customize breathing effect ==*/
57 /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
58 #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
59 /*==== use exp() and sin() ====*/
60 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
61 #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
62#endif
63
64/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
65#define DEBOUNCE 5
66
67/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
68#define LOCKING_SUPPORT_ENABLE
69/* Locking resynchronize hack */
70#define LOCKING_RESYNC_ENABLE
71
72/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
73 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
74 */
75// #define GRAVE_ESC_CTRL_OVERRIDE
76
77/*
78 * Force NKRO
79 *
80 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
81 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
82 * makefile for this to work.)
83 *
84 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
85 * until the next keyboard reset.
86 *
87 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
88 * fully operational during normal computer usage.
89 *
90 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
91 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
92 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
93 * power-up.
94 *
95 */
96//#define FORCE_NKRO
97
98/*
99 * Magic Key Options
100 *
101 * Magic keys are hotkey commands that allow control over firmware functions of
102 * the keyboard. They are best used in combination with the HID Listen program,
103 * found here: https://www.pjrc.com/teensy/hid_listen.html
104 *
105 * The options below allow the magic key functionality to be changed. This is
106 * useful if your keyboard/keypad is missing keys and you want magic key support.
107 *
108 */
109
110/* key combination for magic key command */
111/* defined by default; to change, uncomment and set to the combination you want */
112// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
113
114/* control how magic key switches layers */
115//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
116//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
117//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
118
119/* override magic key keymap */
120//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
121//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
122//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
123//#define MAGIC_KEY_HELP H
124//#define MAGIC_KEY_HELP_ALT SLASH
125//#define MAGIC_KEY_DEBUG D
126//#define MAGIC_KEY_DEBUG_MATRIX X
127//#define MAGIC_KEY_DEBUG_KBD K
128//#define MAGIC_KEY_DEBUG_MOUSE M
129//#define MAGIC_KEY_VERSION V
130//#define MAGIC_KEY_STATUS S
131//#define MAGIC_KEY_CONSOLE C
132//#define MAGIC_KEY_LAYER0 0
133//#define MAGIC_KEY_LAYER0_ALT GRAVE
134//#define MAGIC_KEY_LAYER1 1
135//#define MAGIC_KEY_LAYER2 2
136//#define MAGIC_KEY_LAYER3 3
137//#define MAGIC_KEY_LAYER4 4
138//#define MAGIC_KEY_LAYER5 5
139//#define MAGIC_KEY_LAYER6 6
140//#define MAGIC_KEY_LAYER7 7
141//#define MAGIC_KEY_LAYER8 8
142//#define MAGIC_KEY_LAYER9 9
143//#define MAGIC_KEY_BOOTLOADER B
144//#define MAGIC_KEY_BOOTLOADER_ALT ESC
145//#define MAGIC_KEY_LOCK CAPS
146//#define MAGIC_KEY_EEPROM E
147//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
148//#define MAGIC_KEY_NKRO N
149//#define MAGIC_KEY_SLEEP_LED Z
150
151/*
152 * Feature disable options
153 * These options are also useful to firmware size reduction.
154 */
155
156/* disable debug print */
157//#define NO_DEBUG
158
159/* disable print */
160//#define NO_PRINT
161
162/* disable action features */
163//#define NO_ACTION_LAYER
164//#define NO_ACTION_TAPPING
165//#define NO_ACTION_ONESHOT
166//#define NO_ACTION_MACRO
167//#define NO_ACTION_FUNCTION
168
169
170/* Bootmagic Lite key configuration */
171// #define BOOTMAGIC_LITE_ROW 0
172// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/meson/info.json b/keyboards/meson/info.json
new file mode 100644
index 000000000..3d7eab847
--- /dev/null
+++ b/keyboards/meson/info.json
@@ -0,0 +1,108 @@
1{
2 "keyboard_name": "Meson",
3 "keyboard_folder": "meson",
4 "maintainer": "qmk",
5 "width": 15.5,
6 "height": 4,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label": "", "x": 0, "y": 0},
11 {"label": "", "x": 1, "y": 0},
12 {"label": "", "x": 2, "y": 0},
13 {"label": "", "x": 3, "y": 0},
14 {"label": "", "x": 4, "y": 0},
15 {"label": "", "x": 5, "y": 0},
16 {"label": "", "x": 6, "y": 0},
17 {"label": "", "x": 8.5, "y": 0},
18 {"label": "", "x": 9.5, "y": 0},
19 {"label": "", "x": 10.5, "y": 0},
20 {"label": "", "x": 11.5, "y": 0},
21 {"label": "", "x": 12.5, "y": 0},
22 {"label": "", "x": 13.5, "y": 0},
23 {"label": "", "x": 14.5, "y": 0},
24 {"label": "", "x": 0, "y": 1},
25 {"label": "", "x": 1, "y": 1},
26 {"label": "", "x": 2, "y": 1},
27 {"label": "", "x": 3, "y": 1},
28 {"label": "", "x": 4, "y": 1},
29 {"label": "", "x": 5, "y": 1},
30 {"label": "", "x": 6, "y": 1},
31 {"label": "", "x": 8.5, "y": 1},
32 {"label": "", "x": 9.5, "y": 1},
33 {"label": "", "x": 10.5, "y": 1},
34 {"label": "", "x": 11.5, "y": 1},
35 {"label": "", "x": 12.5, "y": 1},
36 {"label": "", "x": 13.5, "y": 1},
37 {"label": "", "x": 14.5, "y": 1},
38 {"label": "", "x": 0, "y": 2},
39 {"label": "", "x": 1, "y": 2},
40 {"label": "", "x": 2, "y": 2},
41 {"label": "", "x": 3, "y": 2},
42 {"label": "", "x": 4, "y": 2},
43 {"label": "", "x": 5, "y": 2},
44 {"label": "", "x": 6, "y": 2},
45 {"label": "", "x": 8.5, "y": 2},
46 {"label": "", "x": 9.5, "y": 2},
47 {"label": "", "x": 10.5, "y": 2},
48 {"label": "", "x": 11.5, "y": 2},
49 {"label": "", "x": 12.5, "y": 2},
50 {"label": "", "x": 13.5, "y": 2},
51 {"label": "", "x": 14.5, "y": 2},
52 {"label": "", "x": 4, "y": 3},
53 {"label": "", "x": 5, "y": 3},
54 {"label": "", "x": 9.5, "y": 3},
55 {"label": "", "x": 10.5, "y": 3}
56 ]
57 },
58 "LAYOUT_2u": {
59 "layout": [
60 {"label": "", "x": 0, "y": 0},
61 {"label": "", "x": 1, "y": 0},
62 {"label": "", "x": 2, "y": 0},
63 {"label": "", "x": 3, "y": 0},
64 {"label": "", "x": 4, "y": 0},
65 {"label": "", "x": 5, "y": 0},
66 {"label": "", "x": 6, "y": 0},
67 {"label": "", "x": 8.5, "y": 0},
68 {"label": "", "x": 9.5, "y": 0},
69 {"label": "", "x": 10.5, "y": 0},
70 {"label": "", "x": 11.5, "y": 0},
71 {"label": "", "x": 12.5, "y": 0},
72 {"label": "", "x": 13.5, "y": 0},
73 {"label": "", "x": 14.5, "y": 0},
74 {"label": "", "x": 0, "y": 1},
75 {"label": "", "x": 1, "y": 1},
76 {"label": "", "x": 2, "y": 1},
77 {"label": "", "x": 3, "y": 1},
78 {"label": "", "x": 4, "y": 1},
79 {"label": "", "x": 5, "y": 1},
80 {"label": "", "x": 6, "y": 1},
81 {"label": "", "x": 8.5, "y": 1},
82 {"label": "", "x": 9.5, "y": 1},
83 {"label": "", "x": 10.5, "y": 1},
84 {"label": "", "x": 11.5, "y": 1},
85 {"label": "", "x": 12.5, "y": 1},
86 {"label": "", "x": 13.5, "y": 1},
87 {"label": "", "x": 14.5, "y": 1},
88 {"label": "", "x": 0, "y": 2},
89 {"label": "", "x": 1, "y": 2},
90 {"label": "", "x": 2, "y": 2},
91 {"label": "", "x": 3, "y": 2},
92 {"label": "", "x": 4, "y": 2},
93 {"label": "", "x": 5, "y": 2},
94 {"label": "", "x": 6, "y": 2},
95 {"label": "", "x": 8.5, "y": 2},
96 {"label": "", "x": 9.5, "y": 2},
97 {"label": "", "x": 10.5, "y": 2},
98 {"label": "", "x": 11.5, "y": 2},
99 {"label": "", "x": 12.5, "y": 2},
100 {"label": "", "x": 13.5, "y": 2},
101 {"label": "", "x": 14.5, "y": 2},
102 {"label": "", "x": 4, "y": 3, "w": 2},
103 {"label": "", "x": 9.5, "y": 3, "w": 2}
104 ]
105 }
106 }
107 }
108
diff --git a/keyboards/meson/keymaps/default/config.h b/keyboards/meson/keymaps/default/config.h
new file mode 100644
index 000000000..cb7294536
--- /dev/null
+++ b/keyboards/meson/keymaps/default/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2019 Luciano M
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
17#pragma once
18
19// place overrides here \ No newline at end of file
diff --git a/keyboards/meson/keymaps/default/keymap.c b/keyboards/meson/keymaps/default/keymap.c
new file mode 100644
index 000000000..002fc7977
--- /dev/null
+++ b/keyboards/meson/keymaps/default/keymap.c
@@ -0,0 +1,78 @@
1/* Copyright 2019 Luciano M
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 QMK_KEYBOARD_H
17
18// Defines the keycodes used by our macros in process_record_user
19enum custom_keycodes {
20 MESON = SAFE_RANGE,
21};
22
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24
25 [0] = LAYOUT( /* Base */
26 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TAB, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
27 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LALT, KC_GRV, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
28 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT,
29 MO(1), KC_SPC, KC_SPC, MO(2)
30 ),
31
32 [1] = LAYOUT( /* Symbols */
33 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TAB, KC_BSLS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, RGB_VAI,
34 KC_LCTL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_VAD,
35 KC_LSFT, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, MESON, RGB_MOD,
36 MO(1), KC_SPC, KC_SPC, MO(3)
37 ),
38
39 [2] = LAYOUT( /* Numbers */
40 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TAB, KC_BSLS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_VOLU,
41 KC_LCTL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD,
42 KC_LSFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MPRV, KC_MNXT, KC_MPLY,
43 MO(3), KC_SPC, KC_SPC, MO(2)
44 ),
45
46 [3] = LAYOUT( /* Reset, other functions if you want */
47 RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
51 ),
52};
53
54bool process_record_user(uint16_t keycode, keyrecord_t *record) {
55 switch (keycode) {
56 case MESON:
57 if (record->event.pressed) {
58 // when keycode MESON is pressed
59 SEND_STRING("Meson macro working");
60 } else {
61 // when keycode MESON is released
62 }
63 break;
64 }
65 return true;
66}
67
68void matrix_init_user(void) {
69
70}
71
72void matrix_scan_user(void) {
73
74}
75
76void led_set_user(uint8_t usb_led) {
77
78}
diff --git a/keyboards/meson/keymaps/default/readme.md b/keyboards/meson/keymaps/default/readme.md
new file mode 100644
index 000000000..04d94252b
--- /dev/null
+++ b/keyboards/meson/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for meson
diff --git a/keyboards/meson/meson.c b/keyboards/meson/meson.c
new file mode 100644
index 000000000..9dc6f6a2e
--- /dev/null
+++ b/keyboards/meson/meson.c
@@ -0,0 +1,51 @@
1/* Copyright 2019 Luciano M
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 "meson.h"
17
18// Optional override functions below.
19// You can leave any or all of these undefined.
20// These are only required if you want to perform custom actions.
21
22/*
23
24void matrix_init_kb(void) {
25 // put your keyboard start-up code here
26 // runs once when the firmware starts up
27
28 matrix_init_user();
29}
30
31void matrix_scan_kb(void) {
32 // put your looping keyboard code here
33 // runs every cycle (a lot)
34
35 matrix_scan_user();
36}
37
38bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
39 // put your per-action keyboard code here
40 // runs for every action, just before processing by the firmware
41
42 return process_record_user(keycode, record);
43}
44
45void led_set_kb(uint8_t usb_led) {
46 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
47
48 led_set_user(usb_led);
49}
50
51*/
diff --git a/keyboards/meson/meson.h b/keyboards/meson/meson.h
new file mode 100644
index 000000000..5344d5410
--- /dev/null
+++ b/keyboards/meson/meson.h
@@ -0,0 +1,56 @@
1/* Copyright 2019 Luciano M
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
17#pragma once
18#include "quantum.h"
19
20#define ___ KC_NO
21
22#define LAYOUT( \
23 L00, L01, L02, L03, L04, L05, L06, R06, R05, R04, R03, R02, R01, R00, \
24 L10, L11, L12, L13, L14, L15, L16, R16, R15, R14, R13, R12, R11, R10, \
25 L20, L21, L22, L23, L24, L25, L26, R26, R25, R24, R23, R22, R21, R20, \
26 L30, L31, R31, R30 \
27) \
28{ \
29 { L00, L01, L02, L03, L04, L05, L06}, \
30 { L10, L11, L12, L13, L14, L15, L16}, \
31 { L20, L21, L22, L23, L24, L25, L26}, \
32 { ___, ___, ___, ___, L30, L31, ___}, \
33 { R00, R01, R02, R03, R04, R05, R06}, \
34 { R10, R11, R12, R13, R14, R15, R16}, \
35 { R20, R21, R22, R23, R24, R25, R26}, \
36 { ___, ___, ___, ___, R30, R31, ___}, \
37}
38
39// 2u SPACEBAR LAYOUT, DON'T FORGET TO CHANGE NAME OF LAYOUTS IN KEYMAP.C
40
41#define LAYOUT_2u( \
42 L00, L01, L02, L03, L04, L05, L06, R06, R05, R04, R03, R02, R01, R00, \
43 L10, L11, L12, L13, L14, L15, L16, R16, R15, R14, R13, R12, R11, R10, \
44 L20, L21, L22, L23, L24, L25, L26, R26, R25, R24, R23, R22, R21, R20, \
45 L30, R30 \
46) \
47{ \
48 { L00, L01, L02, L03, L04, L05, L06}, \
49 { L10, L11, L12, L13, L14, L15, L16}, \
50 { L20, L21, L22, L23, L24, L25, L26}, \
51 { ___, ___, ___, ___, L30, ___, ___},\
52 { R00, R01, R02, R03, R04, R05, R06}, \
53 { R10, R11, R12, R13, R14, R15, R16}, \
54 { R20, R21, R22, R23, R24, R25, R26}, \
55 { ___, ___, ___, ___, R30, ___, ___},\
56}
diff --git a/keyboards/meson/readme.md b/keyboards/meson/readme.md
new file mode 100644
index 000000000..3824690c1
--- /dev/null
+++ b/keyboards/meson/readme.md
@@ -0,0 +1,13 @@
1# meson
2
3A 3x14 split keyboard with two thumb keys on each half. Supports MX, Alps, and Choc reversible.
4
5Keyboard Maintainer: [PyroL](https://github.com/PyrooL)
6Hardware Supported: Meson PCBs, Pro Micro
7Hardware Availability: [open source at PyroL's Github](https://github.com/PyrooL/Meson)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make meson:default
12
13See 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/meson/rules.mk b/keyboards/meson/rules.mk
new file mode 100644
index 000000000..4b585e829
--- /dev/null
+++ b/keyboards/meson/rules.mk
@@ -0,0 +1,81 @@
1# MCU name
2MCU = atmega32u4
3
4# Processor frequency.
5# This will define a symbol, F_CPU, in all source code files equal to the
6# processor frequency in Hz. You can then use this symbol in your source code to
7# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
8# automatically to create a 32-bit value in your source code.
9#
10# This will be an integer division of F_USB below, as it is sourced by
11# F_USB after it has run through any CPU prescalers. Note that this value
12# does not *change* the processor frequency - it should merely be updated to
13# reflect the processor speed set externally so that the code can use accurate
14# software delays.
15F_CPU = 16000000
16
17
18#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = AVR8
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU)
36
37# Interrupt driven control endpoint task(+60)
38OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
39
40
41# Bootloader selection
42# Teensy halfkay
43# Pro Micro caterina
44# Atmel DFU atmel-dfu
45# LUFA DFU lufa-dfu
46# QMK DFU qmk-dfu
47# atmega32a bootloadHID
48BOOTLOADER = caterina
49
50
51# If you don't know the bootloader type, then you can specify the
52# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
53# Teensy halfKay 512
54# Teensy++ halfKay 1024
55# Atmel DFU loader 4096
56# LUFA bootloader 4096
57# USBaspLoader 2048
58# OPT_DEFS += -DBOOTLOADER_SIZE=4096
59
60
61# Build Options
62# change yes to no to disable
63#
64SPLIT_KEYBOARD = yes
65BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
66MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
67EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
68CONSOLE_ENABLE = no # Console for debug(+400)
69COMMAND_ENABLE = no # Commands for debug and configuration
70# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
71SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
72# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
73NKRO_ENABLE = yes # USB Nkey Rollover
74BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
75RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
76MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
77UNICODE_ENABLE = no # Unicode
78BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
79AUDIO_ENABLE = no # Audio output on port C6
80FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
81HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)