aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2021-01-14 05:58:55 +0000
committerQMK Bot <hello@qmk.fm>2021-01-14 05:58:55 +0000
commit84e71ecf10fb44de1bf80af098c73dccd4217264 (patch)
tree3594f8bacc8cf3d9c3b1fdc1c4aca3d78a8dda8c
parent1504b328d19001a1ca4cce59a16411888e5b77ae (diff)
parent501f3ed419cc8a07d156e2cac0f40cfad2485847 (diff)
downloadqmk_firmware-84e71ecf10fb44de1bf80af098c73dccd4217264.tar.gz
qmk_firmware-84e71ecf10fb44de1bf80af098c73dccd4217264.zip
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r--keyboards/mechstudio/ud_40_ortho/config.h60
-rw-r--r--keyboards/mechstudio/ud_40_ortho/info.json12
-rw-r--r--keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c43
-rw-r--r--keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c43
-rw-r--r--keyboards/mechstudio/ud_40_ortho/keymaps/via/rules.mk1
-rw-r--r--keyboards/mechstudio/ud_40_ortho/readme.md22
-rw-r--r--keyboards/mechstudio/ud_40_ortho/rules.mk24
-rw-r--r--keyboards/mechstudio/ud_40_ortho/ud_40_ortho.c16
-rw-r--r--keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h39
9 files changed, 260 insertions, 0 deletions
diff --git a/keyboards/mechstudio/ud_40_ortho/config.h b/keyboards/mechstudio/ud_40_ortho/config.h
new file mode 100644
index 000000000..9520fdd39
--- /dev/null
+++ b/keyboards/mechstudio/ud_40_ortho/config.h
@@ -0,0 +1,60 @@
1/* Copyright 2020 David Dejaeghere
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#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x4D53
23#define PRODUCT_ID 0x0002
24#define DEVICE_VER 0x0002
25#define MANUFACTURER Mech Studio
26#define PRODUCT UD_40 Ortholinear
27
28/* key matrix size */
29#define MATRIX_ROWS 4
30#define MATRIX_COLS 12
31
32// ROWS: Top to bottom, COLS: Left to right
33
34#define MATRIX_ROW_PINS {C2,B4,B5,B6}
35#define MATRIX_COL_PINS {C5,D0,B3,B2,B1,B0,D6,D5,D4,D3,D2,D1}
36#define UNUSED_PINS {C4,C6,C7}
37
38/* COL2ROW, ROW2COL*/
39#define DIODE_DIRECTION COL2ROW
40
41#define RGB_DI_PIN B7
42 #ifdef RGB_DI_PIN
43 #define RGBLED_NUM 10
44 #define RGBLIGHT_HUE_STEP 8
45 #define RGBLIGHT_SAT_STEP 8
46 #define RGBLIGHT_VAL_STEP 8
47 #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
48 #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
49// /*== all animations enable ==*/
50 #define RGBLIGHT_ANIMATIONS
51 #endif
52
53/* set 0 if debouncing is not needed */
54#define DEBOUNCE 5
55
56/* define if matrix has ghost (lacks anti-ghosting diodes) */
57//#define MATRIX_HAS_GHOST
58
59#define QMK_ESC_OUTPUT F0 // usually COL
60#define QMK_ESC_INPUT B7 // usually ROW
diff --git a/keyboards/mechstudio/ud_40_ortho/info.json b/keyboards/mechstudio/ud_40_ortho/info.json
new file mode 100644
index 000000000..785b466fc
--- /dev/null
+++ b/keyboards/mechstudio/ud_40_ortho/info.json
@@ -0,0 +1,12 @@
1{
2 "keyboard_name": "UD_40 ortho",
3 "url": "https://mech.studio/projects/ud_40/",
4 "maintainer": "dejaeghered",
5 "width": 12,
6 "height": 4,
7 "layouts": {
8 "LAYOUT_ortho_4x12": {
9 "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}]
10 }
11 }
12}
diff --git a/keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c b/keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c
new file mode 100644
index 000000000..70fb425b3
--- /dev/null
+++ b/keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c
@@ -0,0 +1,43 @@
1/* Copyright 2020 David Dejaeghere
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 names for use in layer keycodes and the keymap
19enum layer_names {
20 _MA,
21 _LO,
22 _HI
23};
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26[_MA] = LAYOUT_ortho_4x12(
27 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
28 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
29 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
30 _______, KC_LCTRL, KC_LALT, KC_LGUI, MO(_LO), KC_SPC, KC_SPC, MO(_HI), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
31
32[_LO] = LAYOUT_ortho_4x12(
33 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
34 KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
35 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______,
36 KC_INS, KC_HOME, KC_END, KC_DEL, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______),
37
38[_HI] = LAYOUT_ortho_4x12(
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______,
41 _______, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
43};
diff --git a/keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c b/keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c
new file mode 100644
index 000000000..c61bec5a0
--- /dev/null
+++ b/keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c
@@ -0,0 +1,43 @@
1/* Copyright 2020 David Dejaeghere
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
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19[0] = LAYOUT_ortho_4x12(
20 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
21 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
22 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
23 _______, KC_LCTRL, KC_LALT, KC_LGUI, KC_FN13, KC_SPC, KC_SPC, KC_FN23, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
24
25[1] = LAYOUT_ortho_4x12(
26 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
27 KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
28 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______,
29 KC_INS, KC_HOME, KC_END, KC_DEL, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______),
30
31[2] = LAYOUT_ortho_4x12(
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______,
34 _______, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
36
37[3] = LAYOUT_ortho_4x12(
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
42
43};
diff --git a/keyboards/mechstudio/ud_40_ortho/keymaps/via/rules.mk b/keyboards/mechstudio/ud_40_ortho/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/mechstudio/ud_40_ortho/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/mechstudio/ud_40_ortho/readme.md b/keyboards/mechstudio/ud_40_ortho/readme.md
new file mode 100644
index 000000000..211f17452
--- /dev/null
+++ b/keyboards/mechstudio/ud_40_ortho/readme.md
@@ -0,0 +1,22 @@
1# ud_40_ortho
2
3![UD_40 ortho](https://storage.googleapis.com/mechstudio-media/images/Cafe_1_1.2e16d0ba.fill-1500x800.png)
4
5## Support
6* Keyboard Maintainer: [NecromanX](https://github.com/dejaeghered)
7* Hardware Supported: UD_40 Ortho
8* Hardware Availability: [mech.studio](https://mech.studio/projects/ud_40/)
9
10## Features
11- QMK Firmware
12- USB-C Connector
13- RGB underglow
14- Ortholinear layout
15- no in switch LEDs
16
17## Build
18Make example for this keyboard (after setting up your build environment):
19
20 make mechstudio/ud_40_ortho:default
21
22See 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). \ No newline at end of file
diff --git a/keyboards/mechstudio/ud_40_ortho/rules.mk b/keyboards/mechstudio/ud_40_ortho/rules.mk
new file mode 100644
index 000000000..8ae52f196
--- /dev/null
+++ b/keyboards/mechstudio/ud_40_ortho/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = atmega32u2
3
4# Bootloader selection
5BOOTLOADER = qmk-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23
24LAYOUTS = ortho_4x12
diff --git a/keyboards/mechstudio/ud_40_ortho/ud_40_ortho.c b/keyboards/mechstudio/ud_40_ortho/ud_40_ortho.c
new file mode 100644
index 000000000..054684e7b
--- /dev/null
+++ b/keyboards/mechstudio/ud_40_ortho/ud_40_ortho.c
@@ -0,0 +1,16 @@
1/* Copyright 2020 David Dejaeghere
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 "ud_40_ortho.h"
diff --git a/keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h b/keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h
new file mode 100644
index 000000000..6e0b608e7
--- /dev/null
+++ b/keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h
@@ -0,0 +1,39 @@
1/* Copyright 2020 David Dejaeghere
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_ortho_4x12( \
30 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
31 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
32 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
33 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
34) { \
35 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
36 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
37 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
38 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
39}