aboutsummaryrefslogtreecommitdiff
path: root/keyboards/keebsforall
diff options
context:
space:
mode:
authorElliot Powell <32494740+e11i0t23@users.noreply.github.com>2022-02-06 15:57:16 +0000
committerGitHub <noreply@github.com>2022-02-06 07:57:16 -0800
commit4fb6eb72531bf8026751d7db292eeae9466e7710 (patch)
tree707e2f3023ba57f0c9a1e69f7a523f82754abc3e /keyboards/keebsforall
parent4c9c7b9963ac0b7ee0c2285166678eac7f0b3c14 (diff)
downloadqmk_firmware-4fb6eb72531bf8026751d7db292eeae9466e7710.tar.gz
qmk_firmware-4fb6eb72531bf8026751d7db292eeae9466e7710.zip
[Keyboard] Add Support for KeebsForAll Freebird Numpads (#16046)
Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'keyboards/keebsforall')
-rw-r--r--keyboards/keebsforall/freebirdnp/lite/config.h55
-rw-r--r--keyboards/keebsforall/freebirdnp/lite/info.json204
-rw-r--r--keyboards/keebsforall/freebirdnp/lite/keymaps/default/keymap.c32
-rw-r--r--keyboards/keebsforall/freebirdnp/lite/keymaps/via/keymap.c46
-rwxr-xr-xkeyboards/keebsforall/freebirdnp/lite/keymaps/via/rules.mk1
-rw-r--r--keyboards/keebsforall/freebirdnp/lite/lite.c16
-rw-r--r--keyboards/keebsforall/freebirdnp/lite/lite.h48
-rw-r--r--keyboards/keebsforall/freebirdnp/lite/readme.md19
-rw-r--r--keyboards/keebsforall/freebirdnp/lite/rules.mk20
-rw-r--r--keyboards/keebsforall/freebirdnp/pro/config.h58
-rw-r--r--keyboards/keebsforall/freebirdnp/pro/info.json244
-rw-r--r--keyboards/keebsforall/freebirdnp/pro/keymaps/default/keymap.c45
-rw-r--r--keyboards/keebsforall/freebirdnp/pro/keymaps/via/keymap.c51
-rwxr-xr-xkeyboards/keebsforall/freebirdnp/pro/keymaps/via/rules.mk1
-rw-r--r--keyboards/keebsforall/freebirdnp/pro/pro.c28
-rw-r--r--keyboards/keebsforall/freebirdnp/pro/pro.h52
-rw-r--r--keyboards/keebsforall/freebirdnp/pro/readme.md21
-rw-r--r--keyboards/keebsforall/freebirdnp/pro/rules.mk21
18 files changed, 962 insertions, 0 deletions
diff --git a/keyboards/keebsforall/freebirdnp/lite/config.h b/keyboards/keebsforall/freebirdnp/lite/config.h
new file mode 100644
index 000000000..317132eff
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/lite/config.h
@@ -0,0 +1,55 @@
1/*
2Copyright 2021 ELliot Powell
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 0x6B66
24#define PRODUCT_ID 0x1013
25#define DEVICE_VER 0x0001
26#define MANUFACTURER KeebsForAll
27#define PRODUCT Freebird Numpad Lite
28
29/* key matrix size */
30#define MATRIX_ROWS 5
31#define MATRIX_COLS 4
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 { B7, B6, B5, B4, B3 }
44#define MATRIX_COL_PINS { C7, B2, B1, B0 }
45#define UNUSED_PINS
46
47/* COL2ROW, ROW2COL*/
48#define DIODE_DIRECTION COL2ROW
49
50/* number of backlight levels */
51
52/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
53#define LOCKING_SUPPORT_ENABLE
54/* Locking resynchronize hack */
55#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/keebsforall/freebirdnp/lite/info.json b/keyboards/keebsforall/freebirdnp/lite/info.json
new file mode 100644
index 000000000..1553264e0
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/lite/info.json
@@ -0,0 +1,204 @@
1{
2 "keyboard_name": "FreebirdNP Lite",
3 "url": "https://keebsforall.com/products/fb-numpad-lite",
4 "maintainer": "e11i0t23",
5 "manufacturer": "KeebsForAll",
6 "layouts": {
7 "LAYOUT_numpad_5x4": {
8 "layout": [
9 {
10 "label": "Num Lock",
11 "x": 0,
12 "y": 0
13 },
14 {
15 "label": "/",
16 "x": 1,
17 "y": 0
18 },
19 {
20 "label": "*",
21 "x": 2,
22 "y": 0
23 },
24 {
25 "label": "-",
26 "x": 3,
27 "y": 0
28 },
29 {
30 "label": "7",
31 "x": 0,
32 "y": 1
33 },
34 {
35 "label": "8",
36 "x": 1,
37 "y": 1
38 },
39 {
40 "label": "9",
41 "x": 2,
42 "y": 1
43 },
44 {
45 "label": "4",
46 "x": 0,
47 "y": 2
48 },
49 {
50 "label": "5",
51 "x": 1,
52 "y": 2
53 },
54 {
55 "label": "6",
56 "x": 2,
57 "y": 2
58 },
59 {
60 "label": "+",
61 "x": 3,
62 "y": 1,
63 "h": 2
64 },
65 {
66 "label": "1",
67 "x": 0,
68 "y": 3
69 },
70 {
71 "label": "2",
72 "x": 1,
73 "y": 3
74 },
75 {
76 "label": "3",
77 "x": 2,
78 "y": 3
79 },
80 {
81 "label": "0",
82 "x": 0,
83 "y": 4,
84 "w": 2
85 },
86 {
87 "label": ".",
88 "x": 2,
89 "y": 4
90 },
91 {
92 "label": "Enter",
93 "x": 3,
94 "y": 3,
95 "h": 2
96 }
97 ]
98 },
99 "LAYOUT_ortho_5x4": {
100 "layout": [
101 {
102 "label": "Num Lock",
103 "x": 0,
104 "y": 0
105 },
106 {
107 "label": "/",
108 "x": 1,
109 "y": 0
110 },
111 {
112 "label": "*",
113 "x": 2,
114 "y": 0
115 },
116 {
117 "label": "-",
118 "x": 3,
119 "y": 0
120 },
121 {
122 "label": "7",
123 "x": 0,
124 "y": 1
125 },
126 {
127 "label": "8",
128 "x": 1,
129 "y": 1
130 },
131 {
132 "label": "9",
133 "x": 2,
134 "y": 1
135 },
136 {
137 "label": "+",
138 "x": 3,
139 "y": 1
140 },
141 {
142 "label": "4",
143 "x": 0,
144 "y": 2
145 },
146 {
147 "label": "5",
148 "x": 1,
149 "y": 2
150 },
151 {
152 "label": "6",
153 "x": 2,
154 "y": 2
155 },
156 {
157 "label": "+",
158 "x": 3,
159 "y": 2
160 },
161 {
162 "label": "1",
163 "x": 0,
164 "y": 3
165 },
166 {
167 "label": "2",
168 "x": 1,
169 "y": 3
170 },
171 {
172 "label": "3",
173 "x": 2,
174 "y": 3
175 },
176 {
177 "label": "Enter",
178 "x": 3,
179 "y": 3
180 },
181 {
182 "label": "0",
183 "x": 0,
184 "y": 4
185 },
186 {
187 "label": "00",
188 "x": 1,
189 "y": 4
190 },
191 {
192 "label": ".",
193 "x": 2,
194 "y": 4
195 },
196 {
197 "label": "Enter",
198 "x": 3,
199 "y": 4
200 }
201 ]
202 }
203 }
204}
diff --git a/keyboards/keebsforall/freebirdnp/lite/keymaps/default/keymap.c b/keyboards/keebsforall/freebirdnp/lite/keymaps/default/keymap.c
new file mode 100644
index 000000000..3d7f4026f
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/lite/keymaps/default/keymap.c
@@ -0,0 +1,32 @@
1/* Copyright 2021 Elliot Powell
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_numpad_5x4(
20 TG(1), KC_PSLS, KC_PAST, KC_PMNS,
21 KC_P7, KC_P8, KC_P9,
22 KC_P4, KC_P5, KC_P6, KC_PPLS,
23 KC_P1, KC_P2, KC_P3,
24 KC_P0, KC_PDOT, KC_PENT ),
25
26[1] = LAYOUT_numpad_5x4(
27 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
28 KC_HOME, KC_UP, KC_PGUP,
29 KC_LEFT, KC_NO, KC_RGHT, KC_TRNS,
30 KC_END, KC_DOWN, KC_PGDN,
31 KC_INS, KC_DEL, KC_TRNS),
32};
diff --git a/keyboards/keebsforall/freebirdnp/lite/keymaps/via/keymap.c b/keyboards/keebsforall/freebirdnp/lite/keymaps/via/keymap.c
new file mode 100644
index 000000000..712b01dcf
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/lite/keymaps/via/keymap.c
@@ -0,0 +1,46 @@
1/* Copyright 2021 Elliot Powell
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_5x4( /* Base */
20 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
21 KC_P7, KC_P8, KC_P9, KC_PPLS,
22 KC_P4, KC_P5, KC_P6, KC_PPLS,
23 KC_P1, KC_P2, KC_P3, KC_PENT,
24 KC_P0, KC_P0, KC_PDOT, KC_PENT),
25
26[1] = LAYOUT_ortho_5x4( /* Empty for Dynamic keymap */
27 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
28 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
32
33[2] = LAYOUT_ortho_5x4( /* Empty for Dynamic keymap */
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
39
40[3] = LAYOUT_ortho_5x4( /* Empty for Dynamic keymap */
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
46};
diff --git a/keyboards/keebsforall/freebirdnp/lite/keymaps/via/rules.mk b/keyboards/keebsforall/freebirdnp/lite/keymaps/via/rules.mk
new file mode 100755
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/lite/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/keebsforall/freebirdnp/lite/lite.c b/keyboards/keebsforall/freebirdnp/lite/lite.c
new file mode 100644
index 000000000..4d424c17d
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/lite/lite.c
@@ -0,0 +1,16 @@
1/* Copyright 2021 Elliot Powell
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 "lite.h"
diff --git a/keyboards/keebsforall/freebirdnp/lite/lite.h b/keyboards/keebsforall/freebirdnp/lite/lite.h
new file mode 100644
index 000000000..7f8cbdeeb
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/lite/lite.h
@@ -0,0 +1,48 @@
1/* Copyright 2021 Elliot Powell
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#define XXX KC_NO
21
22#define LAYOUT_numpad_5x4( \
23 K00, K01, K02, K03, \
24 K10, K11, K12, \
25 K20, K21, K22, K13, \
26 K30, K31, K32, \
27 K40, K42, K33 \
28) { \
29 { K00, K01, K02, K03 }, \
30 { K10, K11, K12, K13 }, \
31 { K20, K21, K22, XXX }, \
32 { K30, K31, K32, K33 }, \
33 { K40, XXX, K42, XXX } \
34}
35
36#define LAYOUT_ortho_5x4( \
37 K00, K01, K02, K03, \
38 K10, K11, K12, K13, \
39 K20, K21, K22, K23, \
40 K30, K31, K32, K33, \
41 K40, K41, K42, K43 \
42) { \
43 { K00, K01, K02, K03 }, \
44 { K10, K11, K12, K13 }, \
45 { K20, K21, K22, K23 }, \
46 { K30, K31, K32, K33 }, \
47 { K40, K41, K42, K43 } \
48}
diff --git a/keyboards/keebsforall/freebirdnp/lite/readme.md b/keyboards/keebsforall/freebirdnp/lite/readme.md
new file mode 100644
index 000000000..e0d0dda05
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/lite/readme.md
@@ -0,0 +1,19 @@
1# Freebird Numpad Lite
2
3A basic numpad build to support the freebird range of products by keebsforall
4
5* Keyboard Maintainer: [e11i0t23](https://github.com/e11i0t23)
6* Hardware Supported: FreebirdNP Lite
7* Hardware Availability: [KeebsForAll](https://keebsforall.com)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make keebsforall/freebirdnp/lite:default
12
13Enter the bootloader in 3 ways:
14
15* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
16* **Physical reset button**: Briefly press the button on the back of the PCB
17* **Keycode in layout**: Press the key mapped to `RESET` if it is available
18
19See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/keebsforall/freebirdnp/lite/rules.mk b/keyboards/keebsforall/freebirdnp/lite/rules.mk
new file mode 100644
index 000000000..9f2621eeb
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/lite/rules.mk
@@ -0,0 +1,20 @@
1# MCU name
2MCU = atmega32u2
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 = 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 = no # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19
20LAYOUTS = numpad_5x4 ortho_5x4
diff --git a/keyboards/keebsforall/freebirdnp/pro/config.h b/keyboards/keebsforall/freebirdnp/pro/config.h
new file mode 100644
index 000000000..53ced8ac0
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/pro/config.h
@@ -0,0 +1,58 @@
1/*
2Copyright 2021 Elliot Powell
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 0x6B66
24#define PRODUCT_ID 0x1014
25#define DEVICE_VER 0x0001
26#define MANUFACTURER KeebsForAll
27#define PRODUCT Freebird Numpad
28
29/* key matrix size */
30#define MATRIX_ROWS 6
31#define MATRIX_COLS 4
32
33#define ENCODERS_PAD_A { D4 }
34#define ENCODERS_PAD_B { D5 }
35
36/*
37 * Keyboard Matrix Assignments
38 *
39 * Change this to how you wired your keyboard
40 * COLS: AVR pins used for columns, left to right
41 * ROWS: AVR pins used for rows, top to bottom
42 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
43 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
44 *
45*/
46#define MATRIX_ROW_PINS { D3, B7, B6, B5, B4, B3 }
47#define MATRIX_COL_PINS { C7, B2, B1, B0 }
48#define UNUSED_PINS
49
50/* COL2ROW, ROW2COL*/
51#define DIODE_DIRECTION COL2ROW
52
53/* number of backlight levels */
54
55/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
56#define LOCKING_SUPPORT_ENABLE
57/* Locking resynchronize hack */
58#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/keebsforall/freebirdnp/pro/info.json b/keyboards/keebsforall/freebirdnp/pro/info.json
new file mode 100644
index 000000000..5aa40c4a6
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/pro/info.json
@@ -0,0 +1,244 @@
1{
2 "keyboard_name": "FreebirdNP Pro",
3 "url": "https://keebsforall.com/products/fb-numpad-pro",
4 "maintainer": "e11i0t23",
5 "manufacturer": "KeebsForAll",
6 "layouts": {
7 "LAYOUT_numpad_6x4": {
8 "layout": [
9 {
10 "label": "F1",
11 "x": 0,
12 "y": 1
13 },
14 {
15 "label": "F2",
16 "x": 1,
17 "y": 1
18 },
19 {
20 "label": "F3",
21 "x": 2,
22 "y": 1
23 },
24 {
25 "label": "MUTE",
26 "x": 3,
27 "y": 1
28 },
29 {
30 "label": "Num Lock",
31 "x": 0,
32 "y": 1
33 },
34 {
35 "label": "/",
36 "x": 1,
37 "y": 1
38 },
39 {
40 "label": "*",
41 "x": 2,
42 "y": 1
43 },
44 {
45 "label": "-",
46 "x": 3,
47 "y": 1
48 },
49 {
50 "label": "7",
51 "x": 0,
52 "y": 2
53 },
54 {
55 "label": "8",
56 "x": 1,
57 "y": 2
58 },
59 {
60 "label": "9",
61 "x": 2,
62 "y": 2
63 },
64 {
65 "label": "4",
66 "x": 0,
67 "y": 3
68 },
69 {
70 "label": "5",
71 "x": 1,
72 "y": 3
73 },
74 {
75 "label": "6",
76 "x": 2,
77 "y": 3
78 },
79 {
80 "label": "+",
81 "x": 3,
82 "y": 2,
83 "h": 2
84 },
85 {
86 "label": "1",
87 "x": 0,
88 "y": 4
89 },
90 {
91 "label": "2",
92 "x": 1,
93 "y": 4
94 },
95 {
96 "label": "3",
97 "x": 2,
98 "y": 4
99 },
100 {
101 "label": "0",
102 "x": 0,
103 "y": 5,
104 "w": 2
105 },
106 {
107 "label": ".",
108 "x": 2,
109 "y": 5
110 },
111 {
112 "label": "Enter",
113 "x": 3,
114 "y": 4,
115 "h": 2
116 }
117 ]
118 },
119 "LAYOUT_ortho_6x4": {
120 "layout": [
121 {
122 "label": "F1",
123 "x": 0,
124 "y": 1
125 },
126 {
127 "label": "F2",
128 "x": 1,
129 "y": 1
130 },
131 {
132 "label": "F3",
133 "x": 2,
134 "y": 1
135 },
136 {
137 "label": "MUTE",
138 "x": 3,
139 "y": 1
140 },
141 {
142 "label": "Num Lock",
143 "x": 0,
144 "y": 1
145 },
146 {
147 "label": "/",
148 "x": 1,
149 "y": 1
150 },
151 {
152 "label": "*",
153 "x": 2,
154 "y": 1
155 },
156 {
157 "label": "-",
158 "x": 3,
159 "y": 1
160 },
161 {
162 "label": "7",
163 "x": 0,
164 "y": 2
165 },
166 {
167 "label": "8",
168 "x": 1,
169 "y": 2
170 },
171 {
172 "label": "9",
173 "x": 2,
174 "y": 2
175 },
176 {
177 "label": "+",
178 "x": 3,
179 "y": 2
180 },
181 {
182 "label": "4",
183 "x": 0,
184 "y": 3
185 },
186 {
187 "label": "5",
188 "x": 1,
189 "y": 3
190 },
191 {
192 "label": "6",
193 "x": 2,
194 "y": 3
195 },
196 {
197 "label": "+",
198 "x": 3,
199 "y": 3
200 },
201 {
202 "label": "1",
203 "x": 0,
204 "y": 4
205 },
206 {
207 "label": "2",
208 "x": 1,
209 "y": 4
210 },
211 {
212 "label": "3",
213 "x": 2,
214 "y": 4
215 },
216 {
217 "label": "Enter",
218 "x": 3,
219 "y": 4
220 },
221 {
222 "label": "0",
223 "x": 0,
224 "y": 5
225 },
226 {
227 "label": "00",
228 "x": 1,
229 "y": 5
230 },
231 {
232 "label": ".",
233 "x": 2,
234 "y": 5
235 },
236 {
237 "label": "Enter",
238 "x": 3,
239 "y": 5
240 }
241 ]
242 }
243 }
244}
diff --git a/keyboards/keebsforall/freebirdnp/pro/keymaps/default/keymap.c b/keyboards/keebsforall/freebirdnp/pro/keymaps/default/keymap.c
new file mode 100644
index 000000000..db6b1faf5
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/pro/keymaps/default/keymap.c
@@ -0,0 +1,45 @@
1/* Copyright 2021 Elliot Powell
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_numpad_6x4(
20 KC_F1, KC_F2, KC_F3, KC_MUTE,
21 TG(1), KC_PSLS, KC_PAST, KC_PMNS,
22 KC_P7, KC_P8, KC_P9,
23 KC_P4, KC_P5, KC_P6, KC_PPLS,
24 KC_P1, KC_P2, KC_P3,
25 KC_P0, KC_PDOT, KC_PENT ),
26
27[1] = LAYOUT_numpad_6x4(
28 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_HOME, KC_UP, KC_PGUP,
31 KC_LEFT, KC_NO, KC_RGHT, KC_TRNS,
32 KC_END, KC_DOWN, KC_PGDN,
33 KC_INS, KC_DEL, KC_TRNS),
34};
35
36bool encoder_update_user(uint8_t index, bool clockwise) {
37 if (index == 0) {
38 if (clockwise) {
39 tap_code(KC_VOLU);
40 } else {
41 tap_code(KC_VOLD);
42 }
43 }
44 return false;
45}
diff --git a/keyboards/keebsforall/freebirdnp/pro/keymaps/via/keymap.c b/keyboards/keebsforall/freebirdnp/pro/keymaps/via/keymap.c
new file mode 100644
index 000000000..e08edb618
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/pro/keymaps/via/keymap.c
@@ -0,0 +1,51 @@
1/* Copyright 2021 Elliot Powell
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_6x4( /* Base */
20 KC_F1, KC_F2, KC_F3, KC_MUTE,
21 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
22 KC_P7, KC_P8, KC_P9, KC_PPLS,
23 KC_P4, KC_P5, KC_P6, KC_PPLS,
24 KC_P1, KC_P2, KC_P3, KC_PENT,
25 KC_P0, KC_P0, KC_PDOT, KC_PENT),
26
27[1] = LAYOUT_ortho_6x4( /* Empty for Dynamic keymap */
28 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
34
35[2] = LAYOUT_ortho_6x4( /* Empty for Dynamic keymap */
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
42
43[3] = LAYOUT_ortho_6x4( /* Empty for Dynamic keymap */
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
50};
51
diff --git a/keyboards/keebsforall/freebirdnp/pro/keymaps/via/rules.mk b/keyboards/keebsforall/freebirdnp/pro/keymaps/via/rules.mk
new file mode 100755
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/pro/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/keebsforall/freebirdnp/pro/pro.c b/keyboards/keebsforall/freebirdnp/pro/pro.c
new file mode 100644
index 000000000..dcc72d39b
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/pro/pro.c
@@ -0,0 +1,28 @@
1/* Copyright 2021 Elliot Powell
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 "pro.h"
17
18bool encoder_update_kb(uint8_t index, bool clockwise) {
19 if (!encoder_update_user(index, clockwise)) { return false; }
20 if (index == 0) {
21 if (clockwise) {
22 tap_code(KC_VOLU);
23 } else {
24 tap_code(KC_VOLD);
25 }
26 }
27 return false;
28}
diff --git a/keyboards/keebsforall/freebirdnp/pro/pro.h b/keyboards/keebsforall/freebirdnp/pro/pro.h
new file mode 100644
index 000000000..41b241bee
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/pro/pro.h
@@ -0,0 +1,52 @@
1/* Copyright 2021 Elliot Powell
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#define XXX KC_NO
21
22#define LAYOUT_numpad_6x4( \
23 KF0, KF1, KF2, KF3, \
24 K00, K01, K02, K03, \
25 K10, K11, K12, \
26 K20, K21, K22, K13, \
27 K30, K31, K32, \
28 K40, K42, K33 \
29) { \
30 { KF0, KF1, KF2, KF3 }, \
31 { K00, K01, K02, K03 }, \
32 { K10, K11, K12, K13 }, \
33 { K20, K21, K22, XXX }, \
34 { K30, K31, K32, K33 }, \
35 { K40, XXX, K42, XXX } \
36}
37
38#define LAYOUT_ortho_6x4( \
39 KF0, KF1, KF2, KF3, \
40 K00, K01, K02, K03, \
41 K10, K11, K12, K13, \
42 K20, K21, K22, K23, \
43 K30, K31, K32, K33, \
44 K40, K41, K42, K43 \
45) { \
46 { KF0, KF1, KF2, KF3 }, \
47 { K00, K01, K02, K03 }, \
48 { K10, K11, K12, K13 }, \
49 { K20, K21, K22, K23 }, \
50 { K30, K31, K32, K33 }, \
51 { K40, K41, K42, K43 } \
52}
diff --git a/keyboards/keebsforall/freebirdnp/pro/readme.md b/keyboards/keebsforall/freebirdnp/pro/readme.md
new file mode 100644
index 000000000..3b06a72d1
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/pro/readme.md
@@ -0,0 +1,21 @@
1# Freebird Numpad Pro
2
3A basic numpad build to support the freebird range of products by keebsforall
4
5Pro Model features an Frow and Encoder
6
7* Keyboard Maintainer: [e11i0t23](https://github.com/e11i0t23)
8* Hardware Supported: FreebirdNP Pro
9* Hardware Availability: [KeebsForAll](https://keebsforall.com)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make keebsforall/freebirdnp/pro:default
14
15Enter the bootloader in 3 ways:
16
17* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
18* **Physical reset button**: Briefly press the button on the back of the PCB
19* **Keycode in layout**: Press the key mapped to `RESET` if it is available
20
21See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/keebsforall/freebirdnp/pro/rules.mk b/keyboards/keebsforall/freebirdnp/pro/rules.mk
new file mode 100644
index 000000000..fae02c784
--- /dev/null
+++ b/keyboards/keebsforall/freebirdnp/pro/rules.mk
@@ -0,0 +1,21 @@
1# MCU name
2MCU = atmega32u2
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 = 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 = no # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19ENCODER_ENABLE = yes
20
21LAYOUTS = numpad_6x4 ortho_6x4