From 0dc0be7302757c9f9162958007f926b21c4428ef Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 4 Jun 2019 02:26:34 -0400 Subject: [PATCH] [Keyboard] Add Levinson Rev 3 (#6064) * Add Levinson Rev 3 * Update keyboards/keebio/levinson/rev3/config.h Co-Authored-By: Drashna Jaelre * Update keyboards/keebio/levinson/rev3/config.h Co-Authored-By: Drashna Jaelre --- keyboards/keebio/levinson/levinson.h | 4 +- keyboards/keebio/levinson/rev3/config.h | 61 +++++++++++++++++++++++++ keyboards/keebio/levinson/rev3/rev3.c | 22 +++++++++ keyboards/keebio/levinson/rev3/rev3.h | 34 ++++++++++++++ keyboards/keebio/levinson/rev3/rules.mk | 1 + 5 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 keyboards/keebio/levinson/rev3/config.h create mode 100644 keyboards/keebio/levinson/rev3/rev3.c create mode 100644 keyboards/keebio/levinson/rev3/rev3.h create mode 100644 keyboards/keebio/levinson/rev3/rules.mk diff --git a/keyboards/keebio/levinson/levinson.h b/keyboards/keebio/levinson/levinson.h index 88c2361ad0..503b1f0fd8 100644 --- a/keyboards/keebio/levinson/levinson.h +++ b/keyboards/keebio/levinson/levinson.h @@ -4,8 +4,10 @@ #ifdef KEYBOARD_keebio_levinson_rev1 #include "rev1.h" -#else +#elif KEYBOARD_keebio_levinson_rev2 #include "rev2.h" +#elif KEYBOARD_keebio_levinson_rev3 + #include "rev3.h" #endif // Used to create a keymap using only KC_ prefixed keys diff --git a/keyboards/keebio/levinson/rev3/config.h b/keyboards/keebio/levinson/rev3/config.h new file mode 100644 index 0000000000..3e45b9d422 --- /dev/null +++ b/keyboards/keebio/levinson/rev3/config.h @@ -0,0 +1,61 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2018 Danny Nguyen + +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 0xCB10 +#define PRODUCT_ID 0x1146 +#define DEVICE_VER 0x0300 +#define MANUFACTURER Keebio +#define PRODUCT Levinson +#define DESCRIPTION Split 40 percent ortholinear keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { D4, E6, B4, B5 } +#define MATRIX_COL_PINS { D3, F4, F7, B1, B3, B2 } +#define MATRIX_ROW_PINS_RIGHT { D4, B2, B3, B1 } +#define MATRIX_COL_PINS_RIGHT { F4, F7, D3, B5, B4, E6 } +#define SPLIT_HAND_PIN D2 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D7 +#define RGBLED_NUM 12 // Number of LEDs +#define RGBLED_SPLIT { 6, 6 } + +/* Backlight LEDs */ +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_LEVELS 7 diff --git a/keyboards/keebio/levinson/rev3/rev3.c b/keyboards/keebio/levinson/rev3/rev3.c new file mode 100644 index 0000000000..573fa787ba --- /dev/null +++ b/keyboards/keebio/levinson/rev3/rev3.c @@ -0,0 +1,22 @@ +#include "levinson.h" + +#ifdef SSD1306OLED +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + led_set_user(usb_led); +} +#endif + +void matrix_init_kb(void) { + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; + diff --git a/keyboards/keebio/levinson/rev3/rev3.h b/keyboards/keebio/levinson/rev3/rev3.h new file mode 100644 index 0000000000..a31bfd15c3 --- /dev/null +++ b/keyboards/keebio/levinson/rev3/rev3.h @@ -0,0 +1,34 @@ +#pragma once + +#include "levinson.h" + +//void promicro_bootloader_jmp(bool program); +#include "quantum.h" + + +#ifdef USE_I2C +#include +#ifdef __AVR__ + #include + #include +#endif +#endif + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R35, R34, R33, R32, R31, R30 } \ + } + +#define LAYOUT_ortho_4x12 LAYOUT diff --git a/keyboards/keebio/levinson/rev3/rules.mk b/keyboards/keebio/levinson/rev3/rules.mk new file mode 100644 index 0000000000..bd518d8f27 --- /dev/null +++ b/keyboards/keebio/levinson/rev3/rules.mk @@ -0,0 +1 @@ +BACKLIGHT_ENABLE = yes