From c24a456cf23f3b53450a6bcd83d4b92969b75f3d Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Wed, 21 Dec 2022 14:39:03 +0800 Subject: [PATCH] lotus: Map matrix properly to hardware layout Signed-off-by: Daniel Schaefer --- keyboards/lotus/config.h | 5 +- keyboards/lotus/info.json | 2 +- keyboards/lotus/keymaps/default/keymap.c | 140 +++++++++++++++++++++-- keyboards/lotus/lotus.h | 65 +++++++++-- keyboards/lotus/matrix.c | 29 ++++- 5 files changed, 211 insertions(+), 30 deletions(-) diff --git a/keyboards/lotus/config.h b/keyboards/lotus/config.h index bc58666580..7d1bc60c5c 100644 --- a/keyboards/lotus/config.h +++ b/keyboards/lotus/config.h @@ -6,8 +6,8 @@ #include -#define MATRIX_COLS 14 -#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 +#define MATRIX_ROWS 8 // TODO: Adjust this. The GPIO is definitely wrong #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET @@ -29,6 +29,7 @@ #define RGB_MATRIX_LED_COUNT 78 // PWM single one backlight configuration +// TODO: Double-check these // The RP2040 datasheet says GPIO25 maps to PWM channel 4B #define BACKLIGHT_PWM_DRIVER PWMD4 #define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B diff --git a/keyboards/lotus/info.json b/keyboards/lotus/info.json index cd18b93f75..1424197adc 100644 --- a/keyboards/lotus/info.json +++ b/keyboards/lotus/info.json @@ -1,6 +1,6 @@ { "keyboard_name": "lotus", - "manufacturer": "Framework Computer", + "manufacturer": "Framework Computer Inc", "maintainer": "JohnAZoidberg", "bootloader": "rp2040", "features": { diff --git a/keyboards/lotus/keymaps/default/keymap.c b/keyboards/lotus/keymaps/default/keymap.c index 0dd662457e..354d5e925b 100644 --- a/keyboards/lotus/keymaps/default/keymap.c +++ b/keyboards/lotus/keymaps/default/keymap.c @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H +#include "keymap_japanese.h" void keyboard_post_init_user(void) { // Enable debug output @@ -22,11 +23,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * 13 keys │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤ * 12 keys │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ - * ├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ - * │ │ │ │ │ │ │ │ │ ↑│ │ - * 11 keys │Ctrl│ FN │GUI │Alt │ │Alt│Ctl│ ← ├───┤ → │ - * │ │ │ │ │ │ │ │ │↓ │ │ - * └────┴────┴────┴────┴────────────────┴───┴───┴────┴───┴────┘ + * ├────┬───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ + * │ │ │ │ │ │ │ │ │↑ │ │ + * 11 keys │Ctrl│FN │GUI│Alt│ │Alt│Ctl│ ← ├───┤ → │ + * │ │ │ │ │ │ │ │ │ ↓│ │ + * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ * 78 total */ [0] = LAYOUT_78_ansi( @@ -35,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_LCTL, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT ), /* * Function layer @@ -49,11 +50,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * 13 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤ * 12 keys │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ - * │ │ │ │ │ │ │ │ │PgU│ │ - * 11 keys │ │ │ │ │Toggle Backlight│ │ │Home├───┤End │ - * │ │ │ │ │ │ │ │ │PgD│ │ - * └────┴────┴────┴────┴────────────────┴───┴───┴────┴───┴────┘ + * ├────┬───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ + * │ │ │ │ │ │ │ │ │PgU│ │ + * 11 keys │ │ │ │ │ Toggle Backlight │ │ │Home├───┤End │ + * │ │ │ │ │ │ │ │ │PgD│ │ + * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ * 78 total */ // TODO: Screen toggle, airplane mode @@ -64,7 +65,122 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_RGHT + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_PGDN, KC_END + ) +}; +const uint16_t PROGMEM keymaps_iso[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐ + * 14 keys │Esc │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Del│ + * ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ + * 14 keys │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ + * 13 keys │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Entr│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * 14 keys │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┤ + * 13 keys │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┼───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ + * │ │ │ │ │ │ │ │ │↑ │ │ + * 11 keys │Ctrl│FN │GUI│Alt│ │Alt│Ctl│ ← ├───┤ → │ + * │ │ │ │ │ │ │ │ │ ↓│ │ + * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ + * 79 total + */ + [0] = LAYOUT_79_iso( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT + ), + /* + * Function layer + * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐ + * 14 keys │FN lk│Mut│vDn│vUp│Prv│Ply│Nxt│bDn│bUp│Scn│Air│Prt│App│Ins │ + * ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ + * 14 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ + * 13 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * 14 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┤ + * 13 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┼───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ + * │ │ │ │ │ │ │ │ │PgU│ │ + * 11 keys │ │ │ │ │ Toggle Backlight │ │ │Home├───┤End │ + * │ │ │ │ │ │ │ │ │PgD│ │ + * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ + * 78 total + */ + // TODO: Screen toggle, airplane mode + // TODO: Other unlabeled keys + [1] = LAYOUT_79_iso( + TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_PGDN, KC_END + ) +}; + +const uint16_t PROGMEM keymaps_jis[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐ + * 14 keys │Esc │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Del│ + * ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴┬───┤ + * 15 keys │Z↔H│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ^ │¥ │Bck│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬┴───┤ + * 13 keys │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ @ │ [ │Entr│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * 14 keys │ Eisū │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ : │ ] │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * 13 keys │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ \ │Shift│ + * ├────┬───┼───┼───┼──┬┴───┴───┴─┬─┴┬──┼───┼───┼───┴┬──┴┬────┤ + * │ │ │ │ │M │ │H │K │ │ │ │↑ │ │ + * 14 keys │Ctrl│FN │GUI│Alt│u │ │e │↔ │Alt│Ctl│ ← ├───┤ → │ + * │ │ │ │ │h │ │n │H │ │ │ │ ↓│ │ + * └────┴───┴───┴───┴──┴──────────┴──┴──┴───┴───┴────┴───┴────┘ + * 83 total + */ + [0] = LAYOUT_83_jis( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + JP_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, JP_CIRC, JP_YEN, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, KC_LBRC, + JP_EISU, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_RBRC, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_RSFT, + KC_LCTL, MO(1), KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, KC_RCTL, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT + ), + /* + * Function layer + * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐ + * 14 keys │FN lk│Mut│vDn│vUp│Prv│Ply│Nxt│bDn│bUp│Scn│Air│Prt│App│Ins │ + * ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ + * 14 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ + * 13 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * 14 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┤ + * 13 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┼───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ + * │ │ │ │ │ │ │ │ │PgU│ │ + * 11 keys │ │ │ │ │ Toggle Backlight │ │ │Home├───┤End │ + * │ │ │ │ │ │ │ │ │PgD│ │ + * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ + * 78 total + */ + // TODO: Screen toggle, airplane mode + // TODO: Other unlabeled keys + [1] = LAYOUT_83_jis( + TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_PGDN, KC_END ) }; diff --git a/keyboards/lotus/lotus.h b/keyboards/lotus/lotus.h index 0faf895f3e..d0654a8c68 100644 --- a/keyboards/lotus/lotus.h +++ b/keyboards/lotus/lotus.h @@ -6,18 +6,59 @@ #include "quantum.h" #define LAYOUT_78_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ - K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, \ - K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, \ - K42, K43, K44, K45, K46, K47, K48, K49, K50, K51, K52, K53, K54, \ - K55, K56, K57, K58, K59, K60, K61, K62, K63, K64, K65, K66, \ - K67, K68, K69, K70, K71, K72, K73, K74, K75, K76, K77 \ + K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \ + K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K15, \ + K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K43, \ + K44, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K57, \ + K58, K59, K127, K60, K61, K62, K64, K79, K83, K84, K89 \ ) \ { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13 }, \ - { K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27 }, \ - { K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41 }, \ - { K42, K43, K44, K45, K46, K47, K48, K49, K50, K51, K52, K53, KC_NO, K54 }, \ - { K55, KC_NO, K56, K57, K58, K59, K60, K61, K62, K63, K64, K65, KC_NO, K66 }, \ - { K67, K68, K69, K70, KC_NO, K71, KC_NO, KC_NO, K72, K73, K74, K75, K76, K77 } \ + { K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, KC_NO, K64, K55, K41, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, KC_NO, K58, K83, K43, K119 }, \ + { KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K29, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \ + { KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \ + { KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, KC_NO, KC_NO, K11, K13, KC_NO }, \ + { KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, KC_NO, KC_NO, K26, K15, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO }, \ + { KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO } \ +} + +// K29/K42 swapped in ANSI/ISO +#define LAYOUT_79_iso( \ + K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \ + K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K15, \ + K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, \ + K44, K45, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K57, \ + K58, K59, K127, K60, K61, K62, K64, K79, K83, K84, K89 \ +) \ +{ \ + { K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, KC_NO, K64, K55, K41, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, KC_NO, K58, K83, K43, K119 }, \ + { KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K42, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \ + { KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \ + { KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, KC_NO, K11, K13, KC_NO }, \ + { KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, K45, KC_NO, K26, K15, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO }, \ + { KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO }, \ +} + +#define LAYOUT_83_jis( \ + K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \ + K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K14, K15,\ + K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, \ + K44, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, \ + K58, K59, K127, K60, K131, K61, K132, K133, K62, K64, K79, K83, K84, K89 \ +) \ +{ \ + { K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, K133, K64, K55, K41, K14 }, \ + { KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, K132, K58, K83, K43, K119 }, \ + { KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K42, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \ + { KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \ + { KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, K56, KC_NO, K11, K13, KC_NO,}, \ + { KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, KC_NO, KC_NO, K26, K15, KC_NO,}, \ + { KC_NO, KC_NO, K131, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO,}, \ + { KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO,} \ } diff --git a/keyboards/lotus/matrix.c b/keyboards/lotus/matrix.c index 196efa6832..e1bc437151 100644 --- a/keyboards/lotus/matrix.c +++ b/keyboards/lotus/matrix.c @@ -40,10 +40,33 @@ void adc_select_input(int adc_channel) { * Splits the positive integer (<=7) into its three component bits. */ static void mux_select_col(int col) { + assert(col >= 0 && col <= 7); + + // Not in order - need to remap them + // X0 - KSI1 + // X1 - KSI2 + // X2 - KSI0 + // X3 - KSI3 + // X4 - KSI4 + // X5 - KSI5 + // X6 - KSI6 + // X7 - KSI7 + int index = 0; + switch (col) { + case 0: + index = 2; + case 1: + index = 0; + case 2: + index = 1; + default: + index = col; + } + int bits[] = { - (col & 0x1) > 0, - (col & 0x4) > 0, - (col & 0x8) > 0 + (index & 0x1) > 0, + (index & 0x4) > 0, + (index & 0x8) > 0 }; writePin(MUX_A, bits[0]); writePin(MUX_B, bits[1]);