From 474f7f399c707a61448b353c5d614cefa47ff69a Mon Sep 17 00:00:00 2001 From: Tom Saleeba Date: Fri, 3 Jan 2020 09:10:13 +1030 Subject: [Keyboard] add initial ergoslab directory (#7730) * feat: add initial ergoslab directory * fix: address all comments from noroadsleft * fix: address comment from drashna * feat: add swap hands config to ergoslab * chore: change ergoslab image to real photo * re --- keyboards/ergoslab/rev1/config.h | 71 ++++++++++++++++++++++++++++++++++++++++ keyboards/ergoslab/rev1/rev1.c | 18 ++++++++++ keyboards/ergoslab/rev1/rev1.h | 24 ++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 keyboards/ergoslab/rev1/config.h create mode 100644 keyboards/ergoslab/rev1/rev1.c create mode 100644 keyboards/ergoslab/rev1/rev1.h (limited to 'keyboards/ergoslab/rev1') diff --git a/keyboards/ergoslab/rev1/config.h b/keyboards/ergoslab/rev1/config.h new file mode 100644 index 000000000..4e69b1095 --- /dev/null +++ b/keyboards/ergoslab/rev1/config.h @@ -0,0 +1,71 @@ +/* +Copyright 2019 Tom Saleeba + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x5148 +#define DEVICE_VER 0x0100 +#define MANUFACTURER tomsaleeba +#define PRODUCT Ergoslab Keyboard +#define DESCRIPTION Split 45 percent ergonomic keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D2 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + +#define RGBLED_NUM 2 // Number of LEDs +// FIXME this following line should enable our layer status LEDs to work on both +// sides without need to wire them into a chain. It doesn't though. Uncommenting +// means the slave side of the keyboard stops working (and the LEDs don't work). +// #define RGBLED_SPLIT {1,1} + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/ergoslab/rev1/rev1.c b/keyboards/ergoslab/rev1/rev1.c new file mode 100644 index 000000000..0e3e0fe99 --- /dev/null +++ b/keyboards/ergoslab/rev1/rev1.c @@ -0,0 +1,18 @@ +#include "rev1.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}}, + {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}}, + {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}}, + {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}}, + {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}}, + + {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}}, + {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}}, + {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}}, + {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}}, + {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}}, +}; +#endif diff --git a/keyboards/ergoslab/rev1/rev1.h b/keyboards/ergoslab/rev1/rev1.h new file mode 100644 index 000000000..bf99a17b2 --- /dev/null +++ b/keyboards/ergoslab/rev1/rev1.h @@ -0,0 +1,24 @@ +#pragma once + +#include "ergoslab.h" + +#include "quantum.h" + +#define LAYOUT_ergoslab( \ + L00, L01, L02, L03, L04, R04, R03, R02, R01, R00, \ + L10, L11, L12, L13, L14, R14, R13, R12, R11, R10, \ + L20, L21, L22, L23, L24, R24, R23, R22, R21, R20, \ + L30, L31, L32, L33, L34, L35, R35, R34, R33, R32, R31, R30, \ + L41, L42, L43, L44, L45, R45, R44, R43, R42, R41 \ +) { \ + { L00, L01, L02, L03, L04, KC_NO }, \ + { L10, L11, L12, L13, L14, KC_NO }, \ + { L20, L21, L22, L23, L24, KC_NO }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { KC_NO, L41, L42, L43, L44, L45 }, \ + { R00, R01, R02, R03, R04, KC_NO }, \ + { R10, R11, R12, R13, R14, KC_NO }, \ + { R20, R21, R22, R23, R24, KC_NO }, \ + { R30, R31, R32, R33, R34, R35 }, \ + { KC_NO, R41, R42, R43, R44, R45 } \ + } -- cgit v1.2.3