Skip to content

Commit

Permalink
addd Redux60RGB ANSI
Browse files Browse the repository at this point in the history
  • Loading branch information
yangdigi committed Jul 28, 2024
1 parent 7b8a354 commit 8c7f718
Show file tree
Hide file tree
Showing 14 changed files with 1,014 additions and 0 deletions.
19 changes: 19 additions & 0 deletions keyboards/ydkb/simpo_f1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## Make

```
make ydkb/simpo_f1:xxx_vial
```

xxx means redux60rgb_ansi or other ...

## Convert BIN to UF2

```
uf2conv.py ydkb_simpo_f1_xxx_vial.bin -b 0x8004000 -c -f 0x9d5bcf1d -o xxx.uf2
```

## Keyboards using UniCore-F1

| Keyboards using Simpo_F1 |
| -------------------------- |
| KBDFans Redux60RGB ANSI |
22 changes: 22 additions & 0 deletions keyboards/ydkb/simpo_f1/chconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* Copyright 2023 YANG
*
* 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

#define CH_CFG_ST_TIMEDELTA 0

#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE

#include_next <chconf.h>
55 changes: 55 additions & 0 deletions keyboards/ydkb/simpo_f1/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@

#pragma once

#include "config_common.h"

/* USB Device descriptor parameter */
#define FW_VER_DATE DO7S
#define CONTACT(x,y) x##y
#define CONTACT2(x,y) CONTACT(x,y)
#define FW_VER CONTACT2(VIAL_, FW_VER_DATE)
#define VENDOR_ID 0x9D5B
#define PRODUCT_ID 0x2450
#define DEVICE_VER 0x0001
#define MANUFACTURER KBDFans_YDKB
#if CONSOLE_ENABLE
#define PRODUCT Simpo_F1 Uni Debug (FW_VER)
#else
#define PRODUCT Simpo_F1 Uni(FW_VER)
#endif

#define USB_MAX_POWER_CONSUMPTION 350
#define WAIT_FOR_USB

/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
//#define FORCE_NKRO //When FORCE_NKRO, Enable NKRO in QMK Settings will not be saved

#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
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLIGHT_DEFAULT_MODE 7 // defaut: RAINBOW_MOOD

#define RGBLIGHT_LIMIT_VAL must_redefine
#define RGBLIGHT_SLEEP
#define RGB_DI_PIN A7
#define RGBLED_NUM must_redefine

#define DRIVER_LED_TOTAL must_redefine

//#define SUSPEND_ACTION

/* key combination for command */
#define IS_COMMAND() ( \
(get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) || \
(get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RSHIFT))) \
)

