Skip to content

Commit 41ad20f

Browse files
committed
v0.2 release
1 parent 901eee1 commit 41ad20f

31 files changed

+77163
-49950
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
**auto_save**
44
**autosave**
55
**cache**
6+
kicad/production

firmware/le_chiffre_32/config.h

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,68 @@
11
#pragma once
2+
3+
#define ENCODER_MAP_ENABLE
4+
5+
#define WS2812_DI_PIN A15
6+
#define RGB_MATRIX_LED_COUNT 11
7+
#define DRIVER_LED_TOTAL RGB_MATRIX_LED_COUNT
8+
9+
#define RGB_MATRIX_MODS_INDICATOR
10+
#define RGB_MATRIX_LAYER_INDICATOR
11+
12+
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
13+
#define RGB_MATRIX_KEYPRESSES
14+
#define RGB_TRIGGER_ON_KEYDOWN
15+
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
16+
#define RGB_MATRIX_HUE_STEP 4
17+
#define RGB_MATRIX_SAT_STEP 4
18+
#define RGB_MATRIX_VAL_STEP 4
19+
#define RGB_MATRIX_SPD_STEP 16
20+
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
21+
#define RGB_MATRIX_DEFAULT_HUE 0
22+
#define RGB_MATRIX_DEFAULT_SAT 255
23+
#define RGB_MATRIX_DEFAULT_VAL 32
24+
#define RGB_MATRIX_DEFAULT_SPD 32
25+
26+
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
27+
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
28+
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
29+
#define ENABLE_RGB_MATRIX_BREATHING
30+
#define ENABLE_RGB_MATRIX_BAND_SAT
31+
#define ENABLE_RGB_MATRIX_BAND_VAL
32+
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
33+
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
34+
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
35+
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
36+
#define ENABLE_RGB_MATRIX_CYCLE_ALL
37+
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
38+
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
39+
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
40+
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
41+
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
42+
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
43+
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
44+
#define ENABLE_RGB_MATRIX_DUAL_BEACON
45+
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
46+
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
47+
#define ENABLE_RGB_MATRIX_RAINDROPS
48+
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
49+
#define ENABLE_RGB_MATRIX_HUE_BREATHING
50+
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
51+
#define ENABLE_RGB_MATRIX_HUE_WAVE
52+
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
53+
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
54+
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
55+
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
56+
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
57+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
58+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
59+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
60+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
61+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
62+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
63+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
64+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
65+
#define ENABLE_RGB_MATRIX_SPLASH
66+
#define ENABLE_RGB_MATRIX_MULTISPLASH
67+
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
68+
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

firmware/le_chiffre_32/info.json

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
]
2222
},
2323
"features": {
24-
"encoders": true,
24+
"console": true,
25+
"encoder": true,
2526
"extrakey": true,
2627
"mousekey": true,
2728
"nkro": true
@@ -117,14 +118,4 @@
117118
]
118119
}
119120
},
120-
"rgblight": {
121-
"led_count": 11,
122-
"pin": "A15",
123-
"hue_steps": 10,
124-
"saturation_steps": 17,
125-
"brightness_steps": 17,
126-
"animations": {
127-
"rainbow_mood": true
128-
}
129-
}
130121
}

firmware/le_chiffre_32/keymaps/default/keymap.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
// SPDX-License-Identifier: GPL-2.0-or-later
33

44
#include QMK_KEYBOARD_H
5-
5+
#include "../../rgb.c"
66

