forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
41 changed files
with
7,367 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
#ifndef CONFIG_H | ||
#define CONFIG_H | ||
|
||
#include "config_common.h" | ||
|
||
/* USB Device descriptor parameter */ | ||
#define VENDOR_ID 0xFEED | ||
#define PRODUCT_ID 0x6060 | ||
#define DEVICE_VER 0x0002 | ||
#define MANUFACTURER Neilzx - Design | ||
#define PRODUCT Final80 % v2 | ||
#define DESCRIPTION STM32 based 80% keyboard with full rgb, oled and encoder. | ||
|
||
/* key matrix set */ | ||
#define MATRIX_ROWS 6 | ||
#define MATRIX_COLS 15 | ||
|
||
#define MATRIX_ROW_PINS { A10, A9, A1, A0, B8, B9 } | ||
#define MATRIX_COL_PINS { A8, B15, B14, B13, B12, B11, B10, B1, B0, A6, A5, A4, A3, A2, C13 } | ||
#define DIODE_DIRECTION ROW2COL | ||
#define DEBOUNCE 5 | ||
|
||
/* RGN Matrix */ | ||
#ifdef RGB_MATRIX_ENABLE | ||
# define RGB_DI_PIN A7 | ||
# define RGBLED_NUM 100 | ||
# define DRIVER_LED_TOTAL RGBLED_NUM | ||
|
||
# define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 | ||
# define WS2812_PWM_CHANNEL 2 // default: 2 | ||
# define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 | ||
# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. | ||
# define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. | ||
|
||
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 // 最大亮度限制 | ||
# define RGB_DISABLE_WHEN_USB_SUSPENDED true | ||
# define RGB_MATRIX_CENTER { 96, 32 } | ||
# define RGB_MATRIX_KEYPRESSES | ||
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS | ||
#endif | ||
|
||
/* Encoder */ | ||
#ifdef ENCODER_ENABLE | ||
# define ENCODERS_PAD_A { B4 } | ||
# define ENCODERS_PAD_B { B5 } | ||
# define ENCODER_RESOLUTION 4 | ||
//# define ENCODER_DIRECTION_FLIP // 如果旋钮反向,启用此处 | ||
#endif | ||
|
||
/* MOUSEKEY */ | ||
#ifdef MOUSEKEY_ENABLE | ||
# define MOUSEKEY_DELAY 0 | ||
# define MOUSEKEY_INTERVAL 17 | ||
# define MK_3_SPEED | ||
# define MK_MOMENTARY_ACCEL | ||
# define MK_C_OFFSET_UNMOD 64 // MOUSEKEY移动鼠标指针一次64像素 | ||
# define MK_C_INTERVAL_UNMOD 17 | ||
#endif | ||
|
||
/* OLED */ | ||
#ifdef OLED_DRIVER_ENABLE | ||
# define OLED_DISPLAY_128X64 | ||
# define I2C_DRIVER I2CD1 | ||
//# define OLED_IC OLED_IC_SH1106 // 选用1.3寸SH1106主控OLED时打开, 0.96寸SSD1306主控OLED注释掉本行。 | ||
//# define OLED_COLUMN_OFFSET 2 // 调整OLED纵向偏移,0.96寸SSD1306主控OLED注释掉本行。 | ||
# define I2C1_TIMINGR_PRESC 0U | ||
# define I2C1_TIMINGR_SCLDEL 7U | ||
# define I2C1_TIMINGR_SDADEL 0U | ||
# define I2C1_TIMINGR_SCLH 38U | ||
# define I2C1_TIMINGR_SCLL 129U | ||
# define OLED_TIMEOUT 60000 // 60秒无操作关闭OLED | ||
# define OLED_FONT_HEIGHT 8 | ||
# define OLED_FONT_WIDTH 6 | ||
# define OLED_FONT_H "neil_font.c" | ||
#endif | ||
|
||
/* Others */ | ||
#define TAP_HOLD_CAPS_DELAY 10 | ||
|
||
#ifdef CONSOLE_ENABLE | ||
# define DEBUG_MATRIX_SCAN_RATE | ||
#endif | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
#include "final80v2.h" | ||
|
||
#ifdef RGB_MATRIX_ENABLE | ||
|
||
# define XX NO_LED | ||
led_config_t g_led_config = { // | ||
{ | ||
// Key Matrix to LED Index | ||
{4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, XX}, // | ||
{31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, XX}, // | ||
{32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, XX}, // | ||
{58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, XX, XX}, // | ||
{59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, XX, 70, 71, 72}, // | ||
{81, 80, 79, XX, XX, 78, XX, XX, XX, 77, XX, 76, 75, 74, 73}, // !! 轴灯对应矩阵的接线顺序 | ||
}, | ||
{ | ||
// LED Index to Physical Position | ||
{214, 4}, {220, 11}, {214, 18}, {206, 11}, // First 4 for encoder. | ||
{2, 3}, {19, 3}, {32, 3}, {45, 3}, {59, 3}, {76, 3}, {89, 3}, {103, 3}, {116, 3}, {133, 3}, {147, 3}, {160, 3}, {173, 3}, {191, 3}, // row0 | ||
{184, 16}, {163, 16}, {150, 16}, {136, 16}, {123, 16}, {110, 16}, {96, 16}, {83, 16}, {69, 16}, {56, 16}, {42, 16}, {29, 16}, {16, 16}, {2, 16}, // row1 | ||
{5, 27}, {22, 27}, {36, 27}, {49, 27}, {63, 27}, {76, 27}, {89, 27}, {103, 27}, {116, 27}, {130, 27}, {143, 27}, {157, 27}, {170, 27}, {187, 27}, // row2 | ||
{182, 38}, {160, 38}, {146, 38}, {133, 38}, {119, 38}, {106, 38}, {93, 38}, {79, 38}, {66, 38}, {52, 38}, {39, 38}, {26, 38}, {7, 38}, // row3 | ||
{10, 49}, {32, 49}, {46, 49}, {59, 49}, {73, 49}, {86, 49}, {99, 49}, {113, 49}, {126, 49}, {140, 49}, {153, 49}, {178, 49}, {207, 52}, {221, 63}, // row4 | ||
{207, 63}, {193, 63}, {175, 60}, {160, 60}, {145, 60}, {89, 60}, {34, 60}, {19, 60}, {3, 60}, // row5 | ||
{1, 64}, {43, 64}, {72, 64}, {104, 64}, {137, 64}, {180, 64}, {224, 64}, {224, 46}, {224, 29}, {224, 1}, {180, 1}, {147, 1}, {116.1}, {77, 1}, {45, 1}, {1, 1}, {1, 27}, {1, 41}, // Last 18 for backlight. | ||
//!! 按接线顺序排列轴灯的物理位置 | ||
}, | ||
|
||
{ | ||
// LED Index to Flag | ||
8, 8, 8, 8, // | ||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, // | ||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, // | ||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, // | ||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, // | ||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, // | ||
1, 1, 1, 4, 1, 4, 1, 4, 4, // | ||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, //!! 每个灯是干啥用的 | ||
|
||
}}; | ||
|
||
// {旋钮背光用作层指示灯} -----------------------------------------------// | ||
void rgb_matrix_indicators_kb(void) { | ||
if (host_keyboard_led_state().caps_lock) { // Capslock = RED | ||
rgb_matrix_set_color(0, 200, 0, 0); | ||
rgb_matrix_set_color(1, 200, 0, 0); | ||
rgb_matrix_set_color(2, 200, 0, 0); | ||
rgb_matrix_set_color(3, 200, 0, 0); | ||
} else if (get_autoshift_state()) { // AUTO_SHIFT = GREEN | ||
rgb_matrix_set_color(0, 0, 200, 0); | ||
rgb_matrix_set_color(1, 0, 200, 0); | ||
rgb_matrix_set_color(2, 0, 200, 0); | ||
rgb_matrix_set_color(3, 0, 200, 0); | ||
} else if (biton32(layer_state) == 1) { // UPPER_LAYER = BLUE | ||
rgb_matrix_set_color(0, 0, 0, 200); | ||
rgb_matrix_set_color(1, 0, 0, 200); | ||
rgb_matrix_set_color(2, 0, 0, 200); | ||
rgb_matrix_set_color(3, 0, 0, 200); | ||
} else { | ||
rgb_matrix_set_color(0, 0, 0, 0); | ||
rgb_matrix_set_color(1, 0, 0, 0); | ||
rgb_matrix_set_color(2, 0, 0, 0); | ||
rgb_matrix_set_color(3, 0, 0, 0); | ||
} | ||
} | ||
|
||
#endif | ||
|
||
#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED | ||
void suspend_power_down_kb(void) { | ||
rgb_matrix_set_suspend_state(true); | ||
suspend_power_down_user(); | ||
} | ||
|
||
void suspend_wakeup_init_kb(void) { | ||
rgb_matrix_set_suspend_state(false); | ||
suspend_wakeup_init_user(); | ||
} | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
#ifndef FINAL80V2_H | ||
#define FINAL80V2_H | ||
|
||
#include "quantum.h" | ||
|
||
#define LAYOUT(\ | ||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ | ||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ | ||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ | ||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ | ||
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K412, K413, K414, \ | ||
K500, K501, K502, K505, K509, K511, K512, K513, K514 \ | ||
)\ | ||
{\ | ||
{K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ | ||
{K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO}, \ | ||
{K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO}, \ | ||
{K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO,KC_NO}, \ | ||
{K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, KC_NO,K412, K413, K414 }, \ | ||
{K500, K501, K502, KC_NO,KC_NO,K505, KC_NO,KC_NO,KC_NO,K509, KC_NO,K511, K512, K513, K514 } \ | ||
} | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
/* Copyright 2020 QMK | ||
* | ||
* 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_next <halconf.h> | ||
|
||
#undef HAL_USE_I2C | ||
#define HAL_USE_I2C TRUE | ||
|
||
#undef HAL_USE_PWM | ||
#define HAL_USE_PWM TRUE |
Oops, something went wrong.