Skip to content

Commit

Permalink
Refactor xelus/dawn60 for Rev2 later (#10584)
Browse files Browse the repository at this point in the history
* refactor for rev2 incoming

* fix cr

* Update keyboards/xelus/dawn60/rev1/config.h

* Update keyboards/xelus/dawn60/dawn60.h

* Update keyboards/xelus/dawn60/config.h

* Update keyboards/xelus/dawn60/dawn60.h

* fix tabs

* small update
  • Loading branch information
Xelus22 committed Nov 9, 2020
1 parent 7d836cb commit 2098d98
Show file tree
Hide file tree
Showing 8 changed files with 205 additions and 167 deletions.
132 changes: 2 additions & 130 deletions keyboards/xelus/dawn60/config.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright 2017 Jason Williams (Wilba)
/* Copyright 2020 Harrison Chan (Xelus)
*
* 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
Expand All @@ -13,133 +13,5 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http:https://www.gnu.org/licenses/>.
*/
#pragma once


#include "config_common.h"

// USB Device descriptor parameter
#define VENDOR_ID 0x5845 // XE
#define PRODUCT_ID 0x0060 // Dawn60
#define DEVICE_VER 0x0001
#define MANUFACTURER Xelus
#define PRODUCT Dawn60
#define DESCRIPTION Dawn60

// key matrix size
#define MATRIX_ROWS 5
#define MATRIX_COLS 14

//no underglow - prototype
//#define MATRIX_ROW_PINS { B1, B3, B7, F6, F7 }
//#define MATRIX_COL_PINS { B0, D5, B2, F5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7 }
//#define UNUSED_PINS

//underglow
#define MATRIX_ROW_PINS { B1, B3, F1, F6, F7 }
#define MATRIX_COL_PINS { B0, D5, B2, F5, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 }
#define UNUSED_PINS

// IS31FL3731 driver
#define DRIVER_COUNT 2
#define DRIVER_LED_TOTAL 64

// COL2ROW or ROW2COL
#define DIODE_DIRECTION COL2ROW

// Set 0 if debouncing isn't needed
#define DEBOUNCE 5

// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
// Locking resynchronize hack
#define LOCKING_RESYNC_ENABLE

/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/

// disable debug print
//#define NO_DEBUG

// disable print
//#define NO_PRINT

// disable action features
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

#define RGB_BACKLIGHT_ENABLED 1

// This conditionally compiles the backlight code for Dawn60 specifics
#define RGB_BACKLIGHT_DAWN60

//RGB Underglow defines
#define RGB_DI_PIN F0
#define WS2812_LED_TOTAL 20

#define RGB_UNDERGLOW_ALPHA_TOP_START 0
#define RGB_UNDERGLOW_ALPHA_TOP_END 6
#define RGB_UNDERGLOW_ALPHA_BOT_START 12
#define RGB_UNDERGLOW_ALPHA_BOT_END 15

// enable/disable LEDs based on layout
// switch between split backspace (1) or normal backspace(0)
#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1
// switch between Tsangan (1) or Arrows Bottom Row (0)
#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
// switch between standard split rshift (0) or arrows r shift (1)
// .------------------. .-------------------.
// | ? | Shift | Fn | vs | Shift | Up | Fn |
// `------------------' `-------------------'
#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1

//not used
#define RGB_BACKLIGHT_USE_ISO_ENTER 0
#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0

// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0

// disable backlight after timeout in minutes, 0 = no timeout
#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0

// the default brightness
#define RGB_BACKLIGHT_BRIGHTNESS 255

// the default effect (RGB test)
#define RGB_BACKLIGHT_EFFECT 255

// the default effect speed (0-3)
#define RGB_BACKLIGHT_EFFECT_SPEED 0

// the default color1 and color2
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }

// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
// alphas vs. mods
// Each value is for a row, bit 0 is column 0
// Alpha=0 Mod=1
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011111000011111

#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }

// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31