20 changes: 20 additions & 0 deletions keyboards/ydkb/simpo_f1/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/* Copyright 2023 YANG
*
* 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>
78 changes: 78 additions & 0 deletions keyboards/ydkb/simpo_f1/keymaps/redux60rgb_ansi_vial/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
#pragma once

#undef PRODUCT_ID
#define PRODUCT_ID 0x2408
#undef MANUFACTURER
#define MANUFACTURER KBDFans_YDKB
#undef PRODUCT
#if CONSOLE_ENABLE
#define PRODUCT Redux60RGB ANSI Debug (FW_VER)
#else
#define PRODUCT Redux60RGB ANSI (FW_VER)
#endif
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
#define FLASH_KEYMAP_COUNT 2
#define VIAL_KEYBOARD_UID {0x2E, 0xE6, 0x0E, 0x23, 0x34, 0xEF, 0x99, 0x37}

#undef RGBLIGHT_LIMIT_VAL
#define RGBLIGHT_LIMIT_VAL 96
#undef RGBLED_NUM
#define RGBLED_NUM (61+18)
#define INDICATOR_NUM 0

#define RGB_DI_PIN A7
#undef DRIVER_LED_TOTAL
#define DRIVER_LED_TOTAL (61+18)
#define RGB_DISABLE_WHEN_USB_SUSPENDED
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 96
#define RGB_MATRIX_LED_FLUSH_LIMIT 16
#define RGB_MATRIX_KEYPRESSES

// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
# 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_RAINBOW_MOVING_CHEVRON
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
# 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_RAIN
# define ENABLE_RGB_MATRIX_PIXEL_FLOW
# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
# 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
66 changes: 66 additions & 0 deletions keyboards/ydkb/simpo_f1/keymaps/redux60rgb_ansi_vial/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] =
{
{
{KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPACE, KC_NO},
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET, KC_RBRACKET, KC_BSLASH, KC_NO},
{KC_CAPSLOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_NO, KC_ENTER, KC_NO},
{KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT, KC_NO, KC_NO, KC_NO},
{KC_LCTRL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_SPACE, KC_NO, KC_NO, KC_NO, MO(1), KC_RALT, KC_RGUI, KC_NO, KC_RCTRL, KC_NO}
},
{
{KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DELETE, KC_NO},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_NO},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO},
{KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_NO}
}
};

#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
// Key Matrix to LED Index
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
{ 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
{ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 },
{ 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
{ 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, 59, NO_LED, 60 }
}, {
// LED Index to Physical Position
// x = 224 / (NUMBER_OF_COLS - 1) * COL_POSITION
// y = 64 / (NUMBER_OF_ROWS - 1) * ROW_POSITION
{ 0, 12 }, { 13, 12 }, { 26, 12 }, { 39, 12 }, { 52, 12 }, { 65, 12 }, { 78, 12 }, { 91, 12 }, { 104, 12 }, { 117, 12 }, { 130, 12 }, { 143, 12 }, { 156, 12 }, { 169, 12 },
{ 169, 24 }, { 156, 24 }, { 143, 24 }, { 130, 24 }, { 117, 24 }, { 104, 24 }, { 91, 24 }, { 78, 24 }, { 65, 24 }, { 52, 24 }, { 39, 24 }, { 26, 24 }, { 13, 24 }, { 0, 24 },
{ 0, 36 }, { 13, 36 }, { 26, 36 }, { 39, 36 }, { 52, 36 }, { 65, 36 }, { 78, 36 }, { 91, 36 }, { 104, 36 }, { 117, 36 }, { 130, 36 }, { 143, 36 }, { 169, 36 },
{ 169, 48 }, { 130, 48 }, { 117, 48 }, { 104, 48 }, { 91, 48 }, { 78, 48 }, { 65, 48 }, { 52, 48 }, { 39, 48 }, { 26, 48 }, { 13, 48 }, { 0, 48 },
{ 0, 64 }, { 13, 64 }, { 26, 64 }, { 78, 64 }, { 130, 64 }, { 143, 64 }, { 156, 64 }, { 169, 64 },

{ 169, 48 }, { 143, 48 }, { 117, 48 }, { 91, 48 }, { 65, 48 }, { 39, 48 }, { 13, 48 }, { 0, 48 }, { 0, 36 },
{ 0, 12 }, { 26, 12 }, { 52, 12 }, { 78, 12 }, { 104, 12 },{ 130, 12 }, { 156, 12 }, { 169, 12 }, { 169, 36 }
}, {
// LED Index to Flag
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, 4, 4, 4, 4, 4, 4,

2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2
} };

__attribute__ ((weak))
void rgb_matrix_indicators_user(void) {
if (host_keyboard_led_state().caps_lock) {
rgb_matrix_set_color(28, 128, 0, 128);
}
if (rgb_matrix_config.enable == 0) {
if (host_keyboard_led_state().caps_lock == 0) {
rgb_matrix_set_color(28, 0, 0, 0);
}
rgb_matrix_update_pwm_buffers();
}
}
#endif
11 changes: 11 additions & 0 deletions keyboards/ydkb/simpo_f1/keymaps/redux60rgb_ansi_vial/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIAL_INSECURE = yes
QMK_SETTINGS = yes
TAP_DANCE_ENABLE = yes
COMBO_ENABLE = yes
CONSOLE_ENABLE = no

RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
VIALRGB_ENABLE = yes
19 changes: 19 additions & 0 deletions keyboards/ydkb/simpo_f1/keymaps/redux60rgb_ansi_vial/vial.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"lighting": "vialrgb",
"matrix": {"rows": 5, "cols": 15},
"customKeycodes": [
{"name": "ST(W)", "title": "", "shortName": "ST(W)"},
{"name": "ST(A)", "title": "", "shortName": "ST(A)"},
{"name": "ST(S)", "title": "", "shortName": "ST(S)"},
{"name": "ST(D)", "title": "", "shortName": "ST(D)"}
],
"layouts": {
"keymap": [
[{"c":"#777777"},"0,0",{"c":"#cccccc"},"0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","0,9","0,10","0,11","0,12",{"c":"#aaaaaa","w":2},"0,13"],
[{"w":1.5},"1,0",{"c":"#cccccc"},"1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9","1,10","1,11","1,12",{"w":1.5},"1,13"],
[{"c":"#aaaaaa","w":1.75},"2,0",{"c":"#cccccc"},"2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10","2,11",{"c":"#777777","w":2.25},"2,13"],
[{"c":"#aaaaaa","w":2.25},"3,0",{"c":"#cccccc"},"3,1","3,2","3,3","3,4","3,5","3,6","3,7","3,8","3,9","3,10",{"c":"#aaaaaa","w":2.75},"3,11"],
[{"w":1.25},"4,0",{"w":1.25},"4,1",{"w":1.25},"4,2",{"c":"#777777","w":6.25},"4,5",{"c":"#aaaaaa","w":1.25},"4,9",{"w":1.25},"4,10",{"w":1.25},"4,11",{"w":1.25},"4,13"]
]
}
}
85 changes: 85 additions & 0 deletions keyboards/ydkb/simpo_f1/ld/STM32F103CBT6_uf2_bootloader.ld
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

/*
* ST32F103xB UF2 Bootloader memory setup
*/
MEMORY
{
flash0 : org = 0x08004000, len = 128k - 0x4000
flash1 : org = 0x00000000, len = 0
flash2 : org = 0x00000000, len = 0
flash3 : org = 0x00000000, len = 0
flash4 : org = 0x00000000, len = 0
flash5 : org = 0x00000000, len = 0
flash6 : org = 0x00000000, len = 0
flash7 : org = 0x00000000, len = 0
ram0 : org = 0x20000000, len = 20k
ram1 : org = 0x00000000, len = 0
ram2 : org = 0x00000000, len = 0
ram3 : org = 0x00000000, len = 0
ram4 : org = 0x00000000, len = 0
ram5 : org = 0x00000000, len = 0
ram6 : org = 0x00000000, len = 0
ram7 : org = 0x00000000, len = 0
}

