diff options
| author | LEdiodes <mkerfoot@users.noreply.github.com> | 2018-01-28 14:58:42 -0600 |
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2018-01-28 15:58:42 -0500 |
| commit | b0805e38b9389ff79e4ba9b4e35ec08b18f7a728 (patch) | |
| tree | eea78e228def2e0ff43d097e7ff8f6910b9236cf | |
| parent | 2480e5d69a11fd0774d16e57384b69c1e92cbfc8 (diff) | |
| download | qmk_firmware-b0805e38b9389ff79e4ba9b4e35ec08b18f7a728.tar.gz qmk_firmware-b0805e38b9389ff79e4ba9b4e35ec08b18f7a728.zip | |
added ATOM47 (Vortex Core QMK powered PCB) & DZ60 Custom config(LEdiodes) (#2310)
* added ATOM47 (Vortex Core QMK powered PCB)
* fixed broken\unfinished comment block
* moved Layer template to default template.
* moved Layer template to default template and removed template from the keymap.c file.
* Added LEdiodes config
* created readme.md
contains an image of 60% board(LEdiodes).
* updated readme.md with images
added images of the PCB and some feature details from https://geekhack.org/index.php?topic=93447.msg2545221#msg2545221
* removed excess words.
* followed the readme template to a T.
* formatting fix : added a return.
| -rw-r--r-- | keyboards/atom47/atom47.c | 31 | ||||
| -rw-r--r-- | keyboards/atom47/atom47.h | 25 | ||||
| -rw-r--r-- | keyboards/atom47/config.h | 73 | ||||
| -rw-r--r-- | keyboards/atom47/keymaps/LEdiodes/atom47.c | 31 | ||||
| -rw-r--r-- | keyboards/atom47/keymaps/LEdiodes/atom47.h | 25 | ||||
| -rw-r--r-- | keyboards/atom47/keymaps/LEdiodes/config.h | 73 | ||||
| -rw-r--r-- | keyboards/atom47/keymaps/LEdiodes/keymap.c | 35 | ||||
| -rw-r--r-- | keyboards/atom47/keymaps/LEdiodes/rules.mk | 65 | ||||
| -rw-r--r-- | keyboards/atom47/keymaps/default/keymap.c | 39 | ||||
| -rw-r--r-- | keyboards/atom47/keymaps/default/readme.md | 10 | ||||
| -rw-r--r-- | keyboards/atom47/readme.md | 28 | ||||
| -rw-r--r-- | keyboards/atom47/rules.mk | 65 | ||||
| -rw-r--r-- | keyboards/dz60/keymaps/LEdiodes/config.h | 58 | ||||
| -rw-r--r-- | keyboards/dz60/keymaps/LEdiodes/keymap.c | 141 | ||||
| -rw-r--r-- | keyboards/dz60/keymaps/LEdiodes/readme.md | 9 | ||||
| -rw-r--r-- | keyboards/dz60/keymaps/LEdiodes/rules.mk | 57 |
16 files changed, 765 insertions, 0 deletions
diff --git a/keyboards/atom47/atom47.c b/keyboards/atom47/atom47.c new file mode 100644 index 000000000..7b839e796 --- /dev/null +++ b/keyboards/atom47/atom47.c | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | #include "atom47.h" | ||
| 2 | #include "led.h" | ||
| 3 | |||
| 4 | void matrix_init_kb(void) { | ||
| 5 | // put your keyboard start-up code here | ||
| 6 | // runs once when the firmware starts up | ||
| 7 | matrix_init_user(); | ||
| 8 | led_init_ports(); | ||
| 9 | }; | ||
| 10 | |||
| 11 | void matrix_scan_kb(void) { | ||
| 12 | // put your looping keyboard code here | ||
| 13 | // runs every cycle (a lot) | ||
| 14 | matrix_scan_user(); | ||
| 15 | }; | ||
| 16 | |||
| 17 | void led_init_ports(void) { | ||
| 18 | // * Set our LED pins as output | ||
| 19 | DDRB &= ~(1<<5); | ||
| 20 | } | ||
| 21 | |||
| 22 | void led_set_kb(uint8_t usb_led) { | ||
| 23 | if (usb_led & (1<<USB_LED_CAPS_LOCK)) { | ||
| 24 | // Turn capslock on | ||
| 25 | PORTF |= (1<<5); | ||
| 26 | } else { | ||
| 27 | // Turn capslock off | ||
| 28 | PORTF &= ~(1<<5); | ||
| 29 | } | ||
| 30 | led_set_user(usb_led); | ||
| 31 | } | ||
diff --git a/keyboards/atom47/atom47.h b/keyboards/atom47/atom47.h new file mode 100644 index 000000000..2c19a20cc --- /dev/null +++ b/keyboards/atom47/atom47.h | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | #ifndef ATOM47_H | ||
| 2 | #define ATOM47_H | ||
| 3 | |||
| 4 | #include "quantum.h" | ||
| 5 | |||
| 6 | // readability | ||
| 7 | #define XXX KC_NO | ||
| 8 | |||
| 9 | #define KEYMAP_ANSI( \ | ||
| 10 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ | ||
| 11 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \ | ||
| 12 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \ | ||
| 13 | k30, k31, k32, k33, k34, k36, k38, k39, k3a, k3c \ | ||
| 14 | ) \ | ||
| 15 | { \ | ||
| 16 | {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c}, \ | ||
| 17 | {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, XXX, k1c}, \ | ||
| 18 | {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, XXX, k2c}, \ | ||
| 19 | {k30, k31, k32, k33, k34, XXX, k36, XXX, k38, k39, k3a, XXX, k3c} \ | ||
| 20 | } | ||
| 21 | |||
| 22 | void matrix_init_user(void); | ||
| 23 | void matrix_scan_user(void); | ||
| 24 | |||
| 25 | #endif | ||
diff --git a/keyboards/atom47/config.h b/keyboards/atom47/config.h new file mode 100644 index 000000000..410650f71 --- /dev/null +++ b/keyboards/atom47/config.h | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2012 Maarten Dekkers <atomkeeb@gmail.com | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #ifndef CONFIG_H | ||
| 19 | #define CONFIG_H | ||
| 20 | |||
| 21 | #include "config_common.h" | ||
| 22 | |||
| 23 | /* USB Device descriptor parameter */ | ||
| 24 | #define VENDOR_ID 0xFEED | ||
| 25 | #define PRODUCT_ID 0x6060 | ||
| 26 | #define DEVICE_VER 0x0003 | ||
| 27 | #define MANUFACTURER Vortex | ||
| 28 | #define PRODUCT Core | ||
| 29 | #define DESCRIPTION Atom47 PCB for the Vortex Core | ||
| 30 | |||
| 31 | /* key matrix size */ | ||
| 32 | #define MATRIX_ROWS 4 | ||
| 33 | #define MATRIX_COLS 13 | ||
| 34 | |||
| 35 | // ROWS: Top to bottom, COLS: Left to right | ||
| 36 | |||
| 37 | #define MATRIX_ROW_PINS {B1,B2,B3,B7} | ||
| 38 | #define MATRIX_COL_PINS {D7,D5,F0,F1,F4,F6,F7,D4,C7,C6,D6,B5,B4} | ||
| 39 | #define UNUSED_PINS | ||
| 40 | |||
| 41 | #define BACKLIGHT_PIN B6 | ||
| 42 | |||
| 43 | /* COL2ROW or ROW2COL */ | ||
| 44 | #define DIODE_DIRECTION COL2ROW | ||
| 45 | |||
| 46 | /* define if matrix has ghost */ | ||
| 47 | //#define MATRIX_HAS_GHOST | ||
| 48 | |||
| 49 | /* Set 0 if debouncing isn't needed */ | ||
| 50 | #define DEBOUNCING_DELAY 5 | ||
| 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 | ||
| 56 | |||
| 57 | /* key combination for command */ | ||
| 58 | #define IS_COMMAND() ( \ | ||
| 59 | keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||
| 60 | ) | ||
| 61 | |||
| 62 | /* Backlight configuration | ||
| 63 | */ | ||
| 64 | #define BACKLIGHT_LEVELS 4 | ||
| 65 | |||
| 66 | #endif | ||
| 67 | |||
| 68 | #define RGB_DI_PIN D0 // The pin the LED strip is connected to | ||
| 69 | #define RGBLED_NUM 1 // Number of LEDs in your strip | ||
| 70 | |||
| 71 | #define QMK_ESC_OUTPUT D7 // usually COL | ||
| 72 | #define QMK_ESC_INPUT B1 // usually ROW | ||
| 73 | #define QMK_LED B6 \ No newline at end of file | ||
diff --git a/keyboards/atom47/keymaps/LEdiodes/atom47.c b/keyboards/atom47/keymaps/LEdiodes/atom47.c new file mode 100644 index 000000000..7b839e796 --- /dev/null +++ b/keyboards/atom47/keymaps/LEdiodes/atom47.c | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | #include "atom47.h" | ||
| 2 | #include "led.h" | ||
| 3 | |||
| 4 | void matrix_init_kb(void) { | ||
| 5 | // put your keyboard start-up code here | ||
| 6 | // runs once when the firmware starts up | ||
| 7 | matrix_init_user(); | ||
| 8 | led_init_ports(); | ||
| 9 | }; | ||
| 10 | |||
| 11 | void matrix_scan_kb(void) { | ||
| 12 | // put your looping keyboard code here | ||
| 13 | // runs every cycle (a lot) | ||
| 14 | matrix_scan_user(); | ||
| 15 | }; | ||
| 16 | |||
| 17 | void led_init_ports(void) { | ||
| 18 | // * Set our LED pins as output | ||
| 19 | DDRB &= ~(1<<5); | ||
| 20 | } | ||
| 21 | |||
| 22 | void led_set_kb(uint8_t usb_led) { | ||
| 23 | if (usb_led & (1<<USB_LED_CAPS_LOCK)) { | ||
| 24 | // Turn capslock on | ||
| 25 | PORTF |= (1<<5); | ||
| 26 | } else { | ||
| 27 | // Turn capslock off | ||
| 28 | PORTF &= ~(1<<5); | ||
| 29 | } | ||
| 30 | led_set_user(usb_led); | ||
| 31 | } | ||
diff --git a/keyboards/atom47/keymaps/LEdiodes/atom47.h b/keyboards/atom47/keymaps/LEdiodes/atom47.h new file mode 100644 index 000000000..2c19a20cc --- /dev/null +++ b/keyboards/atom47/keymaps/LEdiodes/atom47.h | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | #ifndef ATOM47_H | ||
| 2 | #define ATOM47_H | ||
| 3 | |||
| 4 | #include "quantum.h" | ||
| 5 | |||
| 6 | // readability | ||
| 7 | #define XXX KC_NO | ||
| 8 | |||
| 9 | #define KEYMAP_ANSI( \ | ||
| 10 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ | ||
| 11 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \ | ||
| 12 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \ | ||
| 13 | k30, k31, k32, k33, k34, k36, k38, k39, k3a, k3c \ | ||
| 14 | ) \ | ||
| 15 | { \ | ||
| 16 | {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c}, \ | ||
| 17 | {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, XXX, k1c}, \ | ||
| 18 | {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, XXX, k2c}, \ | ||
| 19 | {k30, k31, k32, k33, k34, XXX, k36, XXX, k38, k39, k3a, XXX, k3c} \ | ||
| 20 | } | ||
| 21 | |||
| 22 | void matrix_init_user(void); | ||
| 23 | void matrix_scan_user(void); | ||
| 24 | |||
| 25 | #endif | ||
diff --git a/keyboards/atom47/keymaps/LEdiodes/config.h b/keyboards/atom47/keymaps/LEdiodes/config.h new file mode 100644 index 000000000..410650f71 --- /dev/null +++ b/keyboards/atom47/keymaps/LEdiodes/config.h | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2012 Maarten Dekkers <atomkeeb@gmail.com | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #ifndef CONFIG_H | ||
| 19 | #define CONFIG_H | ||
| 20 | |||
| 21 | #include "config_common.h" | ||
| 22 | |||
| 23 | /* USB Device descriptor parameter */ | ||
| 24 | #define VENDOR_ID 0xFEED | ||
| 25 | #define PRODUCT_ID 0x6060 | ||
| 26 | #define DEVICE_VER 0x0003 | ||
| 27 | #define MANUFACTURER Vortex | ||
| 28 | #define PRODUCT Core | ||
| 29 | #define DESCRIPTION Atom47 PCB for the Vortex Core | ||
| 30 | |||
| 31 | /* key matrix size */ | ||
| 32 | #define MATRIX_ROWS 4 | ||
| 33 | #define MATRIX_COLS 13 | ||
| 34 | |||
| 35 | // ROWS: Top to bottom, COLS: Left to right | ||
| 36 | |||
| 37 | #define MATRIX_ROW_PINS {B1,B2,B3,B7} | ||
| 38 | #define MATRIX_COL_PINS {D7,D5,F0,F1,F4,F6,F7,D4,C7,C6,D6,B5,B4} | ||
| 39 | #define UNUSED_PINS | ||
| 40 | |||
| 41 | #define BACKLIGHT_PIN B6 | ||
| 42 | |||
| 43 | /* COL2ROW or ROW2COL */ | ||
| 44 | #define DIODE_DIRECTION COL2ROW | ||
| 45 | |||
| 46 | /* define if matrix has ghost */ | ||
| 47 | //#define MATRIX_HAS_GHOST | ||
| 48 | |||
| 49 | /* Set 0 if debouncing isn't needed */ | ||
| 50 | #define DEBOUNCING_DELAY 5 | ||
| 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 | ||
| 56 | |||
| 57 | /* key combination for command */ | ||
| 58 | #define IS_COMMAND() ( \ | ||
| 59 | keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||
| 60 | ) | ||
| 61 | |||
| 62 | /* Backlight configuration | ||
| 63 | */ | ||
| 64 | #define BACKLIGHT_LEVELS 4 | ||
| 65 | |||
| 66 | #endif | ||
| 67 | |||
| 68 | #define RGB_DI_PIN D0 // The pin the LED strip is connected to | ||
| 69 | #define RGBLED_NUM 1 // Number of LEDs in your strip | ||
| 70 | |||
| 71 | #define QMK_ESC_OUTPUT D7 // usually COL | ||
| 72 | #define QMK_ESC_INPUT B1 // usually ROW | ||
| 73 | #define QMK_LED B6 \ No newline at end of file | ||
diff --git a/keyboards/atom47/keymaps/LEdiodes/keymap.c b/keyboards/atom47/keymaps/LEdiodes/keymap.c new file mode 100644 index 000000000..3ea8609b6 --- /dev/null +++ b/keyboards/atom47/keymaps/LEdiodes/keymap.c | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | // These are all aliases for the function layers. | ||
| 4 | #define _L0 0 | ||
| 5 | #define _L1 1 | ||
| 6 | #define _L2 2 | ||
| 7 | #define _L3 3 | ||
| 8 | |||
| 9 | #define _______ KC_TRNS | ||
| 10 | |||
| 11 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 12 | [_L0] = KEYMAP_ANSI( | ||
| 13 | 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, \ | ||
| 14 | KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ | ||
| 15 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_L1), \ | ||
| 16 | KC_LCTL, KC_LGUI, KC_LALT, TG(_L3), KC_SPC, KC_SPC, MO(_L2), KC_RALT, KC_APP, KC_RCTRL), \ | ||
| 17 | |||
| 18 | [_L2] = KEYMAP_ANSI( | ||
| 19 | _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \ | ||
| 20 | KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \ | ||
| 21 | _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \ | ||
| 22 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ | ||
| 23 | |||
| 24 | [_L1] = KEYMAP_ANSI( | ||
| 25 | KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ | ||
| 26 | KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ | ||
| 27 | _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \ | ||
| 28 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ | ||
| 29 | |||
| 30 | [_L3] = KEYMAP_ANSI( | ||
| 31 | _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, \ | ||
| 32 | _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______, \ | ||
| 33 | _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______, \ | ||
| 34 | _______, _______, _______, _______, KC_0, KC_DOT, _______, _______, _______, RESET), \ | ||
| 35 | }; | ||
diff --git a/keyboards/atom47/keymaps/LEdiodes/rules.mk b/keyboards/atom47/keymaps/LEdiodes/rules.mk new file mode 100644 index 000000000..d446d3a69 --- /dev/null +++ b/keyboards/atom47/keymaps/LEdiodes/rules.mk | |||
| @@ -0,0 +1,65 @@ | |||
| 1 | # MCU name | ||
| 2 | #MCU = at90usb1287 | ||
| 3 | MCU = atmega32u4 | ||
| 4 | |||
| 5 | # Processor frequency. | ||
| 6 | # This will define a symbol, F_CPU, in all source code files equal to the | ||
| 7 | # processor frequency in Hz. You can then use this symbol in your source code to | ||
| 8 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done | ||
| 9 | # automatically to create a 32-bit value in your source code. | ||
| 10 | # | ||
| 11 | # This will be an integer division of F_USB below, as it is sourced by | ||
| 12 | # F_USB after it has run through any CPU prescalers. Note that this value | ||
| 13 | # does not *change* the processor frequency - it should merely be updated to | ||
| 14 | # reflect the processor speed set externally so that the code can use accurate | ||
| 15 | # software delays. | ||
| 16 | F_CPU = 16000000 | ||
| 17 | |||
| 18 | |||
| 19 | # | ||
| 20 | # LUFA specific | ||
| 21 | # | ||
| 22 | # Target architecture (see library "Board Types" documentation). | ||
| 23 | ARCH = AVR8 | ||
| 24 | |||
| 25 | # Input clock frequency. | ||
| 26 | # This will define a symbol, F_USB, in all source code files equal to the | ||
| 27 | # input clock frequency (before any prescaling is performed) in Hz. This value may | ||
| 28 | # differ from F_CPU if prescaling is used on the latter, and is required as the | ||
| 29 | # raw input clock is fed directly to the PLL sections of the AVR for high speed | ||
| 30 | # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' | ||
| 31 | # at the end, this will be done automatically to create a 32-bit value in your | ||
| 32 | # source code. | ||
| 33 | # | ||
| 34 | # If no clock division is performed on the input clock inside the AVR (via the | ||
| 35 | # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. | ||
| 36 | F_USB = $(F_CPU) | ||
| 37 | |||
| 38 | # Interrupt driven control endpoint task(+60) | ||
| 39 | OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||
| 40 | |||
| 41 | |||
| 42 | # Boot Section Size in *bytes* | ||
| 43 | # Teensy halfKay 512 | ||
| 44 | # Teensy++ halfKay 1024 | ||
| 45 | # Atmel DFU loader 4096 | ||
| 46 | # LUFA bootloader 4096 | ||
| 47 | # USBaspLoader 2048 | ||
| 48 | OPT_DEFS += -DBOOTLOADER_SIZE=4096 | ||
| 49 | |||
| 50 | |||
| 51 | # Build Options | ||
| 52 | # comment out to disable the options. | ||
| 53 | # | ||
| 54 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | ||
| 55 | MOUSEKEY_ENABLE = no # Mouse keys(+4700) | ||
| 56 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
| 57 | CONSOLE_ENABLE = no # Console for debug(+400) | ||
| 58 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 59 | NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 60 | RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870) | ||
| 61 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) | ||
| 62 | MIDI_ENABLE = no # MIDI controls | ||
| 63 | AUDIO_ENABLE = no | ||
| 64 | UNICODE_ENABLE = no # Unicode | ||
| 65 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
diff --git a/keyboards/atom47/keymaps/default/keymap.c b/keyboards/atom47/keymaps/default/keymap.c new file mode 100644 index 000000000..cd8e622f2 --- /dev/null +++ b/keyboards/atom47/keymaps/default/keymap.c | |||
| @@ -0,0 +1,39 @@ | |||
| 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 | |||
| 8 | #define _MA 0 //Main layer | ||
| 9 | #define _FN 1 //Fn | ||
| 10 | #define _FN1 2 //Fn1 | ||
| 11 | #define _PN 3 //Pn | ||
| 12 | |||
| 13 | #define _______ KC_TRNS | ||
| 14 | |||
| 15 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 16 | [_MA] = KEYMAP_ANSI( | ||
| 17 | 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, \ | ||
| 18 | KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \ | ||
| 19 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_FN1), \ | ||
| 20 | KC_LCTL, KC_LGUI, KC_LALT, MO(_PN), KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_APP, KC_RCTRL), \ | ||
| 21 | |||
| 22 | [_FN] = KEYMAP_ANSI( | ||
| 23 | _______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \ | ||
| 24 | KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \ | ||
| 25 | _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \ | ||
| 26 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ | ||
| 27 | |||
| 28 | [_FN1] = KEYMAP_ANSI( | ||
| 29 | KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ | ||
| 30 | KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ | ||
| 31 | _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \ | ||
| 32 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \ | ||
| 33 | |||
| 34 | [_PN] = KEYMAP_ANSI( | ||
| 35 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ | ||
| 36 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ | ||
| 37 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ | ||
| 38 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), | ||
| 39 | }; \ No newline at end of file | ||
diff --git a/keyboards/atom47/keymaps/default/readme.md b/keyboards/atom47/keymaps/default/readme.md new file mode 100644 index 000000000..02422eb97 --- /dev/null +++ b/keyboards/atom47/keymaps/default/readme.md | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | To be updated... | ||
| 2 | |||
| 3 | |||
| 4 | // This layer is just a blank template to be copied for easy layer creation. please don not edit it. | ||
| 5 | |||
| 6 | [_LX] = KEYMAP_ANSI( | ||
| 7 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ | ||
| 8 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ | ||
| 9 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ | ||
| 10 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), | ||
diff --git a/keyboards/atom47/readme.md b/keyboards/atom47/readme.md new file mode 100644 index 000000000..fec7843ae --- /dev/null +++ b/keyboards/atom47/readme.md | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | # ATOM47 | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | ## Support | ||
| 6 | Keyboard Maintainer: [Matthew Kerfoot(https://github.com/mkerfoot) | ||
| 7 | Hardware Supported: ATOM47 | ||
| 8 | Hardware Availability: [GeekHack.com Group Buy](https://geekhack.org/index.php?topic=93447.msg2545221) | ||
| 9 | |||
| 10 | |||
| 11 | ## Features | ||
| 12 | QMK Firmware | ||
| 13 | 6 Underglow RGB leds | ||
| 14 | In-switch leds | ||
| 15 | Through-hole micro usb connector (less likely to break off!) | ||
| 16 | South facing leds for the QMX/Zealencio users | ||
| 17 | Multiple layouts | ||
| 18 | Easily reachable reset button under the spacebar | ||
| 19 | CapsLock indicator | ||
| 20 | |||
| 21 | ## Build | ||
| 22 | To build the default keymap, simply run `make atom47:default`. | ||
| 23 | |||
| 24 | For an alternative, heavily modified layout you would just need to run `make atom47:LEdiodes`. | ||
| 25 | |||
| 26 | See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. | ||
| 27 | |||
| 28 |  | ||
diff --git a/keyboards/atom47/rules.mk b/keyboards/atom47/rules.mk new file mode 100644 index 000000000..d446d3a69 --- /dev/null +++ b/keyboards/atom47/rules.mk | |||
| @@ -0,0 +1,65 @@ | |||
| 1 | # MCU name | ||
| 2 | #MCU = at90usb1287 | ||
| 3 | MCU = atmega32u4 | ||
| 4 | |||
| 5 | # Processor frequency. | ||
| 6 | # This will define a symbol, F_CPU, in all source code files equal to the | ||
| 7 | # processor frequency in Hz. You can then use this symbol in your source code to | ||
| 8 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done | ||
| 9 | # automatically to create a 32-bit value in your source code. | ||
| 10 | # | ||
| 11 | # This will be an integer division of F_USB below, as it is sourced by | ||
| 12 | # F_USB after it has run through any CPU prescalers. Note that this value | ||
| 13 | # does not *change* the processor frequency - it should merely be updated to | ||
| 14 | # reflect the processor speed set externally so that the code can use accurate | ||
| 15 | # software delays. | ||
| 16 | F_CPU = 16000000 | ||
| 17 | |||
| 18 | |||
| 19 | # | ||
| 20 | # LUFA specific | ||
| 21 | # | ||
| 22 | # Target architecture (see library "Board Types" documentation). | ||
| 23 | ARCH = AVR8 | ||
| 24 | |||
| 25 | # Input clock frequency. | ||
| 26 | # This will define a symbol, F_USB, in all source code files equal to the | ||
| 27 | # input clock frequency (before any prescaling is performed) in Hz. This value may | ||
| 28 | # differ from F_CPU if prescaling is used on the latter, and is required as the | ||
| 29 | # raw input clock is fed directly to the PLL sections of the AVR for high speed | ||
| 30 | # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' | ||
| 31 | # at the end, this will be done automatically to create a 32-bit value in your | ||
| 32 | # source code. | ||
| 33 | # | ||
| 34 | # If no clock division is performed on the input clock inside the AVR (via the | ||
| 35 | # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. | ||
| 36 | F_USB = $(F_CPU) | ||
| 37 | |||
| 38 | # Interrupt driven control endpoint task(+60) | ||
| 39 | OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||
| 40 | |||
| 41 | |||
| 42 | # Boot Section Size in *bytes* | ||
| 43 | # Teensy halfKay 512 | ||
| 44 | # Teensy++ halfKay 1024 | ||
| 45 | # Atmel DFU loader 4096 | ||
| 46 | # LUFA bootloader 4096 | ||
| 47 | # USBaspLoader 2048 | ||
| 48 | OPT_DEFS += -DBOOTLOADER_SIZE=4096 | ||
| 49 | |||
| 50 | |||
| 51 | # Build Options | ||
| 52 | # comment out to disable the options. | ||
| 53 | # | ||
| 54 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | ||
| 55 | MOUSEKEY_ENABLE = no # Mouse keys(+4700) | ||
| 56 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
| 57 | CONSOLE_ENABLE = no # Console for debug(+400) | ||
| 58 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 59 | NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 60 | RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870) | ||
| 61 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) | ||
| 62 | MIDI_ENABLE = no # MIDI controls | ||
| 63 | AUDIO_ENABLE = no | ||
| 64 | UNICODE_ENABLE = no # Unicode | ||
| 65 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
diff --git a/keyboards/dz60/keymaps/LEdiodes/config.h b/keyboards/dz60/keymaps/LEdiodes/config.h new file mode 100644 index 000000000..bb78d9bb6 --- /dev/null +++ b/keyboards/dz60/keymaps/LEdiodes/config.h | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | #ifndef CONFIG_H | ||
| 2 | #define CONFIG_H | ||
| 3 | |||
| 4 | #include "config.h" | ||
| 5 | |||
| 6 | /* USB Device descriptor parameter */ | ||
| 7 | #define VENDOR_ID 0xFEED | ||
| 8 | #define PRODUCT_ID 0x2260 | ||
| 9 | #define DEVICE_VER 0x0001 | ||
| 10 | #define MANUFACTURER KBDFans | ||
| 11 | #define PRODUCT DZ60 | ||
| 12 | #define DESCRIPTION DZ60 Keyboard | ||
| 13 | |||
| 14 | /* key matrix size */ | ||
| 15 | #define MATRIX_ROWS 5 | ||
| 16 | #define MATRIX_COLS 15 | ||
| 17 | |||
| 18 | /* key matrix pins */ | ||
| 19 | #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } | ||
| 20 | #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 } | ||
| 21 | #define UNUSED_PINS | ||
| 22 | |||
| 23 | /* COL2ROW or ROW2COL */ | ||
| 24 | #define DIODE_DIRECTION COL2ROW | ||
| 25 | |||
| 26 | /* number of backlight levels */ | ||
| 27 | #define BACKLIGHT_PIN B6 | ||
| 28 | #define BACKLIGHT_LEVELS 5 | ||
| 29 | |||
| 30 | /* Set 0 if debouncing isn't needed */ | ||
| 31 | #define DEBOUNCING_DELAY 5 | ||
| 32 | |||
| 33 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 34 | #define LOCKING_SUPPORT_ENABLE | ||
| 35 | |||
| 36 | /* Locking resynchronize hack */ | ||
| 37 | #define LOCKING_RESYNC_ENABLE | ||
| 38 | |||
| 39 | /* key combination for command */ | ||
| 40 | #define IS_COMMAND() ( \ | ||
| 41 | keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||
| 42 | ) | ||
| 43 | |||
| 44 | /* prevent stuck modifiers */ | ||
| 45 | #define PREVENT_STUCK_MODIFIERS | ||
| 46 | |||
| 47 | #define RGB_DI_PIN E2 | ||
| 48 | #define RGBLIGHT_ANIMATIONS | ||
| 49 | #define RGBLED_NUM 16 | ||
| 50 | #define RGBLIGHT_HUE_STEP 8 | ||
| 51 | #define RGBLIGHT_SAT_STEP 8 | ||
| 52 | #define RGBLIGHT_VAL_STEP 8 | ||
| 53 | |||
| 54 | /* sets 'Auto Shift' timeouts */ | ||
| 55 | #define AUTO_SHIFT_TIMEOUT 150 | ||
| 56 | #define NO_AUTO_SHIFT_SPECIAL | ||
| 57 | |||
| 58 | #endif | ||
diff --git a/keyboards/dz60/keymaps/LEdiodes/keymap.c b/keyboards/dz60/keymaps/LEdiodes/keymap.c new file mode 100644 index 000000000..46bdb5fed --- /dev/null +++ b/keyboards/dz60/keymaps/LEdiodes/keymap.c | |||
| @@ -0,0 +1,141 @@ | |||
| 1 | #include "xd60.h" | ||
| 2 | #include "action_layer.h" | ||
| 3 | |||
| 4 | #Define _L0 0 | ||
| 5 | #Define _L1 1 | ||
| 6 | #Define _L2 2 | ||
| 7 | #Define _L3 3 | ||
| 8 | #Define _L4 4 | ||
| 9 | |||
| 10 | #define _______ KC_TRNS | ||
| 11 | |||
| 12 | /* | ||
| 13 | * template | ||
| 14 | * [_L1] = KEYMAP( | ||
| 15 | * _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ | ||
| 16 | * _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ | ||
| 17 | * _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ | ||
| 18 | * _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ | ||
| 19 | * _______,_______,_______, _______,_______,_______, _______,_______,_______,_______,_______, | ||
| 20 | * | ||
| 21 | * | ||
| 22 | *\ | ||
| 23 | |||
| 24 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 25 | /* Keymap _L0: (Layer 0 - Base Layer) This is the default layer | ||
| 26 | * This layer has a key set to MO(_L1) which means when held down Layer 1 will become active, If Layer 1 does not have anything set for tat key is will revert to uing the key set at layer 0. | ||
| 27 | * LT(_L1, KC_1) means that when the "1" key is long touched then it will activate the layer _L1 key(F1) but if the key is just tapped it will activate the "1" key. | ||
| 28 | * KC_GESC = Escape when tapped, ` when pressed with Shift or GUI | ||
| 29 | * KC_LSPO = Left Shift when held, ( when tapped | ||
| 30 | * TD(LT(_L3,KC_SPACE)) = This is a test... hoping it will tap dance if double tapped it does enter if single tap it does space if long hold down it does _L3(Layer 3). | ||
| 31 | * LT(_L3,KC_SPACE) = if tapped it does space, is long touch it does _L3(Layer 3) | ||
| 32 | * BL_TOGG = Toggles the LEDs. | ||
| 33 | * ,-----------------------------------------------------------------------------------------. | ||
| 34 | * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bkspc| Del | | ||
| 35 | * |-----------------------------------------------------------------------------------------+ | ||
| 36 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | | ||
| 37 | * |-----------------------------------------------------------------------------------------+ | ||
| 38 | * | _L4 | A | S | D | F | G | H | J | K | L | ; | ' | Enter | | ||
| 39 | * |-----------------------------------------------------------------------------------------+ | ||
| 40 | * | Shift | Z | X | C | V | B | N | M | , | . | / | RSh | U | _L1 | | ||
| 41 | * |-----------------------------------------------------------------------------------------+ | ||
| 42 | * | Ctrl | Win | Alt | _L3[Space] |LEdiodes| Space |Win | _L2| L | D | R | | ||
| 43 | * `-----------------------------------------------------------------------------------------' | ||
| 44 | */ | ||
| 45 | [_L0] = KEYMAP( | ||
| 46 | KC_GESC, LT(_L1, KC_1),LT(_L1, KC_2),LT(_L1, KC_3),LT(_L1, KC_4),LT(_L1, KC_5),LT(_L1, KC_6),LT(_L1, KC_7),LT(_L1, KC_8),LT(_L1, KC_9),LT(_L1, KC_0),LT(_L1, KC_MINS),LT(_L1, KC_EQL),KC_BSPC, KC_DEL, \ | ||
| 47 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ | ||
| 48 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ | ||
| 49 | KC_LSPO, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPO, KC_UP, M0(_L1), \ | ||
| 50 | KC_LCTL, KC_LGUI, KC_LALT, TD(LT(_L3,KC_SPACE)),BL_TOGG,TD(TD_SPC_ENT), KC_RGUI, M0(_L2), KC_LEFT, KC_DOWN, KC_RIGHT), | ||
| 51 | |||
| 52 | /* Keymap _L1: (Layer 1) This is function layer 1 | ||
| 53 | * This layer is activated while the Fn key is being held down. | ||
| 54 | * ,-----------------------------------------------------------------------------------------. | ||
| 55 | * | Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | F13| F14| | ||
| 56 | * |-----------------------------------------------------------------------------------------+ | ||
| 57 | * | | WhUp| U | WhDn | | | | | | PrtScr | | | | | | ||
| 58 | * |-----------------------------------------------------------------------------------------+ | ||
| 59 | * | | L | D | R | | | Home | | | | | | | | ||
| 60 | * |-----------------------------------------------------------------------------------------+ | ||
| 61 | * | | | | | | | End | VolDn|VolUp|Mute | | | PgUp| | | ||
| 62 | * |-----------------------------------------------------------------------------------------+ | ||
| 63 | * | | | | | | | | | Home| PgDn| End | | ||
| 64 | * `-----------------------------------------------------------------------------------------' | ||
| 65 | */ | ||
| 66 | [_L1] = KEYMAP( | ||
| 67 | RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \ | ||
| 68 | _______, KC_WH_U, KC_UP, KC_WH_D, _______, _______,_______, _______, _______, _______, KC_PSCR, _______, _______, _______, \ | ||
| 69 | _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_HOME, _______, _______, _______, KC_HOME, _______, _______, _______, \ | ||
| 70 | _______, _______, _______, KC_APP, BL_STEP,_______, KC_END, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, KC_PGUP, _______, \ | ||
| 71 | _______, _______, _______, _______,_______,_______, _______, _______, KC_HOME, KC_PGDOWN, KC_END), | ||
| 72 | |||
| 73 | /* Keymap _L2: (Layer 2) This is function layer 2 | ||
| 74 | * This layer is activated while the Fn2 key is being held down. | ||
| 75 | * LCA(KC_TAB) = Hold Left Control and Alt and press kc_tab which cycles trough open apps. | ||
| 76 | * MEH(KC_TAB) = Hold Left Control, Shift and Alt and press kc_TAB to cycle backwards through apps. | ||
| 77 | * ,-----------------------------------------------------------------------------------------. | ||
| 78 | * | | | | | | | | | | | | | | | LCA(KC_TAB)| | ||
| 79 | * |-----------------------------------------------------------------------------------------+ | ||
| 80 | * | | | | | | | | | | | | | | |MEH(KC_TAB) | ||
| 81 | * |-----------------------------------------------------------------------------------------+ | ||
| 82 | * | | | | | | | | | | | | | | | ||
| 83 | * |-----------------------------------------------------------------------------------------+ | ||
| 84 | * | | | | | | | | || | | | | | | ||
| 85 | * |-----------------------------------------------------------------------------------------+ | ||
| 86 | * | | | | | | | | | | | | | ||
| 87 | * `-----------------------------------------------------------------------------------------' | ||
| 88 | */ | ||
| 89 | [_L2] = KEYMAP( | ||
| 90 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,LCA(KC_TAB), \ | ||
| 91 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MEH(KC_TAB), \ | ||
| 92 | _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ | ||
| 93 | _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MS_BTN1,KC_MS_UP,KC_MS_BTN2, \ | ||
| 94 | _______,_______,_______, _______,_______,_______, _______,_______,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT, | ||
| 95 | |||
| 96 | }; | ||
| 97 | |||
| 98 | // Custom Actions | ||
| 99 | const uint16_t PROGMEM fn_actions[] = { | ||
| 100 | [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay | ||
| 101 | }; | ||
| 102 | |||
| 103 | // Macros | ||
| 104 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
| 105 | |||
| 106 | // MACRODOWN only works in this function | ||
| 107 | switch(id) { | ||
| 108 | case 0: | ||
| 109 | if (record->event.pressed) { register_code(KC_RSFT); } | ||
| 110 | else { unregister_code(KC_RSFT); } | ||
| 111 | break; | ||
| 112 | } | ||
| 113 | |||
| 114 | return MACRO_NONE; | ||
| 115 | }; | ||
| 116 | |||
| 117 | // Loop | ||
| 118 | void matrix_scan_user(void) { | ||
| 119 | // Empty | ||
| 120 | }; | ||
| 121 | |||
| 122 | //Tap Dance Declarations | ||
| 123 | enum { | ||
| 124 | TD_SPC_ENT = 0, | ||
| 125 | TD_KC_LSFT_CAPS = 0, | ||
| 126 | TD_KC_RSFT_CAPS = 0 | ||
| 127 | }; | ||
| 128 | |||
| 129 | //Tap Dance Definitions | ||
| 130 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 131 | |||
| 132 | //Tap once for space, tap twice for enter | ||
| 133 | [TD_SPC_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT), | ||
| 134 | //Tap once for Left Shift, twice for Caps Lock | ||
| 135 | [TD_KC_LSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), | ||
| 136 | //Tap once for Right Shift, twice for Caps Lock | ||
| 137 | [TD_KC_RSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_RSFT, KC_CAPS) | ||
| 138 | |||
| 139 | // Other declarations would go here, separated by commas, if you have them | ||
| 140 | |||
| 141 | }; | ||
diff --git a/keyboards/dz60/keymaps/LEdiodes/readme.md b/keyboards/dz60/keymaps/LEdiodes/readme.md new file mode 100644 index 000000000..db83b2494 --- /dev/null +++ b/keyboards/dz60/keymaps/LEdiodes/readme.md | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | # LEdiodes Keymap for XD60 60% PCB | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | ## Additional Notes | ||
| 6 | Layer 0(default) Keymap for LEdiodes XD60. | ||
| 7 | |||
| 8 | ## Build | ||
| 9 | To build the default keymap, simply run `make xd60:LEdiodes`. | ||
diff --git a/keyboards/dz60/keymaps/LEdiodes/rules.mk b/keyboards/dz60/keymaps/LEdiodes/rules.mk new file mode 100644 index 000000000..f54d9500f --- /dev/null +++ b/keyboards/dz60/keymaps/LEdiodes/rules.mk | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = 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. | ||
| 15 | F_CPU = 16000000 | ||
| 16 | |||
| 17 | # | ||
| 18 | # LUFA specific | ||
| 19 | # | ||
| 20 | # Target architecture (see library "Board Types" documentation). | ||
| 21 | ARCH = 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. | ||
| 34 | F_USB = $(F_CPU) | ||
| 35 | |||
| 36 | # Interrupt driven control endpoint task(+60) | ||
| 37 | OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||
| 38 | |||
| 39 | |||
| 40 | # Boot Section Size in *bytes* | ||
| 41 | OPT_DEFS += -DBOOTLOADER_SIZE=4096 | ||
| 42 | |||
| 43 | |||
| 44 | # Build Options | ||
| 45 | # comment out to disable the options. | ||
| 46 | # | ||
| 47 | BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) | ||
| 48 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | ||
| 49 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
| 50 | CONSOLE_ENABLE = no # Console for debug(+400) | ||
| 51 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 52 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 53 | NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 54 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | ||
| 55 | AUDIO_ENABLE = no | ||
| 56 | RGBLIGHT_ENABLE = yes | ||
| 57 | AUTO_SHIFT_ENABLE = yes # If the time depressed is greater than or equal to the AUTO_SHIFT_TIMEOUT, then a shifted version of the key is emitted. If the time is less than the AUTO_SHIFT_TIMEOUT time, then the normal state is emitted \ No newline at end of file | ||
