aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/tkc/candybar/lefty_r3/config.h91
-rw-r--r--keyboards/tkc/candybar/lefty_r3/info.json17
-rw-r--r--keyboards/tkc/candybar/lefty_r3/keymaps/default/keymap.c40
-rw-r--r--keyboards/tkc/candybar/lefty_r3/keymaps/via/keymap.c54
-rw-r--r--keyboards/tkc/candybar/lefty_r3/keymaps/via/rules.mk1
-rw-r--r--keyboards/tkc/candybar/lefty_r3/lefty_r3.c18
-rw-r--r--keyboards/tkc/candybar/lefty_r3/lefty_r3.h31
-rw-r--r--keyboards/tkc/candybar/lefty_r3/readme.md22
-rw-r--r--keyboards/tkc/candybar/lefty_r3/rules.mk19
-rw-r--r--keyboards/tkc/candybar/righty_r3/config.h91
-rw-r--r--keyboards/tkc/candybar/righty_r3/info.json16
-rw-r--r--keyboards/tkc/candybar/righty_r3/keymaps/default/keymap.c40
-rw-r--r--keyboards/tkc/candybar/righty_r3/keymaps/via/keymap.c54
-rw-r--r--keyboards/tkc/candybar/righty_r3/keymaps/via/rules.mk1
-rw-r--r--keyboards/tkc/candybar/righty_r3/readme.md22
-rw-r--r--keyboards/tkc/candybar/righty_r3/righty_r3.c17
-rw-r--r--keyboards/tkc/candybar/righty_r3/righty_r3.h30
-rw-r--r--keyboards/tkc/candybar/righty_r3/rules.mk19
18 files changed, 583 insertions, 0 deletions
diff --git a/keyboards/tkc/candybar/lefty_r3/config.h b/keyboards/tkc/candybar/lefty_r3/config.h
new file mode 100644
index 000000000..d7a490843
--- /dev/null
+++ b/keyboards/tkc/candybar/lefty_r3/config.h
@@ -0,0 +1,91 @@
1/* Copyright 2021 Terry Mathews
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 0x544B //TK
23#define PRODUCT_ID 0x0003
24#define DEVICE_VER 0x0006
25#define MANUFACTURER The Key Company
26#define PRODUCT Candybar
27
28/* key matrix size */
29#define MATRIX_ROWS 4
30#define MATRIX_COLS 17
31#define DIODE_DIRECTION COL2ROW
32#define MATRIX_ROW_PINS { F1, F0, D0, D2 }
33#define MATRIX_COL_PINS { B5, B6, C6, C7, F7, F6, F5, F4, D5, B3, B0, B1, B2, D4, D6, D7, B4 }
34
35
36/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
37#define DEBOUNCE 5
38
39/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
40//#define LOCKING_SUPPORT_ENABLE
41/* Locking resynchronize hack */
42//#define LOCKING_RESYNC_ENABLE
43
44/*
45 * Force NKRO
46 *
47 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
48 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
49 * makefile for this to work.)
50 *
51 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
52 * until the next keyboard reset.
53 *
54 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
55 * fully operational during normal computer usage.
56 *
57 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
58 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
59 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
60 * power-up.
61 *
62 */
63//#define FORCE_NKRO
64
65/*
66 * Feature disable options
67 * These options are also useful to firmware size reduction.
68 */
69
70/* disable debug print */
71//#define NO_DEBUG
72
73/* disable print */
74//#define NO_PRINT
75
76/* disable action features */
77//#define NO_ACTION_LAYER
78//#define NO_ACTION_TAPPING
79//#define NO_ACTION_ONESHOT
80//#define NO_ACTION_MACRO
81//#define NO_ACTION_FUNCTION
82
83// #define WS2812_LED_N 2
84// #define RGBLED_NUM WS2812_LED_N
85// #define WS2812_TIM_N 2
86// #define WS2812_TIM_CH 2
87// #define PORT_WS2812 GPIOA
88// #define PIN_WS2812 1
89// #define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection)
90//#define WS2812_DMA_CHANNEL 7 // DMA channel for TIMx_UP
91//#define WS2812_EXTERNAL_PULLUP
diff --git a/keyboards/tkc/candybar/lefty_r3/info.json b/keyboards/tkc/candybar/lefty_r3/info.json
new file mode 100644
index 000000000..1ef3dcd54
--- /dev/null
+++ b/keyboards/tkc/candybar/lefty_r3/info.json
@@ -0,0 +1,17 @@
1{
2 "keyboard_name": "TKC Candybar",
3 "url": "",
4 "maintainer": "terrymathews",
5 "width": 17,
6 "height": 4,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"7", "x":0, "y":0}, {"label":"8", "x":1, "y":0}, {"label":"9", "x":2, "y":0}, {"label":"-", "x":3, "y":0}, {"label":"Esc", "x":4, "y":0}, {"label":"Q", "x":5, "y":0}, {"label":"W", "x":6, "y":0}, {"label":"E", "x":7, "y":0}, {"label":"R", "x":8, "y":0}, {"label":"T", "x":9, "y":0}, {"label":"Y", "x":10, "y":0}, {"label":"U", "x":11, "y":0}, {"label":"I", "x":12, "y":0}, {"label":"O", "x":13, "y":0}, {"label":"P", "x":14, "y":0}, {"label":"{", "x":15, "y":0}, {"label":"}", "x":16, "y":0},
11 {"label":"4", "x":0, "y":1}, {"label":"5", "x":1, "y":1}, {"label":"6", "x":2, "y":1}, {"label":"+", "x":3, "y":1}, {"label":"Tab", "x":4, "y":1, "w":1.25}, {"label":"A", "x":5.25, "y":1}, {"label":"S", "x":6.25, "y":1}, {"label":"D", "x":7.25, "y":1}, {"label":"F", "x":8.25, "y":1}, {"label":"G", "x":9.25, "y":1}, {"label":"H", "x":10.25, "y":1}, {"label":"J", "x":11.25, "y":1}, {"label":"K", "x":12.25, "y":1}, {"label":"L", "x":13.25, "y":1}, {"label":":", "x":14.25, "y":1}, {"label":"Enter", "x":15.25, "y":1, "w":1.75},
12 {"label":"1", "x":0, "y":2}, {"label":"2", "x":1, "y":2}, {"label":"3", "x":2, "y":2}, {"x":3, "y":2}, {"label":"Shift", "x":4, "y":2, "w":1.75}, {"label":"Z", "x":5.75, "y":2}, {"label":"X", "x":6.75, "y":2}, {"label":"C", "x":7.75, "y":2}, {"label":"V", "x":8.75, "y":2}, {"label":"B", "x":9.75, "y":2}, {"label":"N", "x":10.75, "y":2}, {"label":"M", "x":11.75, "y":2}, {"label":"<", "x":12.75, "y":2}, {"label":">", "x":13.75, "y":2}, {"label":"\u2191", "x":14.75, "y":2}, {"label":"Shift", "x":15.75, "y":2, "w":1.25},
13 {"label":"Fn", "x":0, "y":3}, {"label":"0", "x":1, "y":3}, {"label":".", "x":2, "y":3}, {"label":"Enter", "x":3, "y":3}, {"label":"Ctrl", "x":4, "y":3, "w":1.25}, {"label":"Win", "x":5.25, "y":3, "w":1.25}, {"label":"Alt", "x":6.5, "y":3, "w":1.25}, {"x":7.75, "y":3, "w":1.75}, {"x":9.5, "y":3}, {"x":10.5, "y":3, "w":2.25}, {"label":"Win", "x":12.75, "y":3, "w":1.25}, {"label":"\u2190", "x":14, "y":3}, {"label":"\u2193", "x":15, "y":3}, {"label":"\u2192", "x":16, "y":3}
14 ]
15 }
16 }
17}
diff --git a/keyboards/tkc/candybar/lefty_r3/keymaps/default/keymap.c b/keyboards/tkc/candybar/lefty_r3/keymaps/default/keymap.c
new file mode 100644
index 000000000..2a66ec834
--- /dev/null
+++ b/keyboards/tkc/candybar/lefty_r3/keymaps/default/keymap.c
@@ -0,0 +1,40 @@
1/* Copyright 2021 Terry Mathews
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
19enum custom_layers {
20 _BL,
21 _FL,
22};
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 /* Keymap _BL: Base Layer (Default Layer)
26 */
27[_BL] = LAYOUT(
28 KC_P7 , KC_P8, KC_P9 , KC_PAST, KC_ESC , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_DEL , KC_BSPC , \
29 KC_P4 , KC_P5, KC_P6 , KC_PMNS, KC_TAB , KC_A , KC_S , KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_SCLN, KC_ENT , \
30 KC_P1 , KC_P2, KC_P3 , KC_PPLS, KC_LSFT, KC_Z , KC_X, KC_C , KC_V , KC_B, KC_N , KC_M , KC_COMM, KC_DOT , KC_UP ,KC_RSFT , \
31 MO(_FL), KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC , KC_BSPC, KC_APP , KC_LEFT, KC_DOWN, KC_RGHT),
32
33 /* Keymap _FL: Function Layer
34 */
35 [_FL] = LAYOUT(
36 KC_P7 , KC_P8, KC_P9 , KC_VOLU, RESET , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_LBRC, KC_RBRC, KC_INS , KC_BSPC , \
37 KC_P4 , KC_P5, KC_P6 , KC_VOLD, KC_TAB , KC_A , KC_SLCK, KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_QUOT, KC_BSLS , \
38 KC_P1 , KC_P2, KC_P3 , KC_PEQL, KC_LSFT, KC_Z , KC_X, KC_CAPS, KC_V , KC_B, KC_NLCK, KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_PGUP , \
39 KC_END, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC , KC_BSPC, KC_APP , MO(_FL), KC_HOME, KC_PGDN),
40};
diff --git a/keyboards/tkc/candybar/lefty_r3/keymaps/via/keymap.c b/keyboards/tkc/candybar/lefty_r3/keymaps/via/keymap.c
new file mode 100644
index 000000000..40890bd7a
--- /dev/null
+++ b/keyboards/tkc/candybar/lefty_r3/keymaps/via/keymap.c
@@ -0,0 +1,54 @@
1/* Copyright 2021 Terry Mathews
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
19enum layer_names {
20 _BL,
21 _FL,
22 _AL,
23 _LL,
24};
25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 /* Keymap _BL: Base Layer (Default Layer)
28 */
29[_BL] = LAYOUT(
30 KC_P7 , KC_P8, KC_P9 , KC_PAST, KC_ESC , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_DEL , KC_BSPC , \
31 KC_P4 , KC_P5, KC_P6 , KC_PMNS, KC_TAB , KC_A , KC_S , KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_SCLN, KC_ENT , \
32 KC_P1 , KC_P2, KC_P3 , KC_PPLS, KC_LSFT, KC_Z , KC_X, KC_C , KC_V , KC_B, KC_N , KC_M , KC_COMM, KC_DOT , KC_UP ,KC_RSFT , \
33 MO(_FL), KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC , KC_BSPC, KC_APP , KC_LEFT, KC_DOWN, KC_RGHT),
34
35 /* Keymap _FL: Function Layer
36 */
37 [_FL] = LAYOUT(
38 KC_P7 , KC_P8, KC_P9 , KC_VOLU, RESET , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_LBRC, KC_RBRC, KC_INS , KC_BSPC , \
39 KC_P4 , KC_P5, KC_P6 , KC_VOLD, KC_TAB , KC_A , KC_SLCK, KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_QUOT, KC_BSLS , \
40 KC_P1 , KC_P2, KC_P3 , KC_PEQL, KC_LSFT, KC_Z , KC_X, KC_CAPS, KC_V , KC_B, KC_NLCK, KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_PGUP , \
41 KC_END, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC , KC_BSPC, KC_APP , MO(_FL), KC_HOME, KC_PGDN),
42
43 [_AL] = LAYOUT(
44 KC_P7 , KC_P8, KC_P9 , KC_VOLU, RESET , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_LBRC, KC_RBRC, KC_INS , KC_BSPC , \
45 KC_P4 , KC_P5, KC_P6 , KC_VOLD, KC_TAB , KC_A , KC_SLCK, KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_QUOT, KC_BSLS , \
46 KC_P1 , KC_P2, KC_P3 , KC_PEQL, KC_LSFT, KC_Z , KC_X, KC_CAPS, KC_V , KC_B, KC_NLCK, KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_PGUP , \
47 KC_END, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC , KC_BSPC, KC_APP , MO(_FL), KC_HOME, KC_PGDN),
48
49 [_LL] = LAYOUT(
50 KC_P7 , KC_P8, KC_P9 , KC_VOLU, RESET , KC_Q , KC_W , KC_E, KC_R , KC_T , KC_Y, KC_U , KC_I , KC_LBRC, KC_RBRC, KC_INS , KC_BSPC , \
51 KC_P4 , KC_P5, KC_P6 , KC_VOLD, KC_TAB , KC_A , KC_SLCK, KC_D, KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_QUOT, KC_BSLS , \
52 KC_P1 , KC_P2, KC_P3 , KC_PEQL, KC_LSFT, KC_Z , KC_X, KC_CAPS, KC_V , KC_B, KC_NLCK, KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_PGUP , \
53 KC_END, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC , KC_BSPC, KC_APP , MO(_FL), KC_HOME, KC_PGDN),
54};
diff --git a/keyboards/tkc/candybar/lefty_r3/keymaps/via/rules.mk b/keyboards/tkc/candybar/lefty_r3/keymaps/via/rules.mk
new file mode 100644
index 000000000..036bd6d1c
--- /dev/null
+++ b/keyboards/tkc/candybar/lefty_r3/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/tkc/candybar/lefty_r3/lefty_r3.c b/keyboards/tkc/candybar/lefty_r3/lefty_r3.c
new file mode 100644
index 000000000..e5a821b7a
--- /dev/null
+++ b/keyboards/tkc/candybar/lefty_r3/lefty_r3.c
@@ -0,0 +1,18 @@
1/* Copyright 2021 Terry Mathews
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 "lefty_r3.h"
18
diff --git a/keyboards/tkc/candybar/lefty_r3/lefty_r3.h b/keyboards/tkc/candybar/lefty_r3/lefty_r3.h
new file mode 100644
index 000000000..d367e8d24
--- /dev/null
+++ b/keyboards/tkc/candybar/lefty_r3/lefty_r3.h
@@ -0,0 +1,31 @@
1/* Copyright 2021 Terry Mathews
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
21#define LAYOUT( \
22 k0d, k0e, k0f, k0g, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \
23 k1d, k1e, k1f, k1g, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \
24 k2d, k2e, k2f, k2g, k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
25 k3d, k3e, k3f, k3g, k30, k31, k32, k35, k37, k38, k39, k3a, k3b, k3c \
26) { \
27 { k00, k01 , k02, k03 , k04 , k05, k06 , k07, k08, k09, k0a, k0b , k0c, k0d, k0e, k0f, k0g } , \
28 { k10, k11 , k12, k13 , k14 , k15, k16 , k17, k18, k19, k1a, KC_NO, k1c, k1d, k1e, k1f, k1g } , \
29 { k20, KC_NO, k22, k23 , k24 , k25, k26 , k27, k28, k29, k2a, k2b , k2c, k2d, k2e, k2f, k2g } , \
30 { k30, k31 , k32, KC_NO, KC_NO, k35, KC_NO, k37, k38, k39, k3a, k3b , k3c, k3d, k3e, k3f, k3g } \
31}
diff --git a/keyboards/tkc/candybar/lefty_r3/readme.md b/keyboards/tkc/candybar/lefty_r3/readme.md
new file mode 100644
index 000000000..3de24a7fd
--- /dev/null
+++ b/keyboards/tkc/candybar/lefty_r3/readme.md
@@ -0,0 +1,22 @@
1# TheKey.Company Candybar
2
3![Candybar](https://cdn.shopify.com/s/files/1/1679/2319/products/CBR3CollectionHERO_720x.jpg)
4
5The Key Company Candybar is a staggered 40% board with a numpad utilizing the ATmega32u4 microcontroller.
6
7* Keyboard Maintainer: [Terry Mathews](https://github.com/TerryMathews/)
8* Hardware Supported: TKC Candybar
9* Hardware Availability: [TheKey.Company](https://thekey.company/products/candybar-round-3)
10
11## Bootloader
12
13Enter the bootloader in 2 ways:
14
15* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (default Escape key) and plug in the keyboard
16* **Physical reset button**: Briefly press the button on the back of the PCB
17
18Make example for this keyboard (after setting up your build environment):
19
20 make tkc/candybar/lefty_r3:default:flash
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).
diff --git a/keyboards/tkc/candybar/lefty_r3/rules.mk b/keyboards/tkc/candybar/lefty_r3/rules.mk
new file mode 100644
index 000000000..502125966
--- /dev/null
+++ b/keyboards/tkc/candybar/lefty_r3/rules.mk
@@ -0,0 +1,19 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # 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 = yes # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19LTO_ENABLE = yes
diff --git a/keyboards/tkc/candybar/righty_r3/config.h b/keyboards/tkc/candybar/righty_r3/config.h
new file mode 100644
index 000000000..f68e29013
--- /dev/null
+++ b/keyboards/tkc/candybar/righty_r3/config.h
@@ -0,0 +1,91 @@
1/* Copyright 2021 Terry Mathews
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 0x544B //TK
23#define PRODUCT_ID 0x0002
24#define DEVICE_VER 0x0006
25#define MANUFACTURER The Key Company
26#define PRODUCT Candybar
27
28/* key matrix size */
29#define MATRIX_ROWS 4
30#define MATRIX_COLS 17
31#define DIODE_DIRECTION COL2ROW
32#define MATRIX_ROW_PINS { F6, F7, D0, D2 }
33#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, D5, B1, B3, B2, B0, F0, F1, F4, F5 }
34
35
36/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
37#define DEBOUNCE 5
38
39/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
40//#define LOCKING_SUPPORT_ENABLE
41/* Locking resynchronize hack */
42//#define LOCKING_RESYNC_ENABLE
43
44/*
45 * Force NKRO
46 *
47 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
48 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
49 * makefile for this to work.)
50 *
51 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
52 * until the next keyboard reset.
53 *
54 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
55 * fully operational during normal computer usage.
56 *
57 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
58 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
59 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
60 * power-up.
61 *
62 */
63//#define FORCE_NKRO
64
65/*
66 * Feature disable options
67 * These options are also useful to firmware size reduction.
68 */
69
70/* disable debug print */
71//#define NO_DEBUG
72
73/* disable print */
74//#define NO_PRINT
75
76/* disable action features */
77//#define NO_ACTION_LAYER
78//#define NO_ACTION_TAPPING
79//#define NO_ACTION_ONESHOT
80//#define NO_ACTION_MACRO
81//#define NO_ACTION_FUNCTION
82
83// #define WS2812_LED_N 2
84// #define RGBLED_NUM WS2812_LED_N
85// #define WS2812_TIM_N 2
86// #define WS2812_TIM_CH 2
87// #define PORT_WS2812 GPIOA
88// #define PIN_WS2812 1
89// #define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection)
90//#define WS2812_DMA_CHANNEL 7 // DMA channel for TIMx_UP
91//#define WS2812_EXTERNAL_PULLUP
diff --git a/keyboards/tkc/candybar/righty_r3/info.json b/keyboards/tkc/candybar/righty_r3/info.json
new file mode 100644
index 000000000..81dc4f8ec
--- /dev/null
+++ b/keyboards/tkc/candybar/righty_r3/info.json
@@ -0,0 +1,16 @@
1{
2 "keyboard_name": "TKC Candybar",
3 "url": "",
4 "maintainer": "terrymathews",
5 "width": 17,
6 "height": 4,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Del", "x":11, "y":0}, {"label":"BkSp", "x":12, "y":0}, {"label":"7", "x":13, "y":0}, {"label":"8", "x":14, "y":0}, {"label":"9", "x":15, "y":0}, {"label":"*", "x":16, "y":0},
11 {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.75}, {"label":"4", "x":13, "y":1}, {"label":"5", "x":14, "y":1}, {"label":"6", "x":15, "y":1}, {"label":"-", "x":16, "y":1},
12 {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"Shift", "x":10.75, "y":2, "w":1.25}, {"label":"&uarr;", "x":12, "y":2}, {"label":"1", "x":13, "y":2}, {"label":"2", "x":14, "y":2}, {"label":"3", "x":15, "y":2}, {"label":"+", "x":16, "y":2},
13 {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"GUI", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":1.75}, {"x":5.5, "y":3, "w":1}, {"label":"Backspace", "x":6.5, "y":3, "w":2.25}, {"label":"Menu", "x":8.75, "y":3, "w":1.25}, {"label":"Fn", "x":10, "y":3}, {"label":"&larr;", "x":11, "y":3}, {"label":"&darr;", "x":12, "y":3}, {"label":"&rarr;", "x":13, "y":3}, {"label":"0", "x":14, "y":3}, {"label":".", "x":15, "y":3}, {"label":"Enter", "x":16, "y":3}]
14 }
15 }
16}
diff --git a/keyboards/tkc/candybar/righty_r3/keymaps/default/keymap.c b/keyboards/tkc/candybar/righty_r3/keymaps/default/keymap.c
new file mode 100644
index 000000000..849f55296
--- /dev/null
+++ b/keyboards/tkc/candybar/righty_r3/keymaps/default/keymap.c
@@ -0,0 +1,40 @@
1/* Copyright 2021 Terry Mathews
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
19enum layer_names {
20 _BL,
21 _FL,
22};
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 /* Keymap _BL: Base Layer (Default Layer)
26 */
27[_BL] = LAYOUT(
28 KC_ESC,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_DEL,KC_BSPC,KC_P7,KC_P8,KC_P9,KC_PAST, \
29 KC_TAB,KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_ENT,KC_P4,KC_P5,KC_P6,KC_PMNS, \
30 KC_LSFT,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_RSFT,KC_UP,KC_P1,KC_P2,KC_P3,KC_PPLS, \
31 KC_LCTL,KC_LGUI,KC_LALT,KC_SPC,KC_SPC,KC_BSPC,KC_APP,MO(_FL),KC_LEFT,KC_DOWN,KC_RGHT,KC_P0,KC_PDOT,KC_PENT),
32
33 /* Keymap _FL: Function Layer
34 */
35[_FL] = LAYOUT(
36 RESET,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_LBRC,KC_RBRC,KC_INS,KC_BSPC,KC_P7,KC_P8,KC_P9,KC_VOLU, \
37 KC_TAB,KC_A,KC_SLCK,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_QUOT,KC_BSLS,KC_P4,KC_P5,KC_P6,KC_VOLD, \
38 KC_LSFT,KC_Z,KC_X,KC_CAPS,KC_V,KC_B,KC_NLCK,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_PGUP,KC_P1,KC_P2,KC_P3,KC_PEQL, \
39 KC_LCTL,KC_LGUI,KC_LALT,KC_SPC,KC_SPC,KC_BSPC,KC_APP,MO(_FL),KC_HOME,KC_PGDN,KC_END,KC_P0,KC_PDOT,KC_PENT),
40};
diff --git a/keyboards/tkc/candybar/righty_r3/keymaps/via/keymap.c b/keyboards/tkc/candybar/righty_r3/keymaps/via/keymap.c
new file mode 100644
index 000000000..269e3d727
--- /dev/null
+++ b/keyboards/tkc/candybar/righty_r3/keymaps/via/keymap.c
@@ -0,0 +1,54 @@
1/* Copyright 2021 Terry Mathews
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
19enum layer_names {
20 _BL,
21 _FL,
22 _AL,
23 _LL,
24};
25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 /* Keymap _BL: Base Layer (Default Layer)
28 */
29[_BL] = LAYOUT(
30 KC_ESC,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_DEL,KC_BSPC,KC_P7,KC_P8,KC_P9,KC_PAST, \
31 KC_TAB,KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_ENT,KC_P4,KC_P5,KC_P6,KC_PMNS, \
32 KC_LSFT,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_RSFT,KC_UP,KC_P1,KC_P2,KC_P3,KC_PPLS, \
33 KC_LCTL,KC_LGUI,KC_LALT,KC_SPC,KC_SPC,KC_BSPC,KC_APP,MO(_FL),KC_LEFT,KC_DOWN,KC_RGHT,KC_P0,KC_PDOT,KC_PENT),
34
35 /* Keymap _FL: Function Layer
36 */
37[_FL] = LAYOUT(
38 RESET,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_LBRC,KC_RBRC,KC_INS,KC_BSPC,KC_P7,KC_P8,KC_P9,KC_VOLU, \
39 KC_TAB,KC_A,KC_SLCK,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_QUOT,KC_BSLS,KC_P4,KC_P5,KC_P6,KC_VOLD, \
40 KC_LSFT,KC_Z,KC_X,KC_CAPS,KC_V,KC_B,KC_NLCK,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_PGUP,KC_P1,KC_P2,KC_P3,KC_PEQL, \
41 KC_LCTL,KC_LGUI,KC_LALT,KC_SPC,KC_SPC,KC_BSPC,KC_APP,MO(_FL),KC_HOME,KC_PGDN,KC_END,KC_P0,KC_PDOT,KC_PENT),
42
43 [_AL] = LAYOUT(
44 RESET,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_LBRC,KC_RBRC,KC_INS,KC_BSPC,KC_P7,KC_P8,KC_P9,KC_VOLU, \
45 KC_TAB,KC_A,KC_SLCK,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_QUOT,KC_BSLS,KC_P4,KC_P5,KC_P6,KC_VOLD, \
46 KC_LSFT,KC_Z,KC_X,KC_CAPS,KC_V,KC_B,KC_NLCK,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_PGUP,KC_P1,KC_P2,KC_P3,KC_PEQL, \
47 KC_LCTL,KC_LGUI,KC_LALT,KC_SPC,KC_SPC,KC_BSPC,KC_APP,MO(_FL),KC_HOME,KC_PGDN,KC_END,KC_P0,KC_PDOT,KC_PENT),
48
49 [_LL] = LAYOUT(
50 RESET,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_LBRC,KC_RBRC,KC_INS,KC_BSPC,KC_P7,KC_P8,KC_P9,KC_VOLU, \
51 KC_TAB,KC_A,KC_SLCK,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_QUOT,KC_BSLS,KC_P4,KC_P5,KC_P6,KC_VOLD, \
52 KC_LSFT,KC_Z,KC_X,KC_CAPS,KC_V,KC_B,KC_NLCK,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_PGUP,KC_P1,KC_P2,KC_P3,KC_PEQL, \
53 KC_LCTL,KC_LGUI,KC_LALT,KC_SPC,KC_SPC,KC_BSPC,KC_APP,MO(_FL),KC_HOME,KC_PGDN,KC_END,KC_P0,KC_PDOT,KC_PENT),
54};
diff --git a/keyboards/tkc/candybar/righty_r3/keymaps/via/rules.mk b/keyboards/tkc/candybar/righty_r3/keymaps/via/rules.mk
new file mode 100644
index 000000000..036bd6d1c
--- /dev/null
+++ b/keyboards/tkc/candybar/righty_r3/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/tkc/candybar/righty_r3/readme.md b/keyboards/tkc/candybar/righty_r3/readme.md
new file mode 100644
index 000000000..e91a0015e
--- /dev/null
+++ b/keyboards/tkc/candybar/righty_r3/readme.md
@@ -0,0 +1,22 @@
1# TheKey.Company Candybar
2
3![Candybar](https://cdn.shopify.com/s/files/1/1679/2319/products/CBR3CollectionHERO_720x.jpg)
4
5The Key Company Candybar is a staggered 40% board with a numpad utilizing the ATmega32u4 microcontroller.
6
7* Keyboard Maintainer: [Terry Mathews](https://github.com/TerryMathews/)
8* Hardware Supported: TKC Candybar
9* Hardware Availability: [TheKey.Company](https://thekey.company/products/candybar-round-3)
10
11## Bootloader
12
13Enter the bootloader in 2 ways:
14
15* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (default Escape key) and plug in the keyboard
16* **Physical reset button**: Briefly press the button on the back of the PCB
17
18Make example for this keyboard (after setting up your build environment):
19
20 make tkc/candybar/righty_r3:default:flash
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).
diff --git a/keyboards/tkc/candybar/righty_r3/righty_r3.c b/keyboards/tkc/candybar/righty_r3/righty_r3.c
new file mode 100644
index 000000000..193c228f9
--- /dev/null
+++ b/keyboards/tkc/candybar/righty_r3/righty_r3.c
@@ -0,0 +1,17 @@
1/* Copyright 2021 Terry Mathews
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 "righty_r3.h"
diff --git a/keyboards/tkc/candybar/righty_r3/righty_r3.h b/keyboards/tkc/candybar/righty_r3/righty_r3.h
new file mode 100644
index 000000000..faaef4939
--- /dev/null
+++ b/keyboards/tkc/candybar/righty_r3/righty_r3.h
@@ -0,0 +1,30 @@
1/* Copyright 2021 Terry Mathews
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 LAYOUT( \
21 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \
22 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, k1d, k1e, k1f, k1g, \
23 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \
24 k30, k31, k32, k35, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f, k3g \
25) { \
26 { k00, k01 , k02, k03 , k04 , k05, k06 , k07, k08, k09, k0a, k0b , k0c, k0d, k0e, k0f, k0g } , \
27 { k10, k11 , k12, k13 , k14 , k15, k16 , k17, k18, k19, k1a, KC_NO, k1c, k1d, k1e, k1f, k1g } , \
28 { k20, KC_NO, k22, k23 , k24 , k25, k26 , k27, k28, k29, k2a, k2b , k2c, k2d, k2e, k2f, k2g } , \
29 { k30, k31 , k32, KC_NO, KC_NO, k35, KC_NO, k37, k38, k39, k3a, k3b , k3c, k3d, k3e, k3f, k3g } \
30}
diff --git a/keyboards/tkc/candybar/righty_r3/rules.mk b/keyboards/tkc/candybar/righty_r3/rules.mk
new file mode 100644
index 000000000..502125966
--- /dev/null
+++ b/keyboards/tkc/candybar/righty_r3/rules.mk
@@ -0,0 +1,19 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # 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 = yes # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19LTO_ENABLE = yes