/* For each data/text section two region are defined, a virtual region
and a load region (_LMA suffix).*/

/* Flash region to be used for exception vectors.*/
REGION_ALIAS("VECTORS_FLASH", flash0);
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);

/* Flash region to be used for constructors and destructors.*/
REGION_ALIAS("XTORS_FLASH", flash0);
REGION_ALIAS("XTORS_FLASH_LMA", flash0);

/* Flash region to be used for code text.*/
REGION_ALIAS("TEXT_FLASH", flash0);
REGION_ALIAS("TEXT_FLASH_LMA", flash0);

/* Flash region to be used for read only data.*/
REGION_ALIAS("RODATA_FLASH", flash0);
REGION_ALIAS("RODATA_FLASH_LMA", flash0);

/* Flash region to be used for various.*/
REGION_ALIAS("VARIOUS_FLASH", flash0);
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);

/* Flash region to be used for RAM(n) initialization data.*/
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);

/* RAM region to be used for Main stack. This stack accommodates the processing
of all exceptions and interrupts.*/
REGION_ALIAS("MAIN_STACK_RAM", ram0);

/* RAM region to be used for the process stack. This is the stack used by
the main() function.*/
REGION_ALIAS("PROCESS_STACK_RAM", ram0);

/* RAM region to be used for data segment.*/
REGION_ALIAS("DATA_RAM", ram0);
REGION_ALIAS("DATA_RAM_LMA", flash0);

/* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);

/* RAM region to be used for the default heap.*/
REGION_ALIAS("HEAP_RAM", ram0);

/* Generic rules inclusion.*/
INCLUDE rules.ld
Loading

0 comments on commit 8c7f718

Please sign in to comment.