diff options
| author | Jack Humbert <jack.humb@gmail.com> | 2017-02-20 11:10:20 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-02-20 11:10:20 -0500 |
| commit | 7ff41df32c29bca4e3a6efc3047b8fa93bb99b92 (patch) | |
| tree | 1f821ff584098a861ded7c72240ca8e0c8689bf8 | |
| parent | 49e72632d2200fc3bf71d5ced2aa43058da3b2e0 (diff) | |
| parent | 76b1f392abb2a0cf4a7fa14a01818998f4de4d39 (diff) | |
| download | qmk_firmware-7ff41df32c29bca4e3a6efc3047b8fa93bb99b92.tar.gz qmk_firmware-7ff41df32c29bca4e3a6efc3047b8fa93bb99b92.zip | |
Merge pull request #1097 from stanleylai/master
Added support for LED backlight, XD60v2's RGB underglow LED
| -rw-r--r-- | keyboards/xd60/arrow-cluster.JPG | bin | 1875718 -> 0 bytes | |||
| -rw-r--r-- | keyboards/xd60/config.h | 19 | ||||
| -rw-r--r-- | keyboards/xd60/keymaps/default/keymap.c | 40 | ||||
| -rw-r--r-- | keyboards/xd60/keymaps/stanleylai/keymap.c | 47 | ||||
| -rw-r--r-- | keyboards/xd60/readme.md | 8 | ||||
| -rw-r--r-- | keyboards/xd60/rules.mk | 2 | ||||
| -rw-r--r-- | keyboards/xd60/top-view.JPG | bin | 2092542 -> 0 bytes | |||
| -rw-r--r-- | keyboards/xd60/xd60.h | 18 | ||||
| -rw-r--r-- | keyboards/xd60/xd60.jpg | bin | 0 -> 2466209 bytes |
9 files changed, 60 insertions, 74 deletions
diff --git a/keyboards/xd60/arrow-cluster.JPG b/keyboards/xd60/arrow-cluster.JPG deleted file mode 100644 index aa03dc08e..000000000 --- a/keyboards/xd60/arrow-cluster.JPG +++ /dev/null | |||
| Binary files differ | |||
diff --git a/keyboards/xd60/config.h b/keyboards/xd60/config.h index 13ae29063..4bbaec882 100644 --- a/keyboards/xd60/config.h +++ b/keyboards/xd60/config.h | |||
| @@ -25,8 +25,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 25 | #define PRODUCT_ID 0x6060 | 25 | #define PRODUCT_ID 0x6060 |
| 26 | #define DEVICE_VER 0x0001 | 26 | #define DEVICE_VER 0x0001 |
| 27 | #define MANUFACTURER XIUDI | 27 | #define MANUFACTURER XIUDI |
| 28 | #define PRODUCT XD60 | 28 | #define PRODUCT XD60v2 |
| 29 | #define DESCRIPTION XD60 Keyboard by XIUDI | 29 | #define DESCRIPTION XD60 v2 Keyboard PCB by XIUDI |
| 30 | 30 | ||
| 31 | /* key matrix size */ | 31 | /* key matrix size */ |
| 32 | #define MATRIX_ROWS 5 | 32 | #define MATRIX_ROWS 5 |
| @@ -46,14 +46,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 46 | #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } | 46 | #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } |
| 47 | #define UNUSED_PINS | 47 | #define UNUSED_PINS |
| 48 | 48 | ||
| 49 | /* Backlight Setup */ | ||
| 50 | #define BACKLIGHT_PIN F5 | ||
| 51 | #define BACKLIGHT_LEVELS 6 | ||
| 52 | |||
| 49 | /* COL2ROW or ROW2COL */ | 53 | /* COL2ROW or ROW2COL */ |
| 50 | #define DIODE_DIRECTION COL2ROW | 54 | #define DIODE_DIRECTION COL2ROW |
| 51 | 55 | ||
| 52 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | 56 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
| 53 | #define DEBOUNCING_DELAY 5 | 57 | #define DEBOUNCING_DELAY 5 |
| 54 | 58 | ||
| 55 | /* number of backlight levels */ | 59 | /* RGB Underglow |
| 56 | #define BACKLIGHT_LEVELS 3 | 60 | * F6 PIN for XD60v2 that has pre-soldered WS2812 LEDs |
| 61 | */ | ||
| 62 | #define RGB_DI_PIN F6 | ||
| 63 | #define RGBLIGHT_ANIMATIONS | ||
| 64 | #define RGBLED_NUM 6 // Number of LEDs | ||
| 65 | #define RGBLIGHT_HUE_STEP 10 | ||
| 66 | #define RGBLIGHT_SAT_STEP 17 | ||
| 67 | #define RGBLIGHT_VAL_STEP 17 | ||
| 57 | 68 | ||
| 58 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | 69 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ |
| 59 | #define LOCKING_SUPPORT_ENABLE | 70 | #define LOCKING_SUPPORT_ENABLE |
diff --git a/keyboards/xd60/keymaps/default/keymap.c b/keyboards/xd60/keymaps/default/keymap.c index ea85c02a3..11be9afca 100644 --- a/keyboards/xd60/keymaps/default/keymap.c +++ b/keyboards/xd60/keymaps/default/keymap.c | |||
| @@ -9,56 +9,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 9 | 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_BSPC, \ | 9 | 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_BSPC, \ |
| 10 | 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, \ | 10 | 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, \ |
| 11 | KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \ | 11 | KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \ |
| 12 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT), | 12 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), |
| 13 | 13 | ||
| 14 | // 1: Function Layer | 14 | // 1: Function Layer |
| 15 | KEYMAP( | 15 | KEYMAP( |
| 16 | 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, \ | 16 | 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, \ |
| 17 | KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ | 17 | KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ |
| 18 | KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ | 18 | KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ |
| 19 | KC_LSFT, KC_NO, KC_NO, KC_APP, BL_TOGG,BL_DEC, BL_INC, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_NO, \ | 19 | KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_INS, \ |
| 20 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, F(0), KC_HOME, KC_PGDOWN,KC_END), | 20 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END), |
| 21 | 21 | ||
| 22 | }; | 22 | }; |
| 23 | 23 | ||
| 24 | // Custom Actions | ||
| 24 | const uint16_t PROGMEM fn_actions[] = { | 25 | const uint16_t PROGMEM fn_actions[] = { |
| 25 | [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay | 26 | [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay |
| 26 | }; | 27 | }; |
| 27 | 28 | ||
| 29 | // Macros | ||
| 28 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | 30 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { |
| 29 | // MACRODOWN only works in this function | ||
| 30 | 31 | ||
| 32 | // MACRODOWN only works in this function | ||
| 31 | switch(id) { | 33 | switch(id) { |
| 32 | case 0: | 34 | case 0: |
| 33 | if (record->event.pressed) { | 35 | if (record->event.pressed) { register_code(KC_RSFT); } |
| 34 | register_code(KC_RSFT); | 36 | else { unregister_code(KC_RSFT); } |
| 35 | } else { | 37 | break; |
| 36 | unregister_code(KC_RSFT); | ||
| 37 | } | ||
| 38 | break; | ||
| 39 | } | 38 | } |
| 40 | 39 | ||
| 41 | return MACRO_NONE; | 40 | return MACRO_NONE; |
| 42 | }; | 41 | }; |
| 43 | 42 | ||
| 43 | // Loop | ||
| 44 | void matrix_scan_user(void) { | 44 | void matrix_scan_user(void) { |
| 45 | 45 | // Empty | |
| 46 | // Layer LED indicators | ||
| 47 | uint32_t layer = layer_state; | ||
| 48 | |||
| 49 | if (layer & (1<<1)) { | ||
| 50 | xd60_esc_led_on(); | ||
| 51 | } else { | ||
| 52 | xd60_esc_led_off(); | ||
| 53 | } | ||
| 54 | |||
| 55 | /* | ||
| 56 | if (layer & (1<<2)) { | ||
| 57 | xd60_poker_leds_on(); | ||
| 58 | xd60_esc_led_on(); | ||
| 59 | } else { | ||
| 60 | xd60_poker_leds_off(); | ||
| 61 | xd60_esc_led_off(); | ||
| 62 | } | ||
| 63 | */ | ||
| 64 | }; | 46 | }; |
diff --git a/keyboards/xd60/keymaps/stanleylai/keymap.c b/keyboards/xd60/keymaps/stanleylai/keymap.c index a84ee0f89..feb2cd1b6 100644 --- a/keyboards/xd60/keymaps/stanleylai/keymap.c +++ b/keyboards/xd60/keymaps/stanleylai/keymap.c | |||
| @@ -8,53 +8,48 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 8 | KC_ESC, 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_BSLS, KC_GRV, \ | 8 | KC_ESC, 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_BSLS, KC_GRV, \ |
| 9 | 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_BSPC, \ | 9 | 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_BSPC, \ |
| 10 | F(0), 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, \ | 10 | F(0), 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, \ |
| 11 | KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \ | 11 | KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, F(1), KC_UP, KC_DEL, \ |
| 12 | KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT), | 12 | KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT), |
| 13 | 13 | ||
| 14 | // 1: Function Layer | 14 | // 1: Function Layer |
| 15 | KEYMAP( | 15 | KEYMAP( |
| 16 | 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, \ | 16 | 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, \ |
| 17 | KC_CAPS, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_STEP, BL_TOGG, KC_DEL, \ | 17 | KC_CAPS, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, \ |
| 18 | F(0), KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, \ | 18 | F(0), KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, \ |
| 19 | KC_LSFT, KC_NO, KC_VOLD, KC_MUTE, KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_PGUP, KC_INS, \ | 19 | KC_LSFT, KC_NO, KC_VOLD, KC_MUTE, KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_INS, \ |
| 20 | KC_LCTL, KC_LALT, KC_LGUI, KC_MPLY, KC_RGUI, KC_RALT, KC_HOME, KC_PGDOWN,KC_END), | 20 | KC_LCTL, KC_LALT, KC_LGUI, KC_MPLY, KC_RGUI, KC_RALT, KC_HOME, KC_PGDOWN,KC_END), |
| 21 | 21 | ||
| 22 | // 2: RGB Layer | ||
| 23 | KEYMAP( | ||
| 24 | KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ | ||
| 25 | KC_NO, RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ | ||
| 26 | KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ | ||
| 27 | KC_NO, KC_NO, RGB_HUD, RGB_SAD, RGB_VAD,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, F(1), KC_NO, KC_NO, \ | ||
| 28 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), | ||
| 29 | |||
| 22 | }; | 30 | }; |
| 23 | 31 | ||
| 32 | // Custom Actions | ||
| 24 | const uint16_t PROGMEM fn_actions[] = { | 33 | const uint16_t PROGMEM fn_actions[] = { |
| 25 | [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay | 34 | [0] = ACTION_LAYER_MOMENTARY(1), // to Function Layer |
| 35 | [1] = ACTION_LAYER_MOMENTARY(2), // to RGB Layer | ||
| 26 | }; | 36 | }; |
| 27 | 37 | ||
| 38 | // Macros | ||
| 28 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | 39 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { |
| 29 | // MACRODOWN only works in this function | ||
| 30 | 40 | ||
| 41 | // MACRODOWN only works in this function | ||
| 31 | switch(id) { | 42 | switch(id) { |
| 32 | case 0: | 43 | case 0: |
| 33 | if (record->event.pressed) { | 44 | if (record->event.pressed) { register_code(KC_RSFT); } |
| 34 | register_code(KC_RSFT); | 45 | else { unregister_code(KC_RSFT); } |
| 35 | } else { | 46 | break; |
| 36 | unregister_code(KC_RSFT); | ||
| 37 | } | ||
| 38 | break; | ||
| 39 | } | 47 | } |
| 40 | 48 | ||
| 41 | return MACRO_NONE; | 49 | return MACRO_NONE; |
| 42 | }; | 50 | }; |
| 43 | 51 | ||
| 52 | // Loop | ||
| 44 | void matrix_scan_user(void) { | 53 | void matrix_scan_user(void) { |
| 45 | 54 | // Empty | |
| 46 | // Layer LED indicators | ||
| 47 | uint32_t layer = layer_state; | ||
| 48 | |||
| 49 | if (layer & (1<<1)) { | ||
| 50 | xd60_wasd_leds_on(); | ||
| 51 | xd60_fn_led_on(); | ||
| 52 | xd60_esc_led_on(); | ||
| 53 | xd60_poker_leds_on(); | ||
| 54 | } else { | ||
| 55 | xd60_wasd_leds_off(); | ||
| 56 | xd60_fn_led_off(); | ||
| 57 | xd60_esc_led_off(); | ||
| 58 | xd60_poker_leds_off(); | ||
| 59 | } | ||
| 60 | }; | 55 | }; |
diff --git a/keyboards/xd60/readme.md b/keyboards/xd60/readme.md index 393ea5d68..224498caa 100644 --- a/keyboards/xd60/readme.md +++ b/keyboards/xd60/readme.md | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | # QMK Firmware for XIUDI's 60% XD60 PCB | 1 | # QMK Firmware for XIUDI's 60% XD60 PCB |
| 2 | 2 | ||
| 3 |  | 3 |  |
| 4 |  | ||
| 5 | 4 | ||
| 6 | ## Quantum MK Firmware | 5 | ## Quantum MK Firmware |
| 7 | For the full Quantum feature list, see [the parent readme.md](/readme.md). | 6 | For the full Quantum feature list, see [the parent readme.md](/readme.md). |
| @@ -9,5 +8,10 @@ For the full Quantum feature list, see [the parent readme.md](/readme.md). | |||
| 9 | ## Additional Notes | 8 | ## Additional Notes |
| 10 | The XD60 is essentially a GH60 rev. C, with support for a right-hand arrow cluster. Includes full compatibility with GH60 expansion boards. Board also supports in-switch LEDs (two-pin, single colour), as well as WS2182 LED strips for underglow lighting. Default keymap included, matching configuration on sale page. | 9 | The XD60 is essentially a GH60 rev. C, with support for a right-hand arrow cluster. Includes full compatibility with GH60 expansion boards. Board also supports in-switch LEDs (two-pin, single colour), as well as WS2182 LED strips for underglow lighting. Default keymap included, matching configuration on sale page. |
| 11 | 10 | ||
| 11 | Version 2 PCBs include 6 soldered on RGB underglow LEDs on the bottom, and are labelled "XD60v2" on the top. They are otherwise identical to v1 PCBs. | ||
| 12 | |||
| 13 | ## Known Issues | ||
| 14 | In-switch backlight LEDs seem to only support 1 brightness level. | ||
| 15 | |||
| 12 | ## Build | 16 | ## Build |
| 13 | To build the default keymap, simply run `make xd60-default`. | 17 | To build the default keymap, simply run `make xd60-default`. |
diff --git a/keyboards/xd60/rules.mk b/keyboards/xd60/rules.mk index e0b92121d..174c3ec84 100644 --- a/keyboards/xd60/rules.mk +++ b/keyboards/xd60/rules.mk | |||
| @@ -61,5 +61,5 @@ MIDI_ENABLE = no # MIDI controls | |||
| 61 | AUDIO_ENABLE = no # Audio output on port C6 | 61 | AUDIO_ENABLE = no # Audio output on port C6 |
| 62 | UNICODE_ENABLE = no # Unicode | 62 | UNICODE_ENABLE = no # Unicode |
| 63 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | 63 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID |
| 64 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. | 64 | RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. |
| 65 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | 65 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
diff --git a/keyboards/xd60/top-view.JPG b/keyboards/xd60/top-view.JPG deleted file mode 100644 index 613759b4d..000000000 --- a/keyboards/xd60/top-view.JPG +++ /dev/null | |||
| Binary files differ | |||
diff --git a/keyboards/xd60/xd60.h b/keyboards/xd60/xd60.h index 36442cb52..dd5f63c0c 100644 --- a/keyboards/xd60/xd60.h +++ b/keyboards/xd60/xd60.h | |||
| @@ -6,24 +6,18 @@ | |||
| 6 | 6 | ||
| 7 | /* XD60 LEDs | 7 | /* XD60 LEDs |
| 8 | * GPIO pads | 8 | * GPIO pads |
| 9 | * 0 F7 WASD LEDs | 9 | * 0 F7 not connected |
| 10 | * 1 F6 ESC LED | 10 | * 1 F6 RGB PWM Underglow |
| 11 | * 2 F5 FN LED | 11 | * 2 F5 Backlight LED |
| 12 | * 3 F4 POKER Arrow LEDs | 12 | * 3 F4 not connected |
| 13 | * B2 Capslock LED | 13 | * B2 Capslock LED |
| 14 | * B0 not connected | 14 | * B0 not connected |
| 15 | */ | 15 | */ |
| 16 | inline void xd60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } | 16 | inline void xd60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } |
| 17 | inline void xd60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); } | 17 | inline void xd60_bl_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } |
| 18 | inline void xd60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } | ||
| 19 | inline void xd60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); } | ||
| 20 | inline void xd60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); } | ||
| 21 | 18 | ||
| 22 | inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } | 19 | inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } |
| 23 | inline void xd60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } | 20 | inline void xd60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } |
| 24 | inline void xd60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } | ||
| 25 | inline void xd60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); } | ||
| 26 | inline void xd60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } | ||
| 27 | 21 | ||
| 28 | /* XD60 Keymap Definition Macro */ | 22 | /* XD60 Keymap Definition Macro */ |
| 29 | #define KEYMAP( \ | 23 | #define KEYMAP( \ |
diff --git a/keyboards/xd60/xd60.jpg b/keyboards/xd60/xd60.jpg new file mode 100644 index 000000000..11654f0fd --- /dev/null +++ b/keyboards/xd60/xd60.jpg | |||
| Binary files differ | |||