77
// Just something for quick testing, not meant to be used
88
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
99
[0] = LAYOUT(
10-
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MUTE, KC_Y, KC_U, KC_I, KC_O, KC_P,
10+
KC_Q, KC_W, KC_E, KC_R, KC_T, RGB_TOG, KC_Y, KC_U, KC_I, KC_O, KC_P,
1111
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT,
1212
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
1313
LT(1, KC_ESC), KC_ENT, KC_SPC, LT(2, KC_BSPC)
@@ -27,3 +27,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
2727
_______, _______, _______, _______
2828
)
2929
};
30+
31+
#ifdef ENCODER_MAP_ENABLE
32+
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
33+
[0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
34+
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) },
35+
[2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
36+
[3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
37+
};
38+
#endif
39+

firmware/le_chiffre_32/keymaps/vial/config.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,14 @@
33
#pragma once
44

55
#define VIAL_KEYBOARD_UID {0xC9, 0xD4, 0x38, 0x79, 0x25, 0x61, 0x35, 0x00}
6+
#define VIAL_COMBO_ENTRIES 64
7+
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
8+
#define TAPPING_TERM 250
69

10+
#define RGB_DI_PIN WS2812_DI_PIN
11+
12+
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
13+
#define RGB_MATRIX_STARTUP_HUE RGB_MATRIX_DEFAULT_HUE
14+
#define RGB_MATRIX_STARTUP_SAT RGB_MATRIX_DEFAULT_SAT
15+
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_DEFAULT_VAL
16+
#define RGB_MATRIX_STARTUP_SPD RGB_MATRIX_DEFAULT_SPD

firmware/le_chiffre_32/keymaps/vial/keymap.c

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,49 @@
22
// SPDX-License-Identifier: GPL-2.0-or-later
33

44
#include QMK_KEYBOARD_H
5+
#include "../../rgb.c"
6+
7+
#define HM_A LSFT_T(KC_A)
8+
#define HM_S LALT_T(KC_S)
9+
#define HM_D LGUI_T(KC_D)
10+
#define HM_F LCTL_T(KC_F)
11+
#define HM_J RCTL_T(KC_J)
12+
#define HM_K RGUI_T(KC_K)
13+
#define HM_L RALT_T(KC_L)
14+
#define HM_Z LSFT_T(KC_Z)
15+
#define HM_SLSH LSFT_T(KC_SLSH)
16+
#define HM_QUOT RSFT_T(KC_QUOT)
17+
518

619
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
720
[0] = LAYOUT(
821
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MUTE, KC_Y, KC_U, KC_I, KC_O, KC_P,
9-
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT,
10-
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
11-
LT(1, KC_ESC), KC_ENT, KC_SPC, LT(2, KC_BSPC)
22+
HM_A, HM_S, HM_D, HM_F, KC_G, KC_H, HM_J, HM_K, HM_L, HM_QUOT,
23+
HM_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, HM_SLSH,
24+
LT(1, KC_ESC), LT(1,KC_SPC), LT(2,KC_SPC), LT(2, KC_BSPC)
1225
),
1326

1427
[1] = LAYOUT(
15-
_______, _______, _______, _______, _______, QK_BOOT, _______, KC_7, KC_8, KC_9, KC_0,
16-
_______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______,
17-
_______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______,
18-
_______, _______, _______, _______
28+
_______, _______, _______, KC_SCLN, _______, _______, KC_EQL, KC_7, KC_8, KC_9, KC_0,
29+
_______, _______, _______, KC_COLN, _______, KC_MINS, KC_4, KC_5, KC_6, _______,
30+
_______, _______, _______, _______, _______, KC_BSLS, KC_1, KC_2, KC_3, _______,
31+
_______, KC_ENT, KC_TAB, _______
1932
),
2033

2134
[2] = LAYOUT(
22-
_______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______,
35+
_______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, _______, _______,
2336
_______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_LEFT, _______,
2437
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
25-
_______, _______, _______, _______
38+
_______, KC_ENT, KC_TAB, _______
2639
)
2740
};
41+
42+
#ifdef ENCODER_MAP_ENABLE
43+
#undef BLANK_LAYER
44+
#define BLANK_LAYER { ENCODER_CCW_CW(_______, _______) }
45+
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
46+
[0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
47+
[1] = BLANK_LAYER,
48+
[2] = BLANK_LAYER
49+
};
50+
#endif
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
VIA_ENABLE = yes
22
VIAL_ENABLE = yes
33
VIAL_INSECURE = yes
4-
ENCODER_MAP_ENABLE = yes
5-
4+
VIALRGB_ENABLE = yes
Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,14 @@
11
{
2-
"lighting": "none",
2+
"lighting": "vialrgb",
33
"matrix": {
44
"rows": 4,
5-
"cols": 13
5+
"cols": 10
66
},
77
"layouts": {
88
"keymap":
9-
[
10-
[ { "rx": 7, "ry": 1, "y": 0.75, "x": -1.25 }, "0,0\n\n\n\n\n\n\n\n\ne" ],
11-
[ { "x": -1.25 }, "0,1\n\n\n\n\n\n\n\n\ne" ],
12-
[ { "rx": 7.5, "y": -0.25, "x": -1.75 }, "3,5" ],
13-
[ { "r": 7, "rx": 5.5, "y": -0.75, "x": -3 }, "0,2" ],
14-
[ { "y": -0.75, "x": -4 }, "0,1", { "x": 1 }, "0,3", "0,4" ],
15-
[ { "y": -0.75, "x": -5 }, "0,0" ],
16-
[ { "y": -0.5, "x": -3 }, "1,2" ],
17-
[ { "y": -0.75, "x": -4 }, "1,1", { "x": 1 }, "1,3", "1,4" ],
18-
[ { "y": -0.75, "x": -5 }, "1,0" ],
19-
[ { "y": -0.5, "x": -3 }, "2,2" ],
20-
[ { "y": -0.75, "x": -4 }, "2,1", { "x": 1 }, "2,3", "2,4" ],
21-
[ { "y": -0.75, "x": -5 }, "2,0" ],
22-
[ { "y": -0.25, "x": -3.25, "w": 1.25 }, "3,2", { "w": 2 }, "3,4" ],
23-
[ { "r": -7, "rx": 7, "y": -0.75, "x": 2 }, "0,7" ],
24-
[ { "y": -0.75 }, "0,5", "0,6", { "x": 1 }, "0,8" ],
25-
[ { "y": -0.75, "x": 4 }, "0,9" ],
26-
[ { "y": -0.5, "x": 2 }, "1,7" ],
27-
[ { "y": -0.75 }, "1,5", "1,6", { "x": 1 }, "1,8" ],
28-
[ { "y": -0.75, "x": 4 }, "1,9" ],
29-
[ { "y": -0.5, "x": 2 }, "2,7" ],
30-
[ { "y": -0.75 }, "2,5", "2,6", { "x": 1 }, "2,8" ],
31-
[ { "y": -0.75, "x": 4 }, "2,9" ],
32-
[ { "y": -0.25, "w": 2 }, "3,6", { "w": 1.25 }, "3,7" ]
33-
]
34-
}
9+
[ [ { "rx": 7, "ry": 1, "y": 0.75, "x": -1.25 }, "0,0\n\n\n\n\n\n\n\n\ne" ], [ { "x": -1.25 }, "0,1\n\n\n\n\n\n\n\n\ne" ], [ { "rx": 7.5, "y": -0.25, "x": -1.75 }, "3,5" ], [ { "r": 7, "rx": 5.5, "y": -0.75, "x": -3 }, "0,2" ], [ { "y": -0.75, "x": -4 }, "0,1", { "x": 1 }, "0,3", "0,4" ], [ { "y": -0.75, "x": -5 }, "0,0" ], [ { "y": -0.5, "x": -3 }, "1,2" ], [ { "y": -0.75, "x": -4 }, "1,1", { "x": 1 }, "1,3", "1,4" ], [ { "y": -0.75, "x": -5 }, "1,0" ], [ { "y": -0.5, "x": -3 }, "2,2" ], [ { "y": -0.75, "x": -4 }, "2,1", { "x": 1 }, "2,3", "2,4" ], [ { "y": -0.75, "x": -5 }, "2,0" ], [ { "y": -0.25, "x": -3.25, "w": 1.25 }, "3,2", { "w": 2 }, "3,4" ], [ { "r": -7, "rx": 7, "y": -0.75, "x": 2 }, "0,7" ], [ { "y": -0.75 }, "0,5", "0,6", { "x": 1 }, "0,8" ], [ { "y": -0.75, "x": 4 }, "0,9" ], [ { "y": -0.5, "x": 2 }, "1,7" ], [ { "y": -0.75 }, "1,5", "1,6", { "x": 1 }, "1,8" ], [ { "y": -0.75, "x": 4 }, "1,9" ], [ { "y": -0.5, "x": 2 }, "2,7" ], [ { "y": -0.75 }, "2,5", "2,6", { "x": 1 }, "2,8" ], [ { "y": -0.75, "x": 4 }, "2,9" ], [ { "y": -0.25, "w": 2 }, "3,6", { "w": 1.25 }, "3,7" ] ]
10+
},
11+
"labels":[
12+
"Split Backspace"
13+
]
3514
}

