aboutsummaryrefslogtreecommitdiff
path: root/keyboards/dozen0
diff options
context:
space:
mode:
authorAkshay <[email protected]>2022-04-10 12:13:40 +0100
committerAkshay <[email protected]>2022-04-10 12:13:40 +0100
commitdc90387ce7d8ba7b607d9c48540bf6d8b560f14d (patch)
tree4ccb8fa5886b66fa9d480edef74236c27f035e16 /keyboards/dozen0
Diffstat (limited to 'keyboards/dozen0')
-rw-r--r--keyboards/dozen0/config.h122
-rw-r--r--keyboards/dozen0/dozen0.c16
-rw-r--r--keyboards/dozen0/dozen0.h34
-rw-r--r--keyboards/dozen0/info.json13
-rw-r--r--keyboards/dozen0/keymaps/default/keymap.c122
-rw-r--r--keyboards/dozen0/keymaps/default/readme.md45
-rw-r--r--keyboards/dozen0/keymaps/f12/keymap.c40
-rw-r--r--keyboards/dozen0/keymaps/via/keymap.c48
-rw-r--r--keyboards/dozen0/keymaps/via/rules.mk1
-rw-r--r--keyboards/dozen0/readme.md15
-rw-r--r--keyboards/dozen0/rules.mk18
11 files changed, 474 insertions, 0 deletions
diff --git a/keyboards/dozen0/config.h b/keyboards/dozen0/config.h
new file mode 100644
index 000000000..48d847bde
--- /dev/null
+++ b/keyboards/dozen0/config.h
@@ -0,0 +1,122 @@
1/*
2Copyright 2019 yynmt
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 0x04D8
24#define PRODUCT_ID 0xEA4F
25#define DEVICE_VER 0x0001
26#define MANUFACTURER yynmt
27#define PRODUCT Dozen0
28
29/* key matrix size */
30#define MATRIX_ROWS 1
31#define MATRIX_COLS 12
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42*/
43#define MATRIX_ROW_PINS { F4 }
44#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, B5, B4, E6, D7, C6, D4 }
45#define UNUSED_PINS
46
47/* COL2ROW, ROW2COL */
48#define DIODE_DIRECTION COL2ROW
49
50// #define BACKLIGHT_PIN B7
51// #define BACKLIGHT_BREATHING
52// #define BACKLIGHT_LEVELS 3
53
54#define RGB_DI_PIN D3
55#ifdef RGB_DI_PIN
56#define RGBLIGHT_ANIMATIONS
57#define RGBLED_NUM 2
58#define RGBLIGHT_HUE_STEP 8
59#define RGBLIGHT_SAT_STEP 8
60#define RGBLIGHT_VAL_STEP 8
61#endif
62
63/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
64#define DEBOUNCE 5
65
66/* define if matrix has ghost (lacks anti-ghosting diodes) */
67//#define MATRIX_HAS_GHOST
68
69/* number of backlight levels */
70
71/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
72#define LOCKING_SUPPORT_ENABLE
73/* Locking resynchronize hack */
74#define LOCKING_RESYNC_ENABLE
75
76/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
77 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
78 */
79// #define GRAVE_ESC_CTRL_OVERRIDE
80
81/*
82 * Force NKRO
83 *
84 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
85 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
86 * makefile for this to work.)
87 *
88 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
89 * until the next keyboard reset.
90 *
91 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
92 * fully operational during normal computer usage.
93 *
94 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
95 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
96 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
97 * power-up.
98 *
99 */
100//#define FORCE_NKRO
101
102/*
103 * Feature disable options
104 * These options are also useful to firmware size reduction.
105 */
106
107/* disable debug print */
108//#define NO_DEBUG
109
110/* disable print */
111//#define NO_PRINT
112
113/* disable action features */
114//#define NO_ACTION_LAYER
115//#define NO_ACTION_TAPPING
116//#define NO_ACTION_ONESHOT
117//#define NO_ACTION_MACRO
118//#define NO_ACTION_FUNCTION
119
120/* Bootmagic Lite key configuration */
121// #define BOOTMAGIC_LITE_ROW 0
122// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/dozen0/dozen0.c b/keyboards/dozen0/dozen0.c
new file mode 100644
index 000000000..42872a210
--- /dev/null
+++ b/keyboards/dozen0/dozen0.c
@@ -0,0 +1,16 @@
1/* Copyright 2019 yynmt
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 "dozen0.h"
diff --git a/keyboards/dozen0/dozen0.h b/keyboards/dozen0/dozen0.h
new file mode 100644
index 000000000..e2ab35bce
--- /dev/null
+++ b/keyboards/dozen0/dozen0.h
@@ -0,0 +1,34 @@
1/* Copyright 2019 yynmt
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#define LAYOUT( \
29 K00, K01, K02, K03, K04, K05, \
30 K06, K07, K08, K09, K10, K11 \
31) \
32{ \
33 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11 }, \
34}
diff --git a/keyboards/dozen0/info.json b/keyboards/dozen0/info.json
new file mode 100644
index 000000000..38e0f3875
--- /dev/null
+++ b/keyboards/dozen0/info.json
@@ -0,0 +1,13 @@
1{
2 "keyboard_name": "Dozen0",
3 "url": "http://yynmt.com",
4 "maintainer": "yynmt",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [
8 {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0},
9 {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}
10 ]
11 }
12 }
13}
diff --git a/keyboards/dozen0/keymaps/default/keymap.c b/keyboards/dozen0/keymaps/default/keymap.c
new file mode 100644
index 000000000..a869c6e93
--- /dev/null
+++ b/keyboards/dozen0/keymaps/default/keymap.c
@@ -0,0 +1,122 @@
1/* Copyright 2019 yynmt
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#ifdef RGBLIGHT_ENABLE
19//Following line allows macro to read current RGB settings
20extern rgblight_config_t rgblight_config;
21#endif
22
23enum layer_number {
24 _BASE = 0,
25 _LOWER,
26 _RAISE,
27 _ADJUST
28};
29
30enum custom_keycodes {
31 BASE = SAFE_RANGE,
32 LOWER,
33 RAISE,
34 ADJUST,
35 RGBRST
36};
37
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 /* Base
40 * ,-----------------------------------------.
41 * | Cut | Copy |Paste | Up |Delete| Bksp |
42 * | | | | | |Raise |
43 * |------+------+------+------+------+------|
44 * | Ctrl |Shift | Left | Down |Right |Enter |
45 * | | | | | |Lower |
46 * `-----------------------------------------'
47 */
48 [_BASE] = LAYOUT(
49 LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_UP, KC_DEL, LT(_RAISE,KC_BSPC),
50 KC_LCTL, KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, LT(_LOWER,KC_ENT)
51 ),
52
53 /* Lower
54 * ,-----------------------------------------.
55 * | | | | Page | | |
56 * | | | | Up | | |
57 * |------+------+------+------+------+------|
58 * | | | Home | Page | End | |
59 * | | | | Down | | |
60 * `-----------------------------------------'
61 */
62 [_LOWER] = LAYOUT(
63 _______, _______, _______, KC_PGUP, _______, _______,
64 _______, _______, KC_HOME, KC_PGDN, KC_END, _______
65 ),
66
67 /* Raise
68 * ,-----------------------------------------.
69 * | | | | | | |
70 * | | | | | | |
71 * |------+------+------+------+------+------|
72 * | | | | | | |
73 * | | | | | | |
74 * `-----------------------------------------'
75 */
76 [_RAISE] = LAYOUT(
77 _______, _______, _______, _______, _______, _______,
78 _______, _______, _______, _______, _______, _______
79 ),
80
81 /* Adjust
82 * ,-----------------------------------------.
83 * | RGB | RGB | RGB | RGB | RGB | |
84 * |Toggle|Mode+ | Hue+ | Sat+ | Val+ | |
85 * |------+------+------+------+------+------|
86 * | RGB | RGB | RGB | RGB | RGB | |
87 * |Reset |Mode- | Hue- | Sat- | Val- | |
88 * `-----------------------------------------'
89 */
90 [_ADJUST] = LAYOUT(
91 RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______,
92 RGBRST, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______
93 )
94};
95
96layer_state_t layer_state_set_user(layer_state_t state) {
97 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
98}
99
100int RGB_current_mode;
101
102void matrix_init_user(void) {
103 #ifdef RGBLIGHT_ENABLE
104 RGB_current_mode = rgblight_config.mode;
105 #endif
106}
107
108bool process_record_user(uint16_t keycode, keyrecord_t *record) {
109
110 switch (keycode) {
111 case RGBRST:
112 #ifdef RGBLIGHT_ENABLE
113 if (record->event.pressed) {
114 eeconfig_update_rgblight_default();
115 rgblight_enable();
116 RGB_current_mode = rgblight_config.mode;
117 }
118 #endif
119 break;
120 }
121 return true;
122}
diff --git a/keyboards/dozen0/keymaps/default/readme.md b/keyboards/dozen0/keymaps/default/readme.md
new file mode 100644
index 000000000..832c72075
--- /dev/null
+++ b/keyboards/dozen0/keymaps/default/readme.md
@@ -0,0 +1,45 @@
1# The default keymap for Dozen0
2
3## Base
4```
5,-----------------------------------------.
6| Cut | Copy |Paste | Up |Delete| Bksp |
7| | | | | |Raise |
8|------+------+------+------+------+------|
9| Ctrl |Shift | Left | Down |Right |Enter |
10| | | | | |Lower |
11`-----------------------------------------'
12```
13
14## Lower
15```
16,-----------------------------------------.
17| | | | Page | | |
18| | | | Up | | |
19|------+------+------+------+------+------|
20| | | Home | Page | End | |
21| | | | Down | | |
22`-----------------------------------------'
23```
24
25## Raise
26```
27,-----------------------------------------.
28| | | | | | |
29| | | | | | |
30|------+------+------+------+------+------|
31| | | | | | |
32| | | | | | |
33`-----------------------------------------'
34```
35
36## Adjust
37```
38,-----------------------------------------.
39| RGB | RGB | RGB | RGB | RGB | |
40|Toggle|Mode+ | Hue+ | Sat+ | Val+ | |
41|------+------+------+------+------+------|
42| RGB | RGB | RGB | RGB | RGB | |
43|Reset |Mode- | Hue- | Sat- | Val- | |
44`-----------------------------------------'
45```
diff --git a/keyboards/dozen0/keymaps/f12/keymap.c b/keyboards/dozen0/keymaps/f12/keymap.c
new file mode 100644
index 000000000..167e29e10
--- /dev/null
+++ b/keyboards/dozen0/keymaps/f12/keymap.c
@@ -0,0 +1,40 @@
1/* Copyright 2019 yynmt
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
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT(
21 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
22 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
23 ),
24};
25
26bool process_record_user(uint16_t keycode, keyrecord_t *record) {
27 return true;
28}
29
30void matrix_init_user(void) {
31
32}
33
34void matrix_scan_user(void) {
35
36}
37
38void led_set_user(uint8_t usb_led) {
39
40}
diff --git a/keyboards/dozen0/keymaps/via/keymap.c b/keyboards/dozen0/keymaps/via/keymap.c
new file mode 100644
index 000000000..91f15469f
--- /dev/null
+++ b/keyboards/dozen0/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
1/* Copyright 2021 yynmt
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#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Base
21 * ,-----------------------------------------.
22 * | Cut | Copy |Paste | Up |Delete| Bksp |
23 * | | | | | |Raise |
24 * |------+------+------+------+------+------|
25 * | Ctrl |Shift | Left | Down |Right |Enter |
26 * | | | | | |Lower |
27 * `-----------------------------------------'
28 */
29 [0] = LAYOUT(
30 LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_UP, KC_DEL, LT(2,KC_BSPC),
31 KC_LCTL, KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, LT(1,KC_ENT)
32 ),
33 /* Lower */
34 [1] = LAYOUT(
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
37 ),
38 /* Raise */
39 [2] = LAYOUT(
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
42 ),
43 /* Adjust */
44 [3] = LAYOUT(
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
47 ),
48};
diff --git a/keyboards/dozen0/keymaps/via/rules.mk b/keyboards/dozen0/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/dozen0/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/dozen0/readme.md b/keyboards/dozen0/readme.md
new file mode 100644
index 000000000..7ef119246
--- /dev/null
+++ b/keyboards/dozen0/readme.md
@@ -0,0 +1,15 @@
1# Dozen0
2
3![Dozen0](https://raw.githubusercontent.com/yynmt/Dozen0/master/images/main_image_mx.jpg)
4
5Dozen0 is 12 keys macropad.
6
7Keyboard Maintainer: [yynmt](https://github.com/yynmt)
8Hardware Supported: Dozen0 PCBs, ProMicro supported
9Hardware Availability: links to where you can find this hardware
10
11Make example for this keyboard (after setting up your build environment):
12
13 make dozen0:default
14
15See 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/dozen0/rules.mk b/keyboards/dozen0/rules.mk
new file mode 100644
index 000000000..7d2cea91d
--- /dev/null
+++ b/keyboards/dozen0/rules.mk
@@ -0,0 +1,18 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = caterina
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
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
15NKRO_ENABLE = no # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output