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:
parent
f8a915a2db
commit
3e8f272873
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -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):
|
||||||
,-----------------------------------------------------------------.
|
,-----------------------------------------------------------------.
|
||||||
|
|
|
@ -27,65 +27,35 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_init_ports() {
|
void led_init_ports() {
|
||||||
// * Set our LED pins as output
|
// * Set our LED pins as output
|
||||||
DDRF |= (1<<0); // Keypad LED
|
DDRF |= (1<<0); // Keypad LED
|
||||||
DDRF |= (1<<1); // ScrLock LED
|
DDRF |= (1<<1); // ScrLock LED
|
||||||
DDRF |= (1<<2); // NumLock LED
|
DDRF |= (1<<2); // NumLock LED
|
||||||
DDRF |= (1<<3); // CapsLock LED
|
DDRF |= (1<<3); // CapsLock LED
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
PORTF |= (1<<0);
|
} else {
|
||||||
} else {
|
PORTF |= (1<<0);
|
||||||
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);
|
||||||
PORTF |= (1<<1);
|
} else {
|
||||||
} else {
|
PORTF |= (1<<1);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
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); }
|
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 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); }
|
|
||||||
*/
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Build Options
|
# Build Options
|
||||||
# change to "no" to disable the options, or define them in the Makefile in
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
# the appropriate keymap folder that will get included automatically
|
# the appropriate keymap folder that will get included automatically
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue