aboutsummaryrefslogtreecommitdiff
path: root/keyboards/amjpad
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/amjpad')
-rw-r--r--keyboards/amjpad/amjpad.c1
-rw-r--r--keyboards/amjpad/amjpad.h58
-rw-r--r--keyboards/amjpad/config.h88
-rw-r--r--keyboards/amjpad/info.json13
-rw-r--r--keyboards/amjpad/keymaps/default/keymap.c59
-rw-r--r--keyboards/amjpad/keymaps/max/keymap.c63
-rw-r--r--keyboards/amjpad/keymaps/ortho_left/keymap.c63
-rw-r--r--keyboards/amjpad/keymaps/ortho_right/keymap.c62
-rw-r--r--keyboards/amjpad/readme.md14
-rw-r--r--keyboards/amjpad/rules.mk20
10 files changed, 441 insertions, 0 deletions
diff --git a/keyboards/amjpad/amjpad.c b/keyboards/amjpad/amjpad.c
new file mode 100644
index 000000000..83cdedf68
--- /dev/null
+++ b/keyboards/amjpad/amjpad.c
@@ -0,0 +1 @@
#include "amjpad.h"
diff --git a/keyboards/amjpad/amjpad.h b/keyboards/amjpad/amjpad.h
new file mode 100644
index 000000000..976a7ab04
--- /dev/null
+++ b/keyboards/amjpad/amjpad.h
@@ -0,0 +1,58 @@
1#pragma once
2
3#include "quantum.h"
4
5// readability
6#define XXX KC_NO
7
8/* AMJPAD matrix layout
9 * ,-------------------.
10 * | 00 | 01 | 02 | 03 |
11 * |----|----|----|----|
12 * | 10 | 11 | 12 | 13 |
13 * |----|----|----|----|
14 * | 20 | 21 | 22 | |
15 * |----|----|----| 23 |
16 * | 30 | 31 | 32 | |
17 * |----|----|----|----|
18 * | 40 | 41 | 42 | |
19 * |----|----|----| 43 |
20 * | 50 | 52 | |
21 * `-------------------'
22 */
23// The first section contains all of the arguments
24// The second converts the arguments into a two-dimensional array
25#define LAYOUT_numpad_6x4( \
26 k00, k01, k02, k03, \
27 k10, k11, k12, k13, \
28 k20, k21, k22, \
29 k30, k31, k32, k23, \
30 k40, k41, k42, \
31 k50, k52, k43 \
32) { \
33 { k00, k01, k02, k03 }, \
34 { k10, k11, k12, k13 }, \
35 { k20, k21, k22, k23 }, \
36 { k30, k31, k32, XXX }, \
37 { k40, k41, k42, k43 }, \
38 { k50, XXX, k52, XXX } \
39}
40
41#define LAYOUT_ortho_6x4( \
42 k00, k01, k02, k03, \
43 k10, k11, k12, k13, \
44 k20, k21, k22, k23, \
45 k30, k31, k32, k33, \
46 k40, k41, k42, k43, \
47 k50, k51, k52, k53 \
48) { \
49 { k00, k01, k02, k03 }, \
50 { k10, k11, k12, k13 }, \
51 { k20, k21, k22, k23 }, \
52 { k30, k31, k32, k33 }, \
53 { k40, k41, k42, k43 }, \
54 { k50, k51, k52, k53 } \
55}
56
57void matrix_init_user(void);
58void matrix_scan_user(void);
diff --git a/keyboards/amjpad/config.h b/keyboards/amjpad/config.h
new file mode 100644
index 000000000..f1d57592b
--- /dev/null
+++ b/keyboards/amjpad/config.h
@@ -0,0 +1,88 @@
1/*
2Copyright 2012 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xFEED
24#define PRODUCT_ID 0x6060
25#define DEVICE_VER 0x0003
26#define MANUFACTURER AMJ
27#define PRODUCT PAD
28
29/* key matrix size */
30#define MATRIX_ROWS 6
31#define MATRIX_COLS 4
32
33// ROWS: Top to bottom, COLS: Left to right
34
35#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5, D0 }
36#define MATRIX_COL_PINS { F1, F0, E6, C7 }
37#define UNUSED_PINS
38
39#define BACKLIGHT_PIN B6
40
41/* COL2ROW or ROW2COL */
42#define DIODE_DIRECTION COL2ROW
43
44/* define if matrix has ghost */
45//#define MATRIX_HAS_GHOST
46
47/* Set 0 if debouncing isn't needed */
48#define DEBOUNCE 5
49
50/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
51#define LOCKING_SUPPORT_ENABLE
52/* Locking resynchronize hack */
53#define LOCKING_RESYNC_ENABLE
54
55#define LED_NUM_LOCK_PIN D6
56#define LED_PIN_ON_STATE 0
57
58/* Backlight configuration
59 */
60#define BACKLIGHT_LEVELS 4
61
62/* Underlight configuration
63 */
64
65#define RGB_DI_PIN E2
66#define RGBLIGHT_ANIMATIONS
67#define RGBLED_NUM 8 // Number of LEDs
68#define RGBLIGHT_HUE_STEP 10
69#define RGBLIGHT_SAT_STEP 17
70#define RGBLIGHT_VAL_STEP 17
71
72/*
73 * Feature disable options
74 * These options are also useful to firmware size reduction.
75 */
76
77/* disable debug print */
78//#define NO_DEBUG
79
80/* disable print */
81//#define NO_PRINT
82
83/* disable action features */
84//#define NO_ACTION_LAYER
85//#define NO_ACTION_TAPPING
86//#define NO_ACTION_ONESHOT
87//#define NO_ACTION_MACRO
88//#define NO_ACTION_FUNCTION
diff --git a/keyboards/amjpad/info.json b/keyboards/amjpad/info.json
new file mode 100644
index 000000000..76147716d
--- /dev/null
+++ b/keyboards/amjpad/info.json
@@ -0,0 +1,13 @@
1{
2 "keyboard_name": "AMJ Pad",
3 "url": "",
4 "maintainer": "qmk",
5 "layouts": {
6 "LAYOUT_numpad_6x4": {
7 "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k23", "x":3, "y":2, "h":2}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k50", "x":0, "y":5, "w":2}, {"label":"k52", "x":2, "y":5}, {"label":"k43", "x":3, "y":4, "h":2}]
8 },
9 "LAYOUT_ortho_6x4": {
10 "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k23", "x":3, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k33", "x":3, "y":3}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k43", "x":3, "y":4}, {"label":"k50", "x":0, "y":5}, {"label":"k51", "x":1, "y":5}, {"label":"k52", "x":2, "y":5}, {"label":"k53", "x":3, "y":5}]
11 }
12 }
13}
diff --git a/keyboards/amjpad/keymaps/default/keymap.c b/keyboards/amjpad/keymaps/default/keymap.c
new file mode 100644
index 000000000..9df4317bb
--- /dev/null
+++ b/keyboards/amjpad/keymaps/default/keymap.c
@@ -0,0 +1,59 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7#define _BL 0
8#define _FL 1
9
10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11 /* Keymap _BL: (Base Layer) Default Layer
12 * ,-------------------.
13 * |Esc |TAB |BS | = |
14 * |----|----|----|----|
15 * | NL | / | * | - |
16 * |----|----|----|----|
17 * | 7 | 8 | 9 | |
18 * |----|----|----| + |
19 * | 4 | 5 | 6 | |
20 * |----|----|----|----|
21 * | 1 | 2 | 3 | |
22 * |----|----|----| En |
23 * | 0 |./FN| |
24 * `-------------------'
25 */
26
27 [_BL] = LAYOUT_numpad_6x4(
28 KC_ESC, KC_TAB, KC_BSPC, KC_PEQL,
29 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
30 KC_P7, KC_P8, KC_P9,
31 KC_P4, KC_P5, KC_P6, KC_PPLS,
32 KC_P1, KC_P2, KC_P3,
33 KC_P0, LT(_FL,KC_PDOT), KC_PENT
34 ),
35
36 /* Keymap _FL: Function Layer
37 * ,-------------------.
38 * |Esc |TAB |BS | = |
39 * |----|----|----|----|
40 * | NL | / | * | - |
41 * |----|----|----|----|
42 * | 7 | 8 | 9 | |
43 * |----|----|----|RST |
44 * | 4 | 5 | 6 | |
45 * |----|----|----|----|
46 * | 1 | 2 | 3 | |
47 * |----|----|----| En |
48 * | 0 |./FN| |
49 * `-------------------'
50 */
51 [_FL] = LAYOUT_numpad_6x4(
52 KC_ESC, KC_TAB, KC_BSPC, KC_PEQL,
53 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
54 KC_P7, KC_P8, KC_P9,
55 KC_P4, KC_P5, KC_P6, RESET,
56 KC_P1, KC_P2, KC_P3,
57 KC_P0, LT(_FL,KC_PDOT), KC_PENT
58 ),
59};
diff --git a/keyboards/amjpad/keymaps/max/keymap.c b/keyboards/amjpad/keymaps/max/keymap.c
new file mode 100644
index 000000000..7bfaed599
--- /dev/null
+++ b/keyboards/amjpad/keymaps/max/keymap.c
@@ -0,0 +1,63 @@
1#include QMK_KEYBOARD_H
2
3#ifdef RGBLIGHT_ENABLE
4#include "rgblight.h"
5#endif
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _BL 0
12#define _FL 1
13
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15 /* Keymap _BL: (Base Layer) Default Layer
16 * ,-------------------.
17 * |Esc |Setp| - | = |
18 * |----|----|----|----|
19 * | F1 | F2 | F3 | F4 |
20 * |----|----|----|----|
21 * | 7 | 8 | 9 | - |
22 * |----|----|----|----|
23 * | 4 | 5 | 6 | LF |
24 * |----|----|----|----|
25 * | 1 | 2 | 3 | \ |
26 * |----|----|----|----|
27 * |Left|Down| Up |Rght|
28 * `-------------------'
29 */
30
31 [_BL] = LAYOUT_ortho_6x4(
32 KC_ESC, KC_TAB, KC_MINS,KC_EQL, \
33 KC_F1, KC_F2, KC_F3, KC_F4, \
34 KC_P7, KC_P8, KC_P9, KC_PMNS, \
35 KC_P4, KC_P5, KC_P6, KC_PENT, \
36 KC_P1, KC_P2, KC_P3, KC_BSLS, \
37 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
38 ),
39
40 /* Keymap _FL: Function Layer
41 * ,-------------------.
42 * |Esc |TAB |BS | = |
43 * |----|----|----|----|
44 * | NL | / | * | - |
45 * |----|----|----|----|
46 * | 7 | 8 | 9 | |
47 * |----|----|----|RST |
48 * | 4 | 5 | 6 | |
49 * |----|----|----|----|
50 * | 1 | 2 | 3 | |
51 * |----|----|----| En |
52 * | 0 |./FN| |
53 * `-------------------'
54 */
55 [_FL] = LAYOUT_ortho_6x4(
56 KC_ESC, KC_TAB, KC_BSPC, KC_PEQL, \
57 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
58 KC_P7, KC_P8, KC_P9, RESET, \
59 KC_P4, KC_P5, KC_P6, KC_PENT, \
60 KC_P1, KC_P2, KC_P3, KC_PENT, \
61 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
62 ),
63};
diff --git a/keyboards/amjpad/keymaps/ortho_left/keymap.c b/keyboards/amjpad/keymaps/ortho_left/keymap.c
new file mode 100644
index 000000000..815ac2a68
--- /dev/null
+++ b/keyboards/amjpad/keymaps/ortho_left/keymap.c
@@ -0,0 +1,63 @@
1#include QMK_KEYBOARD_H
2
3#ifdef RGBLIGHT_ENABLE
4#include "rgblight.h"
5#endif
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _BL 0
12#define _FL 1
13
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15 /* Keymap _BL: (Base Layer) Default Layer
16 * ,-------------------.
17 * | T | G | B |Spac|
18 * |----|----|----|----|
19 * | R | F | V | Fn |
20 * |----|----|----|----|
21 * | E | D | C | OS |
22 * |----|----|----|----|
23 * | W | S | X | Alt|
24 * |----|----|----|----|
25 * | Q | A | Z | Ctl|
26 * |----|----|----|----|
27 * | Esc| Tab|Shft| Fn2|
28 * `-------------------'
29 */
30
31 [_BL] = LAYOUT_ortho_6x4(
32 KC_T, KC_G, KC_B, KC_SPACE,\
33 KC_R, KC_F, KC_V, MO(1), \
34 KC_E, KC_D, KC_C, KC_LGUI, \
35 KC_W, KC_S, KC_X, KC_LALT, \
36 KC_Q, KC_A, KC_Z, KC_LCTL, \
37 KC_TAB, KC_ESC, KC_LSHIFT, MO(1)
38 ),
39
40 /* Keymap _FL: Function Layer
41 * ,-------------------.
42 * | 5 | F5 | F11|Spac|
43 * |----|----|----|----|
44 * | 4 | F4 | F10| |
45 * |----|----|----|----|
46 * | 3 | F3 | F9 | OS |
47 * |----|----|----|----|
48 * | 2 | F2 | F8 | Alt|
49 * |----|----|----|----|
50 * | 1 | F1 | F7 | Ctl|
51 * |----|----|----|----|
52 * | ` | Del|Shft| |
53 * `-------------------'
54 */
55 [_FL] = LAYOUT_ortho_6x4(
56 KC_5, KC_F5, KC_F11, _______, \
57 KC_4, KC_F4, KC_F10, _______, \
58 KC_3, KC_F3, KC_F9, _______, \
59 KC_2, KC_F2, KC_F8, _______, \
60 KC_1, KC_F1, KC_F7, _______, \
61 KC_GRV,KC_DEL, _______, _______
62 ),
63};
diff --git a/keyboards/amjpad/keymaps/ortho_right/keymap.c b/keyboards/amjpad/keymaps/ortho_right/keymap.c
new file mode 100644
index 000000000..cbb81a2ea
--- /dev/null
+++ b/keyboards/amjpad/keymaps/ortho_right/keymap.c
@@ -0,0 +1,62 @@
1#include QMK_KEYBOARD_H
2
3#ifdef RGBLIGHT_ENABLE
4#include "rgblight.h"
5#endif
6
7// Each layer gets a name for readability, which is then used in the keymap matrix below.
8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers.
11#define _BL 0
12#define _FL 1
13
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15 /* Keymap _BL: (Base Layer) Default Layer
16 * ,-------------------.
17 * |Spac| N | H | Y |
18 * |----|----|----|----|
19 * | Fn | M | J | U |
20 * |----|----|----|----|
21 * |Left| , | K | I |
22 * |----|----|----|----|
23 * |Down| . | L | O |
24 * |----|----|----|----|
25 * | Up | / | ; | P |
26 * |----|----|----|----|
27 * |Rght| Ret| " |Bspc|
28 * `-------------------'
29 */
30 [_BL] = LAYOUT_ortho_6x4(
31 KC_SPACE, KC_N, KC_H, KC_Y, \
32 MO(1), KC_M, KC_J, KC_U, \
33 KC_LEFT, KC_COMM, KC_K, KC_I, \
34 KC_DOWN, KC_DOT, KC_L, KC_O, \
35 KC_UP, KC_SLASH, KC_SCLN, KC_P, \
36 KC_RIGHT, KC_ENT, KC_QUOT, KC_BSPC
37 ),
38
39 /* Keymap _FL: Function Layer
40 * ,-------------------.
41 * |Esc | F12| F6 | 6 |
42 * |----|----|----|----|
43 * | NL | M | - | 7 |
44 * |----|----|----|----|
45 * |Left| , | = | 8 |
46 * |----|----|----|----|
47 * |Down| . | [ | 9 |
48 * |----|----|----|----|
49 * | Up | / | ] | 0 |
50 * |----|----|----|----|
51 * |Rght| Ret| \ | Del|
52 * `-------------------'
53 */
54 [_FL] = LAYOUT_ortho_6x4(
55 _______, KC_F12, KC_F6, KC_6, \
56 _______, _______, KC_MINS, KC_7, \
57 _______, _______, KC_EQL, KC_8, \
58 _______, _______, KC_LBRC, KC_9, \
59 _______, _______, KC_RBRC, KC_0, \
60 _______, _______, KC_BSLS, KC_DEL
61 ),
62};
diff --git a/keyboards/amjpad/readme.md b/keyboards/amjpad/readme.md
new file mode 100644
index 000000000..c069af25a
--- /dev/null
+++ b/keyboards/amjpad/readme.md
@@ -0,0 +1,14 @@
1AMJ Pad
2===
3
4A DIY Keypad Kit
5
6Keyboard Maintainer: QMK Community
7Hardware Supported: AMJ Pad
8Hardware Availability: https://geekhack.org/index.php?topic=83546.0
9
10Make example for this keyboard (after setting up your build environment):
11
12 make amjpad:default
13
14See [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/amjpad/rules.mk b/keyboards/amjpad/rules.mk
new file mode 100644
index 000000000..c56fff39b
--- /dev/null
+++ b/keyboards/amjpad/rules.mk
@@ -0,0 +1,20 @@
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 = no # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = yes # Console for debug
14COMMAND_ENABLE = yes # Commands for debug and configuration
15NKRO_ENABLE = yes # Enable N-Key Rollover
16RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality
17BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
18AUDIO_ENABLE = no
19
20LAYOUTS = numpad_6x4 ortho_6x4