~ruther/qmk_firmware

817a82378b58ec34b24a71e80f1ac0389aed9d39 — Ramon Imbao 3 years ago 66792b0
[Keyboard] Add TKL-FF v2 (#15144)

Co-authored-by: Drashna Jaelre <drashna@live.com>
M keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c => keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c +39 -0
@@ 25,3 25,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_RGUI, KC_APP,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
    )
};

#ifdef RGBLIGHT_ENABLE
const rgblight_segment_t PROGMEM ll_none[] = RGBLIGHT_LAYER_SEGMENTS(
    {0, 1, HSV_OFF},
    {1, 1, HSV_OFF}
);

const rgblight_segment_t PROGMEM ll_cl[] = RGBLIGHT_LAYER_SEGMENTS(
    {1, 1, HSV_OFF}
);

const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS(
    {0, 1, HSV_OFF}
);

const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl);

void keyboard_post_init_kb(void) {
    rgblight_layers = rgb_layers;

    keyboard_post_init_user();
}

bool led_update_kb(led_t led_state) {
    bool res = led_update_user(led_state);

    if (res) {
        uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock;
        for (uint8_t i=0; i<3; i++) {
            rgblight_set_layer_state(i, false);
        }
        if (lock_bits < 3) {
            rgblight_set_layer_state(lock_bits, true);
        }
    }

    return res;
}
#endif

M keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c => keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c +39 -0
@@ 25,3 25,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_RGUI, KC_APP,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
    )
};

#ifdef RGBLIGHT_ENABLE
const rgblight_segment_t PROGMEM ll_none[] = RGBLIGHT_LAYER_SEGMENTS(
    {0, 1, HSV_OFF},
    {1, 1, HSV_OFF}
);

const rgblight_segment_t PROGMEM ll_cl[] = RGBLIGHT_LAYER_SEGMENTS(
    {1, 1, HSV_OFF}
);

const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS(
    {0, 1, HSV_OFF}
);

const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl);

void keyboard_post_init_kb(void) {
    rgblight_layers = rgb_layers;

    keyboard_post_init_user();
}

bool led_update_kb(led_t led_state) {
    bool res = led_update_user(led_state);

    if (res) {
        uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock;
        for (uint8_t i=0; i<3; i++) {
            rgblight_set_layer_state(i, false);
        }
        if (lock_bits < 3) {
            rgblight_set_layer_state(lock_bits, true);
        }
    }

    return res;
}
#endif

M keyboards/ramonimbao/tkl_ff/keymaps/via/keymap.c => keyboards/ramonimbao/tkl_ff/keymaps/via/keymap.c +39 -0
@@ 49,3 49,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        _______, _______, _______,                            _______,                            _______, _______, _______, _______,          _______, _______, _______
    )
};

#ifdef RGBLIGHT_ENABLE
const rgblight_segment_t PROGMEM ll_none[] = RGBLIGHT_LAYER_SEGMENTS(
    {0, 1, HSV_OFF},
    {1, 1, HSV_OFF}
);

const rgblight_segment_t PROGMEM ll_cl[] = RGBLIGHT_LAYER_SEGMENTS(
    {1, 1, HSV_OFF}
);

const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS(
    {0, 1, HSV_OFF}
);

const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl);

void keyboard_post_init_kb(void) {
    rgblight_layers = rgb_layers;

    keyboard_post_init_user();
}

bool led_update_kb(led_t led_state) {
    bool res = led_update_user(led_state);

    if (res) {
        uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock;
        for (uint8_t i=0; i<3; i++) {
            rgblight_set_layer_state(i, false);
        }
        if (lock_bits < 3) {
            rgblight_set_layer_state(lock_bits, true);
        }
    }

    return res;
}
#endif

M keyboards/ramonimbao/tkl_ff/readme.md => keyboards/ramonimbao/tkl_ff/readme.md +1 -1
@@ 2,7 2,7 @@

![TKL-FF](https://i.imgur.com/GJCo3F5l.png)

A TKL PCB made for the Geonworks Frog keyboard that supports both F12 and F13.
A TKL PCB made for the Geonworks Frog keyboard that supports both F12 and F13. V2 simply adds RGB indicator LEDs.

* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao)
* Hardware Supported: ATmega32u4

A keyboards/ramonimbao/tkl_ff/v2/config.h => keyboards/ramonimbao/tkl_ff/v2/config.h +52 -0
@@ 0,0 1,52 @@
/* Copyright 2021 Ramon Imbao
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#pragma once

#include "config_common.h"

#undef PRODUCT_ID
#define PRODUCT_ID   0x10FF

#define RGBLIGHT_LAYERS
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF

#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#    define RGBLED_NUM 26
#    define RGBLIGHT_HUE_STEP 32
#    define RGBLIGHT_SAT_STEP 32
#    define RGBLIGHT_VAL_STEP 32
//#    define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
//#    define RGBLIGHT_SLEEP  /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
// #    define RGBLIGHT_ANIMATIONS
/*== or choose animations ==*/
#    define RGBLIGHT_EFFECT_BREATHING
#    define RGBLIGHT_EFFECT_RAINBOW_MOOD
#    define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//#    define RGBLIGHT_EFFECT_SNAKE
//#    define RGBLIGHT_EFFECT_KNIGHT
#    define RGBLIGHT_EFFECT_CHRISTMAS
#    define RGBLIGHT_EFFECT_STATIC_GRADIENT
#    define RGBLIGHT_EFFECT_RGB_TEST
#    define RGBLIGHT_EFFECT_ALTERNATING
/*== customize breathing effect ==*/
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
//#    define RGBLIGHT_BREATHE_TABLE_SIZE 256      // 256(default) or 128 or 64
/*==== use exp() and sin() ====*/
//#    define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85  // 1 to 2.7
//#    define RGBLIGHT_EFFECT_BREATHE_MAX    255   // 0 to 255
#endif

A keyboards/ramonimbao/tkl_ff/v2/rules.mk => keyboards/ramonimbao/tkl_ff/v2/rules.mk +1 -0
@@ 0,0 1,1 @@
RGBLIGHT_ENABLE = yes        # Enable keyboard RGB underglow

A keyboards/ramonimbao/tkl_ff/v2/v2.c => keyboards/ramonimbao/tkl_ff/v2/v2.c +17 -0
@@ 0,0 1,17 @@
/* Copyright 2021 Ramon Imbao
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * 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 "v2.h"

A keyboards/ramonimbao/tkl_ff/v2/v2.h => keyboards/ramonimbao/tkl_ff/v2/v2.h +18 -0
@@ 0,0 1,18 @@
/* Copyright 2021 Ramon Imbao
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#pragma once

#include "quantum.h"