1
0
Fork 0

Keyboard: LED fixes for Kinesis Stapelberg controller, and keymap changes (#3564)

* Rules for vitamins_included

Added a section to disable RGB underglow for the Let's Split
   Vitamins Included board.

* fixing ortho_4x12 configs

* Using upstream/master version instead

* Additions and Corrections

Corrected the Kinesis/Stapelberg's .c file to allow LEDs to work
Removed excess cruft from my Kinesis keymap to reflect this change
Other minor tweaks and adjustments to my ortho_4x12 and 5x12 layouts

* Updated readme
This commit is contained in:
Xyverz 2018-08-04 09:01:26 -07:00 committed by Drashna Jaelre
parent f8a915a2db
commit 3e8f272873
6 changed files with 49 additions and 114 deletions

View file

@ -299,58 +299,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true; return true;
}; };
// getting the LEDs working...
void led_set_user(uint8_t usb_led) {
DDRF |= (1<<0); // Keypad LED
if (usb_led & (1<<USB_LED_COMPOSE)) {
PORTF |= (1<<0);
} else {
PORTF &= ~(1<<0);
}
DDRF |= (1<<1); // ScrLock LED
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
PORTF |= (1<<1);
} else {
PORTF &= ~(1<<1);
}
DDRF |= (1<<2); // NumLock LED
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
PORTF |= (1<<2);
} else {
PORTF &= ~(1<<2);
}
DDRF |= (1<<3); // CapsLock LED
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
PORTF |= (1<<3);
} else {
PORTF &= ~(1<<3);
}
}
// Runs just one time when the keyboard initializes. // Runs just one time when the keyboard initializes.
void matrix_init_user(void) { void matrix_init_user(void) {
}; };
void led_set_user(uint8_t usb_led) {
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
PORTF |= (1<<2);
} else {
PORTF &= ~(1<<2);
}
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
PORTF |= (1<<3);
} else {
PORTF &= ~(1<<3);
}
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
PORTF |= (1<<1);
} else {
PORTF &= ~(1<<1);
}
}

View file

@ -10,9 +10,11 @@ The QWERTY layout shown here is based entirely on the Kinesis Advantage layout.
I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts. I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
As of August 4 2018, I've got the LEDs working ... mostly. Caps Lock and Num Lock LEDs work for me. The Scroll Lock LED does work on my keyboard, but I can't get it to work when I use the Scroll Lock key on my keyboard. I also have no idea how to get the Num Pad LED working when I switch to the Numpad layer.
## Still to do: ## Still to do:
* Implement the CapsLock, NumLock, and ScrLck LEDs on the off-chance that I decide to actually solder some to the keyboard. * Figure out how to make the Numpad and ScrLck LEDs work properly.
### Function Keys on All Layers (keypad toggles): ### Function Keys on All Layers (keypad toggles):
,-----------------------------------------------------------------. ,-----------------------------------------------------------------.

View file

@ -35,57 +35,27 @@ void led_init_ports() {
} }
void led_set_kb(uint8_t usb_led) { void led_set_kb(uint8_t usb_led) {
DDRF |= (1<<0); // Keypad LED
if (usb_led & (1<<USB_LED_COMPOSE)) { if (usb_led & (1<<USB_LED_COMPOSE)) {
PORTF |= (1<<0);
} else {
PORTF &= ~(1<<0); PORTF &= ~(1<<0);
} else {
PORTF |= (1<<0);
} }
DDRF |= (1<<1); // ScrLock LED
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) { if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
PORTF |= (1<<1);
} else {
PORTF &= ~(1<<1); PORTF &= ~(1<<1);
} else {
PORTF |= (1<<1);
} }
DDRF |= (1<<2); // NumLock LED
if (usb_led & (1<<USB_LED_NUM_LOCK)) { if (usb_led & (1<<USB_LED_NUM_LOCK)) {
PORTF |= (1<<2);
} else {
PORTF &= ~(1<<2); PORTF &= ~(1<<2);
}
DDRF |= (1<<3); // CapsLock LED
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
PORTF |= (1<<3);
} else { } else {
PORTF |= (1<<2);
}
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
PORTF &= ~(1<<3); PORTF &= ~(1<<3);
} else {
PORTF |= (1<<3);
} }
led_set_user(usb_led);
inline void kinesis_keypad_led_on(void) { DDRF |= (1<<0); PORTF |= (1<<0); }
inline void kinesis_scroll_led_on(void) { DDRF |= (1<<1); PORTF |= (1<<1); }
inline void kinesis_num_led_on(void) { DDRF |= (1<<2); PORTF |= (1<<2); }
inline void kinesis_caps_led_on(void) { DDRF |= (1<<3); PORTF |= (1<<3); }
inline void kinesis_keypad_led_off(void) { DDRF &= ~(1<<0); PORTF &= ~(1<<0); }
inline void kinesis_scroll_led_off(void) { DDRF &= ~(1<<1); PORTF &= ~(1<<1); }
inline void kinesis_num_led_off(void) { DDRF &= ~(1<<2); PORTF &= ~(1<<2); }
inline void kinesis_caps_led_off(void) { DDRF &= ~(1<<3); PORTF &= ~(1<<3); }
} }
/* This is the old code that has the port information in it.
inline void kinesis_keypad_led_on(void) { DDRF |= (1<<0); PORTF |= (1<<0); }
inline void kinesis_scroll_led_on(void) { DDRF |= (1<<1); PORTF |= (1<<1); }
inline void kinesis_num_led_on(void) { DDRF |= (1<<2); PORTF |= (1<<2); }
inline void kinesis_caps_led_on(void) { DDRF |= (1<<3); PORTF |= (1<<3); }
inline void kinesis_keypad_led_off(void) { DDRF &= ~(1<<0); PORTF &= ~(1<<0); }
inline void kinesis_scroll_led_off(void) { DDRF &= ~(1<<1); PORTF &= ~(1<<1); }
inline void kinesis_num_led_off(void) { DDRF &= ~(1<<2); PORTF &= ~(1<<2); }
inline void kinesis_caps_led_off(void) { DDRF &= ~(1<<3); PORTF &= ~(1<<3); }
*/

View file

@ -15,12 +15,11 @@
#define RGBLED_NUM 12 #define RGBLED_NUM 12
#elif defined(KEYBOARD_lets_split_rev2) #elif defined(KEYBOARD_lets_split_rev2)
#define RGBLED_NUM 8 #define RGBLED_NUM 8
#elif defined(KEYBOARD_jj40)
#define RGBLED_NUM 5
#else #else
#define RGBLED_NUM 1 #define RGBLED_NUM 1
#endif #endif
#ifdef KEYBOARD_jj40
#define RGBLED_NUM 5
#endif
#define RGBLIGHT_ANIMATIONS #define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_HUE_STEP 8

View file

@ -175,6 +175,16 @@ void persistent_default_layer_set(uint16_t default_layer) {
default_layer_set(default_layer); default_layer_set(default_layer);
} }
void matrix_init_user(void) {
#ifdef BOOTLOADER_CATERINA
// This will disable the red LEDs on the ProMicros
DDRD &= ~(1<<5);
PORTD &= ~(1<<5);
DDRB &= ~(1<<0);
PORTB &= ~(1<<0);
#endif
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) { switch (keycode) {
case QWERTY: case QWERTY:

View file

@ -7,12 +7,18 @@ MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
ifneq ("$(KEYBOARD)","nyquist")
RGBLIGHT_ENABLE = yes
BACKLIGHT_ENABLE = yes
else
RGBLIGHT_ENABLE = no
BACKLIGHT_ENABLE = no
endif
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend