aboutsummaryrefslogtreecommitdiff
path: root/keyboards/jd40
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/jd40')
-rw-r--r--keyboards/jd40/config.h69
-rw-r--r--keyboards/jd40/info.json55
-rw-r--r--keyboards/jd40/jd40.c1
-rw-r--r--keyboards/jd40/jd40.h18
-rw-r--r--keyboards/jd40/keymaps/default/keymap.c53
-rw-r--r--keyboards/jd40/keymaps/myoung34/keymap.c28
-rw-r--r--keyboards/jd40/keymaps/vanagon/README.md17
-rw-r--r--keyboards/jd40/keymaps/vanagon/config.h13
-rw-r--r--keyboards/jd40/keymaps/vanagon/keymap.c26
-rw-r--r--keyboards/jd40/keymaps/vanagon/rules.mk0
-rw-r--r--keyboards/jd40/readme.md14
-rw-r--r--keyboards/jd40/rules.mk17
12 files changed, 311 insertions, 0 deletions
diff --git a/keyboards/jd40/config.h b/keyboards/jd40/config.h
new file mode 100644
index 000000000..dd6984f10
--- /dev/null
+++ b/keyboards/jd40/config.h
@@ -0,0 +1,69 @@
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 0x0001
26#define MANUFACTURER geekhack
27#define PRODUCT jd40v2
28
29/* key matrix size */
30#define MATRIX_ROWS 4
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 { F0, F1, F5, B4 }
44#define MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2 }
45#define UNUSED_PINS
46
47/* COL2ROW or ROW2COL */
48#define DIODE_DIRECTION COL2ROW
49
50/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
51#define DEBOUNCE 5
52
53/* define if matrix has ghost (lacks anti-ghosting diodes) */
54//#define MATRIX_HAS_GHOST
55
56/* number of backlight levels */
57#define BACKLIGHT_LEVELS 3
58
59/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
60#define LOCKING_SUPPORT_ENABLE
61/* Locking resynchronize hack */
62#define LOCKING_RESYNC_ENABLE
63
64#define RGB_DI_PIN D3
65#define RGBLIGHT_ANIMATIONS
66#define RGBLED_NUM 12 // Number of LEDs
67#define RGBLIGHT_HUE_STEP 8
68#define RGBLIGHT_SAT_STEP 8
69#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/jd40/info.json b/keyboards/jd40/info.json
new file mode 100644
index 000000000..6cfdcdc3e
--- /dev/null
+++ b/keyboards/jd40/info.json
@@ -0,0 +1,55 @@
1{
2 "keyboard_name": "jd40",
3 "url": "",
4 "maintainer": "qmk",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [
8 { "label": "Esc", "x": 0, "y": 0 },
9 { "label": "Q", "x": 1, "y": 0 },
10 { "label": "W", "x": 2, "y": 0 },
11 { "label": "E", "x": 3, "y": 0 },
12 { "label": "R", "x": 4, "y": 0 },
13 { "label": "T", "x": 5, "y": 0 },
14 { "label": "Y", "x": 6, "y": 0 },
15 { "label": "U", "x": 7, "y": 0 },
16 { "label": "I", "x": 8, "y": 0 },
17 { "label": "O", "x": 9, "y": 0 },
18 { "label": "P", "x": 10, "y": 0 },
19 { "label": "Back<br>Space", "x": 11, "y": 0 },
20 { "label": "Tab", "x": 0, "y": 1, "w": 1.25 },
21 { "label": "A", "x": 1.25, "y": 1 },
22 { "label": "S", "x": 2.25, "y": 1 },
23 { "label": "D", "x": 3.25, "y": 1 },
24 { "label": "F", "x": 4.25, "y": 1 },
25 { "label": "G", "x": 5.25, "y": 1 },
26 { "label": "H", "x": 6.25, "y": 1 },
27 { "label": "J", "x": 7.25, "y": 1 },
28 { "label": "K", "x": 8.25, "y": 1 },
29 { "label": "L", "x": 9.25, "y": 1 },
30 { "label": "Enter", "x": 10.25, "y": 1, "w": 1.75 },
31 { "label": "Shift", "x": 0, "y": 2, "w": 1.75 },
32 { "label": "Z", "x": 1.75, "y": 2 },
33 { "label": "X", "x": 2.75, "y": 2 },
34 { "label": "C", "x": 3.75, "y": 2 },
35 { "label": "V", "x": 4.75, "y": 2 },
36 { "label": "B", "x": 5.75, "y": 2 },
37 { "label": "N", "x": 6.75, "y": 2 },
38 { "label": "M", "x": 7.75, "y": 2 },
39 { "label": "<", "x": 8.75, "y": 2 },
40 { "label": "Shift", "x": 9.75, "y": 2, "w": 1.25 },
41 { "label": ">", "x": 11, "y": 2 },
42 { "label": "Ctrl", "x": 0, "y": 3 },
43 { "label": "Fn", "x": 1, "y": 3 },
44 { "label": "Alt", "x": 2, "y": 3 },
45 { "label": "Super", "x": 3, "y": 3, "w": 1.25 },
46 { "x": 4.25, "y": 3, "w": 1.75 },
47 { "x": 6, "y": 3, "w": 1.75 },
48 { "label": "Menu", "x": 7.75, "y": 3, "w": 1.25 },
49 { "label": "Alt", "x": 9, "y": 3 },
50 { "label": "Fn2", "x": 10, "y": 3 },
51 { "label": "Ctrl", "x": 11, "y": 3 }
52 ]
53 }
54 }
55}
diff --git a/keyboards/jd40/jd40.c b/keyboards/jd40/jd40.c
new file mode 100644
index 000000000..1b68ddd4f
--- /dev/null
+++ b/keyboards/jd40/jd40.c
@@ -0,0 +1 @@
#include "jd40.h"
diff --git a/keyboards/jd40/jd40.h b/keyboards/jd40/jd40.h
new file mode 100644
index 000000000..41ec860e8
--- /dev/null
+++ b/keyboards/jd40/jd40.h
@@ -0,0 +1,18 @@
1#pragma once
2
3#include "quantum.h"
4#include "led.h"
5
6#define XXX KC_NO
7
8#define LAYOUT( \
9 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
10 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, \
11 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, \
12 k30, k31, k32, k33, k34, k36, k37, k38, k39, k3A \
13) { \
14 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
15 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, XXX }, \
16 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, XXX }, \
17 { k30, k31, k32, k33, k34, XXX, k36, k37, k38, k39, k3A, XXX } \
18}
diff --git a/keyboards/jd40/keymaps/default/keymap.c b/keyboards/jd40/keymaps/default/keymap.c
new file mode 100644
index 000000000..ff31fd6f5
--- /dev/null
+++ b/keyboards/jd40/keymaps/default/keymap.c
@@ -0,0 +1,53 @@
1#include QMK_KEYBOARD_H
2
3#define _BL 0
4#define _AL 1
5#define _FL 2
6#define _UL 3
7
8const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
9 [_BL] = LAYOUT(
10 KC_F12, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
11 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
12 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_DOT,
13 KC_LCTL, KC_LGUI, KC_LALT, MO(_AL), KC_SPC, KC_SPC, MO(_AL), KC_LEFT, KC_DOWN, KC_RGHT
14 ),
15
16 [_AL] = LAYOUT(
17 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
18 KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
19 _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_PGUP, KC_QUOT,
20 _______, _______, _______, _______, TG(_UL), TG(_UL), _______, KC_HOME, KC_PGDN, KC_END
21 ),
22
23 [_FL] = LAYOUT(
24 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
25 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
26 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
27 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
28 ),
29
30 [_UL] = LAYOUT(
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
35 ),
36};
37
38void matrix_scan_user(void) {
39 // Layer LED indicators
40 // ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster
41 uint32_t layer = layer_state;
42 if (layer & (1 << 1)) {
43 //gh60_wasd_leds_on();
44 } else {
45 //gh60_wasd_leds_off();
46 }
47
48 if (layer & (1 << 2)) {
49 //gh60_esc_led_on();
50 } else {
51 //gh60_esc_led_off();
52 }
53};
diff --git a/keyboards/jd40/keymaps/myoung34/keymap.c b/keyboards/jd40/keymaps/myoung34/keymap.c
new file mode 100644
index 000000000..eb4146d15
--- /dev/null
+++ b/keyboards/jd40/keymaps/myoung34/keymap.c
@@ -0,0 +1,28 @@
1#include QMK_KEYBOARD_H
2
3#define _BL 0
4#define _AL 1
5#define _UL 2
6
7const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8 [_BL] = LAYOUT(
9 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
10 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
11 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_DOT,
12 _______, KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_SPC, MO(_AL), KC_LEFT, KC_DOWN, KC_RGHT
13 ),
14
15 [_AL] = LAYOUT(
16 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
17 KC_TAB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_ENT,
18 _______, _______, KC_SCOLON, KC_QUOTE, KC_LBRACKET, KC_RBRACKET, KC_BSLASH, KC_MINUS, KC_EQUAL, KC_PGUP, KC_SLASH,
19 _______, _______, _______, _______, MO(_UL), TG(_UL), _______, KC_HOME, KC_PGDN, KC_END
20 ),
21
22 [_UL] = LAYOUT(
23 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
24 _______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _______, _______, _______, _______, _______, _______, _______,
25 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
26 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
27 ),
28 };
diff --git a/keyboards/jd40/keymaps/vanagon/README.md b/keyboards/jd40/keymaps/vanagon/README.md
new file mode 100644
index 000000000..09a4e23a6
--- /dev/null
+++ b/keyboards/jd40/keymaps/vanagon/README.md
@@ -0,0 +1,17 @@
1Vanagon
2===
3Port of [evangs'](https://thevankeyboards.com) [MiniVan layout](https://www.massdrop.com/talk/115/where-did-all-my-keys-go-a-look-into-the-function-layers-of-the-mini-van) to the JD40. Includes colon/semicolon support, which is missing from the MiniVan layout.
4
5This layout uses a 44 key configuration similar to the following:
6
7```
8,------+------+------+------+------+------+------+------+------+------+------+------.
9| | | | | | | | | | | | |
10|------`------`------`------`------`------`------`------`------`------`------`------|
11| | | | | | | | | | | |
12|-------`------`------`------`------`------`------`------`------`------`------------|
13| | | | | | | | | | | |
14|---------`------`------`------`------`------'-------`------`------`------`---------|
15| | | | | | | | | | |
16`------+------+------+-------+----^^^-----+----^^^-----+-------+------+------+------'
17```
diff --git a/keyboards/jd40/keymaps/vanagon/config.h b/keyboards/jd40/keymaps/vanagon/config.h
new file mode 100644
index 000000000..ed09b50ee
--- /dev/null
+++ b/keyboards/jd40/keymaps/vanagon/config.h
@@ -0,0 +1,13 @@
1#include "../../config.h"
2
3#define LAYOUT_VANAGON(\
4 K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \
5 K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \
6 K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, \
7 K35, K36, K37, K38, K39, K40, K41, K42, K43, K44 \
8) { \
9 { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12 }, \
10 { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23 }, \
11 { K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34 }, \
12 { K35, K36, K37, K38, K39, KC_NO, K40, K41, K42, K43, K44 } \
13}
diff --git a/keyboards/jd40/keymaps/vanagon/keymap.c b/keyboards/jd40/keymaps/vanagon/keymap.c
new file mode 100644
index 000000000..e16a44af3
--- /dev/null
+++ b/keyboards/jd40/keymaps/vanagon/keymap.c
@@ -0,0 +1,26 @@
1#include QMK_KEYBOARD_H
2#include "action_layer.h"
3
4enum
5{
6 _BL = 0,
7 _AL1,
8 _AL2,
9};
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12 [_BL] = LAYOUT_VANAGON(
13 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
14 MO(_AL1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MO(_AL1),
15 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
16 MO(_AL2), KC_LCTL, KC_LALT, KC_LGUI, KC_ENT, KC_SPC, KC_RGUI, KC_RALT, KC_RSPC, MO(_AL2)),
17 [_AL1] = LAYOUT_VANAGON(
18 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_TRNS,
19 KC_TRNS, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_COLN, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS,
20 KC_TRNS, KC_ESC, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
21 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
22 [_AL2] = LAYOUT_VANAGON(
23 KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
24 KC_TRNS, KC_PIPE, KC_DQT, KC_UNDS, KC_PLUS, KC_SCLN, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS,
25 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_TRNS,
26 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)};
diff --git a/keyboards/jd40/keymaps/vanagon/rules.mk b/keyboards/jd40/keymaps/vanagon/rules.mk
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/jd40/keymaps/vanagon/rules.mk
diff --git a/keyboards/jd40/readme.md b/keyboards/jd40/readme.md
new file mode 100644
index 000000000..3a92b8fb8
--- /dev/null
+++ b/keyboards/jd40/readme.md
@@ -0,0 +1,14 @@
1JD40
2===
3
4A compact 40% keyboard.
5
6Keyboard Maintainer: QMK Community
7Hardware Supported: JD40 PCB
8Hardware Availability: [1upkeyboards](https://www.1upkeyboards.com/shop/controllers/jd40-mkii-1up-keyboards-logo-pcb/), [mechanicalkeyboards.com](https://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=2452), [originative](https://www.originativeco.com/products/jd40-pcb)
9
10Make example for this keyboard (after setting up your build environment):
11
12 make jd40:default
13
14See 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/jd40/rules.mk b/keyboards/jd40/rules.mk
new file mode 100644
index 000000000..59bbf0ca8
--- /dev/null
+++ b/keyboards/jd40/rules.mk
@@ -0,0 +1,17 @@
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 = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13# CONSOLE_ENABLE = yes # Console for debug
14# COMMAND_ENABLE = yes # Commands for debug and configuration
15NKRO_ENABLE = yes # Enable N-Key Rollover
16# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = yes # Enable RGB Underglow