// VIA lighting is handled by the keyboard-level code
#define VIA_CUSTOM_LIGHTING_ENABLE
19 changes: 1 addition & 18 deletions keyboards/xelus/dawn60/dawn60.c
Original file line number Diff line number Diff line change
@@ -1,18 +1 @@
/* Copyright 2017 Jason Williams (Wilba)
*
* 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:https://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_DAWN60
#error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah
#endif
#include "dawn60.h"
22 changes: 4 additions & 18 deletions keyboards/xelus/dawn60/dawn60.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright 2017 Jason Williams (Wilba)
/* Copyright 2020 Harrison Chan (Xelus)
*
* 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
Expand All @@ -16,21 +16,7 @@
#pragma once

#include "quantum.h"
#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
#include "via.h"

#define XXX KC_NO

#define LAYOUT_60_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D } \
}
#if defined(KEYBOARD_xelus_dawn60_rev1)
#include "rev1.h"
#endif
2 changes: 1 addition & 1 deletion keyboards/xelus/dawn60/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ An in-switch RGB LED keyboard with RGB underglow.

Make example for this keyboard (after setting up your build environment):

make xelus/dawn60:default
make xelus/dawn60/rev1:default

See 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).
143 changes: 143 additions & 0 deletions keyboards/xelus/dawn60/rev1/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
/* Copyright 2020 Harrison Chan (Xelus)
*
* 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:https://www.gnu.org/licenses/>.
*/
#pragma once

#include "config_common.h"

// USB Device descriptor parameter
#define VENDOR_ID 0x5845 // XE
#define PRODUCT_ID 0x0060 // Dawn60
#define DEVICE_VER 0x0001
#define MANUFACTURER Xelus
#define PRODUCT Dawn60
// key matrix size
#define MATRIX_ROWS 5
#define MATRIX_COLS 14

//no underglow - prototype
//#define MATRIX_ROW_PINS { B1, B3, B7, F6, F7 }
//#define MATRIX_COL_PINS { B0, D5, B2, F5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7 }
//#define UNUSED_PINS

//underglow
#define MATRIX_ROW_PINS { B1, B3, F1, F6, F7 }
#define MATRIX_COL_PINS { B0, D5, B2, F5, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 }
#define UNUSED_PINS

// IS31FL3731 driver
#define DRIVER_COUNT 2
#define DRIVER_LED_TOTAL 64

// COL2ROW or ROW2COL
#define DIODE_DIRECTION COL2ROW

// Set 0 if debouncing isn't needed
#define DEBOUNCE 5

// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
// Locking resynchronize hack
#define LOCKING_RESYNC_ENABLE

/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/

// disable debug print
//#define NO_DEBUG

// disable print
//#define NO_PRINT

// disable action features
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

#define RGB_BACKLIGHT_ENABLED 1

// This conditionally compiles the backlight code for Dawn60 specifics
#define RGB_BACKLIGHT_DAWN60

//RGB Underglow defines
#define RGB_DI_PIN F0
#define WS2812_LED_TOTAL 20

#define RGB_UNDERGLOW_ALPHA_TOP_START 0
#define RGB_UNDERGLOW_ALPHA_TOP_END 6
#define RGB_UNDERGLOW_ALPHA_BOT_START 12
#define RGB_UNDERGLOW_ALPHA_BOT_END 15

// enable/disable LEDs based on layout
// switch between split backspace (1) or normal backspace(0)
#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1
// switch between Tsangan (1) or Arrows Bottom Row (0)
#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
// switch between standard split rshift (0) or arrows r shift (1)
// .------------------. .-------------------.
// | ? | Shift | Fn | vs | Shift | Up | Fn |
// `------------------' `-------------------'
#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1

//not used
#define RGB_BACKLIGHT_USE_ISO_ENTER 0
#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0

// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0

// disable backlight after timeout in minutes, 0 = no timeout
#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0

// the default brightness
#define RGB_BACKLIGHT_BRIGHTNESS 255

// the default effect (RGB test)
#define RGB_BACKLIGHT_EFFECT 255

// the default effect speed (0-3)
#define RGB_BACKLIGHT_EFFECT_SPEED 0

// the default color1 and color2
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }

// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
// alphas vs. mods
// Each value is for a row, bit 0 is column 0
// Alpha=0 Mod=1
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011111000011111

#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }

// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31

// VIA lighting is handled by the keyboard-level code
#define VIA_CUSTOM_LIGHTING_ENABLE
18 changes: 18 additions & 0 deletions keyboards/xelus/dawn60/rev1/rev1.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/* Copyright 2020 Harrison Chan (Xelus)
*
* 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:https://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_DAWN60
#error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah
#endif
Loading

0 comments on commit 2098d98

Please sign in to comment.