firmware/le_chiffre_32/rgb.c

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#ifdef RGB_MATRIX_ENABLE
2+
// LED index
3+
// 9 10 2 3
4+
// 1
5+
// 0
6+
// 8 7 6 5 4
7+
8+
led_config_t g_led_config = {
9+
// Key Matrix to LED Index
10+
{
11+
{9, 9, 9, 9, 9, 3, 3, 3, 3, 3 },
12+
{10, 10, 10, 10, 10, 2, 2, 2, 2, 2 },
13+
{8, 8, 8, 8, 8, 4, 4, 4, 4, 4 },
14+
{NO_LED, NO_LED, 7, NO_LED, 6, 6, 6, 5, NO_LED, NO_LED, }
15+
},
16+
// LED Index to Physical Positon
17+
{
18+
{ 128, 40 },
19+
{ 128, 30 },
20+
{ 166, 0 },
21+
{ 255, 0 },
22+
{ 255, 48 },
23+
{ 178, 64 },
24+
{ 128, 64 },
25+
{ 77, 64 },
26+
{ 0, 48 },
27+
{ 0, 0 },
28+
{ 115, 0 }
29+
},
30+
// LED Index to Flag
31+
// https://docs.qmk.fm/#/feature_rgb_matrix?id=flags
32+
{ 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2 }
33+
};
34+
35+
// Layer and Mods indicator
36+
#define LED_CENTER_TOP 1
37+
#define LED_CENTER_BOTTOM 0
38+
39+
#define LAYER_R layer_colors[layer][0] * RGB_MATRIX_DEFAULT_VAL / RGB_MATRIX_MAXIMUM_BRIGHTNESS
40+
#define LAYER_G layer_colors[layer][1] * RGB_MATRIX_DEFAULT_VAL / RGB_MATRIX_MAXIMUM_BRIGHTNESS
41+
#define LAYER_B layer_colors[layer][2] * RGB_MATRIX_DEFAULT_VAL / RGB_MATRIX_MAXIMUM_BRIGHTNESS
42+
43+
#define MODS_ACTIVE(mods) \
44+
((get_mods()|get_oneshot_mods()) & MOD_MASK_##mods ? RGB_MATRIX_DEFAULT_VAL:0)
45+
#define SHIFT_ACTIVE (get_mods() & MOD_MASK_SHIFT ? RGB_MATRIX_DEFAULT_VAL/4:0)
46+
#define MODS_R MODS_ACTIVE(CTRL) + SHIFT_ACTIVE
47+
#define MODS_G MODS_ACTIVE(GUI) + SHIFT_ACTIVE
48+
#define MODS_B MODS_ACTIVE(ALT) + SHIFT_ACTIVE
49+
50+
const uint8_t PROGMEM layer_colors[][3] = {
51+
{RGB_OFF},
52+
{RGB_RED},
53+
{RGB_GREEN},
54+
{RGB_BLUE},
55+
{RGB_YELLOW},
56+
{RGB_PURPLE},
57+
{RGB_PINK},
58+
{RGB_TEAL}
59+
};
60+
61+
void set_rgb_matrix_indicators(uint8_t led_min, uint8_t led_max) {
62+
#ifdef RGB_MATRIX_LAYER_INDICATOR
63+
int layer = get_highest_layer(layer_state|default_layer_state);
64+
RGB_MATRIX_INDICATOR_SET_COLOR(LED_CENTER_TOP, layer_colors[layer][0], layer_colors[layer][1], layer_colors[layer][2]);
65+
/* uprintf("layer RGB: (%u, %u, %u)\n", LAYER_R, LAYER_G, LAYER_B); */
66+
#endif
67+
68+
#ifdef RGB_MATRIX_MODS_INDICATOR
69+
RGB_MATRIX_INDICATOR_SET_COLOR(LED_CENTER_BOTTOM, MODS_R, MODS_G, MODS_B);
70+
/* uprintf("mod RGB: (%u, %u, %u)\n", MODS_R, MODS_G, MODS_B); */
71+
#endif
72+
}
73+
74+
#ifndef VIAL_ENABLE
75+
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
76+
set_rgb_matrix_indicators(led_min, led_max);
77+
return false;
78+
}
79+
#endif
80+
81+
#ifdef VIAL_ENABLE
82+
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
83+
set_rgb_matrix_indicators(led_min, led_max);
84+
}
85+
#endif
86+
87+
#endif

firmware/le_chiffre_32/rules.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
DFU_SUFFIX_ARGS = -p FFFF -v FFFF # allow for APM32 MCU
2-
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
1+
RGB_MATRIX_ENABLE = yes
2+
RGB_MATRIX_DRIVER = WS2812

0 commit comments

Comments
 (0)