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 readmemaster
parent
f8a915a2db
commit
3e8f272873
|
@ -299,58 +299,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
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.
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
* 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):
|
||||
,-----------------------------------------------------------------.
|
||||
|
|
|
@ -27,65 +27,35 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
|||
}
|
||||
|
||||
void led_init_ports() {
|
||||
// * Set our LED pins as output
|
||||
DDRF |= (1<<0); // Keypad LED
|
||||
DDRF |= (1<<1); // ScrLock LED
|
||||
DDRF |= (1<<2); // NumLock LED
|
||||
DDRF |= (1<<3); // CapsLock LED
|
||||
// * Set our LED pins as output
|
||||
DDRF |= (1<<0); // Keypad LED
|
||||
DDRF |= (1<<1); // ScrLock LED
|
||||
DDRF |= (1<<2); // NumLock LED
|
||||
DDRF |= (1<<3); // CapsLock LED
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
DDRF |= (1<<0); // Keypad LED
|
||||
if (usb_led & (1<<USB_LED_COMPOSE)) {
|
||||
PORTF |= (1<<0);
|
||||
} else {
|
||||
PORTF &= ~(1<<0);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
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_SCROLL_LOCK)) {
|
||||
PORTF &= ~(1<<1);
|
||||
} else {
|
||||
PORTF |= (1<<1);
|
||||
}
|
||||
|
||||
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
|
||||
#elif defined(KEYBOARD_lets_split_rev2)
|
||||
#define RGBLED_NUM 8
|
||||
#elif defined(KEYBOARD_jj40)
|
||||
#define RGBLED_NUM 5
|
||||
#else
|
||||
#define RGBLED_NUM 1
|
||||
#endif
|
||||
#ifdef KEYBOARD_jj40
|
||||
#define RGBLED_NUM 5
|
||||
#endif
|
||||
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
|
|
|
@ -175,6 +175,16 @@ void persistent_default_layer_set(uint16_t 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) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# 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
|
||||
#
|
||||
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)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
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
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
|
Loading…
Reference in New Issue