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
					
				
					 6 changed files with 49 additions and 114 deletions
				
			
		| 
						 | 
				
			
			@ -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:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue