Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support of TK40X #739

Merged
merged 1 commit into from
Jun 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add support of TK40X
Add support of TK40X
  • Loading branch information
jackytrabbit authored May 25, 2024
commit b3729c1e12fa020fe1f68186c16521217328f0c3
70 changes: 70 additions & 0 deletions keyboards/lazydesigners/tk40x/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#pragma once

#define WS2812_DI_PIN B11
#define RGB_MATRIX_LED_COUNT 8
#define DRIVER_LED_TOTAL RGB_MATRIX_LED_COUNT

// Comment these out if you don't want front indicators leds
// #define RGB_MODS_INDICATOR_ENABLE
// #define RGB_LAYER_INDICATOR_ENABLE

#define RGB_INDICATOR_BRIGHTNESS 5
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
#define RGB_TRIGGER_ON_KEYDOWN
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160
#define RGB_MATRIX_HUE_STEP 4
#define RGB_MATRIX_SAT_STEP 4
#define RGB_MATRIX_VAL_STEP 4
#define RGB_MATRIX_SPD_STEP 16
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define RGB_MATRIX_DEFAULT_HUE 0
#define RGB_MATRIX_DEFAULT_SAT 255
#define RGB_MATRIX_DEFAULT_VAL 32
#define RGB_MATRIX_DEFAULT_SPD 32


#define ENABLE_RGB_MATRIX_ALPHAS_MODS
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_BREATHING
#define ENABLE_RGB_MATRIX_BAND_SAT
#define ENABLE_RGB_MATRIX_BAND_VAL
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
#define ENABLE_RGB_MATRIX_CYCLE_ALL
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
#define ENABLE_RGB_MATRIX_DUAL_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
#define ENABLE_RGB_MATRIX_RAINDROPS
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#define ENABLE_RGB_MATRIX_HUE_BREATHING
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
#define ENABLE_RGB_MATRIX_HUE_WAVE
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
#define ENABLE_RGB_MATRIX_SPLASH
#define ENABLE_RGB_MATRIX_MULTISPLASH
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

81 changes: 81 additions & 0 deletions keyboards/lazydesigners/tk40x/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
{
"keyboard_name": "tk40x",
"manufacturer": "lazydesigners",
"url": "http://lazydesigners.cn",
"maintainer": "lazydesigners",
"usb": {
"vid": "0x4C44",
"pid": "0x0032",
"device_version": "0.0.1"
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": [ "B10", "B8", "C15", "B7", "B6", "B5", "B4", "B3", "A15", "A14", "B12" ],
"rows": ["B13", "B14", "A6", "A5"]
},
"encoder": {
"rotary": [
{"pin_a": "A8", "pin_b": "B15", "resolution": 1},
{"pin_a": "A10", "pin_b": "A9", "resolution": 1}
]
},
"features": {
"console": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"bootmagic": {
"enabled": true,
"matrix": [0, 0]
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 10], "x":0, "y":0},
{"matrix": [1, 10], "x":1, "y":0},
{"matrix": [0, 0], "x":0, "y":1.25},
{"matrix": [0, 1], "x":1, "y":1.25},
{"matrix": [0, 2], "x":2, "y":1.25},
{"matrix": [0, 3], "x":3, "y":1.25},
{"matrix": [0, 4], "x":4, "y":1.25},
{"matrix": [0, 5], "x":5, "y":1.25},
{"matrix": [0, 6], "x":6, "y":1.25},
{"matrix": [0, 7], "x":7, "y":1.25},
{"matrix": [0, 8], "x":8, "y":1.25},
{"matrix": [0, 9], "x":9, "y":1.25, "w":1.25},
{"matrix": [1, 0], "x":0, "y":2.25},
{"matrix": [1, 1], "x":1, "y":2.25},
{"matrix": [1, 2], "x":2, "y":2.25},
{"matrix": [1, 3], "x":3, "y":2.25},
{"matrix": [1, 4], "x":4, "y":2.25},
{"matrix": [1, 5], "x":5, "y":2.25},
{"matrix": [1, 6], "x":6, "y":2.25},
{"matrix": [1, 7], "x":7, "y":2.25},
{"matrix": [1, 8], "x":8, "y":2.25},
{"matrix": [1, 9], "x":9, "y":2.25, "w":1.25},
{"matrix": [2, 0], "x":0, "y":3.25},
{"matrix": [2, 1], "x":1, "y":3.25},
{"matrix": [2, 2], "x":2, "y":3.25},
{"matrix": [2, 3], "x":3, "y":3.25},
{"matrix": [2, 4], "x":4, "y":3.25},
{"matrix": [2, 5], "x":5, "y":3.25},
{"matrix": [2, 6], "x":6, "y":3.25},
{"matrix": [2, 7], "x":7, "y":3.25},
{"matrix": [2, 8], "x":8, "y":3.25},
{"matrix": [2, 9], "x":9, "y":3.25, "w":1.25},
{"matrix": [3, 0], "x":0, "y":4.25},
{"matrix": [3, 1], "x":1, "y":4.25},
{"matrix": [3, 2], "x":2, "y":4.25},
{"matrix": [3, 4], "x":3, "y":4.25, "w":2.25},
{"matrix": [3, 5], "x":5.25, "y":4.25, "w":2},
{"matrix": [3, 7], "x":7.25, "y":4.25},
{"matrix": [3, 8], "x":8.25, "y":4.25},
{"matrix": [3, 9], "x":9.25, "y":4.25}
]
}
}
}
41 changes: 41 additions & 0 deletions keyboards/lazydesigners/tk40x/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright 2023 LAZDESIGNERS
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H
#include "../../rgb.c"

#define LT1_SPC LT(1, KC_SPC)

// For testing only
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
RGB_TOG, KC_MUTE,
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, MO(2),
KC_LCTL, KC_LALT, KC_LGUI, LT1_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
KC_NO, KC_NO,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_INS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC,
KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_COMM, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
[2] = LAYOUT(
KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
};

#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }
};
#endif

12 changes: 12 additions & 0 deletions keyboards/lazydesigners/tk40x/keymaps/vial/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */

#pragma once

#define VIAL_KEYBOARD_UID {0x23, 0xDA, 0xE3, 0xA0, 0x11, 0xE7, 0xC4, 0x0D}

#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 9 }

#define VIAL_COMBO_ENTRIES 32
#define VIAL_TAP_DANCE_ENTRIES 32
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
41 changes: 41 additions & 0 deletions keyboards/lazydesigners/tk40x/keymaps/vial/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright 2023 LAZDESIGNERS
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H
#include "../../rgb.c"

#define LT1_SPC LT(1, KC_SPC)

// For testing only
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE, RGB_TOG,
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, MO(2),
KC_LCTL, KC_LALT, KC_LGUI, LT1_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
KC_NO, KC_NO,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_INS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC,
KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_COMM, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
[2] = LAYOUT(
KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
};

#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }
};
#endif

4 changes: 4 additions & 0 deletions keyboards/lazydesigners/tk40x/keymaps/vial/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIALRGB_ENABLE = yes
ENCODER_MAP_ENABLE = yes
31 changes: 31 additions & 0 deletions keyboards/lazydesigners/tk40x/keymaps/vial/vial.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"lighting": "vialrgb",
"matrix": {"rows": 4, "cols": 11},
"layouts": {
"labels": [
["Bottom Row", "Split", "Longbar"],
["Layout", "Staggered", "Ortho"]
],
"keymap": [
[
{"x":0},"0,0\n\n\n\n\n\n\n\n\ne","0,10","0,1\n\n\n\n\n\n\n\n\ne",{"x":2},"1,0\n\n\n\n\n\n\n\n\ne","1,10","1,1\n\n\n\n\n\n\n\n\ne"
],
[
"0,0\n\n\n1,0","0,1\n\n\n1,0","0,2\n\n\n1,0","0,3\n\n\n1,0","0,4\n\n\n1,0","0,5\n\n\n1,0","0,6\n\n\n1,0","0,7\n\n\n1,0","0,8\n\n\n1,0",{"w":1.25},"0,9\n\n\n1,0",
"0,0\n\n\n1,1","0,1\n\n\n1,1","0,2\n\n\n1,1","0,3\n\n\n1,1","0,4\n\n\n1,1","0,5\n\n\n1,1","0,6\n\n\n1,1","0,7\n\n\n1,1","0,8\n\n\n1,1",{"w":1.25},"0,9\n\n\n1,1"
],

[
{"w":1.25},"1,0\n\n\n1,0","1,1\n\n\n1,0","1,2\n\n\n1,0","1,3\n\n\n1,0","1,4\n\n\n1,0","1,5\n\n\n1,0","1,6\n\n\n1,0","1,7\n\n\n1,0","1,8\n\n\n1,0","1,9\n\n\n1,0",
{"w":1},"1,0\n\n\n1,1","1,1\n\n\n1,1","1,2\n\n\n1,1","1,3\n\n\n1,1","1,4\n\n\n1,1","1,5\n\n\n1,1","1,6\n\n\n1,1","1,7\n\n\n1,1","1,8\n\n\n1,1",{"w":1.25},"1,9\n\n\n1,1"
],
[
{"w":1.75},"2,0\n\n\n1,0","2,1\n\n\n1,0","2,2\n\n\n1,0","2,3\n\n\n1,0","2,4\n\n\n1,0","2,5\n\n\n1,0","2,6\n\n\n1,0","2,7\n\n\n1,0",{"w":1.5},"2,9\n\n\n1,0",
{"w":1},"2,0\n\n\n1,1","2,1\n\n\n1,1","2,2\n\n\n1,1","2,3\n\n\n1,1","2,4\n\n\n1,1","2,5\n\n\n1,1","2,6\n\n\n1,1","2,7\n\n\n1,1","2,8\n\n\n1,1",{"w":1.25},"2,9\n\n\n1,1"
],
["3,0\n\n\n0,0","3,1\n\n\n0,0","3,2\n\n\n0,0",{"w":2.25},"3,4\n\n\n0,0",{"w":2},"3,5\n\n\n0,0","3,7\n\n\n0,0","3,8\n\n\n0,0","3,9\n\n\n0,0",
"3,0\n\n\n0,1","3,1\n\n\n0,1",{"w":6.25},"3,4\n\n\n0,1","3,8\n\n\n0,1","3,9\n\n\n0,1"
]
]
}
}
18 changes: 18 additions & 0 deletions keyboards/lazydesigners/tk40x/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# tk40x

A qaz keyboard designed and produced in 2024 by [LAZYDESIGNERS](http://lazydesigners.cn).

* Keyboard Maintainer: [LAZYDESIGNERS](https://github.com/jackytrabbit)
* Hardware Supported: tk40x
* Hardware Availability: Check [LAZYDESIGNERS's homepage.](http://lazydesigners.cn)

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

make lazydesigners/tk40x:vial

Flashing example for this keyboard:

make lazydesigners/tk40x:vial:flash

**Reset Key:** To enter the bootloader, either push the RESET button on the PCB or the RESET button on the FN layer.

32 changes: 32 additions & 0 deletions keyboards/lazydesigners/tk40x/rgb.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#ifdef RGB_MATRIX_ENABLE
// LED index
// 7, 6, 5, 4, 3, 2, 1, 0

led_config_t g_led_config = {
// Key Matrix to LED Index
{
{ 0 , 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 7 , 7 },
{ 0 , 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 7 , 7 },
{ 0 , 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 7 },
{ 0 , 0 , 1 , 3 , 4 , 6 , 7 , 7 }
},
// LED Index to Physical Positon
{
{ 0 , 8 },
{ 32, 16 },
{ 64, 24 },
{ 96, 32 },
{ 128 , 40 },
{ 160 , 48 },
{ 192 , 56 },
{ 224 , 64 }
},
// LED Index to Flag
{ 1, 1, 1, 1, 1, 1, 1, 1 }
};

#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 80
#define RGB_MATRIX_TYPING_HEATMAP_AREA_LIMIT 32


#endif
2 changes: 2 additions & 0 deletions keyboards/lazydesigners/tk40x/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = ws2812
Loading