~ruther/qmk_firmware

732d1dd4f6f9ec060b4b8332309c82ebb6c3ca25 — Jonathan Rascher 5 years ago e9c44e3
Fix KBDPad MKI backlight, Num Lock LEDs; clean up firmware a bit (#6883)

* Update keyboard kit URL

* Replace custom RGB driver with new one from #7183

* Replace backlight with standard impl

* Remove some unnecessary default settings

* Disable COMMAND since docs want it off by default

(There's no working IS_COMMAND set for this board anyway, so it's
already a nop.)
M keyboards/kbdfans/kbdpad/mk1/config.h => keyboards/kbdfans/kbdpad/mk1/config.h +5 -4
@@ 27,12 27,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 6
#define MATRIX_COLS 4

//                        0   1   2   3   4   5   
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5 }
#define MATRIX_COL_PINS { A0, A1, A2, A3 }
#define UNUSED_PINS

#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5

#define BACKLIGHT_LEVELS 1
#define BACKLIGHT_PIN D4
#define BACKLIGHT_BREATHING

#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 6

M keyboards/kbdfans/kbdpad/mk1/info.json => keyboards/kbdfans/kbdpad/mk1/info.json +2 -2
@@ 1,6 1,6 @@
{
  "keyboard_name": "KBDFans KBDPad MKI", 
  "url": "", 
  "keyboard_name": "KBDfans KBDPad MKI", 
  "url": "https://kbdfans.com/products/kbdfans-pad-custom-mechanical-keyboard-diy-kit", 
  "maintainer": "qmk", 
  "width": 4, 
  "height": 6.25, 

M keyboards/kbdfans/kbdpad/mk1/mk1.c => keyboards/kbdfans/kbdpad/mk1/mk1.c +6 -65
@@ 13,76 13,17 @@
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#include "i2c_master.h"
#include "quantum.h"

#ifdef RGBLIGHT_ENABLE
#include "rgblight.h"
extern rgblight_config_t rgblight_config;
#include "quantum.h"

void rgblight_set(void) {
    if (!rgblight_config.enable) {
        for (uint8_t i = 0; i < RGBLED_NUM; i++) {
            led[i].r = 0;
            led[i].g = 0;
            led[i].b = 0;
        }
    }

    i2c_init();
    i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
}
#endif
#define NUMLOCK_PIN D0

void matrix_init_kb(void) {
#ifdef RGBLIGHT_ENABLE
    if (rgblight_config.enable) {
        i2c_init();
        i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
    }
#endif
    // call user level keymaps, if any
    setPinOutput(NUMLOCK_PIN);
    matrix_init_user();
}

void matrix_scan_kb(void) {
#ifdef RGBLIGHT_ENABLE
    rgblight_task();
#endif
    matrix_scan_user();
    /* Nothing else for now. */
}

__attribute__ ((weak))
void matrix_scan_user(void) {
void led_set_kb(uint8_t usb_led) {
    writePin(NUMLOCK_PIN, IS_LED_ON(usb_led, USB_LED_NUM_LOCK));
    led_set_user(usb_led);
}

void backlight_init_ports(void) {
    // initialize pins D0, D1, D4 and D6 as output
    setPinOutput(D0);
    setPinOutput(D1);
    setPinOutput(D4);
    setPinOutput(D6);

    // turn backlight LEDs on
    writePinHigh(D0);
    writePinHigh(D1);
    writePinHigh(D4);
    writePinHigh(D6);
}

void backlight_set(uint8_t level) {
	if (level == 0) {
        // turn backlight LEDs off
        writePinLow(D0);
        writePinLow(D1);
        writePinLow(D4);
        writePinLow(D6);
	} else {
        // turn backlight LEDs on
        writePinHigh(D0);
        writePinHigh(D1);
        writePinHigh(D4);
        writePinHigh(D6);
	}
}
\ No newline at end of file

M keyboards/kbdfans/kbdpad/mk1/readme.md => keyboards/kbdfans/kbdpad/mk1/readme.md +1 -1
@@ 4,7 4,7 @@ Custom numpad.

Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)  
Hardware Supported: KBDPad MKI  
Hardware Availability: No longer available. 
Hardware Availability: [KBDfans](https://kbdfans.com/products/kbdfans-pad-custom-mechanical-keyboard-diy-kit)


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

M keyboards/kbdfans/kbdpad/mk1/rules.mk => keyboards/kbdfans/kbdpad/mk1/rules.mk +3 -5
@@ 31,11 31,9 @@ BOOTMAGIC_ENABLE = no
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
COMMAND_ENABLE = no
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no
RGBLIGHT_CUSTOM_DRIVER = no
RGBLIGHT_ENABLE = no  # PCB has underglow LEDs, but case doesn't let them show.
WS2812_DRIVER = i2c

OPT_DEFS = -DDEBUG_LEVEL=0

QUANTUM_LIB_SRC = i2c_master.c