aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSalicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com>2019-10-21 04:03:46 +0900
committerDrashna Jaelre <drashna@live.com>2019-10-20 12:03:46 -0700
commit233a1e9bcd3328b28b6fc303a70da84e35342d0b (patch)
tree362df141153167269974b483a349578589152748
parenta41066beedebefc12245c3eee4bb90116c11f7cd (diff)
downloadqmk_firmware-233a1e9bcd3328b28b6fc303a70da84e35342d0b.tar.gz
qmk_firmware-233a1e9bcd3328b28b6fc303a70da84e35342d0b.zip
[Keyboard] Keyboard Naked48 Update (#7085)
* Keyboard Naked48 Update Support for SPLIT_KEYBOARD Readme updates Keymap updates Support for RGB matrix (salicylic keymap) * Keymap Update Change KC_NO to KC_TRANSPARENT. Update the old part.
-rw-r--r--keyboards/naked48/config.h22
-rw-r--r--keyboards/naked48/keymaps/default/config.h17
-rw-r--r--keyboards/naked48/keymaps/default/keymap.c49
-rw-r--r--keyboards/naked48/keymaps/default/readme.md78
-rw-r--r--keyboards/naked48/keymaps/default/rules.mk29
-rw-r--r--keyboards/naked48/keymaps/default_with_nafuda/config.h38
-rw-r--r--keyboards/naked48/keymaps/default_with_nafuda/keymap.c82
-rw-r--r--keyboards/naked48/keymaps/default_with_nafuda/readme.md56
-rw-r--r--keyboards/naked48/keymaps/default_with_nafuda/rules.mk28
-rw-r--r--keyboards/naked48/keymaps/default_with_setta21/config.h16
-rw-r--r--keyboards/naked48/keymaps/default_with_setta21/keymap.c91
-rw-r--r--keyboards/naked48/keymaps/default_with_setta21/readme.md77
-rw-r--r--keyboards/naked48/keymaps/default_with_setta21/rules.mk29
-rw-r--r--keyboards/naked48/keymaps/salicylic/config.h35
-rw-r--r--keyboards/naked48/keymaps/salicylic/keymap.c64
-rw-r--r--keyboards/naked48/keymaps/salicylic/rules.mk30
-rw-r--r--keyboards/naked48/keymaps/salicylic_with_nafuda/config.h37
-rw-r--r--keyboards/naked48/keymaps/salicylic_with_nafuda/keymap.c84
-rw-r--r--keyboards/naked48/keymaps/salicylic_with_nafuda/readme.md57
-rw-r--r--keyboards/naked48/keymaps/salicylic_with_nafuda/rules.mk28
-rw-r--r--keyboards/naked48/keymaps/salicylic_with_setta21/config.h16
-rw-r--r--keyboards/naked48/keymaps/salicylic_with_setta21/keymap.c81
-rw-r--r--keyboards/naked48/keymaps/salicylic_with_setta21/rules.mk29
-rw-r--r--keyboards/naked48/naked48.c5
-rw-r--r--keyboards/naked48/naked48.h9
-rw-r--r--keyboards/naked48/readme.md4
-rw-r--r--keyboards/naked48/rev1/config.h81
-rw-r--r--keyboards/naked48/rev1/matrix.c357
-rw-r--r--keyboards/naked48/rev1/rev1.c35
-rw-r--r--keyboards/naked48/rev1/rev1.h41
-rw-r--r--keyboards/naked48/rev1/rules.mk3
-rw-r--r--keyboards/naked48/rev1/serial_config.h8
-rw-r--r--keyboards/naked48/rev1/serial_config_simpleapi.h8
-rw-r--r--keyboards/naked48/rev1/split_scomm.c92
-rw-r--r--keyboards/naked48/rev1/split_scomm.h22
-rw-r--r--keyboards/naked48/rev1/split_util.c70
-rw-r--r--keyboards/naked48/rev1/split_util.h16
-rw-r--r--keyboards/naked48/rules.mk66
-rw-r--r--keyboards/naked48/serial.c590
-rw-r--r--keyboards/naked48/serial.h86
40 files changed, 394 insertions, 2172 deletions
diff --git a/keyboards/naked48/config.h b/keyboards/naked48/config.h
index b37d10221..cfb6bf4ff 100644
--- a/keyboards/naked48/config.h
+++ b/keyboards/naked48/config.h
@@ -19,25 +19,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
19#pragma once 19#pragma once
20 20
21#include "config_common.h" 21#include "config_common.h"
22
23// GCC include 'config.h" sequence in qmk_firmware/keyboards/naked48/
24// -include keyboards/naked48/config.h
25// -include keyboards/naked48/rev?/config.h
26// -include keyboards/naked48/rev?/keymaps/MAPNAME/config.h
27// XXXX.c
28
29#include <serial_config.h>
30
31// GCC include search path in qmk_firmare/keyboards/naked48/
32// #include "..." search starts here:
33// #include <...> search starts here:
34// keyboards/naked48/rev?/keymaps/MAPNAME
35// keyboards/naked48
36// keyboards/naked48/rev?
37// .
38// ./tmk_core
39// ......
40
41// MACRO and FUNCTION are features that are depreciated.
42#define NO_ACTION_MACRO
43#define NO_ACTION_FUNCTION
diff --git a/keyboards/naked48/keymaps/default/config.h b/keyboards/naked48/keymaps/default/config.h
index ad417f7f0..a568a5f12 100644
--- a/keyboards/naked48/keymaps/default/config.h
+++ b/keyboards/naked48/keymaps/default/config.h
@@ -18,24 +18,13 @@
18 18
19/* Select hand configuration */ 19/* Select hand configuration */
20 20
21#define MASTER_LEFT 21//#define MASTER_LEFT
22// #define MASTER_RIGHT 22// #define MASTER_RIGHT
23// #define EE_HANDS 23// #define EE_HANDS
24 24
25#define USE_SERIAL_PD2 25//#define USE_SERIAL
26 26
27#define TAPPING_FORCE_HOLD 27#define TAPPING_FORCE_HOLD
28#define TAPPING_TERM 180 28#define TAPPING_TERM 180
29 29
30// Selection of RGBLIGHT MODE to use. 30#define RGBLED_NUM 48 // Number of LEDs \ No newline at end of file
31#if defined(LED_ANIMATIONS)
32 //#define RGBLIGHT_EFFECT_BREATHING
33 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
34 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
35 //#define RGBLIGHT_EFFECT_SNAKE
36 #define RGBLIGHT_EFFECT_KNIGHT
37 //#define RGBLIGHT_EFFECT_CHRISTMAS
38 #define RGBLIGHT_EFFECT_STATIC_GRADIENT
39 //#define RGBLIGHT_EFFECT_RGB_TEST
40 //#define RGBLIGHT_EFFECT_ALTERNATING
41#endif \ No newline at end of file
diff --git a/keyboards/naked48/keymaps/default/keymap.c b/keyboards/naked48/keymaps/default/keymap.c
index 3229f74ec..91c61b5f4 100644
--- a/keyboards/naked48/keymaps/default/keymap.c
+++ b/keyboards/naked48/keymaps/default/keymap.c
@@ -21,16 +21,10 @@ enum layer_number {
21}; 21};
22 22
23enum custom_keycodes { 23enum custom_keycodes {
24 LOWER = SAFE_RANGE, 24 RGB_RST = SAFE_RANGE
25 RAISE,
26 ADJUST,
27 RGBRST
28}; 25};
29 26
30// Layer Mode aliases 27// Layer Mode aliases
31#define _____ KC_TRNS
32#define XXXXX KC_NO
33
34#define KC_SNUBS S(KC_NUBS) 28#define KC_SNUBS S(KC_NUBS)
35#define KC_SNUHS S(KC_NUHS) 29#define KC_SNUHS S(KC_NUHS)
36 30
@@ -43,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 37 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
44 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, 38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
45 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 39 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
46 ADJUST,KC_LCTRL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT 40 MO(_ADJUST),KC_LCTRL, KC_LALT, KC_LGUI,MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT
47 //`------------------------------------------------------------------------------------------------------------' 41 //`------------------------------------------------------------------------------------------------------------'
48 ), 42 ),
49 43
@@ -52,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
52 //,-----------------------------------------------------| |-----------------------------------------------------. 46 //,-----------------------------------------------------| |-----------------------------------------------------.
53 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR,KC_LPRN, KC_RPRN, KC_DEL, 47 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR,KC_LPRN, KC_RPRN, KC_DEL,
54 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 48 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
55 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, 49 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
56 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 50 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
57 _____, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_SNUHS,KC_SNUBS, _____, _____, _____, 51 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_SNUHS,KC_SNUBS, _______, _______, _______,
58 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 52 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
59 _____, _____, _____, _____, _____, _____, _____, _____, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY 53 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
60 //`------------------------------------------------------------------------------------------------------------' 54 //`------------------------------------------------------------------------------------------------------------'
61 ), 55 ),
62 56
@@ -65,45 +59,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
65 //,-----------------------------------------------------| |-----------------------------------------------------. 59 //,-----------------------------------------------------| |-----------------------------------------------------.
66 KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, 60 KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
67 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 61 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
68 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, 62 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
69 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 63 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
70 _____, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _____, _____, _____, 64 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
71 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 65 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
72 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ 66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
73 //`------------------------------------------------------------------------------------------------------------' 67 //`------------------------------------------------------------------------------------------------------------'
74 ), 68 ),
75 69
76 70
77 [_ADJUST] = LAYOUT( /* Base */ 71 [_ADJUST] = LAYOUT( /* Base */
78 //,-----------------------------------------------------| |-----------------------------------------------------. 72 //,-----------------------------------------------------| |-----------------------------------------------------.
79 _____, RESET, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, _____, 73 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
80 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 74 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
81 _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, RGB_TOG, RGB_MOD, XXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, 75 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR,
82 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 76 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
83 _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, 77 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI,
84 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 78 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
85 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ 79 _______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______
86 //`------------------------------------------------------------------------------------------------------------' 80 //`------------------------------------------------------------------------------------------------------------'
87 ) 81 )
88}; 82};
89 83
90static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
91
92 pressed ? layer_on(layer1) : layer_off(layer1);
93 IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
94}
95
96int RGB_current_mode; 84int RGB_current_mode;
97bool process_record_user(uint16_t keycode, keyrecord_t *record) { 85bool process_record_user(uint16_t keycode, keyrecord_t *record) {
98 86
99 bool result = false; 87 bool result = false;
100 switch (keycode) { 88 switch (keycode) {
101 case LOWER:
102 update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
103 break;
104 case RAISE:
105 update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
106 break;
107 #ifdef RGBLIGHT_ENABLE 89 #ifdef RGBLIGHT_ENABLE
108 case RGB_MOD: 90 case RGB_MOD:
109 if (record->event.pressed) { 91 if (record->event.pressed) {
@@ -112,7 +94,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
112 RGB_current_mode = rgblight_config.mode; 94 RGB_current_mode = rgblight_config.mode;
113 } 95 }
114 break; 96 break;
115 case RGBRST: 97 case RGB_RST:
116 if (record->event.pressed) { 98 if (record->event.pressed) {
117 eeconfig_update_rgblight_default(); 99 eeconfig_update_rgblight_default();
118 rgblight_enable(); 100 rgblight_enable();
@@ -129,7 +111,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
129} 111}
130 112
131void matrix_init_user(void) { 113void matrix_init_user(void) {
132 #ifdef RGBLIGHT_ENABLE 114
133 RGB_current_mode = rgblight_config.mode;
134 #endif
135} 115}
116
diff --git a/keyboards/naked48/keymaps/default/readme.md b/keyboards/naked48/keymaps/default/readme.md
index 431a57340..a28ad8c52 100644
--- a/keyboards/naked48/keymaps/default/readme.md
+++ b/keyboards/naked48/keymaps/default/readme.md
@@ -1,45 +1,37 @@
1# The default keymap for naked48 1# The default keymap for naked48
2 2
3Default 3## Default
4 //,-----------------------------------------| |-----------------------------------------. 4| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
5 TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, 5|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
6 //|------+------+------+------+------+------| |------+------+------+------+------+------| 6| TAB | Q| W| E| R| T| | | Y| U| I| O| P| BSPC|
7 ESC, A, S, D, F, G, H, J, K, L, ;, :, 7| ESC | A| S| D| F| G| | | H| J| K| L| ;| '|
8 //|------+------+------+------+------+------| |------+------+------+------+------+------| 8| LSFT | Z| X| C| V| B| | | N| M| ,| .| /| ENT|
9 LSFT, Z, X, C, V, B, N, M, ,, ., /, ENT, 9| |ADJUST| LCTRL| LALT| LGUI| LOWER| SPC| SPC| RAISE| LEFT| DOWN| UP| RIGHT| |
10 //|------+------+------+------+------+------|------+------+------+------+------+------+------| 10
11 ADJUST, LCTRL, LALT, LGUI, LOWER, SPC, SPC, RAISE, LEFT, DOWN, UP, RIGHT 11
12 //`----------------------------------------------------------------------------------' 12## Lower
13 13| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
14Lower 14|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
15 //,-----------------------------------------| |-----------------------------------------. 15| ~| !| @| #| $| %| | | ^| &| *| (| )| DEL|
16 ~, !, @, #, $, %, ^, &, *, (, ), DEL, 16| ESC| F1| F2| F3| F4| F5| | | F6| _| +| {| }| PIPE|
17 //|------+------+------+------+------+------| |------+------+------+------+------+------| 17| LSFT| F7| F8| F9| F10| F11| | | F12| SNUHS| SNUBS| ,| .| ENT|
18 DEL, F1, F2, F3, F4, F5, F6, _, +, {, }, |, 18| |ADJUST| LCTRL| LALT| LGUI| LOWER| SPC| SPC| RAISE| MNXT| VOLD| VOLU| MPLY| |
19 //|------+------+------+------+------+------| |------+------+------+------+------+------| 19
20 LSFT, F7, F8, F9, F10, F11, F12, ~, |, ,, ., ENT, 20
21 //|------+------+------+------+------+------|------+------+------+------+------+------+------| 21## Raise
22 ADJUST, LCTRL, LALT, LGUI, LOWER, SPC, SPC, RAISE, MNXT, VOLD, VOLU, MPLY 22| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
23 //`----------------------------------------------------------------------------------' 23|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
24 24| ~| 1| 2| 3| 4| 5| | | 6| 7| 8| 9| 0| DEL|
25Raise 25| DEL| F1| F2| F3| F4| F5| | | F6| -| =| [| ]| BSLS|
26 //,-----------------------------------------| |-----------------------------------------. 26| LSFT| F7| F8| F9| F10| F11| | | F12| NUHS| NUBS| ,| .| ENT|
27 ~, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL, 27| |ADJUST| LCTRL| LALT| LGUI| LOWER| SPC| SPC| RAISE| MNXT| VOLD| VOLU| MPLY| |
28 //|------+------+------+------+------+------| |------+------+------+------+------+------| 28
29 DEL, F1, F2, F3, F4, F5, F6, -, =, [, ], BSLS, 29
30 //|------+------+------+------+------+------| |------+------+------+------+------+------| 30## Adjust
31 LSFT, F7, F8, F9, F10, F11, F12, #, \, ,, ., ENT, 31| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
32 //|------+------+------+------+------+------|------+------+------+------+------+------+------| 32|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:------:|:------:|:------:|:------:|:-------:|:------:|
33 ADJUST, LCTRL, LALT, LGUI, LOWER, SPC, SPC, RAISE, MNXT, VOLD, VOLU, MPLY 33| ~| XXXXX| XXXXX| XXXXX| XXXXX| XXXXX| | | RGB_RST| XXXXX| XXXXX| XXXXX| XXXXX| DEL|
34 //`----------------------------------------------------------------------------------' 34| ESC| XXXXX| XXXXX| XXXXX| XXXXX| XXXXX| | | RGB_TOG| RGB_MOD| XXXXX| C+A+D| Alt+PSCR| PSCR|
35 35| LSFT| XXXXX| XXXXX| XXXXX| XXXXX| XXXXX| | | RGB_VAD| RGB_VAI| RGB_HUD| RGB_HUI| RGB_SAD| RGB_SAI|
36Adjust 36| |ADJUST| LCTRL| LALT| LGUI| LOWER| RESET| RESET| RAISE| MNXT| VOLD| VOLU| MPLY| |
37 //,-----------------------------------------| |----------------------------------------------. 37
38 ~, RST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, DEL,
39 //|------+------+------+------+------+------| |------+-------+-------+-------+-------+-------|
40 DEL, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, LED ON/Off,LED MOD, XXXXX, C+A+D,Alt+PSCR, PSCR,
41 //|------+------+------+------+------+------| |------+-------+-------+-------+-------+-------|
42 LSFT, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, LED VAD,LED VAI,LED HUD,LED HUI,LED SAD,LED SAI,
43 //|------+------+------+------+------+------|------+------+------+-------+-------+-------+-------+-------|
44 ADJUST, LCTRL, LALT, LGUI, LOWER, SPC, SPC, RAISE, MNXT, VOLD, VOLU, MPLY
45 //`--------------------------------------------------------------------------------------' \ No newline at end of file
diff --git a/keyboards/naked48/keymaps/default/rules.mk b/keyboards/naked48/keymaps/default/rules.mk
index ee538432e..e69de29bb 100644
--- a/keyboards/naked48/keymaps/default/rules.mk
+++ b/keyboards/naked48/keymaps/default/rules.mk
@@ -1,29 +0,0 @@
1
2# Build Options
3# change to "no" to disable the options, or define them in the Makefile in
4# the appropriate keymap folder that will get included automatically
5#
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
7MOUSEKEY_ENABLE = no # Mouse keys(+4700)
8EXTRAKEY_ENABLE = no # Audio control and System control(+450)
9CONSOLE_ENABLE = no # Console for debug(+400)
10COMMAND_ENABLE = no # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no # Audio output on port C6
15UNICODE_ENABLE = no # Unicode
16BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
17RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
18SWAP_HANDS_ENABLE = no # Enable one-hand typing
19
20# If your custom naked48 pcb, you can rewrite to yes.
21LED_ANIMATIONS = yes # LED animations
22
23ifeq ($(strip $(LED_ANIMATIONS)), yes)
24 # OPT_DEFS += -DRGBLIGHT_ANIMATIONS
25 OPT_DEFS += -DLED_ANIMATIONS
26endif
27
28# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
29SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/naked48/keymaps/default_with_nafuda/config.h b/keyboards/naked48/keymaps/default_with_nafuda/config.h
index a55856b24..264ad0877 100644
--- a/keyboards/naked48/keymaps/default_with_nafuda/config.h
+++ b/keyboards/naked48/keymaps/default_with_nafuda/config.h
@@ -21,44 +21,12 @@
21#define MASTER_LEFT 21#define MASTER_LEFT
22// #define MASTER_RIGHT 22// #define MASTER_RIGHT
23// #define EE_HANDS 23// #define EE_HANDS
24
25#define USE_SERIAL_PD2 24#define USE_SERIAL_PD2
26 25
27#define TAPPING_FORCE_HOLD 26#define TAPPING_FORCE_HOLD
28#define TAPPING_TERM 180 27#define TAPPING_TERM 180
29 28
30// Selection of RGBLIGHT MODE to use. 29#define RGBLED_NUM 55 // Number of LEDs
31#if defined(LED_ANIMATIONS) 30#define RGBLIGHT_SPLIT
32 //#define RGBLIGHT_EFFECT_BREATHING 31#define RGBLED_SPLIT { 48, 7 }
33 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
34 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
35 //#define RGBLIGHT_EFFECT_SNAKE
36 #define RGBLIGHT_EFFECT_KNIGHT
37 //#define RGBLIGHT_EFFECT_CHRISTMAS
38 #define RGBLIGHT_EFFECT_STATIC_GRADIENT
39 //#define RGBLIGHT_EFFECT_RGB_TEST
40 //#define RGBLIGHT_EFFECT_ALTERNATING
41#endif
42
43#define MK_3_SPEED
44
45#undef MOUSEKEY_INTERVAL
46#define MOUSEKEY_INTERVAL 0
47
48#undef MOUSEKEY_TIME_TO_MAX
49#define MOUSEKEY_TIME_TO_MAX 150
50
51#undef MOUSEKEY_MAX_SPEED
52#define MOUSEKEY_MAX_SPEED 3
53
54#undef MOUSEKEY_MOVE_DELTA
55#define MOUSEKEY_MOVE_DELTA 5
56
57#undef MOUSEKEY_DELAY
58#define MOUSEKEY_DELAY 0
59
60#undef MOUSEKEY_WHEEL_MAX_SPEED
61#define MOUSEKEY_WHEEL_MAX_SPEED 1
62 32
63#undef MOUSEKEY_WHEEL_TIME_TO_MAX
64#define MOUSEKEY_WHEEL_TIME_TO_MAX 0
diff --git a/keyboards/naked48/keymaps/default_with_nafuda/keymap.c b/keyboards/naked48/keymaps/default_with_nafuda/keymap.c
index c1a9056a9..e4b616e70 100644
--- a/keyboards/naked48/keymaps/default_with_nafuda/keymap.c
+++ b/keyboards/naked48/keymaps/default_with_nafuda/keymap.c
@@ -23,125 +23,94 @@ enum layer_number {
23}; 23};
24 24
25enum custom_keycodes { 25enum custom_keycodes {
26 MOUSE = SAFE_RANGE, 26 RGB_RST = SAFE_RANGE
27 BROWSER,
28 LOWER,
29 RAISE,
30 ADJUST,
31 RGBRST
32}; 27};
33 28
34// Fillers to make layering more clear 29// Fillers to make layering more clear
35#define _____ KC_TRNS
36#define XXXXX KC_NO
37
38#define KC_CAD LCA(KC_DEL)
39#define KC_APSCR LALT(KC_PSCR)
40
41#define KC_SNUBS S(KC_NUBS) 30#define KC_SNUBS S(KC_NUBS)
42#define KC_SNUHS S(KC_NUHS) 31#define KC_SNUHS S(KC_NUHS)
43 32
44#define KC_RTAB LCTL(KC_TAB)
45#define KC_LTAB LCTL(LSFT(KC_TAB))
46#define KC_CTAB LCTL(KC_W)
47#define KC_RETAB LCTL(LSFT(KC_T))
48
49#define KC_TGMO TG(_MOUSE)
50#define KC_TGBR TG(_BROWSER)
51#define KC_BSAD LT(_ADJUST, KC_BSPC) 33#define KC_BSAD LT(_ADJUST, KC_BSPC)
52 34
53
54const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
55 [_QWERTY] = LAYOUT_with_nafuda( 36 [_QWERTY] = LAYOUT_with_nafuda(
56 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 37 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
57 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TGMO, 38 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, TG(_MOUSE),
58 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 39 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
59 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSAD, KC_UP, KC_TGBR, 40 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSAD, KC_UP,TG(_BROWSER),
60 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 41 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
61 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LEFT, KC_DOWN,KC_RIGHT, 42 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LEFT, KC_DOWN,KC_RIGHT,
62 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 43 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
63 ADJUST,KC_LCTRL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT 44 MO(_ADJUST),KC_LCTRL, KC_LALT, KC_LGUI,MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT
64 //`------------------------------------------------------------------------------------------------------------' 45 //`------------------------------------------------------------------------------------------------------------'
65 ), 46 ),
66 47
67 [_MOUSE] = LAYOUT_with_nafuda( 48 [_MOUSE] = LAYOUT_with_nafuda(
68 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 49 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
69 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TGMO, 50 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, TG(_MOUSE),
70 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 51 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
71 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BTN1, KC_MS_U, KC_BTN2, 52 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BTN1, KC_MS_U, KC_BTN2,
72 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 53 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
73 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_MS_L, KC_MS_D, KC_MS_R, 54 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_MS_L, KC_MS_D, KC_MS_R,
74 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 55 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
75 ADJUST,KC_LCTRL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT 56 MO(_ADJUST),KC_LCTRL, KC_LALT, KC_LGUI,MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT
76 //`------------------------------------------------------------------------------------------------------------' 57 //`------------------------------------------------------------------------------------------------------------'
77 ), 58 ),
78 59
79 [_BROWSER] = LAYOUT_with_nafuda( 60 [_BROWSER] = LAYOUT_with_nafuda(
80 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 61 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
81 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_CTAB, 62 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, LCTL(KC_W),
82 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 63 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
83 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_RETAB, KC_WH_U, KC_TGBR, 64 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,LCTL(LSFT(KC_T)),KC_WH_U,TG(_BROWSER),
84 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 65 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
85 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LTAB, KC_WH_D, KC_RTAB, 66 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,LCTL(LSFT(KC_TAB)), KC_WH_D,LCTL(KC_TAB),
86 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 67 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
87 ADJUST,KC_LCTRL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT 68 MO(_ADJUST),KC_LCTRL, KC_LALT, KC_LGUI,MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT
88 //`------------------------------------------------------------------------------------------------------------' 69 //`------------------------------------------------------------------------------------------------------------'
89 ), 70 ),
90 71
91 [_LOWER] = LAYOUT_with_nafuda( 72 [_LOWER] = LAYOUT_with_nafuda(
92 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 73 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
93 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR,KC_LPRN, KC_RPRN, KC_DEL, KC_TGMO, 74 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR,KC_LPRN, KC_RPRN, KC_DEL, TG(_MOUSE),
94 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 75 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
95 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_BSAD, KC_UP, KC_TGBR, 76 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_BSAD, KC_UP,TG(_MOUSE),
96 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 77 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
97 _____, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_SNUHS,KC_SNUBS, _____, _____, _____, KC_LEFT, KC_DOWN,KC_RIGHT, 78 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_SNUHS,KC_SNUBS, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT,
98 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 79 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
99 _____, _____, _____, _____, _____, _____, _____, _____, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY 80 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
100 //`------------------------------------------------------------------------------------------------------------' 81 //`------------------------------------------------------------------------------------------------------------'
101 ), 82 ),
102 83
103 [_RAISE] = LAYOUT_with_nafuda( 84 [_RAISE] = LAYOUT_with_nafuda(
104 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 85 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
105 KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_TGMO, 86 KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, TG(_MOUSE),
106 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 87 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
107 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_BSAD, KC_UP, KC_TGBR, 88 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_BSAD, KC_UP,TG(_MOUSE),
108 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 89 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
109 _____, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _____, _____, _____, KC_LEFT, KC_DOWN,KC_RIGHT, 90 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT,
110 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 91 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
111 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ 92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
112 //`------------------------------------------------------------------------------------------------------------' 93 //`------------------------------------------------------------------------------------------------------------'
113 ), 94 ),
114 95
115 [_ADJUST] = LAYOUT_with_nafuda( /* Base */ 96 [_ADJUST] = LAYOUT_with_nafuda( /* Base */
116 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 97 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
117 _____, RESET, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, _____, RGB_VAD, 98 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_VAD,
118 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 99 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
119 _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, RGB_TOG, RGB_MOD, XXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, ADJUST, RGB_SAD, RGB_VAI, 100 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, _ADJUST, RGB_SAD, RGB_VAI,
120 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 101 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
121 _____, _____, _____, _____, _____, _____, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_MOD, RGB_TOG, RGB_SAI, 102 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_MOD, RGB_TOG, RGB_SAI,
122 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 103 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
123 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ 104 _______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______
124 //`------------------------------------------------------------------------------------------------------------' 105 //`------------------------------------------------------------------------------------------------------------'
125 ) 106 )
126}; 107};
127 108
128static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
129
130 pressed ? layer_on(layer1) : layer_off(layer1);
131 IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
132}
133
134int RGB_current_mode; 109int RGB_current_mode;
135bool process_record_user(uint16_t keycode, keyrecord_t *record) { 110bool process_record_user(uint16_t keycode, keyrecord_t *record) {
136 111
137 bool result = false; 112 bool result = false;
138 switch (keycode) { 113 switch (keycode) {
139 case LOWER:
140 update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
141 break;
142 case RAISE:
143 update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
144 break;
145 #ifdef RGBLIGHT_ENABLE 114 #ifdef RGBLIGHT_ENABLE
146 case RGB_MOD: 115 case RGB_MOD:
147 if (record->event.pressed) { 116 if (record->event.pressed) {
@@ -150,7 +119,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
150 RGB_current_mode = rgblight_config.mode; 119 RGB_current_mode = rgblight_config.mode;
151 } 120 }
152 break; 121 break;
153 case RGBRST: 122 case RGB_RST:
154 if (record->event.pressed) { 123 if (record->event.pressed) {
155 eeconfig_update_rgblight_default(); 124 eeconfig_update_rgblight_default();
156 rgblight_enable(); 125 rgblight_enable();
@@ -167,7 +136,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
167} 136}
168 137
169void matrix_init_user(void) { 138void matrix_init_user(void) {
170 #ifdef RGBLIGHT_ENABLE 139
171 RGB_current_mode = rgblight_config.mode;
172 #endif
173} 140}
141
diff --git a/keyboards/naked48/keymaps/default_with_nafuda/readme.md b/keyboards/naked48/keymaps/default_with_nafuda/readme.md
index 780481be2..417b44133 100644
--- a/keyboards/naked48/keymaps/default_with_nafuda/readme.md
+++ b/keyboards/naked48/keymaps/default_with_nafuda/readme.md
@@ -2,38 +2,30 @@
2 2
3Add Nafuda maps to the default layout. 3Add Nafuda maps to the default layout.
4 4
5Default 5## Default
6 //|--------------------| 6| 1 | 2 | 3 |
7 Mouse, 7|:----:|:----:|:----:|
8 //|------+------+------| 8| | MOUSE| |
9 BS + Ad, UP,Browser, 9| BS+Ad| UP|Browser|
10 //|------+------+------| 10| LEFT| DOWN| RIGHT|
11 LEFT, DOWN, RIGHT
12 //|--------------------|
13 11
14Mouse 12## Mouse
15 //|--------------------| 13| 1 | 2 | 3 |
16 Default, 14|:----:|:----:|:----:|
17 //|------+------+------| 15| |Default| |
18 BTN1, MS_U, BTN2, 16| BTN1| MS_U| BTN2|
19 //|------+------+------| 17| MS_L| MS_D| MS_R|
20 MS_L, MS_D, MS_R
21 //|--------------------|
22 18
23Browser 19## Browser
24 //|--------------------| 20| 1 | 2 | 3 |
25 CloseTAB, 21|:----:|:----:|:----:|
26 //|------+------+------| 22| |CloseTAB| |
27 ReOpenTAB, WH_U,Default, 23|ReOpenTAB|WH_U|Default|
28 //|------+------+------| 24| LTAB| WH_D| RTAB|
29 LTAB, WH_D, RTAB
30 //|--------------------|
31 25
32Adjust 26## Adjust
33 //|------------------------| 27| 1 | 2 | 3 |
34 LED VAD, 28|:----:|:----:|:----:|
35 //|------+----------+------| 29| |LED_VAD| |
36 Default, LED HUD,LED VAI, 30|Default|LED_HUD|LED_VAI|
37 //|------+----------+------| 31|LED_MOD|LED_ON/Off|LED_HUI|
38 LED MOD,LED ON/Off,LED HUI
39 //|------------------------|
diff --git a/keyboards/naked48/keymaps/default_with_nafuda/rules.mk b/keyboards/naked48/keymaps/default_with_nafuda/rules.mk
index dd471767a..f76b955ef 100644
--- a/keyboards/naked48/keymaps/default_with_nafuda/rules.mk
+++ b/keyboards/naked48/keymaps/default_with_nafuda/rules.mk
@@ -1,29 +1 @@
1
2# Build Options
3# change to "no" to disable the options, or define them in the Makefile in
4# the appropriate keymap folder that will get included automatically
5#
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
7MOUSEKEY_ENABLE = yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
8EXTRAKEY_ENABLE = no # Audio control and System control(+450)
9CONSOLE_ENABLE = no # Console for debug(+400)
10COMMAND_ENABLE = no # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no # Audio output on port C6
15UNICODE_ENABLE = no # Unicode
16BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
17RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
18SWAP_HANDS_ENABLE = no # Enable one-hand typing
19
20# If your custom naked48 pcb, you can rewrite to yes.
21LED_ANIMATIONS = yes # LED animations
22
23ifeq ($(strip $(LED_ANIMATIONS)), yes)
24 # OPT_DEFS += -DRGBLIGHT_ANIMATIONS
25 OPT_DEFS += -DLED_ANIMATIONS
26endif
27
28# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
29SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/naked48/keymaps/default_with_setta21/config.h b/keyboards/naked48/keymaps/default_with_setta21/config.h
index ad417f7f0..1e86c6bb7 100644
--- a/keyboards/naked48/keymaps/default_with_setta21/config.h
+++ b/keyboards/naked48/keymaps/default_with_setta21/config.h
@@ -21,21 +21,11 @@
21#define MASTER_LEFT 21#define MASTER_LEFT
22// #define MASTER_RIGHT 22// #define MASTER_RIGHT
23// #define EE_HANDS 23// #define EE_HANDS
24
25#define USE_SERIAL_PD2 24#define USE_SERIAL_PD2
26 25
27#define TAPPING_FORCE_HOLD 26#define TAPPING_FORCE_HOLD
28#define TAPPING_TERM 180 27#define TAPPING_TERM 180
29 28
30// Selection of RGBLIGHT MODE to use. 29#define RGBLED_NUM 69 // Number of LEDs
31#if defined(LED_ANIMATIONS) 30#define RGBLIGHT_SPLIT
32 //#define RGBLIGHT_EFFECT_BREATHING 31#define RGBLED_SPLIT { 48, 21 }
33 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
34 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
35 //#define RGBLIGHT_EFFECT_SNAKE
36 #define RGBLIGHT_EFFECT_KNIGHT
37 //#define RGBLIGHT_EFFECT_CHRISTMAS
38 #define RGBLIGHT_EFFECT_STATIC_GRADIENT
39 //#define RGBLIGHT_EFFECT_RGB_TEST
40 //#define RGBLIGHT_EFFECT_ALTERNATING
41#endif \ No newline at end of file
diff --git a/keyboards/naked48/keymaps/default_with_setta21/keymap.c b/keyboards/naked48/keymaps/default_with_setta21/keymap.c
index 32d56a508..26278b79b 100644
--- a/keyboards/naked48/keymaps/default_with_setta21/keymap.c
+++ b/keyboards/naked48/keymaps/default_with_setta21/keymap.c
@@ -21,114 +21,87 @@ enum layer_number {
21}; 21};
22 22
23enum custom_keycodes { 23enum custom_keycodes {
24 LOWER = SAFE_RANGE, 24 RGB_RST = SAFE_RANGE,
25 RAISE,
26 ADJUST,
27 KANJI,
28 RGBRST,
29 SEND_SUM, 25 SEND_SUM,
30 SEND_AVERAGE, 26 SEND_AVE,
31 SEND_COUNTIF, 27 SEND_CIF,
32 SEND_MAX, 28 SEND_MAX,
33 SEND_MIN 29 SEND_MIN
34}; 30};
35 31
36// Fillers to make layering more clear 32// Fillers to make layering more clear
37#define _____ KC_TRNS
38#define XXXXX KC_NO
39
40#define KC_SNUBS S(KC_NUBS) 33#define KC_SNUBS S(KC_NUBS)
41#define KC_SNUHS S(KC_NUHS) 34#define KC_SNUHS S(KC_NUHS)
42 35
43#define KC_SSUM SEND_SUM
44#define KC_SAVE SEND_AVERAGE
45#define KC_SCOU SEND_COUNTIF
46#define KC_SMAX SEND_MAX
47#define KC_SMIN SEND_MIN
48
49#define KC_RADO LT(_RAISE, KC_PDOT) 36#define KC_RADO LT(_RAISE, KC_PDOT)
50#define KC_LOP0 LT(_LOWER, KC_P0) 37#define KC_LOP0 LT(_LOWER, KC_P0)
51#define KC_ADNL LT(_ADJUST, KC_NLCK)
52 38
53const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 39const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
54 [_QWERTY] = LAYOUT_with_setta21( 40 [_QWERTY] = LAYOUT_with_setta21(
55 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| 41 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------|
56 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LOP0, KC_P1, KC_P4, KC_P7,KC_ADNL, KC_ESC, 42 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_LOP0, KC_P1, KC_P4, KC_P7,KC_NLCK, KC_ESC,
57 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 43 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
58 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_P2, KC_P5, KC_P8,KC_PSLS, KC_F2, 44 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_P2, KC_P5, KC_P8,KC_PSLS, KC_F2,
59 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 45 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
60 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_RADO, KC_P3, KC_P6, KC_P9,KC_PAST, KC_EQL, 46 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_RADO, KC_P3, KC_P6, KC_P9,KC_PAST, KC_EQL,
61 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------| 47 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------|
62 ADJUST,KC_LCTRL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, KC_PENT, KC_PPLS,KC_PMNS, KC_DEL 48 MO(_ADJUST),KC_LCTRL, KC_LALT, KC_LGUI,MO(_LOWER), KC_SPC, KC_SPC,MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, KC_PENT, KC_PPLS,KC_PMNS, KC_DEL
63 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------| 49 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------|
64 ), 50 ),
65 51
66 [_LOWER] = LAYOUT_with_setta21( 52 [_LOWER] = LAYOUT_with_setta21(
67 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| 53 //,-----------------------------------------------------| |-----------------------------------------------------. |------------------------------------------------|
68 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR,KC_LPRN, KC_RPRN, KC_DEL, LOWER, XXXXX,KC_LEFT, XXXXX, XXXXX, KC_ESC, 54 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR,KC_LPRN, KC_RPRN, KC_DEL, MO(_LOWER),XXXXXXX,KC_LEFT, XXXXXXX,XXXXXXX, KC_ESC,
69 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 55 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+--------+-------+-------|
70 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_DOWN,KC_DOWN, KC_UP,KC_PSLS, KC_F2, 56 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_DOWN,KC_DOWN, KC_UP,KC_PSLS, KC_F2,
71 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 57 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+--------+-------+-------|
72 _____, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_SNUHS,KC_SNUBS, _____, _____, _____, RAISE, XXXXX,KC_RIGHT, XXXXX,KC_PAST, KC_EQL, 58 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,KC_SNUHS,KC_SNUBS, _______, _______, _______, MO(_RAISE),XXXXXXX,KC_RIGHT,XXXXXXX,KC_PAST, KC_EQL,
73 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------| 59 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+----------------+-------+-------|
74 _____, _____, _____, _____, _____, _____, _____, _____, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, KC_PENT, KC_PPLS,KC_PMNS, KC_DEL 60 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, KC_PENT, KC_PPLS,KC_PMNS, KC_DEL
75 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------| 61 //`------------------------------------------------------------------------------------------------------------' |------------------------------------------------|
76 ), 62 ),
77 63
78 64
79 [_RAISE] = LAYOUT_with_setta21( 65 [_RAISE] = LAYOUT_with_setta21(
80 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| 66 //,-----------------------------------------------------| |-----------------------------------------------------. |------------------------------------------------|
81 KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, LOWER, KC_F11, KC_F4, KC_F7,KC_SMIN, KC_ESC, 67 KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, _______, KC_F11, KC_F4, KC_F7,SEND_MIN, KC_ESC,
82 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 68 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+--------+-------|
83 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F12, KC_F5, KC_F8,KC_SMAX, KC_F2, 69 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F12, KC_F5, KC_F8,SEND_MAX, KC_F2,
84 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 70 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+--------+-------|
85 _____, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _____, _____, _____, RAISE, KC_F3, KC_F6, KC_F9,KC_SCOU, KC_EQL, 71 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, _______, KC_F3, KC_F6, KC_F9,SEND_CIF, KC_EQL,
86 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------| 72 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+--------+-------|
87 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_RPRN, KC_SSUM,KC_SAVE, KC_DEL 73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RPRN, SEND_SUM,SEND_AVE, KC_DEL
88 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------| 74 //`------------------------------------------------------------------------------------------------------------' |------------------------------------------------|
89 ), 75 ),
90 76
91 [_ADJUST] = LAYOUT_with_setta21( /* Base */ 77 [_ADJUST] = LAYOUT_with_setta21( /* Base */
92 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| 78 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------|
93 _____, RESET, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, _____, LOWER,RGB_VAD,RGB_HUD,RGB_SAD, ADJUST,RGB_TOG, 79 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______,RGB_VAD,RGB_HUD,RGB_SAD,XXXXXXX,_______,
94 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 80 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
95 _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, RGB_TOG, RGB_MOD, XXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, RGB_VAI,RGB_HUI,RGB_SAI, XXXXX, _____, 81 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, RGB_VAI,RGB_HUI,RGB_SAI,XXXXXXX,_______,
96 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 82 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
97 _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RAISE, XXXXX, XXXXX, XXXXX, XXXXX, _____, 83 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______,
98 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------| 84 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------|
99 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, RGB_MOD, _____, _____, _____ 85 _______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG,_______,_______
100 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------| 86 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------|
101 ) 87 )
102}; 88};
103 89
104static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
105
106 pressed ? layer_on(layer1) : layer_off(layer1);
107 IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
108}
109
110int RGB_current_mode; 90int RGB_current_mode;
111bool process_record_user(uint16_t keycode, keyrecord_t *record) { 91bool process_record_user(uint16_t keycode, keyrecord_t *record) {
112
113 bool result = false; 92 bool result = false;
114 switch (keycode) { 93 switch (keycode) {
115 case LOWER:
116 update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
117 break;
118 case RAISE:
119 update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
120 break;
121 case SEND_SUM: 94 case SEND_SUM:
122 if (record->event.pressed) { 95 if (record->event.pressed) {
123 SEND_STRING("=SUM("); 96 SEND_STRING("=SUM(");
124 } 97 }
125 break; 98 break;
126 case SEND_AVERAGE: 99 case SEND_AVE:
127 if (record->event.pressed) { 100 if (record->event.pressed) {
128 SEND_STRING("=AVERAGE("); 101 SEND_STRING("=AVERAGE(");
129 } 102 }
130 break; 103 break;
131 case SEND_COUNTIF: 104 case SEND_CIF:
132 if (record->event.pressed) { 105 if (record->event.pressed) {
133 SEND_STRING("=COUNTIF("); 106 SEND_STRING("=COUNTIF(");
134 } 107 }
@@ -151,7 +124,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
151 RGB_current_mode = rgblight_config.mode; 124 RGB_current_mode = rgblight_config.mode;
152 } 125 }
153 break; 126 break;
154 case RGBRST: 127 case RGB_RST:
155 if (record->event.pressed) { 128 if (record->event.pressed) {
156 eeconfig_update_rgblight_default(); 129 eeconfig_update_rgblight_default();
157 rgblight_enable(); 130 rgblight_enable();
@@ -168,7 +141,5 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
168} 141}
169 142
170void matrix_init_user(void) { 143void matrix_init_user(void) {
171 #ifdef RGBLIGHT_ENABLE 144
172 RGB_current_mode = rgblight_config.mode;
173 #endif
174} 145}
diff --git a/keyboards/naked48/keymaps/default_with_setta21/readme.md b/keyboards/naked48/keymaps/default_with_setta21/readme.md
index 921c1e495..365219739 100644
--- a/keyboards/naked48/keymaps/default_with_setta21/readme.md
+++ b/keyboards/naked48/keymaps/default_with_setta21/readme.md
@@ -2,46 +2,43 @@
2 2
3Add Setta21 maps to the default layout. 3Add Setta21 maps to the default layout.
4 4
5Default 5## Default
6 //|-----------------------------------------| 6| 1 | 2 | 3 | 4 |
7 Rai+0, 1, 4, 7,Ad+Num, ESC, 7|:----:|:----:|:----:|:----:|
8 //|------+------+------+------+------+------| 8| ESC| F2| =| DEL|
9 2, 5, 8, /, F2, 9|Ad+Num| /| *| -|
10 //|------+------+------+------+------+------| 10| 7| 8| 9| |
11 Low+., 3, 6, 9, *, =, 11| 4| 5| 6| +|
12 //|-------------+-------------+------+------| 12| 1| 2| 3| |
13 ENT, +, -, DEL 13| Rai+0| | LOW + .| ENT|
14 //|-----------------------------------------|
15 14
16Lower 15## Lower
17 //|-----------------------------------------| 16| 1 | 2 | 3 | 4 |
18 RAISE, F11, F4, F7, "=MIN(", ESC, 17|:----:|:----:|:----:|:----:|
19 //|------+------+------+------+-----------+------| 18| ESC| F2| =| DEL|
20 F12, F5, F8, "=MAX(", F2, 19| =MIN(| =MAX(|=COUNTIF(|=AVERAGE(|
21 //|------+------+------+------+-----------+------| 20| F7| F8| F9| |
22 LOWER, F3, F6, F9,"=COUNTIF(", =, 21| F4| F5| F6| =SUM(|
23 //|-------------+-------------+-----------+------| 22| F11| F12| F3| |
24 ), "=SUM(","=AVERAGE(", DEL 23| RAISE| | LOWER| )|
25 //|-----------------------------------------|
26 24
27Raise 25## Raise
28 //|-----------------------------------------| 26| 1 | 2 | 3 | 4 |
29 RAISE, XXXXX, LEFT, XXXXX, XXXXX, ESC, 27|:----:|:----:|:----:|:----:|
30 //|------+------+------+------+------+------| 28| ESC| F2| =| DEL|
31 DOWN, DOWN, UP, /, F2, 29| XXXXX| /| *| -|
32 //|------+------+------+------+------+------| 30| XXXXX| UP| XXXXX| |
33 LOWER, XXXXX, RIGHT, XXXXX, *, =, 31| LEFT| DOWN| RIGHT| +|
34 //|-------------+-------------+------+------| 32| XXXXX| DOWN| XXXXX| |
35 ENT, +, -, DEL 33| RAISE| | LOWER| ENT|
36 //|-----------------------------------------| 34
35## Adjust
36| 1 | 2 | 3 | 4 |
37|:----:|:----:|:----:|:----:|
38| ESC| F2| =| DEL|
39|ADJUST| XXXXX| XXXXX| -|
40|LED_SAD|LED_SAI| XXXXX| |
41|LED_HUD|LED_HUI| XXXXX| +|
42|LED_VAD|LED_VAI| XXXXX| |
43|LED_ON/Off| | XXXXX|LED_MOD|
37 44
38Adjust
39 //|------------------------------------------------|
40 LED ON/Off,LED VAD,LED HUD,LED SAD, ADJUST, ESC,
41 //|--------+-------+-------+-------+-------+-------|
42 LED VAI,LED HUI,LED SAI, XXXXX, F2,
43 //|--------+-------+-------+-------+-------+-------|
44 XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, =,
45 //|----------------+---------------+-------+-------|
46 LED MOD, +, -, DEL
47 //|------------------------------------------------|
diff --git a/keyboards/naked48/keymaps/default_with_setta21/rules.mk b/keyboards/naked48/keymaps/default_with_setta21/rules.mk
index ee538432e..e69de29bb 100644
--- a/keyboards/naked48/keymaps/default_with_setta21/rules.mk
+++ b/keyboards/naked48/keymaps/default_with_setta21/rules.mk
@@ -1,29 +0,0 @@
1
2# Build Options
3# change to "no" to disable the options, or define them in the Makefile in
4# the appropriate keymap folder that will get included automatically
5#
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
7MOUSEKEY_ENABLE = no # Mouse keys(+4700)
8EXTRAKEY_ENABLE = no # Audio control and System control(+450)
9CONSOLE_ENABLE = no # Console for debug(+400)
10COMMAND_ENABLE = no # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no # Audio output on port C6
15UNICODE_ENABLE = no # Unicode
16BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
17RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
18SWAP_HANDS_ENABLE = no # Enable one-hand typing
19
20# If your custom naked48 pcb, you can rewrite to yes.
21LED_ANIMATIONS = yes # LED animations
22
23ifeq ($(strip $(LED_ANIMATIONS)), yes)
24 # OPT_DEFS += -DRGBLIGHT_ANIMATIONS
25 OPT_DEFS += -DLED_ANIMATIONS
26endif
27
28# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
29SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/naked48/keymaps/salicylic/config.h b/keyboards/naked48/keymaps/salicylic/config.h
index ad417f7f0..5eceec73b 100644
--- a/keyboards/naked48/keymaps/salicylic/config.h
+++ b/keyboards/naked48/keymaps/salicylic/config.h
@@ -18,24 +18,23 @@
18 18
19/* Select hand configuration */ 19/* Select hand configuration */
20 20
21#define MASTER_LEFT
22// #define MASTER_RIGHT
23// #define EE_HANDS
24
25#define USE_SERIAL_PD2
26
27#define TAPPING_FORCE_HOLD 21#define TAPPING_FORCE_HOLD
28#define TAPPING_TERM 180 22#define TAPPING_TERM 180
29 23
30// Selection of RGBLIGHT MODE to use. 24#define DRIVER_LED_TOTAL 48
31#if defined(LED_ANIMATIONS) 25
32 //#define RGBLIGHT_EFFECT_BREATHING 26#ifdef RGB_MATRIX_ENABLE
33 #define RGBLIGHT_EFFECT_RAINBOW_MOOD 27# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
34 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL 28// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
35 //#define RGBLIGHT_EFFECT_SNAKE 29// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
36 #define RGBLIGHT_EFFECT_KNIGHT 30# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
37 //#define RGBLIGHT_EFFECT_CHRISTMAS 31// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
38 #define RGBLIGHT_EFFECT_STATIC_GRADIENT 32// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
39 //#define RGBLIGHT_EFFECT_RGB_TEST 33// # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
40 //#define RGBLIGHT_EFFECT_ALTERNATING 34# define RGB_MATRIX_HUE_STEP 8
41#endif \ No newline at end of file 35# define RGB_MATRIX_SAT_STEP 8
36# define RGB_MATRIX_LIMIT_VAL 50
37# define RGB_MATRIX_VAL_STEP 5
38# define RGB_MATRIX_SPD_STEP 10
39#endif
40
diff --git a/keyboards/naked48/keymaps/salicylic/keymap.c b/keyboards/naked48/keymaps/salicylic/keymap.c
index 99c95cb02..995e8bd29 100644
--- a/keyboards/naked48/keymaps/salicylic/keymap.c
+++ b/keyboards/naked48/keymaps/salicylic/keymap.c
@@ -3,10 +3,11 @@
3 3
4extern keymap_config_t keymap_config; 4extern keymap_config_t keymap_config;
5 5
6#ifdef RGBLIGHT_ENABLE 6//#ifdef RGB_MATRIX_ENABLE
7//Following line allows macro to read current RGB settings 7//Following line allows macro to read current RGB settings
8extern rgblight_config_t rgblight_config; 8//extern rgblight_config_t rgblight_config;
9#endif 9
10//#endif
10 11
11extern uint8_t is_master; 12extern uint8_t is_master;
12 13
@@ -22,17 +23,10 @@ enum layer_number {
22}; 23};
23 24
24enum custom_keycodes { 25enum custom_keycodes {
25 LOWER = SAFE_RANGE, 26 RGB_RST = SAFE_RANGE
26 RAISE,
27 ADJUST,
28 KANJI,
29 RGBRST
30}; 27};
31 28
32// Fillers to make layering more clear 29// Fillers to make layering more clear
33#define _____ KC_TRNS
34#define XXXXX KC_NO
35
36#define KC_CT11 LCTL_T(KC_F11) 30#define KC_CT11 LCTL_T(KC_F11)
37#define KC_SF12 SFT_T(KC_F12) 31#define KC_SF12 SFT_T(KC_F12)
38#define KC_LOEN LT(_LOWER, KC_ENT) 32#define KC_LOEN LT(_LOWER, KC_ENT)
@@ -56,44 +50,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
56 //,-----------------------------------------------------| |-----------------------------------------------------. 50 //,-----------------------------------------------------| |-----------------------------------------------------.
57 KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, 51 KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH,
58 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 52 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
59 JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXX, KC_4, KC_5, KC_6, JP_MINS, JP_EQL, 53 JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXXXX, KC_4, KC_5, KC_6, JP_MINS, JP_EQL,
60 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 54 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
61 JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_0, KC_1, KC_2, KC_3, JP_PLUS, KC_ENT, 55 JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_0, KC_1, KC_2, KC_3, JP_PLUS, KC_ENT,
62 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 56 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
63 _____, _____, _____, KC_ZKHK, LOWER, _____, _____, RAISE, KC_0, JP_DOT, _____, _____ 57 _______, _______, _______, KC_ZKHK,MO(_LOWER),_______,_______,MO(_RAISE),JP_DOT, _______, _______, _______
64 //`------------------------------------------------------------------------------------------------------------' 58 //`------------------------------------------------------------------------------------------------------------'
65 ), 59 ),
66 60
67 61
68 [_RAISE] = LAYOUT( 62 [_RAISE] = LAYOUT(
69 //,-----------------------------------------------------| |-----------------------------------------------------. 63 //,-----------------------------------------------------| |-----------------------------------------------------.
70 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, XXXXX, KC_UP, XXXXX, KC_PGUP, KC_DEL, 64 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, KC_DEL,
71 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 65 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
72 KC_CT11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, KC_LSFT, KC_ENT, 66 KC_CT11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, KC_LSFT, KC_ENT,
73 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 67 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
74 KC_SF12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXX, XXXXX, XXXXX, XXXXX, KC_PGDN, XXXXX, 68 KC_SF12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, XXXXXXX,
75 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 69 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
76 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ 70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
77 //`------------------------------------------------------------------------------------------------------------' 71 //`------------------------------------------------------------------------------------------------------------'
78 ), 72 ),
79 73
80 [_ADJUST] = LAYOUT( /* Base */ 74 [_ADJUST] = LAYOUT( /* Base */
81 //,-----------------------------------------------------| |-----------------------------------------------------. 75 //,-----------------------------------------------------| |-----------------------------------------------------.
82 _____, _____, _____, _____, _____, _____, _____, KC_7, KC_8, KC_9, KC_0, _____, 76 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
83 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 77 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
84 _____, _____, _____, _____, _____, _____, RGB_TOG, RGB_MOD, XXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, 78 KC_LCTRL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR,
85 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 79 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
86 _____, _____, _____, _____, _____, _____, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, 80 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI,
87 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 81 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
88 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ 82 _______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______
89 //`------------------------------------------------------------------------------------------------------------' 83 //`------------------------------------------------------------------------------------------------------------'
90 ) 84 )
91}; 85};
92 86
93static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) { 87uint32_t layer_state_set_user(uint32_t state) {
94 88 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
95 pressed ? layer_on(layer1) : layer_off(layer1);
96 IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
97} 89}
98 90
99int RGB_current_mode; 91int RGB_current_mode;
@@ -101,23 +93,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
101 93
102 bool result = false; 94 bool result = false;
103 switch (keycode) { 95 switch (keycode) {
104 case LOWER:
105 update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
106 break;
107 case RAISE:
108 update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
109 break;
110 case KANJI:
111 if (record->event.pressed) {
112 if (keymap_config.swap_lalt_lgui == false) {
113 register_code(KC_LANG2);
114 } else {
115 SEND_STRING(SS_LALT("`"));
116 }
117 } else {
118 unregister_code(KC_LANG2);
119 }
120 break;
121 #ifdef RGBLIGHT_ENABLE 96 #ifdef RGBLIGHT_ENABLE
122 case RGB_MOD: 97 case RGB_MOD:
123 if (record->event.pressed) { 98 if (record->event.pressed) {
@@ -143,7 +118,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
143} 118}
144 119
145void matrix_init_user(void) { 120void matrix_init_user(void) {
146 #ifdef RGBLIGHT_ENABLE 121
147 RGB_current_mode = rgblight_config.mode;
148 #endif
149} 122}
123
diff --git a/keyboards/naked48/keymaps/salicylic/rules.mk b/keyboards/naked48/keymaps/salicylic/rules.mk
index ee538432e..be8d10c9a 100644
--- a/keyboards/naked48/keymaps/salicylic/rules.mk
+++ b/keyboards/naked48/keymaps/salicylic/rules.mk
@@ -1,29 +1,3 @@
1RGBLIGHT_ENABLE = no
2RGB_MATRIX_ENABLE = WS2812
1 3
2# Build Options
3# change to "no" to disable the options, or define them in the Makefile in
4# the appropriate keymap folder that will get included automatically
5#
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
7MOUSEKEY_ENABLE = no # Mouse keys(+4700)
8EXTRAKEY_ENABLE = no # Audio control and System control(+450)
9CONSOLE_ENABLE = no # Console for debug(+400)
10COMMAND_ENABLE = no # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no # Audio output on port C6
15UNICODE_ENABLE = no # Unicode
16BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
17RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
18SWAP_HANDS_ENABLE = no # Enable one-hand typing
19
20# If your custom naked48 pcb, you can rewrite to yes.
21LED_ANIMATIONS = yes # LED animations
22
23ifeq ($(strip $(LED_ANIMATIONS)), yes)
24 # OPT_DEFS += -DRGBLIGHT_ANIMATIONS
25 OPT_DEFS += -DLED_ANIMATIONS
26endif
27
28# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
29SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/naked48/keymaps/salicylic_with_nafuda/config.h b/keyboards/naked48/keymaps/salicylic_with_nafuda/config.h
index a55856b24..a2ce42ea5 100644
--- a/keyboards/naked48/keymaps/salicylic_with_nafuda/config.h
+++ b/keyboards/naked48/keymaps/salicylic_with_nafuda/config.h
@@ -27,38 +27,7 @@
27#define TAPPING_FORCE_HOLD 27#define TAPPING_FORCE_HOLD
28#define TAPPING_TERM 180 28#define TAPPING_TERM 180
29 29
30// Selection of RGBLIGHT MODE to use. 30#define RGBLED_NUM 55 // Number of LEDs
31#if defined(LED_ANIMATIONS) 31#define RGBLIGHT_SPLIT
32 //#define RGBLIGHT_EFFECT_BREATHING 32#define RGBLED_SPLIT { 48, 7 }
33 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
34 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
35 //#define RGBLIGHT_EFFECT_SNAKE
36 #define RGBLIGHT_EFFECT_KNIGHT
37 //#define RGBLIGHT_EFFECT_CHRISTMAS
38 #define RGBLIGHT_EFFECT_STATIC_GRADIENT
39 //#define RGBLIGHT_EFFECT_RGB_TEST
40 //#define RGBLIGHT_EFFECT_ALTERNATING
41#endif
42 33
43#define MK_3_SPEED
44
45#undef MOUSEKEY_INTERVAL
46#define MOUSEKEY_INTERVAL 0
47
48#undef MOUSEKEY_TIME_TO_MAX
49#define MOUSEKEY_TIME_TO_MAX 150
50
51#undef MOUSEKEY_MAX_SPEED
52#define MOUSEKEY_MAX_SPEED 3
53
54#undef MOUSEKEY_MOVE_DELTA
55#define MOUSEKEY_MOVE_DELTA 5
56
57#undef MOUSEKEY_DELAY
58#define MOUSEKEY_DELAY 0
59
60#undef MOUSEKEY_WHEEL_MAX_SPEED
61#define MOUSEKEY_WHEEL_MAX_SPEED 1
62
63#undef MOUSEKEY_WHEEL_TIME_TO_MAX
64#define MOUSEKEY_WHEEL_TIME_TO_MAX 0
diff --git a/keyboards/naked48/keymaps/salicylic_with_nafuda/keymap.c b/keyboards/naked48/keymaps/salicylic_with_nafuda/keymap.c
index 1551b8263..dbb1797ce 100644
--- a/keyboards/naked48/keymaps/salicylic_with_nafuda/keymap.c
+++ b/keyboards/naked48/keymaps/salicylic_with_nafuda/keymap.c
@@ -24,43 +24,24 @@ enum layer_number {
24}; 24};
25 25
26enum custom_keycodes { 26enum custom_keycodes {
27 MOUSE = SAFE_RANGE, 27 RGB_RST = SAFE_RANGE
28 BROWSER,
29 LOWER,
30 RAISE,
31 ADJUST,
32 KANJI,
33 RGBRST
34}; 28};
35 29
36// Fillers to make layering more clear 30// Fillers to make layering more clear
37#define _____ KC_TRNS
38#define XXXXX KC_NO
39
40#define KC_CT11 LCTL_T(KC_F11) 31#define KC_CT11 LCTL_T(KC_F11)
41#define KC_SF12 SFT_T(KC_F12) 32#define KC_SF12 SFT_T(KC_F12)
42
43#define KC_LOEN LT(_LOWER, KC_ENT) 33#define KC_LOEN LT(_LOWER, KC_ENT)
44#define KC_RASP LT(_RAISE, KC_SPC) 34#define KC_RASP LT(_RAISE, KC_SPC)
45#define KC_CAD LCA(KC_DEL)
46#define KC_APSCR LALT(KC_PSCR)
47 35
48#define KC_RTAB LCTL(KC_TAB)
49#define KC_LTAB LCTL(LSFT(KC_TAB))
50#define KC_CTAB LCTL(KC_W)
51#define KC_RETAB LCTL(LSFT(KC_T))
52
53#define KC_TGMO TG(_MOUSE)
54#define KC_TGBR TG(_BROWSER)
55#define KC_BSAD LT(_ADJUST, KC_BSPC) 36#define KC_BSAD LT(_ADJUST, KC_BSPC)
56 37
57 38
58const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 39const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
59 [_QWERTY] = LAYOUT_with_nafuda( 40 [_QWERTY] = LAYOUT_with_nafuda(
60 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 41 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
61 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, KC_TGMO, 42 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, TG(_MOUSE),
62 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 43 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
63 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_BSAD, KC_UP, KC_TGBR, 44 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_BSAD, KC_UP,TG(_BROWSER),
64 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 45 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
65 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_LEFT, KC_DOWN,KC_RIGHT, 46 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_LEFT, KC_DOWN,KC_RIGHT,
66 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 47 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
@@ -70,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
70 51
71 [_MOUSE] = LAYOUT_with_nafuda( 52 [_MOUSE] = LAYOUT_with_nafuda(
72 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 53 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
73 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, KC_TGMO, 54 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, TG(_MOUSE),
74 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 55 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
75 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_BTN1, KC_MS_U, KC_BTN2, 56 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_BTN1, KC_MS_U, KC_BTN2,
76 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 57 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
@@ -82,11 +63,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
82 63
83 [_BROWSER] = LAYOUT_with_nafuda( 64 [_BROWSER] = LAYOUT_with_nafuda(
84 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 65 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
85 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, KC_CTAB, 66 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, LCTL(KC_W),
86 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 67 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
87 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_RETAB, KC_WH_U, KC_TGBR, 68 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC,LCTL(LSFT(KC_T)),KC_WH_U,TG(_BROWSER),
88 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 69 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
89 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_LTAB, KC_WH_D, KC_RTAB, 70 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS,LCTL(LSFT(KC_TAB)), KC_WH_D,LCTL(KC_TAB),
90 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 71 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
91 KC_LEFT,KC_RIGHT, KC_LGUI, KC_MHEN, KC_LOEN, KC_BSPC, KC_DEL, KC_RASP, KC_HENK, KC_LALT, KC_DOWN, KC_UP 72 KC_LEFT,KC_RIGHT, KC_LGUI, KC_MHEN, KC_LOEN, KC_BSPC, KC_DEL, KC_RASP, KC_HENK, KC_LALT, KC_DOWN, KC_UP
92 //`------------------------------------------------------------------------------------------------------------' 73 //`------------------------------------------------------------------------------------------------------------'
@@ -94,45 +75,43 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
94 75
95 [_LOWER] = LAYOUT_with_nafuda( 76 [_LOWER] = LAYOUT_with_nafuda(
96 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 77 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
97 KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, KC_TGMO, 78 KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, TG(_MOUSE),
98 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 79 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
99 JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXX, KC_4, KC_5, KC_6, JP_MINS, JP_EQL, KC_BSAD, KC_UP, KC_TGBR, 80 JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXXXX, KC_4, KC_5, KC_6, JP_MINS, JP_EQL, KC_BSAD, KC_UP,TG(_BROWSER),
100 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 81 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
101 JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_0, KC_1, KC_2, KC_3, JP_PLUS, KC_ENT, KC_LEFT, KC_DOWN,KC_RIGHT, 82 JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_0, KC_1, KC_2, KC_3, JP_PLUS, KC_ENT, KC_LEFT, KC_DOWN,KC_RIGHT,
102 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 83 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
103 _____, _____, _____, KC_ZKHK, LOWER, _____, _____, RAISE, KC_0, JP_DOT, _____, _____ 84 _______, _______, _______, KC_ZKHK,MO(_LOWER),_______,_______,MO(_RAISE),JP_DOT, _______, _______, _______
104 //`------------------------------------------------------------------------------------------------------------' 85 //`------------------------------------------------------------------------------------------------------------'
105 ), 86 ),
106 87
107 [_RAISE] = LAYOUT_with_nafuda( 88 [_RAISE] = LAYOUT_with_nafuda(
108 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 89 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
109 KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, KC_TGMO, 90 KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, TG(_MOUSE),
110 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 91 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
111 KC_CT11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, KC_LSFT, KC_ENT, KC_BSAD, KC_UP, KC_TGBR, 92 KC_CT11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, KC_LSFT, KC_ENT, KC_BSAD, KC_UP,TG(_BROWSER),
112 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 93 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
113 KC_SF12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXX, XXXXX, XXXXX, XXXXX, KC_PGDN, XXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, 94 KC_SF12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT,
114 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 95 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
115 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ 96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
116 //`------------------------------------------------------------------------------------------------------------' 97 //`------------------------------------------------------------------------------------------------------------'
117 ), 98 ),
118 99
119 [_ADJUST] = LAYOUT_with_nafuda( /* Base */ 100 [_ADJUST] = LAYOUT_with_nafuda( /* Base */
120 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| 101 //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------|
121 _____, _____, _____, _____, _____, _____, _____, KC_7, KC_8, KC_9, KC_0, _____, RGB_VAD, 102 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_VAD,
122 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 103 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
123 _____, _____, _____, _____, _____, _____, RGB_TOG, RGB_MOD, XXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, ADJUST, RGB_SAD, RGB_VAI, 104 KC_LCTRL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, _ADJUST, RGB_SAD, RGB_VAI,
124 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| 105 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------|
125 _____, _____, _____, _____, _____, _____, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_MOD, RGB_TOG, RGB_SAI, 106 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_MOD, RGB_TOG, RGB_SAI,
126 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| 107 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------|
127 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ 108 _______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______
128 //`------------------------------------------------------------------------------------------------------------' 109 //`------------------------------------------------------------------------------------------------------------'
129 ) 110 )
130}; 111};
131 112
132static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) { 113uint32_t layer_state_set_user(uint32_t state) {
133 114 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
134 pressed ? layer_on(layer1) : layer_off(layer1);
135 IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
136} 115}
137 116
138int RGB_current_mode; 117int RGB_current_mode;
@@ -140,23 +119,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
140 119
141 bool result = false; 120 bool result = false;
142 switch (keycode) { 121 switch (keycode) {
143 case LOWER:
144 update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
145 break;
146 case RAISE:
147 update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
148 break;
149 case KANJI:
150 if (record->event.pressed) {
151 if (keymap_config.swap_lalt_lgui == false) {
152 register_code(KC_LANG2);
153 } else {
154 SEND_STRING(SS_LALT("`"));
155 }
156 } else {
157 unregister_code(KC_LANG2);
158 }
159 break;
160 #ifdef RGBLIGHT_ENABLE 122 #ifdef RGBLIGHT_ENABLE
161 case RGB_MOD: 123 case RGB_MOD:
162 if (record->event.pressed) { 124 if (record->event.pressed) {
@@ -165,7 +127,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
165 RGB_current_mode = rgblight_config.mode; 127 RGB_current_mode = rgblight_config.mode;
166 } 128 }
167 break; 129 break;
168 case RGBRST: 130 case RGB_RST:
169 if (record->event.pressed) { 131 if (record->event.pressed) {
170 eeconfig_update_rgblight_default(); 132 eeconfig_update_rgblight_default();
171 rgblight_enable(); 133 rgblight_enable();
@@ -182,7 +144,5 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
182} 144}
183 145
184void matrix_init_user(void) { 146void matrix_init_user(void) {
185 #ifdef RGBLIGHT_ENABLE 147
186 RGB_current_mode = rgblight_config.mode;
187 #endif
188} 148}
diff --git a/keyboards/naked48/keymaps/salicylic_with_nafuda/readme.md b/keyboards/naked48/keymaps/salicylic_with_nafuda/readme.md
index 2f9f3802d..15e34e188 100644
--- a/keyboards/naked48/keymaps/salicylic_with_nafuda/readme.md
+++ b/keyboards/naked48/keymaps/salicylic_with_nafuda/readme.md
@@ -2,38 +2,31 @@
2 2
3Add Nafuda maps to the salicylic layout. 3Add Nafuda maps to the salicylic layout.
4 4
5Default 5## Default
6 //|--------------------| 6| 1 | 2 | 3 |
7 Mouse, 7|:----:|:----:|:----:|
8 //|------+------+------| 8| | MOUSE| |
9 BS + Ad, UP,Browser, 9| BS+Ad| UP|Browser|
10 //|------+------+------| 10| LEFT| DOWN| RIGHT|
11 LEFT, DOWN, RIGHT
12 //|--------------------|
13 11
14Mouse 12## Mouse
15 //|--------------------| 13| 1 | 2 | 3 |
16 Default, 14|:----:|:----:|:----:|
17 //|------+------+------| 15| |Default| |
18 BTN1, MS_U, BTN2, 16| BTN1| MS_U| BTN2|
19 //|------+------+------| 17| MS_L| MS_D| MS_R|
20 MS_L, MS_D, MS_R
21 //|--------------------|
22 18
23Browser 19## Browser
24 //|--------------------| 20| 1 | 2 | 3 |
25 CloseTAB, 21|:----:|:----:|:----:|
26 //|------+------+------| 22| |CloseTAB| |
27 ReOpenTAB, WH_U,Default, 23|ReOpenTAB|WH_U|Default|
28 //|------+------+------| 24| LTAB| WH_D| RTAB|
29 LTAB, WH_D, RTAB 25
30 //|--------------------| 26## Adjust
27| 1 | 2 | 3 |
28|:----:|:----:|:----:|
29| |LED_VAD| |
30|Default|LED_HUD|LED_VAI|
31|LED_MOD|LED_ON/Off|LED_HUI|
31 32
32Adjust
33 //|------------------------|
34 LED VAD,
35 //|------+----------+------|
36 Default, LED HUD,LED VAI,
37 //|------+----------+------|
38 LED MOD,LED ON/Off,LED HUI
39 //|------------------------|
diff --git a/keyboards/naked48/keymaps/salicylic_with_nafuda/rules.mk b/keyboards/naked48/keymaps/salicylic_with_nafuda/rules.mk
index dd471767a..f76b955ef 100644
--- a/keyboards/naked48/keymaps/salicylic_with_nafuda/rules.mk
+++ b/keyboards/naked48/keymaps/salicylic_with_nafuda/rules.mk
@@ -1,29 +1 @@
1
2# Build Options
3# change to "no" to disable the options, or define them in the Makefile in
4# the appropriate keymap folder that will get included automatically
5#
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
7MOUSEKEY_ENABLE = yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
8EXTRAKEY_ENABLE = no # Audio control and System control(+450)
9CONSOLE_ENABLE = no # Console for debug(+400)
10COMMAND_ENABLE = no # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no # Audio output on port C6
15UNICODE_ENABLE = no # Unicode
16BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
17RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
18SWAP_HANDS_ENABLE = no # Enable one-hand typing
19
20# If your custom naked48 pcb, you can rewrite to yes.
21LED_ANIMATIONS = yes # LED animations
22
23ifeq ($(strip $(LED_ANIMATIONS)), yes)
24 # OPT_DEFS += -DRGBLIGHT_ANIMATIONS
25 OPT_DEFS += -DLED_ANIMATIONS
26endif
27
28# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
29SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/naked48/keymaps/salicylic_with_setta21/config.h b/keyboards/naked48/keymaps/salicylic_with_setta21/config.h
index ad417f7f0..1e86c6bb7 100644
--- a/keyboards/naked48/keymaps/salicylic_with_setta21/config.h
+++ b/keyboards/naked48/keymaps/salicylic_with_setta21/config.h
@@ -21,21 +21,11 @@
21#define MASTER_LEFT 21#define MASTER_LEFT
22// #define MASTER_RIGHT 22// #define MASTER_RIGHT
23// #define EE_HANDS 23// #define EE_HANDS
24
25#define USE_SERIAL_PD2 24#define USE_SERIAL_PD2
26 25
27#define TAPPING_FORCE_HOLD 26#define TAPPING_FORCE_HOLD
28#define TAPPING_TERM 180 27#define TAPPING_TERM 180
29 28
30// Selection of RGBLIGHT MODE to use. 29#define RGBLED_NUM 69 // Number of LEDs
31#if defined(LED_ANIMATIONS) 30#define RGBLIGHT_SPLIT
32 //#define RGBLIGHT_EFFECT_BREATHING 31#define RGBLED_SPLIT { 48, 21 }
33 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
34 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
35 //#define RGBLIGHT_EFFECT_SNAKE
36 #define RGBLIGHT_EFFECT_KNIGHT
37 //#define RGBLIGHT_EFFECT_CHRISTMAS
38 #define RGBLIGHT_EFFECT_STATIC_GRADIENT
39 //#define RGBLIGHT_EFFECT_RGB_TEST
40 //#define RGBLIGHT_EFFECT_ALTERNATING
41#endif \ No newline at end of file
diff --git a/keyboards/naked48/keymaps/salicylic_with_setta21/keymap.c b/keyboards/naked48/keymaps/salicylic_with_setta21/keymap.c
index 18293e63e..d04b53d7b 100644
--- a/keyboards/naked48/keymaps/salicylic_with_setta21/keymap.c
+++ b/keyboards/naked48/keymaps/salicylic_with_setta21/keymap.c
@@ -22,41 +22,27 @@ enum layer_number {
22}; 22};
23 23
24enum custom_keycodes { 24enum custom_keycodes {
25 LOWER = SAFE_RANGE, 25 RGB_RST = SAFE_RANGE,
26 RAISE,
27 ADJUST,
28 KANJI,
29 RGBRST,
30 SEND_SUM, 26 SEND_SUM,
31 SEND_AVERAGE, 27 SEND_AVE,
32 SEND_COUNTIF, 28 SEND_CIF,
33 SEND_MAX, 29 SEND_MAX,
34 SEND_MIN 30 SEND_MIN
35}; 31};
36 32
37// Fillers to make layering more clear 33// Fillers to make layering more clear
38#define _____ KC_TRNS
39#define XXXXX KC_NO
40
41#define KC_CT11 LCTL_T(KC_F11) 34#define KC_CT11 LCTL_T(KC_F11)
42#define KC_SF12 SFT_T(KC_F12) 35#define KC_SF12 SFT_T(KC_F12)
43#define KC_LOEN LT(_LOWER, KC_ENT) 36#define KC_LOEN LT(_LOWER, KC_ENT)
44#define KC_RASP LT(_RAISE, KC_SPC) 37#define KC_RASP LT(_RAISE, KC_SPC)
45 38
46#define KC_SSUM SEND_SUM
47#define KC_SAVE SEND_AVERAGE
48#define KC_SCOU SEND_COUNTIF
49#define KC_SMAX SEND_MAX
50#define KC_SMIN SEND_MIN
51
52#define KC_RADO LT(_RAISE, KC_PDOT) 39#define KC_RADO LT(_RAISE, KC_PDOT)
53#define KC_LOP0 LT(_LOWER, KC_P0) 40#define KC_LOP0 LT(_LOWER, KC_P0)
54#define KC_ADNL LT(_ADJUST, KC_NLCK)
55 41
56const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 42const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
57 [_QWERTY] = LAYOUT_with_setta21( 43 [_QWERTY] = LAYOUT_with_setta21(
58 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| 44 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------|
59 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, KC_LOP0, KC_P1, KC_P4, KC_P7,KC_ADNL, KC_ESC, 45 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, KC_LOP0, KC_P1, KC_P4, KC_P7,KC_NLCK, KC_ESC,
60 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 46 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
61 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_P2, KC_P5, KC_P8,KC_PSLS, KC_F2, 47 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_P2, KC_P5, KC_P8,KC_PSLS, KC_F2,
62 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 48 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
@@ -68,80 +54,60 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
68 54
69 [_LOWER] = LAYOUT_with_setta21( 55 [_LOWER] = LAYOUT_with_setta21(
70 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| 56 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------|
71 KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, LOWER, XXXXX,KC_LEFT, XXXXX, XXXXX, KC_ESC, 57 KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, MO(_LOWER),XXXXXXX,KC_LEFT,XXXXXXX,XXXXXXX, KC_ESC,
72 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 58 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
73 JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXX, KC_4, KC_5, KC_6, JP_MINS, JP_EQL, KC_DOWN,KC_DOWN, KC_UP,KC_PSLS, KC_F2, 59 JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXXXX, KC_4, KC_5, KC_6, JP_MINS, JP_EQL, KC_DOWN,KC_DOWN, KC_UP,KC_PSLS, KC_F2,
74 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 60 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
75 JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_0, KC_1, KC_2, KC_3, JP_PLUS, KC_ENT, RAISE, XXXXX,KC_RIGHT, XXXXX,KC_PAST, JP_EQL, 61 JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_0, KC_1, KC_2, KC_3, JP_PLUS, KC_ENT, MO(_RAISE),XXXXXXX,KC_RIGHT,XXXXXXX,KC_PAST, JP_EQL,
76 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------| 62 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------|
77 _____, _____, _____, KC_ZKHK, LOWER, _____, _____, RAISE, KC_0, JP_DOT, _____, _____, KC_PENT, KC_PPLS,KC_PMNS, KC_DEL 63 _______, _______, _______, KC_ZKHK,MO(_LOWER),_______,_______,MO(_RAISE),JP_DOT, _______, _______, _______, KC_PENT, KC_PPLS,KC_PMNS, KC_DEL
78 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------| 64 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------|
79 ), 65 ),
80 66
81 [_RAISE] = LAYOUT_with_setta21( 67 [_RAISE] = LAYOUT_with_setta21(
82 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| 68 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------|
83 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, XXXXX, KC_UP, XXXXX, KC_PGUP, KC_DEL, LOWER, KC_F11, KC_F4, KC_F7,KC_SMIN, KC_ESC, 69 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, KC_DEL, _______, KC_F11, KC_F4, KC_F7,SEND_MIN, KC_ESC,
84 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 70 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
85 KC_CT11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, KC_LSFT, KC_ENT, KC_F12, KC_F5, KC_F8,KC_SMAX, KC_F2, 71 KC_CT11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, KC_LSFT, KC_ENT, KC_F12, KC_F5, KC_F8,SEND_MAX, KC_F2,
86 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 72 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
87 KC_SF12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXX, XXXXX, XXXXX, XXXXX, KC_PGDN, XXXXX, RAISE, KC_F3, KC_F6, KC_F9,KC_SCOU, JP_EQL, 73 KC_SF12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, XXXXXXX, _______, KC_F3, KC_F6, KC_F9,SEND_CIF, JP_EQL,
88 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------| 74 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------|
89 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, JP_RPRN, KC_SSUM,KC_SAVE, KC_DEL 75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, JP_RPRN, SEND_SUM,SEND_AVE, KC_DEL
90 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------| 76 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------|
91 ), 77 ),
92 78
93 [_ADJUST] = LAYOUT_with_setta21( /* Base */ 79 [_ADJUST] = LAYOUT_with_setta21( /* Base */
94 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------| 80 //,-----------------------------------------------------| |-----------------------------------------------------. |-----------------------------------------------|
95 _____, _____, _____, _____, _____, _____, _____, KC_7, KC_8, KC_9, KC_0, _____, LOWER,RGB_VAD,RGB_HUD,RGB_SAD, ADJUST,RGB_TOG, 81 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,RGB_VAD,RGB_HUD,RGB_SAD,XXXXXXX,_______,
96 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 82 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
97 _____, _____, _____, _____, _____, _____, RGB_TOG, RGB_MOD, XXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, RGB_VAI,RGB_HUI,RGB_SAI, XXXXX, _____, 83 KC_LCTRL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, RGB_VAI,RGB_HUI,RGB_SAI,XXXXXXX,_______,
98 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------| 84 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |-------+-------+-------+-------+-------+-------|
99 _____, _____, _____, _____, _____, _____, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RAISE, XXXXX, XXXXX, XXXXX, XXXXX, _____, 85 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______,
100 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------| 86 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |---------------+---------------+-------+-------|
101 _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, RGB_MOD, _____, _____, _____ 87 _______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG,_______,_______
102 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------| 88 //`------------------------------------------------------------------------------------------------------------' |-----------------------------------------------|
103 ) 89 )
104}; 90};
105 91
106static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) { 92uint32_t layer_state_set_user(uint32_t state) {
107 93 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
108 pressed ? layer_on(layer1) : layer_off(layer1);
109 IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
110} 94}
111 95
112int RGB_current_mode; 96int RGB_current_mode;
113bool process_record_user(uint16_t keycode, keyrecord_t *record) { 97bool process_record_user(uint16_t keycode, keyrecord_t *record) {
114
115 bool result = false; 98 bool result = false;
116 switch (keycode) { 99 switch (keycode) {
117 case LOWER:
118 update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
119 break;
120 case RAISE:
121 update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
122 break;
123 case KANJI:
124 if (record->event.pressed) {
125 if (keymap_config.swap_lalt_lgui == false) {
126 register_code(KC_LANG2);
127 } else {
128 SEND_STRING(SS_LALT("`"));
129 }
130 } else {
131 unregister_code(KC_LANG2);
132 }
133 break;
134 case SEND_SUM: 100 case SEND_SUM:
135 if (record->event.pressed) { 101 if (record->event.pressed) {
136 SEND_STRING("_SUM*"); 102 SEND_STRING("_SUM*");
137 } 103 }
138 break; 104 break;
139 case SEND_AVERAGE: 105 case SEND_AVE:
140 if (record->event.pressed) { 106 if (record->event.pressed) {
141 SEND_STRING("_AVERAGE*"); 107 SEND_STRING("_AVERAGE*");
142 } 108 }
143 break; 109 break;
144 case SEND_COUNTIF: 110 case SEND_CIF:
145 if (record->event.pressed) { 111 if (record->event.pressed) {
146 SEND_STRING("_COUNTIF*"); 112 SEND_STRING("_COUNTIF*");
147 } 113 }
@@ -164,7 +130,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
164 RGB_current_mode = rgblight_config.mode; 130 RGB_current_mode = rgblight_config.mode;
165 } 131 }
166 break; 132 break;
167 case RGBRST: 133 case RGB_RST:
168 if (record->event.pressed) { 134 if (record->event.pressed) {
169 eeconfig_update_rgblight_default(); 135 eeconfig_update_rgblight_default();
170 rgblight_enable(); 136 rgblight_enable();
@@ -181,7 +147,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
181} 147}
182 148
183void matrix_init_user(void) { 149void matrix_init_user(void) {
184 #ifdef RGBLIGHT_ENABLE 150
185 RGB_current_mode = rgblight_config.mode;
186 #endif
187} 151}
152
diff --git a/keyboards/naked48/keymaps/salicylic_with_setta21/rules.mk b/keyboards/naked48/keymaps/salicylic_with_setta21/rules.mk
index ee538432e..e69de29bb 100644
--- a/keyboards/naked48/keymaps/salicylic_with_setta21/rules.mk
+++ b/keyboards/naked48/keymaps/salicylic_with_setta21/rules.mk
@@ -1,29 +0,0 @@
1
2# Build Options
3# change to "no" to disable the options, or define them in the Makefile in
4# the appropriate keymap folder that will get included automatically
5#
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
7MOUSEKEY_ENABLE = no # Mouse keys(+4700)
8EXTRAKEY_ENABLE = no # Audio control and System control(+450)
9CONSOLE_ENABLE = no # Console for debug(+400)
10COMMAND_ENABLE = no # Commands for debug and configuration
11NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
12BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
13MIDI_ENABLE = no # MIDI controls
14AUDIO_ENABLE = no # Audio output on port C6
15UNICODE_ENABLE = no # Unicode
16BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
17RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
18SWAP_HANDS_ENABLE = no # Enable one-hand typing
19
20# If your custom naked48 pcb, you can rewrite to yes.
21LED_ANIMATIONS = yes # LED animations
22
23ifeq ($(strip $(LED_ANIMATIONS)), yes)
24 # OPT_DEFS += -DRGBLIGHT_ANIMATIONS
25 OPT_DEFS += -DLED_ANIMATIONS
26endif
27
28# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
29SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/naked48/naked48.c b/keyboards/naked48/naked48.c
index dbb77f21d..dc516e98f 100644
--- a/keyboards/naked48/naked48.c
+++ b/keyboards/naked48/naked48.c
@@ -1 +1,6 @@
1#include "naked48.h" 1#include "naked48.h"
2
3// Optional override functions below.
4// You can leave any or all of these undefined.
5// These are only required if you want to perform custom actions.
6
diff --git a/keyboards/naked48/naked48.h b/keyboards/naked48/naked48.h
index 891f9301e..1c715eb24 100644
--- a/keyboards/naked48/naked48.h
+++ b/keyboards/naked48/naked48.h
@@ -1,12 +1,7 @@
1#pragma once 1#pragma once
2 2
3#ifdef KEYBOARD_naked48_rev1
4 #include "rev1.h"
5#endif
6
7#include "quantum.h" 3#include "quantum.h"
8 4
9#ifdef PROTOCOL_LUFA 5#ifdef KEYBOARD_naked48_rev1
10#include "lufa.h" 6 #include "rev1.h"
11#include "split_util.h"
12#endif 7#endif
diff --git a/keyboards/naked48/readme.md b/keyboards/naked48/readme.md
index a6946d909..bb16571ef 100644
--- a/keyboards/naked48/readme.md
+++ b/keyboards/naked48/readme.md
@@ -5,8 +5,8 @@
5This is 48 keys modification Ortholinear keyboard. 5This is 48 keys modification Ortholinear keyboard.
6 6
7Keyboard Maintainer: [Salicylic_acid3](https://github.com/Salicylic-acid3) 7Keyboard Maintainer: [Salicylic_acid3](https://github.com/Salicylic-acid3)
8Hardware Supported: The PCBs, controllers supported 8Hardware Supported: Naked60BMP PCB, Pro Micro
9Hardware Availability: links to where you can find this hardware 9Hardware Availability: [PCB & Case Data](https://github.com/Salicylic-acid3/PCB_Data), [Booth Shop](https://salicylic-acid3.booth.pm/items/1271568)
10 10
11Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
12 12
diff --git a/keyboards/naked48/rev1/config.h b/keyboards/naked48/rev1/config.h
index 5d1c28d09..9afa87511 100644
--- a/keyboards/naked48/rev1/config.h
+++ b/keyboards/naked48/rev1/config.h
@@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18 18
19#pragma once 19#pragma once
20 20
21#include QMK_KEYBOARD_CONFIG_H
22
21/* USB Device descriptor parameter */ 23/* USB Device descriptor parameter */
22#define VENDOR_ID 0xFEED 24#define VENDOR_ID 0xFEED
23#define PRODUCT_ID 0x3060 25#define PRODUCT_ID 0x3060
@@ -26,57 +28,31 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define PRODUCT naked48 28#define PRODUCT naked48
27#define DESCRIPTION Ortholinear 48 Keys Keyboard 29#define DESCRIPTION Ortholinear 48 Keys Keyboard
28 30
29/* Use I2C or Serial */
30//#define USE_I2C
31#define USE_SERIAL
32//#define USE_MATRIX_I2C
33
34/* Select hand configuration */
35#define MASTER_LEFT
36// #define MASTER_RIGHT
37// #define EE_HANDS
38
39// OLED support
40// see ./rules.mk: OLED_ENABLE=yes or no
41#ifdef OLED_ENABLE
42 #define SSD1306OLED
43#endif
44
45/* key matrix size */ 31/* key matrix size */
46#define MATRIX_ROWS 8 32#define MATRIX_ROWS 8
47#define MATRIX_COLS 14 33#define MATRIX_COLS 12
48
49// Rows are doubled-up
50#define MATRIX_ROW_PINS { D1, D0, D4, C6 }
51 34
52// wiring of each half 35// wiring of each half
36#define MATRIX_ROW_PINS { D1, D0, D4, C6 }
53#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, D7, E6, B4, B5 } 37#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, D7, E6, B4, B5 }
54// #define MATRIX_COL_PINS { B5, B4, E6, D7, D6, B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order 38// When using Nafuda, comment out MATRIX_ROW_PINS_RIGHT and MATRIX_COL_PINS_RIGHT.
55 39#define MATRIX_ROW_PINS_RIGHT { D4, C6, D7, E6 }
56/* define if matrix has ghost */ 40#define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, B6, B4, B5, B2, B2 }
57//#define MATRIX_HAS_GHOST
58
59/* number of backlight levels */
60// #define BACKLIGHT_LEVELS 3
61 41
62/* Set 0 if debouncing isn't needed */ 42/* Set 0 if debouncing isn't needed */
63#define DEBOUNCE 5 43#define DEBOUNCE 5
64 44
45/* serial.c configuration for split keyboard */
46#define SOFT_SERIAL_PIN D2
47
65/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 48/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
66//#define LOCKING_SUPPORT_ENABLE 49#define LOCKING_SUPPORT_ENABLE
67/* Locking resynchronize hack */ 50/* Locking resynchronize hack */
68//#define LOCKING_RESYNC_ENABLE 51#define LOCKING_RESYNC_ENABLE
69 52
70/* ws2812 RGB LED */ 53/* ws2812 RGB LED */
71#define RGB_DI_PIN D3 54#define RGB_DI_PIN D3
72#define RGBLIGHT_TIMER 55#define RGBLIGHT_ANIMATIONS
73#define ws2812_PORTREG PORTD
74#define ws2812_DDRREG DDRD
75
76// naked48 keyboard RGB LED support
77//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no
78// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes
79#define RGBLED_NUM 48
80 56
81#ifndef IOS_DEVICE_ENABLE 57#ifndef IOS_DEVICE_ENABLE
82 #define RGBLIGHT_LIMIT_VAL 180 58 #define RGBLIGHT_LIMIT_VAL 180
@@ -88,6 +64,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
88#define RGBLIGHT_HUE_STEP 10 64#define RGBLIGHT_HUE_STEP 10
89#define RGBLIGHT_SAT_STEP 17 65#define RGBLIGHT_SAT_STEP 17
90 66
67// Selection of RGBLIGHT MODE to use.
68#if defined(LED_ANIMATIONS)
69 //#define RGBLIGHT_EFFECT_BREATHING
70 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
71 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
72 //#define RGBLIGHT_EFFECT_SNAKE
73 #define RGBLIGHT_EFFECT_KNIGHT
74 //#define RGBLIGHT_EFFECT_CHRISTMAS
75 #define RGBLIGHT_EFFECT_STATIC_GRADIENT
76 //#define RGBLIGHT_EFFECT_RGB_TEST
77 //#define RGBLIGHT_EFFECT_ALTERNATING
78#endif
79
91#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) 80#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
92// USB_MAX_POWER_CONSUMPTION value for naked48 keyboard 81// USB_MAX_POWER_CONSUMPTION value for naked48 keyboard
93// 120 RGBoff, OLEDoff 82// 120 RGBoff, OLEDoff
@@ -101,21 +90,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
101 // iOS device need lessthan 100 90 // iOS device need lessthan 100
102 #define USB_MAX_POWER_CONSUMPTION 100 91 #define USB_MAX_POWER_CONSUMPTION 100
103#endif 92#endif
104
105/*
106 * Feature disable options
107 * These options are also useful to firmware size reduction.
108 */
109
110/* disable debug print */
111// #define NO_DEBUG
112
113/* disable print */
114// #define NO_PRINT
115
116/* disable action features */
117//#define NO_ACTION_LAYER
118//#define NO_ACTION_TAPPING
119//#define NO_ACTION_ONESHOT
120//#define NO_ACTION_MACRO
121//#define NO_ACTION_FUNCTION
diff --git a/keyboards/naked48/rev1/matrix.c b/keyboards/naked48/rev1/matrix.c
deleted file mode 100644
index 8685a8125..000000000
--- a/keyboards/naked48/rev1/matrix.c
+++ /dev/null
@@ -1,357 +0,0 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18/*
19 * scan matrix
20 */
21#include <stdint.h>
22#include <stdbool.h>
23#include <string.h>
24#include <avr/io.h>
25#include <avr/wdt.h>
26#include <avr/interrupt.h>
27#include <util/delay.h>
28#include "print.h"
29#include "debug.h"
30#include "util.h"
31#include "matrix.h"
32#include "split_util.h"
33#include "pro_micro.h"
34
35#ifdef USE_MATRIX_I2C
36# include "i2c.h"
37#else // USE_SERIAL
38# include "split_scomm.h"
39#endif
40
41#ifndef DEBOUNCE
42# define DEBOUNCE 5
43#endif
44
45#define ERROR_DISCONNECT_COUNT 5
46
47static uint8_t debouncing = DEBOUNCE;
48static const int ROWS_PER_HAND = MATRIX_ROWS/2;
49static uint8_t error_count = 0;
50uint8_t is_master = 0 ;
51
52static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
53static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
54
55/* matrix state(1:on, 0:off) */
56static matrix_row_t matrix[MATRIX_ROWS];
57static matrix_row_t matrix_debouncing[MATRIX_ROWS];
58
59static matrix_row_t read_cols(void);
60static void init_cols(void);
61static void unselect_rows(void);
62static void select_row(uint8_t row);
63static uint8_t matrix_master_scan(void);
64
65
66__attribute__ ((weak))
67void matrix_init_kb(void) {
68 matrix_init_user();
69}
70
71__attribute__ ((weak))
72void matrix_scan_kb(void) {
73 matrix_scan_user();
74}
75
76__attribute__ ((weak))
77void matrix_init_user(void) {
78}
79
80__attribute__ ((weak))
81void matrix_scan_user(void) {
82}
83
84inline
85uint8_t matrix_rows(void)
86{
87 return MATRIX_ROWS;
88}
89
90inline
91uint8_t matrix_cols(void)
92{
93 return MATRIX_COLS;
94}
95
96void matrix_init(void)
97{
98 debug_enable = true;
99 debug_matrix = true;
100 debug_mouse = true;
101 // initialize row and col
102 unselect_rows();
103 init_cols();
104
105 TX_RX_LED_INIT;
106 TXLED0;
107 RXLED0;
108
109 // initialize matrix state: all keys off
110 for (uint8_t i=0; i < MATRIX_ROWS; i++) {
111 matrix[i] = 0;
112 matrix_debouncing[i] = 0;
113 }
114
115 is_master = has_usb();
116
117 matrix_init_quantum();
118}
119
120uint8_t _matrix_scan(void)
121{
122 // Right hand is stored after the left in the matirx so, we need to offset it
123 int offset = isLeftHand ? 0 : (ROWS_PER_HAND);
124
125 for (uint8_t i = 0; i < ROWS_PER_HAND; i++) {
126 select_row(i);
127 _delay_us(30); // without this wait read unstable value.
128 matrix_row_t cols = read_cols();
129 if (matrix_debouncing[i+offset] != cols) {
130 matrix_debouncing[i+offset] = cols;
131 debouncing = DEBOUNCE;
132 }
133 unselect_rows();
134 }
135
136 if (debouncing) {
137 if (--debouncing) {
138 _delay_ms(1);
139 } else {
140 for (uint8_t i = 0; i < ROWS_PER_HAND; i++) {
141 matrix[i+offset] = matrix_debouncing[i+offset];
142 }
143 }
144 }
145
146 return 1;
147}
148
149#ifdef USE_MATRIX_I2C
150
151// Get rows from other half over i2c
152int i2c_transaction(void) {
153 int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
154
155 int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE);
156 if (err) goto i2c_error;
157
158 // start of matrix stored at 0x00
159 err = i2c_master_write(0x00);
160 if (err) goto i2c_error;
161
162 // Start read
163 err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ);
164 if (err) goto i2c_error;
165
166 if (!err) {
167 int i;
168 for (i = 0; i < ROWS_PER_HAND-1; ++i) {
169 matrix[slaveOffset+i] = i2c_master_read(I2C_ACK);
170 }
171 matrix[slaveOffset+i] = i2c_master_read(I2C_NACK);
172 i2c_master_stop();
173 } else {
174i2c_error: // the cable is disconnceted, or something else went wrong
175 i2c_reset_state();
176 return err;
177 }
178
179 return 0;
180}
181
182#else // USE_SERIAL
183
184int serial_transaction(int master_changed) {
185 int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
186#ifdef SERIAL_USE_MULTI_TRANSACTION
187 int ret=serial_update_buffers(master_changed);
188#else
189 int ret=serial_update_buffers();
190#endif
191 if (ret ) {
192 if(ret==2) RXLED1;
193 return 1;
194 }
195 RXLED0;
196 memcpy(&matrix[slaveOffset],
197 (void *)serial_slave_buffer, sizeof(serial_slave_buffer));
198 return 0;
199}
200#endif
201
202uint8_t matrix_scan(void)
203{
204 if (is_master) {
205 matrix_master_scan();
206 }else{
207 matrix_slave_scan();
208 int offset = (isLeftHand) ? ROWS_PER_HAND : 0;
209 memcpy(&matrix[offset],
210 (void *)serial_master_buffer, sizeof(serial_master_buffer));
211 matrix_scan_quantum();
212 }
213 return 1;
214}
215
216
217uint8_t matrix_master_scan(void) {
218
219 int ret = _matrix_scan();
220 int mchanged = 1;
221
222 int offset = (isLeftHand) ? 0 : ROWS_PER_HAND;
223
224#ifdef USE_MATRIX_I2C
225// for (int i = 0; i < ROWS_PER_HAND; ++i) {
226 /* i2c_slave_buffer[i] = matrix[offset+i]; */
227// i2c_slave_buffer[i] = matrix[offset+i];
228// }
229#else // USE_SERIAL
230 #ifdef SERIAL_USE_MULTI_TRANSACTION
231 mchanged = memcmp((void *)serial_master_buffer,
232 &matrix[offset], sizeof(serial_master_buffer));
233 #endif
234 memcpy((void *)serial_master_buffer,
235 &matrix[offset], sizeof(serial_master_buffer));
236#endif
237
238#ifdef USE_MATRIX_I2C
239 if( i2c_transaction() ) {
240#else // USE_SERIAL
241 if( serial_transaction(mchanged) ) {
242#endif
243 // turn on the indicator led when halves are disconnected
244 TXLED1;
245
246 error_count++;
247
248 if (error_count > ERROR_DISCONNECT_COUNT) {
249 // reset other half if disconnected
250 int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
251 for (int i = 0; i < ROWS_PER_HAND; ++i) {
252 matrix[slaveOffset+i] = 0;
253 }
254 }
255 } else {
256 // turn off the indicator led on no error
257 TXLED0;
258 error_count = 0;
259 }
260 matrix_scan_quantum();
261 return ret;
262}
263
264void matrix_slave_scan(void) {
265 _matrix_scan();
266
267 int offset = (isLeftHand) ? 0 : ROWS_PER_HAND;
268
269#ifdef USE_MATRIX_I2C
270 for (int i = 0; i < ROWS_PER_HAND; ++i) {
271 /* i2c_slave_buffer[i] = matrix[offset+i]; */
272 i2c_slave_buffer[i] = matrix[offset+i];
273 }
274#else // USE_SERIAL
275 #ifdef SERIAL_USE_MULTI_TRANSACTION
276 int change = 0;
277 #endif
278 for (int i = 0; i < ROWS_PER_HAND; ++i) {
279 #ifdef SERIAL_USE_MULTI_TRANSACTION
280 if( serial_slave_buffer[i] != matrix[offset+i] )
281 change = 1;
282 #endif
283 serial_slave_buffer[i] = matrix[offset+i];
284 }
285 #ifdef SERIAL_USE_MULTI_TRANSACTION
286 slave_buffer_change_count += change;
287 #endif
288#endif
289}
290
291bool matrix_is_modified(void)
292{
293 if (debouncing) return false;
294 return true;
295}
296
297inline
298bool matrix_is_on(uint8_t row, uint8_t col)
299{
300 return (matrix[row] & ((matrix_row_t)1<<col));
301}
302
303inline
304matrix_row_t matrix_get_row(uint8_t row)
305{
306 return matrix[row];
307}
308
309void matrix_print(void)
310{
311 print("\nr/c 0123456789ABCDEF\n");
312 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
313 phex(row); print(": ");
314 pbin_reverse16(matrix_get_row(row));
315 print("\n");
316 }
317}
318
319uint8_t matrix_key_count(void)
320{
321 uint8_t count = 0;
322 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
323 count += bitpop16(matrix[i]);
324 }
325 return count;
326}
327
328static void init_cols(void)
329{
330 for(int x = 0; x < MATRIX_COLS; x++) {
331 _SFR_IO8((col_pins[x] >> 4) + 1) &= ~_BV(col_pins[x] & 0xF);
332 _SFR_IO8((col_pins[x] >> 4) + 2) |= _BV(col_pins[x] & 0xF);
333 }
334}
335
336static matrix_row_t read_cols(void)
337{
338 matrix_row_t result = 0;
339 for(int x = 0; x < MATRIX_COLS; x++) {
340 result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x);
341 }
342 return result;
343}
344
345static void unselect_rows(void)
346{
347 for(int x = 0; x < ROWS_PER_HAND; x++) {
348 _SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF);
349 _SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF);
350 }
351}
352
353static void select_row(uint8_t row)
354{
355 _SFR_IO8((row_pins[row] >> 4) + 1) |= _BV(row_pins[row] & 0xF);
356 _SFR_IO8((row_pins[row] >> 4) + 2) &= ~_BV(row_pins[row] & 0xF);
357}
diff --git a/keyboards/naked48/rev1/rev1.c b/keyboards/naked48/rev1/rev1.c
index b5f6532b2..e127232d8 100644
--- a/keyboards/naked48/rev1/rev1.c
+++ b/keyboards/naked48/rev1/rev1.c
@@ -1,15 +1,36 @@
1#include "naked48.h" 1#include "naked48.h"
2 2
3 3/*#ifdef SSD1306OLED
4#ifdef SSD1306OLED
5void led_set_kb(uint8_t usb_led) { 4void led_set_kb(uint8_t usb_led) {
6 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here 5 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
7 //led_set_user(usb_led); 6 //led_set_user(usb_led);
8} 7}
8#endif*/
9
10#ifdef RGB_MATRIX_ENABLE
11 led_config_t g_led_config = { {
12 // Key Matrix to LED Index
13 { 0,47,42,41,36,35,30,29,24,23,18,17 },
14 { 1,46,43,40,37,34,31,28,25,22,19,16 },
15 { 2,45,44,39,38,33,32,27,26,21,20,15 },
16 { 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14 }
17 }, {
18 // LED Index to Physical Position
19 { 0, 0 }, { 0, 21 }, { 0, 43 }, { 17, 64 }, { 34, 64 },{ 52, 64 }, { 69, 64 }, { 86, 64 }, { 103, 64 }, { 121, 64 },
20 { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 },{ 224, 43 }, { 224, 21 }, { 224, 0 }, { 207, 0 }, { 207, 21 },
21 { 207, 43 }, { 190, 43 }, { 190, 21 }, { 190, 0 }, { 172, 0 },{ 172, 21 }, { 172, 43 }, { 155, 43 }, { 155, 21 }, { 155, 0 },
22 { 138, 0 }, { 138, 21 }, { 138, 43 }, { 86, 43 }, { 86, 21 },{ 86, 0 }, { 69, 0 }, { 69, 21 }, { 69, 43 }, { 52, 43 },
23 { 52, 21 }, { 52, 0 }, { 34, 0 }, { 34, 21 }, { 34, 43 },{ 17, 43 }, { 17, 21 }, { 17, 0 }
24 }, {
25 // LED Index to Flag
26 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
27 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
28 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
29 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
30 4, 4, 4, 4, 4, 4, 4, 4
31} };
9#endif 32#endif
10 33
11void matrix_init_kb(void) { 34void matrix_init_kb(void) {
12
13 matrix_init_user(); 35 matrix_init_user();
14}; 36}; \ No newline at end of file
15
diff --git a/keyboards/naked48/rev1/rev1.h b/keyboards/naked48/rev1/rev1.h
index 914459a8a..de58f8f92 100644
--- a/keyboards/naked48/rev1/rev1.h
+++ b/keyboards/naked48/rev1/rev1.h
@@ -3,12 +3,19 @@
3#include "naked48.h" 3#include "naked48.h"
4 4
5#include "quantum.h" 5#include "quantum.h"
6
7#ifdef RGBLIGHT_ENABLE 6#ifdef RGBLIGHT_ENABLE
8//rgb led driver 7//rgb led driver
9#include "ws2812.h" 8#include "ws2812.h"
10#endif 9#endif
11 10
11#ifdef USE_I2C
12#include <stddef.h>
13#ifdef __AVR__
14 #include <avr/io.h>
15 #include <avr/interrupt.h>
16#endif
17#endif
18
12////////////////////////////////////////////////////////////////////////////// 19//////////////////////////////////////////////////////////////////////////////
13// When only use Naked48. 20// When only use Naked48.
14////////////////////////////////////////////////////////////////////////////// 21//////////////////////////////////////////////////////////////////////////////
@@ -52,14 +59,14 @@
52 L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, L3A, L3B, R30, R32, R34, R35 \ 59 L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, L3A, L3B, R30, R32, R34, R35 \
53 ) \ 60 ) \
54 { \ 61 { \
55 { L00, L01, L02, L03, L04, L05, L06, L07, L08, L09, L0A, L0B,KC_NO,KC_NO }, \ 62 { L00, L01, L02, L03, L04, L05, L06, L07, L08, L09, L0A, L0B }, \
56 { L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L1A, L1B,KC_NO,KC_NO }, \ 63 { L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L1A, L1B }, \
57 { L20, L21, L22, L23, L24, L25, L26, L27, L28, L29, L2A, L2B,KC_NO,KC_NO }, \ 64 { L20, L21, L22, L23, L24, L25, L26, L27, L28, L29, L2A, L2B }, \
58 { L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, L3A, L3B,KC_NO,KC_NO }, \ 65 { L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, L3A, L3B }, \
59 { R00, R01, R02, R03, R04, R05,KC_NO,KC_NO,KC_NO, R11, R12, R13, R14, R15 }, \ 66 { R00, R01, R02, R03, R04, R05,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO }, \
60 { R20, R21, R22, R23, R24, R25,KC_NO,KC_NO, R30,KC_NO, R32,KC_NO, R34, R35 }, \ 67 {KC_NO, R11, R12, R13, R14, R15,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO }, \
61 {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 }, \ 68 { R20, R21, R22, R23, R24, R25,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO }, \
62 {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 } \ 69 { R30,KC_NO, R32,KC_NO, R34, R35,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO } \
63 } 70 }
64 71
65////////////////////////////////////////////////////////////////////////////// 72//////////////////////////////////////////////////////////////////////////////
@@ -73,13 +80,13 @@
73 L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, L3A, L3B \ 80 L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, L3A, L3B \
74 ) \ 81 ) \
75 { \ 82 { \
76 { L00, L01, L02, L03, L04, L05, L06, L07, L08, L09, L0A, L0B,KC_NO,KC_NO }, \ 83 { L00, L01, L02, L03, L04, L05, L06, L07, L08, L09, L0A, L0B }, \
77 { L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L1A, L1B,KC_NO,KC_NO }, \ 84 { L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L1A, L1B }, \
78 { L20, L21, L22, L23, L24, L25, L26, L27, L28, L29, L2A, L2B,KC_NO,KC_NO }, \ 85 { L20, L21, L22, L23, L24, L25, L26, L27, L28, L29, L2A, L2B }, \
79 { L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, L3A, L3B,KC_NO,KC_NO }, \ 86 { L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, L3A, L3B }, \
80 {KC_NO, R01,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, R10, R11, R12,KC_NO,KC_NO,KC_NO }, \ 87 {KC_NO, R01,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO }, \
81 { R20, R21, R22,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO }, \ 88 { R10, R11, R12,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO }, \
82 {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 }, \ 89 { R20, R21, R22,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO }, \
83 {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 } \ 90 {KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO } \
84 } 91 }
85 92
diff --git a/keyboards/naked48/rev1/rules.mk b/keyboards/naked48/rev1/rules.mk
index a71181033..e69de29bb 100644
--- a/keyboards/naked48/rev1/rules.mk
+++ b/keyboards/naked48/rev1/rules.mk
@@ -1,3 +0,0 @@
1SRC += matrix.c \
2 split_util.c \
3 split_scomm.c
diff --git a/keyboards/naked48/rev1/serial_config.h b/keyboards/naked48/rev1/serial_config.h
deleted file mode 100644
index 37135213d..000000000
--- a/keyboards/naked48/rev1/serial_config.h
+++ /dev/null
@@ -1,8 +0,0 @@
1//// #error rev2 serial config
2
3#ifndef SOFT_SERIAL_PIN
4/* Soft Serial defines */
5#define SOFT_SERIAL_PIN D2
6
7#define SERIAL_USE_MULTI_TRANSACTION
8#endif
diff --git a/keyboards/naked48/rev1/serial_config_simpleapi.h b/keyboards/naked48/rev1/serial_config_simpleapi.h
deleted file mode 100644
index e2d22a41e..000000000
--- a/keyboards/naked48/rev1/serial_config_simpleapi.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#ifndef SERIAL_CONFIG_SIMPLEAPI_H
2#define SERIAL_CONFIG_SIMPLEAPI_H
3
4#undef SERIAL_USE_MULTI_TRANSACTION
5#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
6#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
7
8#endif // SERIAL_CONFIG_SIMPLEAPI_H
diff --git a/keyboards/naked48/rev1/split_scomm.c b/keyboards/naked48/rev1/split_scomm.c
deleted file mode 100644
index ada786796..000000000
--- a/keyboards/naked48/rev1/split_scomm.c
+++ /dev/null
@@ -1,92 +0,0 @@
1#ifdef USE_SERIAL
2#ifdef SERIAL_USE_MULTI_TRANSACTION
3/* --- USE flexible API (using multi-type transaction function) --- */
4
5#include <stdbool.h>
6#include <stdint.h>
7#include <stddef.h>
8#include <split_scomm.h>
9#include "serial.h"
10#ifdef CONSOLE_ENABLE
11 #include <print.h>
12#endif
13
14uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0};
15uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0};
16uint8_t volatile status_com = 0;
17uint8_t volatile status1 = 0;
18uint8_t slave_buffer_change_count = 0;
19uint8_t s_change_old = 0xff;
20uint8_t s_change_new = 0xff;
21
22SSTD_t transactions[] = {
23#define GET_SLAVE_STATUS 0
24 /* master buffer not changed, only recive slave_buffer_change_count */
25 { (uint8_t *)&status_com,
26 0, NULL,
27 sizeof(slave_buffer_change_count), &slave_buffer_change_count,
28 },
29#define PUT_MASTER_GET_SLAVE_STATUS 1
30 /* master buffer changed need send, and recive slave_buffer_change_count */
31 { (uint8_t *)&status_com,
32 sizeof(serial_master_buffer), (uint8_t *)serial_master_buffer,
33 sizeof(slave_buffer_change_count), &slave_buffer_change_count,
34 },
35#define GET_SLAVE_BUFFER 2
36 /* recive serial_slave_buffer */
37 { (uint8_t *)&status1,
38 0, NULL,
39 sizeof(serial_slave_buffer), (uint8_t *)serial_slave_buffer
40 }
41};
42
43void serial_master_init(void)
44{
45 soft_serial_initiator_init(transactions, TID_LIMIT(transactions));
46}
47
48void serial_slave_init(void)
49{
50 soft_serial_target_init(transactions, TID_LIMIT(transactions));
51}
52
53// 0 => no error
54// 1 => slave did not respond
55// 2 => checksum error
56int serial_update_buffers(int master_update)
57{
58 int status, smatstatus;
59 static int need_retry = 0;
60
61 if( s_change_old != s_change_new ) {
62 smatstatus = soft_serial_transaction(GET_SLAVE_BUFFER);
63 if( smatstatus == TRANSACTION_END ) {
64 s_change_old = s_change_new;
65#ifdef CONSOLE_ENABLE
66 uprintf("slave matrix = %b %b %b %b %b\n",
67 serial_slave_buffer[0], serial_slave_buffer[1],
68 serial_slave_buffer[2], serial_slave_buffer[3],
69 serial_slave_buffer[4] );
70#endif
71 }
72 } else {
73 // serial_slave_buffer dosen't change
74 smatstatus = TRANSACTION_END; // dummy status
75 }
76
77 if( !master_update && !need_retry) {
78 status = soft_serial_transaction(GET_SLAVE_STATUS);
79 } else {
80 status = soft_serial_transaction(PUT_MASTER_GET_SLAVE_STATUS);
81 }
82 if( status == TRANSACTION_END ) {
83 s_change_new = slave_buffer_change_count;
84 need_retry = 0;
85 } else {
86 need_retry = 1;
87 }
88 return smatstatus;
89}
90
91#endif // SERIAL_USE_MULTI_TRANSACTION
92#endif /* USE_SERIAL */
diff --git a/keyboards/naked48/rev1/split_scomm.h b/keyboards/naked48/rev1/split_scomm.h
deleted file mode 100644
index 537ec4080..000000000
--- a/keyboards/naked48/rev1/split_scomm.h
+++ /dev/null
@@ -1,22 +0,0 @@
1#pragma once
2
3#ifndef SERIAL_USE_MULTI_TRANSACTION
4/* --- USE Simple API (OLD API, compatible with let's split serial.c) --- */
5#include "serial.h"
6
7#else
8/* --- USE flexible API (using multi-type transaction function) --- */
9// Buffers for master - slave communication
10#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
11#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
12
13extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
14extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH];
15extern uint8_t slave_buffer_change_count;
16
17void serial_master_init(void);
18void serial_slave_init(void);
19int serial_update_buffers(int master_changed);
20
21#endif
22
diff --git a/keyboards/naked48/rev1/split_util.c b/keyboards/naked48/rev1/split_util.c
deleted file mode 100644
index e1ff8b437..000000000
--- a/keyboards/naked48/rev1/split_util.c
+++ /dev/null
@@ -1,70 +0,0 @@
1#include <avr/io.h>
2#include <avr/wdt.h>
3#include <avr/power.h>
4#include <avr/interrupt.h>
5#include <util/delay.h>
6#include <avr/eeprom.h>
7#include "split_util.h"
8#include "matrix.h"
9#include "keyboard.h"
10
11#ifdef USE_MATRIX_I2C
12# include "i2c.h"
13#else
14# include "split_scomm.h"
15#endif
16
17volatile bool isLeftHand = true;
18
19static void setup_handedness(void) {
20 #ifdef EE_HANDS
21 isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS);
22 #else
23 // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c
24 #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT)
25 isLeftHand = !has_usb();
26 #else
27 isLeftHand = has_usb();
28 #endif
29 #endif
30}
31
32static void keyboard_master_setup(void) {
33
34#ifdef USE_MATRIX_I2C
35 i2c_master_init();
36#else
37 serial_master_init();
38#endif
39}
40
41static void keyboard_slave_setup(void) {
42
43#ifdef USE_MATRIX_I2C
44 i2c_slave_init(SLAVE_I2C_ADDRESS);
45#else
46 serial_slave_init();
47#endif
48}
49
50bool has_usb(void) {
51 USBCON |= (1 << OTGPADE); //enables VBUS pad
52 _delay_us(5);
53 return (USBSTA & (1<<VBUS)); //checks state of VBUS
54}
55
56void split_keyboard_setup(void) {
57 setup_handedness();
58
59 if (has_usb()) {
60 keyboard_master_setup();
61 } else {
62 keyboard_slave_setup();
63 }
64 sei();
65}
66
67// this code runs before the usb and keyboard is initialized
68void matrix_setup(void) {
69 split_keyboard_setup();
70}
diff --git a/keyboards/naked48/rev1/split_util.h b/keyboards/naked48/rev1/split_util.h
deleted file mode 100644
index f59304756..000000000
--- a/keyboards/naked48/rev1/split_util.h
+++ /dev/null
@@ -1,16 +0,0 @@
1#pragma once
2
3#include <stdbool.h>
4#include "eeconfig.h"
5
6#define SLAVE_I2C_ADDRESS 0x32
7
8extern volatile bool isLeftHand;
9
10// slave version of matix scan, defined in matrix.c
11void matrix_slave_scan(void);
12
13void split_keyboard_setup(void);
14bool has_usb(void);
15
16void matrix_master_OLED_init (void);
diff --git a/keyboards/naked48/rules.mk b/keyboards/naked48/rules.mk
index 53e2dfc21..4427284e7 100644
--- a/keyboards/naked48/rules.mk
+++ b/keyboards/naked48/rules.mk
@@ -1,46 +1,14 @@
1# SRC += i2c.c
2QUANTUM_LIB_SRC += serial.c
3# SRC += ssd1306.c
4
5# MCU name 1# MCU name
6MCU = atmega32u4 2MCU = atmega32u4
7 3
8# Processor frequency. 4# Bootloader selection
9# This will define a symbol, F_CPU, in all source code files equal to the 5# Teensy halfkay
10# processor frequency in Hz. You can then use this symbol in your source code to 6# Pro Micro caterina
11# calculate timings. Do NOT tack on a 'UL' at the end, this will be done 7# Atmel DFU atmel-dfu
12# automatically to create a 32-bit value in your source code. 8# LUFA DFU lufa-dfu
13# 9# QMK DFU qmk-dfu
14# This will be an integer division of F_USB below, as it is sourced by 10# ATmega32A bootloadHID
15# F_USB after it has run through any CPU prescalers. Note that this value 11# ATmega328P USBasp
16# does not *change* the processor frequency - it should merely be updated to
17# reflect the processor speed set externally so that the code can use accurate
18# software delays.
19F_CPU = 16000000
20
21#
22# LUFA specific
23#
24# Target architecture (see library "Board Types" documentation).
25ARCH = AVR8
26
27# Input clock frequency.
28# This will define a symbol, F_USB, in all source code files equal to the
29# input clock frequency (before any prescaling is performed) in Hz. This value may
30# differ from F_CPU if prescaling is used on the latter, and is required as the
31# raw input clock is fed directly to the PLL sections of the AVR for high speed
32# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
33# at the end, this will be done automatically to create a 32-bit value in your
34# source code.
35#
36# If no clock division is performed on the input clock inside the AVR (via the
37# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
38F_USB = $(F_CPU)
39
40# Bootloader
41# This definition is optional, and if your keyboard supports multiple bootloaders of
42# different sizes, comment this out, and the correct address will be loaded
43# automatically (+60). See bootloader.mk for all options.
44BOOTLOADER = caterina 12BOOTLOADER = caterina
45 13
46# Interrupt driven control endpoint task(+60) 14# Interrupt driven control endpoint task(+60)
@@ -51,22 +19,22 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
51# the appropriate keymap folder that will get included automatically 19# the appropriate keymap folder that will get included automatically
52# 20#
53BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 21BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
54MOUSEKEY_ENABLE = no # Mouse keys(+4700) 22MOUSEKEY_ENABLE = no # Mouse keys(+4700)
55EXTRAKEY_ENABLE = no # Audio control and System control(+450) 23EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
56CONSOLE_ENABLE = no # Console for debug(+400) 24CONSOLE_ENABLE = no # Console for debug(+400)
57COMMAND_ENABLE = no # Commands for debug and configuration 25COMMAND_ENABLE = yes # Commands for debug and configuration
58NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 26NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
59BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 27BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
60MIDI_ENABLE = no # MIDI controls 28MIDI_ENABLE = no # MIDI controls
61AUDIO_ENABLE = no # Audio output on port C6 29AUDIO_ENABLE = no # Audio output on port C6
62UNICODE_ENABLE = no # Unicode 30UNICODE_ENABLE = no # Unicode
63BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
64RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. 32RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
65SUBPROJECT_rev1 = no 33OLED_DRIVER_ENABLE = no
66USE_I2C = no 34# USE_I2C = yes
67# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 35# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
68SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 36SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
69 37
70CUSTOM_MATRIX = yes 38SPLIT_KEYBOARD = yes
71 39
72DEFAULT_FOLDER = naked48/rev1 40DEFAULT_FOLDER = naked48/rev1
diff --git a/keyboards/naked48/serial.c b/keyboards/naked48/serial.c
deleted file mode 100644
index 6006ebf1b..000000000
--- a/keyboards/naked48/serial.c
+++ /dev/null
@@ -1,590 +0,0 @@
1/*
2 * WARNING: be careful changing this code, it is very timing dependent
3 *
4 * 2018-10-28 checked
5 * avr-gcc 4.9.2
6 * avr-gcc 5.4.0
7 * avr-gcc 7.3.0
8 */
9
10#ifndef F_CPU
11#define F_CPU 16000000
12#endif
13
14#include <avr/io.h>
15#include <avr/interrupt.h>
16#include <util/delay.h>
17#include <stddef.h>
18#include <stdbool.h>
19#include "serial.h"
20//#include <pro_micro.h>
21
22#ifdef SOFT_SERIAL_PIN
23
24#ifdef __AVR_ATmega32U4__
25 // if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial.
26 #ifdef USE_I2C
27 #if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1
28 #error Using ATmega32U4 I2C, so can not use PD0, PD1
29 #endif
30 #endif
31
32 #if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3
33 #define SERIAL_PIN_DDR DDRD
34 #define SERIAL_PIN_PORT PORTD
35 #define SERIAL_PIN_INPUT PIND
36 #if SOFT_SERIAL_PIN == D0
37 #define SERIAL_PIN_MASK _BV(PD0)
38 #define EIMSK_BIT _BV(INT0)
39 #define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01)))
40 #define SERIAL_PIN_INTERRUPT INT0_vect
41 #elif SOFT_SERIAL_PIN == D1
42 #define SERIAL_PIN_MASK _BV(PD1)
43 #define EIMSK_BIT _BV(INT1)
44 #define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11)))
45 #define SERIAL_PIN_INTERRUPT INT1_vect
46 #elif SOFT_SERIAL_PIN == D2
47 #define SERIAL_PIN_MASK _BV(PD2)
48 #define EIMSK_BIT _BV(INT2)
49 #define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21)))
50 #define SERIAL_PIN_INTERRUPT INT2_vect
51 #elif SOFT_SERIAL_PIN == D3
52 #define SERIAL_PIN_MASK _BV(PD3)
53 #define EIMSK_BIT _BV(INT3)
54 #define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31)))
55 #define SERIAL_PIN_INTERRUPT INT3_vect
56 #endif
57 #elif SOFT_SERIAL_PIN == E6
58 #define SERIAL_PIN_DDR DDRE
59 #define SERIAL_PIN_PORT PORTE
60 #define SERIAL_PIN_INPUT PINE
61 #define SERIAL_PIN_MASK _BV(PE6)
62 #define EIMSK_BIT _BV(INT6)
63 #define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
64 #define SERIAL_PIN_INTERRUPT INT6_vect
65 #else
66 #error invalid SOFT_SERIAL_PIN value
67 #endif
68
69#else
70 #error serial.c now support ATmega32U4 only
71#endif
72
73//////////////// for backward compatibility ////////////////////////////////
74#if !defined(SERIAL_USE_SINGLE_TRANSACTION) && !defined(SERIAL_USE_MULTI_TRANSACTION)
75/* --- USE OLD API (compatible with let's split serial.c) */
76 #if SERIAL_SLAVE_BUFFER_LENGTH > 0
77 uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0};
78 #endif
79 #if SERIAL_MASTER_BUFFER_LENGTH > 0
80 uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0};
81 #endif
82 uint8_t volatile status0 = 0;
83
84SSTD_t transactions[] = {
85 { (uint8_t *)&status0,
86 #if SERIAL_MASTER_BUFFER_LENGTH > 0
87 sizeof(serial_master_buffer), (uint8_t *)serial_master_buffer,
88 #else
89 0, (uint8_t *)NULL,
90 #endif
91 #if SERIAL_SLAVE_BUFFER_LENGTH > 0
92 sizeof(serial_slave_buffer), (uint8_t *)serial_slave_buffer
93 #else
94 0, (uint8_t *)NULL,
95 #endif
96 }
97};
98
99void serial_master_init(void)
100{ soft_serial_initiator_init(transactions, TID_LIMIT(transactions)); }
101
102void serial_slave_init(void)
103{ soft_serial_target_init(transactions, TID_LIMIT(transactions)); }
104
105// 0 => no error
106// 1 => slave did not respond
107// 2 => checksum error
108int serial_update_buffers()
109{
110 int result;
111 result = soft_serial_transaction();
112 return result;
113}
114
115#endif // end of OLD API (compatible with let's split serial.c)
116////////////////////////////////////////////////////////////////////////////
117
118#define ALWAYS_INLINE __attribute__((always_inline))
119#define NO_INLINE __attribute__((noinline))
120#define _delay_sub_us(x) __builtin_avr_delay_cycles(x)
121
122// parity check
123#define ODD_PARITY 1
124#define EVEN_PARITY 0
125#define PARITY EVEN_PARITY
126
127#ifdef SERIAL_DELAY
128 // custom setup in config.h
129 // #define TID_SEND_ADJUST 2
130 // #define SERIAL_DELAY 6 // micro sec
131 // #define READ_WRITE_START_ADJUST 30 // cycles
132 // #define READ_WRITE_WIDTH_ADJUST 8 // cycles
133#else
134// ============ Standard setups ============
135
136#ifndef SELECT_SOFT_SERIAL_SPEED
137#define SELECT_SOFT_SERIAL_SPEED 1
138// 0: about 189kbps
139// 1: about 137kbps (default)
140// 2: about 75kbps
141// 3: about 39kbps
142// 4: about 26kbps
143// 5: about 20kbps
144#endif
145
146#if __GNUC__ < 6
147 #define TID_SEND_ADJUST 14
148#else
149 #define TID_SEND_ADJUST 2
150#endif
151
152#if SELECT_SOFT_SERIAL_SPEED == 0
153 // Very High speed
154 #define SERIAL_DELAY 4 // micro sec
155 #if __GNUC__ < 6
156 #define READ_WRITE_START_ADJUST 33 // cycles
157 #define READ_WRITE_WIDTH_ADJUST 3 // cycles
158 #else
159 #define READ_WRITE_START_ADJUST 34 // cycles
160 #define READ_WRITE_WIDTH_ADJUST 7 // cycles
161 #endif
162#elif SELECT_SOFT_SERIAL_SPEED == 1
163 // High speed
164 #define SERIAL_DELAY 6 // micro sec
165 #if __GNUC__ < 6
166 #define READ_WRITE_START_ADJUST 30 // cycles
167 #define READ_WRITE_WIDTH_ADJUST 3 // cycles
168 #else
169 #define READ_WRITE_START_ADJUST 33 // cycles
170 #define READ_WRITE_WIDTH_ADJUST 7 // cycles
171 #endif
172#elif SELECT_SOFT_SERIAL_SPEED == 2
173 // Middle speed
174 #define SERIAL_DELAY 12 // micro sec
175 #define READ_WRITE_START_ADJUST 30 // cycles
176 #if __GNUC__ < 6
177 #define READ_WRITE_WIDTH_ADJUST 3 // cycles
178 #else
179 #define READ_WRITE_WIDTH_ADJUST 7 // cycles
180 #endif
181#elif SELECT_SOFT_SERIAL_SPEED == 3
182 // Low speed
183 #define SERIAL_DELAY 24 // micro sec
184 #define READ_WRITE_START_ADJUST 30 // cycles
185 #if __GNUC__ < 6
186 #define READ_WRITE_WIDTH_ADJUST 3 // cycles
187 #else
188 #define READ_WRITE_WIDTH_ADJUST 7 // cycles
189 #endif
190#elif SELECT_SOFT_SERIAL_SPEED == 4
191 // Very Low speed
192 #define SERIAL_DELAY 36 // micro sec
193 #define READ_WRITE_START_ADJUST 30 // cycles
194 #if __GNUC__ < 6
195 #define READ_WRITE_WIDTH_ADJUST 3 // cycles
196 #else
197 #define READ_WRITE_WIDTH_ADJUST 7 // cycles
198 #endif
199#elif SELECT_SOFT_SERIAL_SPEED == 5
200 // Ultra Low speed
201 #define SERIAL_DELAY 48 // micro sec
202 #define READ_WRITE_START_ADJUST 30 // cycles
203 #if __GNUC__ < 6
204 #define READ_WRITE_WIDTH_ADJUST 3 // cycles
205 #else
206 #define READ_WRITE_WIDTH_ADJUST 7 // cycles
207 #endif
208#else
209#error invalid SELECT_SOFT_SERIAL_SPEED value
210#endif /* SELECT_SOFT_SERIAL_SPEED */
211#endif /* SERIAL_DELAY */
212
213#define SERIAL_DELAY_HALF1 (SERIAL_DELAY/2)
214#define SERIAL_DELAY_HALF2 (SERIAL_DELAY - SERIAL_DELAY/2)
215
216#define SLAVE_INT_WIDTH_US 1
217#ifndef SERIAL_USE_MULTI_TRANSACTION
218 #define SLAVE_INT_RESPONSE_TIME SERIAL_DELAY
219#else
220 #define SLAVE_INT_ACK_WIDTH_UNIT 2
221 #define SLAVE_INT_ACK_WIDTH 4
222#endif
223
224static SSTD_t *Transaction_table = NULL;
225static uint8_t Transaction_table_size = 0;
226
227inline static void serial_delay(void) ALWAYS_INLINE;
228inline static
229void serial_delay(void) {
230 _delay_us(SERIAL_DELAY);
231}
232
233inline static void serial_delay_half1(void) ALWAYS_INLINE;
234inline static
235void serial_delay_half1(void) {
236 _delay_us(SERIAL_DELAY_HALF1);
237}
238
239inline static void serial_delay_half2(void) ALWAYS_INLINE;
240inline static
241void serial_delay_half2(void) {
242 _delay_us(SERIAL_DELAY_HALF2);
243}
244
245inline static void serial_output(void) ALWAYS_INLINE;
246inline static
247void serial_output(void) {
248 SERIAL_PIN_DDR |= SERIAL_PIN_MASK;
249}
250
251// make the serial pin an input with pull-up resistor
252inline static void serial_input_with_pullup(void) ALWAYS_INLINE;
253inline static
254void serial_input_with_pullup(void) {
255 SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK;
256 SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
257}
258
259inline static uint8_t serial_read_pin(void) ALWAYS_INLINE;
260inline static
261uint8_t serial_read_pin(void) {
262 return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK);
263}
264
265inline static void serial_low(void) ALWAYS_INLINE;
266inline static
267void serial_low(void) {
268 SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK;
269}
270
271inline static void serial_high(void) ALWAYS_INLINE;
272inline static
273void serial_high(void) {
274 SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
275}
276
277void soft_serial_initiator_init(SSTD_t *sstd_table, int sstd_table_size)
278{
279 Transaction_table = sstd_table;
280 Transaction_table_size = (uint8_t)sstd_table_size;
281 serial_output();
282 serial_high();
283}
284
285void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size)
286{
287 Transaction_table = sstd_table;
288 Transaction_table_size = (uint8_t)sstd_table_size;
289 serial_input_with_pullup();
290
291 // Enable INT0-INT3,INT6
292 EIMSK |= EIMSK_BIT;
293#if SERIAL_PIN_MASK == _BV(PE6)
294 // Trigger on falling edge of INT6
295 EICRB &= EICRx_BIT;
296#else
297 // Trigger on falling edge of INT0-INT3
298 EICRA &= EICRx_BIT;
299#endif
300}
301
302// Used by the sender to synchronize timing with the reciver.
303static void sync_recv(void) NO_INLINE;
304static
305void sync_recv(void) {
306 for (uint8_t i = 0; i < SERIAL_DELAY*5 && serial_read_pin(); i++ ) {
307 }
308 // This shouldn't hang if the target disconnects because the
309 // serial line will float to high if the target does disconnect.
310 while (!serial_read_pin());
311}
312
313// Used by the reciver to send a synchronization signal to the sender.
314static void sync_send(void) NO_INLINE;
315static
316void sync_send(void) {
317 serial_low();
318 serial_delay();
319 serial_high();
320}
321
322// Reads a byte from the serial line
323static uint8_t serial_read_chunk(uint8_t *pterrcount, uint8_t bit) NO_INLINE;
324static uint8_t serial_read_chunk(uint8_t *pterrcount, uint8_t bit) {
325 uint8_t byte, i, p, pb;
326
327 _delay_sub_us(READ_WRITE_START_ADJUST);
328 for( i = 0, byte = 0, p = PARITY; i < bit; i++ ) {
329 serial_delay_half1(); // read the middle of pulses
330 if( serial_read_pin() ) {
331 byte = (byte << 1) | 1; p ^= 1;
332 } else {
333 byte = (byte << 1) | 0; p ^= 0;
334 }
335 _delay_sub_us(READ_WRITE_WIDTH_ADJUST);
336 serial_delay_half2();
337 }
338 /* recive parity bit */
339 serial_delay_half1(); // read the middle of pulses
340 pb = serial_read_pin();
341 _delay_sub_us(READ_WRITE_WIDTH_ADJUST);
342 serial_delay_half2();
343
344 *pterrcount += (p != pb)? 1 : 0;
345
346 return byte;
347}
348
349// Sends a byte with MSB ordering
350void serial_write_chunk(uint8_t data, uint8_t bit) NO_INLINE;
351void serial_write_chunk(uint8_t data, uint8_t bit) {
352 uint8_t b, p;
353 for( p = PARITY, b = 1<<(bit-1); b ; b >>= 1) {
354 if(data & b) {
355 serial_high(); p ^= 1;
356 } else {
357 serial_low(); p ^= 0;
358 }
359 serial_delay();
360 }
361 /* send parity bit */
362 if(p & 1) { serial_high(); }
363 else { serial_low(); }
364 serial_delay();
365
366 serial_low(); // sync_send() / senc_recv() need raise edge
367}
368
369static void serial_send_packet(uint8_t *buffer, uint8_t size) NO_INLINE;
370static
371void serial_send_packet(uint8_t *buffer, uint8_t size) {
372 for (uint8_t i = 0; i < size; ++i) {
373 uint8_t data;
374 data = buffer[i];
375 sync_send();
376 serial_write_chunk(data,8);
377 }
378}
379
380static uint8_t serial_recive_packet(uint8_t *buffer, uint8_t size) NO_INLINE;
381static
382uint8_t serial_recive_packet(uint8_t *buffer, uint8_t size) {
383 uint8_t pecount = 0;
384 for (uint8_t i = 0; i < size; ++i) {
385 uint8_t data;
386 sync_recv();
387 data = serial_read_chunk(&pecount, 8);
388 buffer[i] = data;
389 }
390 return pecount == 0;
391}
392
393inline static
394void change_sender2reciver(void) {
395 sync_send(); //0
396 serial_delay_half1(); //1
397 serial_low(); //2
398 serial_input_with_pullup(); //2
399 serial_delay_half1(); //3
400}
401
402inline static
403void change_reciver2sender(void) {
404 sync_recv(); //0
405 serial_delay(); //1
406 serial_low(); //3
407 serial_output(); //3
408 serial_delay_half1(); //4
409}
410
411static inline uint8_t nibble_bits_count(uint8_t bits)
412{
413 bits = (bits & 0x5) + (bits >> 1 & 0x5);
414 bits = (bits & 0x3) + (bits >> 2 & 0x3);
415 return bits;
416}
417
418// interrupt handle to be used by the target device
419ISR(SERIAL_PIN_INTERRUPT) {
420
421#ifndef SERIAL_USE_MULTI_TRANSACTION
422 serial_low();
423 serial_output();
424 SSTD_t *trans = Transaction_table;
425#else
426 // recive transaction table index
427 uint8_t tid, bits;
428 uint8_t pecount = 0;
429 sync_recv();
430 bits = serial_read_chunk(&pecount,7);
431 tid = bits>>3;
432 bits = (bits&7) != nibble_bits_count(tid);
433 if( bits || pecount> 0 || tid > Transaction_table_size ) {
434 return;
435 }
436 serial_delay_half1();
437
438 serial_high(); // response step1 low->high
439 serial_output();
440 _delay_sub_us(SLAVE_INT_ACK_WIDTH_UNIT*SLAVE_INT_ACK_WIDTH);
441 SSTD_t *trans = &Transaction_table[tid];
442 serial_low(); // response step2 ack high->low
443#endif
444
445 // target send phase
446 if( trans->target2initiator_buffer_size > 0 )
447 serial_send_packet((uint8_t *)trans->target2initiator_buffer,
448 trans->target2initiator_buffer_size);
449 // target switch to input
450 change_sender2reciver();
451
452 // target recive phase
453 if( trans->initiator2target_buffer_size > 0 ) {
454 if (serial_recive_packet((uint8_t *)trans->initiator2target_buffer,
455 trans->initiator2target_buffer_size) ) {
456 *trans->status = TRANSACTION_ACCEPTED;
457 } else {
458 *trans->status = TRANSACTION_DATA_ERROR;
459 }
460 } else {
461 *trans->status = TRANSACTION_ACCEPTED;
462 }
463
464 sync_recv(); //weit initiator output to high
465}
466
467/////////
468// start transaction by initiator
469//
470// int soft_serial_transaction(int sstd_index)
471//
472// Returns:
473// TRANSACTION_END
474// TRANSACTION_NO_RESPONSE
475// TRANSACTION_DATA_ERROR
476// this code is very time dependent, so we need to disable interrupts
477#ifndef SERIAL_USE_MULTI_TRANSACTION
478int soft_serial_transaction(void) {
479 SSTD_t *trans = Transaction_table;
480#else
481int soft_serial_transaction(int sstd_index) {
482 if( sstd_index > Transaction_table_size )
483 return TRANSACTION_TYPE_ERROR;
484 SSTD_t *trans = &Transaction_table[sstd_index];
485#endif
486 cli();
487
488 // signal to the target that we want to start a transaction
489 serial_output();
490 serial_low();
491 _delay_us(SLAVE_INT_WIDTH_US);
492
493#ifndef SERIAL_USE_MULTI_TRANSACTION
494 // wait for the target response
495 serial_input_with_pullup();
496 _delay_us(SLAVE_INT_RESPONSE_TIME);
497
498 // check if the target is present
499 if (serial_read_pin()) {
500 // target failed to pull the line low, assume not present
501 serial_output();
502 serial_high();
503 *trans->status = TRANSACTION_NO_RESPONSE;
504 sei();
505 return TRANSACTION_NO_RESPONSE;
506 }
507
508#else
509 // send transaction table index
510 int tid = (sstd_index<<3) | (7 & nibble_bits_count(sstd_index));
511 sync_send();
512 _delay_sub_us(TID_SEND_ADJUST);
513 serial_write_chunk(tid, 7);
514 serial_delay_half1();
515
516 // wait for the target response (step1 low->high)
517 serial_input_with_pullup();
518 while( !serial_read_pin() ) {
519 _delay_sub_us(2);
520 }
521
522 // check if the target is present (step2 high->low)
523 for( int i = 0; serial_read_pin(); i++ ) {
524 if (i > SLAVE_INT_ACK_WIDTH + 1) {
525 // slave failed to pull the line low, assume not present
526 serial_output();
527 serial_high();
528 *trans->status = TRANSACTION_NO_RESPONSE;
529 sei();
530 return TRANSACTION_NO_RESPONSE;
531 }
532 _delay_sub_us(SLAVE_INT_ACK_WIDTH_UNIT);
533 }
534#endif
535
536 // initiator recive phase
537 // if the target is present syncronize with it
538 if( trans->target2initiator_buffer_size > 0 ) {
539 if (!serial_recive_packet((uint8_t *)trans->target2initiator_buffer,
540 trans->target2initiator_buffer_size) ) {
541 serial_output();
542 serial_high();
543 *trans->status = TRANSACTION_DATA_ERROR;
544 sei();
545 return TRANSACTION_DATA_ERROR;
546 }
547 }
548
549 // initiator switch to output
550 change_reciver2sender();
551
552 // initiator send phase
553 if( trans->initiator2target_buffer_size > 0 ) {
554 serial_send_packet((uint8_t *)trans->initiator2target_buffer,
555 trans->initiator2target_buffer_size);
556 }
557
558 // always, release the line when not in use
559 sync_send();
560
561 *trans->status = TRANSACTION_END;
562 sei();
563 return TRANSACTION_END;
564}
565
566#ifdef SERIAL_USE_MULTI_TRANSACTION
567int soft_serial_get_and_clean_status(int sstd_index) {
568 SSTD_t *trans = &Transaction_table[sstd_index];
569 cli();
570 int retval = *trans->status;
571 *trans->status = 0;;
572 sei();
573 return retval;
574}
575#endif
576
577#endif
578
579// Helix serial.c history
580// 2018-1-29 fork from let's split and add PD2, modify sync_recv() (#2308, bceffdefc)
581// 2018-6-28 bug fix master to slave comm and speed up (#3255, 1038bbef4)
582// (adjusted with avr-gcc 4.9.2)
583// 2018-7-13 remove USE_SERIAL_PD2 macro (#3374, f30d6dd78)
584// (adjusted with avr-gcc 4.9.2)
585// 2018-8-11 add support multi-type transaction (#3608, feb5e4aae)
586// (adjusted with avr-gcc 4.9.2)
587// 2018-10-21 fix serial and RGB animation conflict (#4191, 4665e4fff)
588// (adjusted with avr-gcc 7.3.0)
589// 2018-10-28 re-adjust compiler depend value of delay (#4269, 8517f8a66)
590// (adjusted with avr-gcc 5.4.0, 7.3.0)
diff --git a/keyboards/naked48/serial.h b/keyboards/naked48/serial.h
deleted file mode 100644
index 5deaf789e..000000000
--- a/keyboards/naked48/serial.h
+++ /dev/null
@@ -1,86 +0,0 @@
1#pragma once
2
3#include <stdbool.h>
4
5// /////////////////////////////////////////////////////////////////
6// Need Soft Serial defines in config.h
7// /////////////////////////////////////////////////////////////////
8// ex.
9// #define SOFT_SERIAL_PIN ?? // ?? = D0,D1,D2,D3,E6
10// OPTIONAL: #define SELECT_SOFT_SERIAL_SPEED ? // ? = 1,2,3,4,5
11// // 1: about 137kbps (default)
12// // 2: about 75kbps
13// // 3: about 39kbps
14// // 4: about 26kbps
15// // 5: about 20kbps
16//
17// //// USE OLD API (compatible with let's split serial.c)
18// ex.
19// #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
20// #define SERIAL_MASTER_BUFFER_LENGTH 1
21//
22// //// USE NEW API
23// //// USE simple API (using signle-type transaction function)
24// #define SERIAL_USE_SINGLE_TRANSACTION
25// //// USE flexible API (using multi-type transaction function)
26// #define SERIAL_USE_MULTI_TRANSACTION
27//
28// /////////////////////////////////////////////////////////////////
29
30
31//////////////// for backward compatibility ////////////////////////////////
32#if !defined(SERIAL_USE_SINGLE_TRANSACTION) && !defined(SERIAL_USE_MULTI_TRANSACTION)
33/* --- USE OLD API (compatible with let's split serial.c) */
34 #if SERIAL_SLAVE_BUFFER_LENGTH > 0
35 extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
36 #endif
37 #if SERIAL_MASTER_BUFFER_LENGTH > 0
38 extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH];
39 #endif
40
41 void serial_master_init(void);
42 void serial_slave_init(void);
43 int serial_update_buffers(void);
44
45#endif // end of USE OLD API
46////////////////////////////////////////////////////////////////////////////
47
48// Soft Serial Transaction Descriptor
49typedef struct _SSTD_t {
50 uint8_t *status;
51 uint8_t initiator2target_buffer_size;
52 uint8_t *initiator2target_buffer;
53 uint8_t target2initiator_buffer_size;
54 uint8_t *target2initiator_buffer;
55} SSTD_t;
56#define TID_LIMIT( table ) (sizeof(table) / sizeof(SSTD_t))
57
58// initiator is transaction start side
59void soft_serial_initiator_init(SSTD_t *sstd_table, int sstd_table_size);
60// target is interrupt accept side
61void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size);
62
63// initiator resullt
64#define TRANSACTION_END 0
65#define TRANSACTION_NO_RESPONSE 0x1
66#define TRANSACTION_DATA_ERROR 0x2
67#define TRANSACTION_TYPE_ERROR 0x4
68#ifndef SERIAL_USE_MULTI_TRANSACTION
69int soft_serial_transaction(void);
70#else
71int soft_serial_transaction(int sstd_index);
72#endif
73
74// target status
75// *SSTD_t.status has
76// initiator:
77// TRANSACTION_END
78// or TRANSACTION_NO_RESPONSE
79// or TRANSACTION_DATA_ERROR
80// target:
81// TRANSACTION_DATA_ERROR
82// or TRANSACTION_ACCEPTED
83#define TRANSACTION_ACCEPTED 0x8
84#ifdef SERIAL_USE_MULTI_TRANSACTION
85int soft_serial_get_and_clean_status(int sstd_index);
86#endif