aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErovia <Erovia@users.noreply.github.com>2019-03-14 00:26:25 +0100
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-03-13 16:26:25 -0700
commitf9c5b80aedc1ef43baeff6a197dc1c3772e69618 (patch)
treeeac3e5ae37a31dce0303b3119b8081df84cc0782
parent30db1b18e56e0d85bf3d5f7df5e050591f1c6d96 (diff)
downloadqmk_firmware-f9c5b80aedc1ef43baeff6a197dc1c3772e69618.tar.gz
qmk_firmware-f9c5b80aedc1ef43baeff6a197dc1c3772e69618.zip
Add support for THE60 (#5385)
-rw-r--r--keyboards/lazydesigners/the60/config.h38
-rw-r--r--keyboards/lazydesigners/the60/info.json79
-rw-r--r--keyboards/lazydesigners/the60/keymaps/default/keymap.c54
-rw-r--r--keyboards/lazydesigners/the60/keymaps/default/readme.md32
-rw-r--r--keyboards/lazydesigners/the60/readme.md18
-rw-r--r--keyboards/lazydesigners/the60/rules.mk51
-rw-r--r--keyboards/lazydesigners/the60/the60.c2
-rw-r--r--keyboards/lazydesigners/the60/the60.h32
8 files changed, 306 insertions, 0 deletions
diff --git a/keyboards/lazydesigners/the60/config.h b/keyboards/lazydesigners/the60/config.h
new file mode 100644
index 000000000..a767d1dc8
--- /dev/null
+++ b/keyboards/lazydesigners/the60/config.h
@@ -0,0 +1,38 @@
1#pragma once
2
3#include "config_common.h"
4
5/* USB Device descriptor parameter */
6#define VENDOR_ID 0xFEED
7#define PRODUCT_ID 0x0060
8#define DEVICE_VER 0x0001
9#define MANUFACTURER LazyDesigners
10#define PRODUCT THE60
11#define DESCRIPTION A 60% keyboard
12
13/* key matrix size */
14#define MATRIX_ROWS 5
15#define MATRIX_COLS 15
16
17/* key matrix pins */
18#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4 }
19#define MATRIX_COL_PINS { B5, D0, D1, D2, D3, D4, D5, D6, D7, C6, C7, F4, F5, F6, F7 }
20#define UNUSED_PINS
21
22/* COL2ROW or ROW2COL */
23#define DIODE_DIRECTION COL2ROW
24
25/* number of backlight levels */
26#define BACKLIGHT_PIN B6
27#ifdef BACKLIGHT_PIN
28#define BACKLIGHT_LEVELS 6
29#endif
30
31/* Set 0 if debouncing isn't needed */
32#define DEBOUNCING_DELAY 5
33
34/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
35#define LOCKING_SUPPORT_ENABLE
36
37/* Locking resynchronize hack */
38#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/lazydesigners/the60/info.json b/keyboards/lazydesigners/the60/info.json
new file mode 100644
index 000000000..4fef5a098
--- /dev/null
+++ b/keyboards/lazydesigners/the60/info.json
@@ -0,0 +1,79 @@
1{
2 "keyboard_name": "THE60",
3 "url": "http://lazydesigners.cn",
4 "maintainer": "qmk",
5 "width": 15,
6 "height": 5,
7 "layouts": {
8 "LAYOUT_split_spc_split_bspc": {
9 "key_count": 66,
10 "layout": [
11 {"label":"~", "x":0, "y":0},
12 {"label":"!", "x":1, "y":0},
13 {"label":"@", "x":2, "y":0},
14 {"label":"#", "x":3, "y":0},
15 {"label":"$", "x":4, "y":0},
16 {"label":"%", "x":5, "y":0},
17 {"label":"^", "x":6, "y":0},
18 {"label":"&", "x":7, "y":0},
19 {"label":"*", "x":8, "y":0},
20 {"label":"(", "x":9, "y":0},
21 {"label":")", "x":10, "y":0},
22 {"label":"_", "x":11, "y":0},
23 {"label":"+", "x":12, "y":0},
24 {"label":"Home", "x":13, "y":0},
25 {"label":"Del", "x":14, "y":0},
26 {"label":"Tab", "x":0, "y":1, "w":1.5},
27 {"label":"Q", "x":1.5, "y":1},
28 {"label":"W", "x":2.5, "y":1},
29 {"label":"E", "x":3.5, "y":1},
30 {"label":"R", "x":4.5, "y":1},
31 {"label":"T", "x":5.5, "y":1},
32 {"label":"Y", "x":6.5, "y":1},
33 {"label":"U", "x":7.5, "y":1},
34 {"label":"I", "x":8.5, "y":1},
35 {"label":"O", "x":9.5, "y":1},
36 {"label":"P", "x":10.5, "y":1},
37 {"label":"|", "x":11.5, "y":1, "w":1.5},
38 {"label":"}", "x":13, "y":1},
39 {"label":"{", "x":14, "y":1},
40 {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
41 {"label":"A", "x":1.75, "y":2},
42 {"label":"S", "x":2.75, "y":2},
43 {"label":"D", "x":3.75, "y":2},
44 {"label":"F", "x":4.75, "y":2},
45 {"label":"G", "x":5.75, "y":2},
46 {"label":"H", "x":6.75, "y":2},
47 {"label":"J", "x":7.75, "y":2},
48 {"label":"K", "x":8.75, "y":2},
49 {"label":"L", "x":9.75, "y":2},
50 {"label":"Enter", "x":10.75, "y":2, "w":2.25},
51 {"label":":", "x":13, "y":2},
52 {"label":"\"", "x":14, "y":2},
53 {"label":"Shift", "x":0, "y":3, "w":2.25},
54 {"label":"Z", "x":2.25, "y":3},
55 {"label":"X", "x":3.25, "y":3},
56 {"label":"C", "x":4.25, "y":3},
57 {"label":"V", "x":5.25, "y":3},
58 {"label":"B", "x":6.25, "y":3},
59 {"label":"N", "x":7.25, "y":3},
60 {"label":"M", "x":8.25, "y":3},
61 {"label":"<", "x":9.25, "y":3},
62 {"label":">", "x":10.25, "y":3},
63 {"label":"Shift", "x":11.25, "y":3, "w":1.75},
64 {"label":"Up", "x":13, "y":3},
65 {"label":"/", "x":14, "y":3},
66 {"label":"Ctrl", "x":0, "y":4, "w":1.25},
67 {"label":"Win", "x":1.25, "y":4, "w":1.25},
68 {"label":"Alt", "x":2.5, "y":4, "w":1.25},
69 {"x":3.75, "y":4, "w":2.25},
70 {"x":6, "y":4, "w":2.75},
71 {"label":"Alt", "x":8.75, "y":4, "w":1.25},
72 {"label":"Menu", "x":10, "y":4},
73 {"label":"Fn", "x":11, "y":4},
74 {"label":"Left", "x":12, "y":4},
75 {"label":"Down", "x":13, "y":4},
76 {"label":"Right", "x":14, "y":4}]
77 }
78 }
79}
diff --git a/keyboards/lazydesigners/the60/keymaps/default/keymap.c b/keyboards/lazydesigners/the60/keymaps/default/keymap.c
new file mode 100644
index 000000000..8a95b4474
--- /dev/null
+++ b/keyboards/lazydesigners/the60/keymaps/default/keymap.c
@@ -0,0 +1,54 @@
1#include QMK_KEYBOARD_H
2
3enum custom_layers {
4 _QWERTY,
5 _FN
6};
7
8const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
9
10/* Qwerty
11 * ,--------------------------------------------------------------------------.
12 * |Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Home|Del |
13 * |--------------------------------------------------------------------------|
14 * | Tab | Q | W | E | R | T | Y | U | I | O | P | BsPc | [ | ] |
15 * |--------------------------------------------------------------------------|
16 * |CapsLock | A | S | D | F | G | H | J | K | L | Enter | ; | ' |
17 * |--------------------------------------------------------------------------|
18 * | Shift | Z | X | C | V | B | N | M | , | . | Shift | Up | / |
19 * |--------------------------------------------------------------------------|
20 * | Ctrl | Gui | Alt | Space | Space | Alt |Menu| Fn |Left|Down|Rght|
21 * `--------------------------------------------------------------------------'
22 */
23
24[_QWERTY] = LAYOUT_split_spc_split_bspc(
25KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_HOME, KC_DEL,
26KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LBRC, KC_RBRC,
27KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_SCLN, KC_QUOT,
28KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
29KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_RALT, KC_APP, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
30),
31
32/* FN
33 * ,--------------------------------------------------------------------------.
34 * |RST | | | | | | | | | | | | |End |Ins |
35 * |--------------------------------------------------------------------------|
36 * | | | | | | | | | | | | |PgUp|PgDn|
37 * |--------------------------------------------------------------------------|
38 * | | |Prev|Play|Next| |VolD|Mute|VolU| | | | |
39 * |--------------------------------------------------------------------------|
40 * | | | | | | | | | | | | | |
41 * |--------------------------------------------------------------------------|
42 * |EEPRST| | | | | | | | | | |
43 * `--------------------------------------------------------------------------'
44 */
45
46[_FN] = LAYOUT_split_spc_split_bspc(
47RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_INS,
48XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN,
49XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
50XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
51EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
52)
53};
54
diff --git a/keyboards/lazydesigners/the60/keymaps/default/readme.md b/keyboards/lazydesigners/the60/keymaps/default/readme.md
new file mode 100644
index 000000000..7a5a10a34
--- /dev/null
+++ b/keyboards/lazydesigners/the60/keymaps/default/readme.md
@@ -0,0 +1,32 @@
1# Default keymap for THE60
2
3
4## QWERTY (Normal) Layer
5```
6 ,--------------------------------------------------------------------------.
7 |Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Home|Del |
8 |--------------------------------------------------------------------------|
9 | Tab | Q | W | E | R | T | Y | U | I | O | P | BsPc | [ | ] |
10 |--------------------------------------------------------------------------|
11 |CapsLock | A | S | D | F | G | H | J | K | L | Enter | ; | ' |
12 |--------------------------------------------------------------------------|
13 | Shift | Z | X | C | V | B | N | M | , | . | Shift | Up | / |
14 |--------------------------------------------------------------------------|
15 | Ctrl | Gui | Alt | Space | Space | Alt |Menu| Fn |Left|Down|Rght|
16 `--------------------------------------------------------------------------'
17```
18
19## FN layer
20```
21 ,--------------------------------------------------------------------------.
22 |RST | | | | | | | | | | | | |End |Ins |
23 |--------------------------------------------------------------------------|
24 | | | | | | | | | | | | |PgUp|PgDn|
25 |--------------------------------------------------------------------------|
26 | | |Prev|Play|Next| |VolD|Mute|VolU| | | | |
27 |--------------------------------------------------------------------------|
28 | | | | | | | | | | | | | |
29 |--------------------------------------------------------------------------|
30 |EEPRST| | | | | | | | | | |
31 `--------------------------------------------------------------------------'
32```
diff --git a/keyboards/lazydesigners/the60/readme.md b/keyboards/lazydesigners/the60/readme.md
new file mode 100644
index 000000000..bf7cc771a
--- /dev/null
+++ b/keyboards/lazydesigners/the60/readme.md
@@ -0,0 +1,18 @@
1# THE60
2
3![THE60](https://cdn.discordapp.com/attachments/536190211240099840/549506683064287243/image0.jpg)
4
5A 60% custom PCB and case designed and produced by [LazyDesigners](http://lazydesigners.cn).
6The PCB allows one to test a 40% layout in a 60% case.
7
8Keyboard Maintainer: QMK Community
9Hardware Supported: THE60 PCB
10Hardware Availability: Check for GBs on [Geekhack](https://geekhack.org) and on [LazyDesigner's homepage.](http://lazydesigners.cn)
11
12Make example for this keyboard (after setting up your build environment):
13
14 make lazydesigners/the60:default:dfu
15
16To enter the bootloader, either short the pins on the PCB, use the RESET button on the FN layer or hold the Esc key while plugging in your keyboard.
17
18See 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/lazydesigners/the60/rules.mk b/keyboards/lazydesigners/the60/rules.mk
new file mode 100644
index 000000000..76fb44b2c
--- /dev/null
+++ b/keyboards/lazydesigners/the60/rules.mk
@@ -0,0 +1,51 @@
1# MCU name
2MCU = atmega32u4
3
4# Processor frequency.
5# This will define a symbol, F_CPU, in all source code files equal to the
6# processor frequency in Hz. You can then use this symbol in your source code to
7# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
8# automatically to create a 32-bit value in your source code.
9#
10# This will be an integer division of F_USB below, as it is sourced by
11# F_USB after it has run through any CPU prescalers. Note that this value
12# does not *change* the processor frequency - it should merely be updated to
13# reflect the processor speed set externally so that the code can use accurate
14# software delays.
15F_CPU = 16000000
16
17#
18# LUFA specific
19#
20# Target architecture (see library "Board Types" documentation).
21ARCH = AVR8
22
23# Input clock frequency.
24# This will define a symbol, F_USB, in all source code files equal to the
25# input clock frequency (before any prescaling is performed) in Hz. This value may
26# differ from F_CPU if prescaling is used on the latter, and is required as the
27# raw input clock is fed directly to the PLL sections of the AVR for high speed
28# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
29# at the end, this will be done automatically to create a 32-bit value in your
30# source code.
31#
32# If no clock division is performed on the input clock inside the AVR (via the
33# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
34F_USB = $(F_CPU)
35
36# Interrupt driven control endpoint task(+60)
37OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
38
39BOOTLOADER = atmel-dfu
40
41# Build Options
42# comment out to disable the options.
43#
44BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
45MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
46EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
47CONSOLE_ENABLE = no # Console for debug(+400)
48COMMAND_ENABLE = no # Commands for debug and configuration
49SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
50NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
51BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/lazydesigners/the60/the60.c b/keyboards/lazydesigners/the60/the60.c
new file mode 100644
index 000000000..09eeb63cf
--- /dev/null
+++ b/keyboards/lazydesigners/the60/the60.c
@@ -0,0 +1,2 @@
1#include "the60.h"
2
diff --git a/keyboards/lazydesigners/the60/the60.h b/keyboards/lazydesigners/the60/the60.h
new file mode 100644
index 000000000..e3708461c
--- /dev/null
+++ b/keyboards/lazydesigners/the60/the60.h
@@ -0,0 +1,32 @@
1#pragma once
2
3#include "quantum.h"
4
5/*
6 * ,--------------------------------------------------------------------------.
7 * | | | | | | | | | | | | | | | |
8 * |--------------------------------------------------------------------------|
9 * | | | | | | | | | | | | | | |
10 * |--------------------------------------------------------------------------|
11 * | | | | | | | | | | | | | |
12 * |--------------------------------------------------------------------------|
13 * | | | | | | | | | | | | | |
14 * |--------------------------------------------------------------------------|
15 * | | | | | | | | | | | |
16 * `--------------------------------------------------------------------------'
17 */
18
19#define LAYOUT_split_spc_split_bspc( \
20 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
21 K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
22 K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
23 K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \
24 K400, K402, K403, K404, K407, K409, K410, K411, K412, K413, K414 \
25) { \
26 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
27 { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
28 { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
29 { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO }, \
30 { K400, KC_NO, K402, K403, K404, KC_NO, KC_NO, K407, KC_NO, K409, K410, K411, K412, K413, K414 } \
31}
32