-
-
Notifications
You must be signed in to change notification settings - Fork 41.7k
Add support for the Durgod Hades, Galaxy and Venus Keyboards #12893
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 10 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
20fac44
Adding durgod hades keyboard
J-Sully af5d4fa
refactored hades into dgk6x common code
J-Sully 060179e
adding venus implementation
J-Sully f3f9577
Updated durgod/dgk6x I2C timings
dkjer 6bb1400
Added suggested PR changes
J-Sully c2b3383
increasing VIA layer count to 16
J-Sully 4210272
Adding durgod galaxy 75 support
dkjer 95b4b8f
Update keyboards/durgod/dgk6x/config.h
J-Sully 4bc0618
Reverting update to keyboards/durgod/dgk6x/config.h to fix build issue
dkjer b88b92c
Updating dgk6x readme
dkjer 0336d6d
Enabling Lighting section in VIA for DGK6X keyboards
dkjer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
/* Copyright 2021 Jessica Sullivan and Don Kjer | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 2 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
#pragma once | ||
|
||
#include "config_common.h" | ||
|
||
/* USB Device descriptor parameter */ | ||
#define VENDOR_ID 0xD60D | ||
#define MANUFACTURER Hoksi Technology | ||
|
||
/* COL2ROW, ROW2COL*/ | ||
#define DIODE_DIRECTION ROW2COL | ||
|
||
// Dynamic EEPROM | ||
// Something sensible or else VIA may crash | ||
// Users may enable more if they wish | ||
#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 | ||
|
||
// Increase VIA layer count | ||
#define DYNAMIC_KEYMAP_LAYER_COUNT 16 | ||
|
||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
#define DEBOUNCE 5 | ||
|
||
/* Bootmagic Lite key configuration */ | ||
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE | ||
#define BOOTMAGIC_LITE_ROW 0 | ||
#define BOOTMAGIC_LITE_COLUMN 0 | ||
|
||
/* LED indicator pins */ | ||
#define LED_CAPS_LOCK_PIN C4 | ||
#define LED_WIN_LOCK_PIN C5 | ||
#define LED_SCROLL_LOCK_PIN A8 | ||
#define LED_MR_LOCK_PIN LED_SCROLL_LOCK_PIN | ||
#define LED_PIN_ON_STATE 0 | ||
|
||
#ifdef RGB_MATRIX_ENABLE | ||
// This is a 7-bit address, that gets left-shifted and bit 0 | ||
// set to 0 for write, 1 for read (as per I2C protocol) | ||
// The address will vary depending on your wiring: | ||
// 00 <-> GND | ||
// 01 <-> SCL | ||
// 10 <-> SDA | ||
// 11 <-> VCC | ||
// ADDR1 represents A1:A0 of the 7-bit address. | ||
// ADDR2 represents A3:A2 of the 7-bit address. | ||
// The result is: 0b101(ADDR2)(ADDR1) | ||
|
||
#define DRIVER_ADDR_1 0b1010000 | ||
#define DRIVER_ADDR_2 0b1010011 | ||
|
||
#define DRIVER_COUNT 2 | ||
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) | ||
|
||
/* I2C Alternate function settings */ | ||
#define I2C1_SCL_PAL_MODE 1 | ||
#define I2C1_SDA_PAL_MODE 1 | ||
|
||
/* Set I2C speed to 400kHz, 300ns Tr, 14ns Tf */ | ||
#define I2C1_TIMINGR_PRESC 0x1U | ||
#define I2C1_TIMINGR_SCLDEL 0x9U | ||
#define I2C1_TIMINGR_SDADEL 0x0U | ||
#define I2C1_TIMINGR_SCLH 0x0cU | ||
#define I2C1_TIMINGR_SCLL 0x22U | ||
|
||
#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended | ||
J-Sully marked this conversation as resolved.
Show resolved
Hide resolved
|
||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS | ||
#define RGB_MATRIX_KEYPRESSES | ||
#define RGB_MATRIX_LED_PROCESS_LIMIT 4 | ||
#define RGB_MATRIX_LED_FLUSH_LIMIT 26 | ||
#endif /* RGB_MATRIX_ENABLE */ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
/* Copyright 2021 Jessica Sullivan and Don Kjer | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 2 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
#include "dgk6x.h" | ||
|
||
/* Private Functions */ | ||
void off_all_leds(void) { | ||
writePinHigh(LED_CAPS_LOCK_PIN); | ||
writePinHigh(LED_WIN_LOCK_PIN); | ||
writePinHigh(LED_MR_LOCK_PIN); | ||
} | ||
|
||
void on_all_leds(void) { | ||
writePinLow(LED_CAPS_LOCK_PIN); | ||
writePinLow(LED_WIN_LOCK_PIN); | ||
writePinLow(LED_MR_LOCK_PIN); | ||
} | ||
|
||
/* WinLock and MR LEDs are non-standard. Need to override led init */ | ||
void led_init_ports(void) { | ||
setPinOutput(LED_CAPS_LOCK_PIN); | ||
setPinOutput(LED_WIN_LOCK_PIN); | ||
setPinOutput(LED_MR_LOCK_PIN); | ||
off_all_leds(); | ||
} | ||
|
||
|
||
#ifndef WINLOCK_DISABLED | ||
static bool win_key_locked = false; | ||
|
||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | ||
switch (keycode) { | ||
case KC_TGUI: | ||
if (record->event.pressed) { | ||
// Toggle GUI lock on key press | ||
win_key_locked = !win_key_locked; | ||
writePin(LED_WIN_LOCK_PIN, !win_key_locked); | ||
} | ||
break; | ||
case KC_LGUI: | ||
if (win_key_locked) { return false; } | ||
break; | ||
} | ||
return process_record_user(keycode, record); | ||
} | ||
#endif /* WINLOCK_DISABLED */ | ||
|
||
#ifdef RGB_MATRIX_ENABLE | ||
|
||
__attribute__ ((weak)) | ||
void rgb_matrix_indicators_user(void) | ||
{ | ||
if (host_keyboard_led_state().caps_lock) | ||
{ | ||
rgb_matrix_set_color(CAPS_LED, 0xFF, 0xFF, 0xFF); | ||
} | ||
} | ||
#endif /* RGB_MATRIX_ENABLE */ | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
/* Copyright 2021 Jessica Sullivan and Don Kjer | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 2 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
#pragma once | ||
|
||
#include "quantum.h" | ||
|
||
#ifdef KEYBOARD_durgod_dgk6x_hades | ||
# include "hades.h" | ||
#elif defined KEYBOARD_durgod_dgk6x_venus | ||
# include "venus.h" | ||
#elif defined KEYBOARD_durgod_dgk6x_galaxy | ||
# include "galaxy.h" | ||
#endif | ||
|
||
#ifndef WINLOCK_DISABLED | ||
// Define the TGUI key here so it is available in QMK configurator | ||
enum DGK6X_keycodes { | ||
#ifdef VIA_ENABLE | ||
KC_TGUI = USER00, // Toggle between GUI Lock or Unlock | ||
NEW_SAFE_RANGE = SAFE_RANGE | ||
#else | ||
KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock | ||
NEW_SAFE_RANGE | ||
#endif | ||
}; | ||
|
||
#undef SAFE_RANGE | ||
#define SAFE_RANGE NEW_SAFE_RANGE | ||
#endif /* WINLOCK_DISABLED */ | ||
|
||
/* Function Prototype */ | ||
void off_all_leds(void); | ||
void on_all_leds(void); | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/* Copyright 2021 Don Kjer | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 2 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
#pragma once | ||
|
||
#include "config_common.h" | ||
|
||
/* USB Device descriptor parameter */ | ||
#define PRODUCT_ID 0x6A1A | ||
#define DEVICE_VER 0x0001 | ||
#define PRODUCT Galaxy 84 HK gaming x DURGOD (QMK) | ||
|
||
/* key matrix rows */ | ||
#define MATRIX_ROWS 6 | ||
#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5 } | ||
|
||
/* key matrix columns */ | ||
#define MATRIX_COLS 16 | ||
#define MATRIX_COL_PINS { B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C8, C9, C10, C11, C12 } | ||
|
||
#ifdef RGB_MATRIX_ENABLE | ||
#define DRIVER_1_LED_TOTAL 58 | ||
#define DRIVER_2_LED_TOTAL 26 | ||
#endif |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
/* Copyright 2021 Don Kjer | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 2 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
#include "galaxy.h" | ||
|
||
#ifdef RGB_MATRIX_ENABLE | ||
|
||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | ||
/* Refer to IS31 manual for these locations | ||
* driver | ||
* | R location | ||
* | | G location | ||
* | | | B location | ||
* | | | | */ | ||
|
||
{0, C_1, B_1, A_1}, // Esc | ||
{0, C_2, B_2, A_2}, // F1 | ||
{0, C_3, B_3, A_3}, // F2 | ||
{0, C_4, B_4, A_4}, // F3 | ||
{0, C_5, B_5, A_5}, // F4 | ||
{0, C_6, B_6, A_6}, // F5 | ||
{0, C_7, B_7, A_7}, // F6 | ||
{0, C_8, B_8, A_8}, // F7 | ||
{0, C_9, B_9, A_9}, // F8 | ||
{0, C_10, B_10, A_10}, // F9 | ||
{0, C_11, B_11, A_11}, // F10 | ||
{0, C_12, B_12, A_12}, // F11 | ||
{0, C_13, B_13, A_13}, // F12 | ||
{0, C_14, B_14, A_14}, // PrtSc | ||
{0, C_15, B_15, A_15}, // Pause | ||
{0, C_16, B_16, A_16}, // Del | ||
|
||
{0, F_1, E_1, D_1}, // ` | ||
{0, F_2, E_2, D_2}, // 1 | ||
{0, F_3, E_3, D_3}, // 2 | ||
{0, F_4, E_4, D_4}, // 3 | ||
{0, F_5, E_5, D_5}, // 4 | ||
{0, F_6, E_6, D_6}, // 5 | ||
{0, F_7, E_7, D_7}, // 6 | ||
{0, F_8, E_8, D_8}, // 7 | ||
{0, F_9, E_9, D_9}, // 8 | ||
{0, F_10, E_10, D_10}, // 9 | ||
{0, F_11, E_11, D_11}, // 0 | ||
{0, F_12, E_12, D_12}, // - | ||
{0, F_13, E_13, D_13}, // = | ||
{0, F_14, E_14, D_14}, // Bksp | ||
{0, F_15, E_15, D_15}, // Home | ||
|
||
{0, I_1, H_1, G_1}, // Tab | ||
{0, I_2, H_2, G_2}, // Q | ||
{0, I_3, H_3, G_3}, // W | ||
{0, I_4, H_4, G_4}, // E | ||
{0, I_5, H_5, G_5}, // R | ||
{0, I_6, H_6, G_6}, // T | ||
{0, I_7, H_7, G_7}, // Y | ||
{0, I_8, H_8, G_8}, // U | ||
{0, I_9, H_9, G_9}, // I | ||
{0, I_10, H_10, G_10}, // O | ||
{0, I_11, H_11, G_11}, // P | ||
{0, I_12, H_12, G_12}, // [ | ||
{0, I_13, H_13, G_13}, // ] | ||
{0, I_14, H_14, G_14}, // Pipe | ||
{0, I_15, H_15, G_15}, // End | ||
|
||
{0, L_1, K_1, J_1}, // Caps | ||
{0, L_2, K_2, J_2}, // A | ||
{0, L_3, K_3, J_3}, // S | ||
{0, L_4, K_4, J_4}, // D | ||
{0, L_5, K_5, J_5}, // F | ||
{0, L_6, K_6, J_6}, // G | ||
{0, L_7, K_7, J_7}, // H | ||
{0, L_8, K_8, J_8}, // J | ||
{0, L_9, K_9, J_9}, // K | ||
{0, L_10, K_10, J_10}, // L | ||
{0, L_11, K_11, J_11}, // : | ||
{0, L_12, K_12, J_12}, // ' | ||
{0, L_14, K_14, J_14}, // Enter | ||
{0, L_15, K_15, J_15}, // PgUp | ||
|
||
{1, C_1, B_1, A_1}, // LShift | ||
{1, C_3, B_3, A_3}, // Z | ||
{1, C_4, B_4, A_4}, // X | ||
{1, C_5, B_5, A_5}, // C | ||
{1, C_6, B_6, A_6}, // V | ||
{1, C_7, B_7, A_7}, // B | ||
{1, C_8, B_8, A_8}, // N | ||
{1, C_9, B_9, A_9}, // M | ||
{1, C_10, B_10, A_10}, // < | ||
{1, C_11, B_11, A_11}, // > | ||
{1, C_12, B_12, A_12}, // ? | ||
{1, C_13, B_13, A_13}, // RShift | ||
{1, C_14, B_14, A_14}, // Up | ||
{1, C_15, B_15, A_15}, // PgDn | ||
|
||
{1, F_1, E_1, D_1}, // LCtrl | ||
{1, F_2, E_2, D_2}, // LAlt | ||
{1, F_3, E_3, D_3}, // LGUI | ||
{1, F_7, E_7, D_7}, // Space | ||
{1, F_10, E_10, D_10}, // RAlt | ||
{1, F_11, E_11, D_11}, // Fn1 | ||
{1, F_12, E_12, D_12}, // Fn2 | ||
{1, F_13, E_13, D_13}, // Left | ||
{1, F_14, E_14, D_14}, // Down | ||
{1, F_15, E_15, D_15} // Right | ||
}; | ||
|
||
led_config_t g_led_config = {{ | ||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, | ||
{ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, NO_LED }, | ||
{ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, NO_LED }, | ||
{ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, 58, 59, NO_LED }, | ||
{ 60, NO_LED, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, NO_LED }, | ||
{ 74, 75, 76, NO_LED, NO_LED, NO_LED, 77, NO_LED, NO_LED, 78, 79, 80, 81, 82, 83, NO_LED } | ||
}, { | ||
{ 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 224, 0 }, { 240, 0 }, | ||
{ 0, 13 }, { 16, 13 }, { 32, 13 }, { 48, 13 }, { 64, 13 }, { 80, 13 }, { 96, 13 }, { 112, 13 }, { 128, 13 }, { 144, 13 }, { 160, 13 }, { 176, 13 }, { 192, 13 }, { 216, 13 }, { 240, 13 }, | ||
{ 4, 26 }, { 24, 26 }, { 40, 26 }, { 56, 26 }, { 72, 26 }, { 88, 26 }, { 104, 26 }, { 120, 26 }, { 136, 26 }, { 152, 26 }, { 168, 26 }, { 184, 26 }, { 200, 26 }, { 220, 26 }, { 240, 26 }, | ||
{ 6, 38 }, { 28, 38 }, { 44, 38 }, { 60, 38 }, { 76, 38 }, { 92, 38 }, { 108, 38 }, { 124, 38 }, { 140, 38 }, { 156, 38 }, { 172, 38 }, { 188, 38 }, { 214, 38 }, { 240, 38 }, | ||
{ 10, 51 }, { 36, 51 }, { 52, 51 }, { 68, 51 }, { 84, 51 }, { 100, 51 }, { 116, 51 }, { 132, 51 }, { 148, 51 }, { 164, 51 }, { 180, 51 }, { 202, 51 }, { 224, 51 }, { 240, 51 }, | ||
{ 2, 64 }, { 22, 64 }, { 42, 64 }, { 101, 64 }, { 160, 64 }, { 176, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }, { 240, 64 } | ||
}, { | ||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | ||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, | ||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | ||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, | ||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, | ||
1, 1, 1, 4, 1, 1, 1, 4, 4, 4 | ||
}}; | ||
#endif /* RGB_MATRIX_ENABLE */ |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.