From 994d94140e16f60515f193337309d89af6e6695e Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 10 Feb 2018 17:09:47 -0800 Subject: Clueboard hotswap support (#2376) --- keyboards/clueboard/66_hotswap/66_hotswap.c | 1 + keyboards/clueboard/66_hotswap/66_hotswap.h | 10 +++ keyboards/clueboard/66_hotswap/config.h | 63 +++++++++++++++++++ keyboards/clueboard/66_hotswap/gen1/config.h | 53 ++++++++++++++++ keyboards/clueboard/66_hotswap/gen1/gen1.c | 63 +++++++++++++++++++ keyboards/clueboard/66_hotswap/gen1/gen1.h | 71 ++++++++++++++++++++++ keyboards/clueboard/66_hotswap/gen1/info.json | 3 + keyboards/clueboard/66_hotswap/gen1/rules.mk | 1 + keyboards/clueboard/66_hotswap/info.json | 12 ++++ .../clueboard/66_hotswap/keymaps/66_ansi/keymap.c | 36 +++++++++++ .../clueboard/66_hotswap/keymaps/66_ansi/readme.md | 11 ++++ .../clueboard/66_hotswap/keymaps/default/keymap.c | 36 +++++++++++ .../clueboard/66_hotswap/keymaps/default/readme.md | 8 +++ keyboards/clueboard/66_hotswap/readme.md | 16 +++++ keyboards/clueboard/66_hotswap/rules.mk | 23 +++++++ 15 files changed, 407 insertions(+) create mode 100644 keyboards/clueboard/66_hotswap/66_hotswap.c create mode 100644 keyboards/clueboard/66_hotswap/66_hotswap.h create mode 100644 keyboards/clueboard/66_hotswap/config.h create mode 100644 keyboards/clueboard/66_hotswap/gen1/config.h create mode 100644 keyboards/clueboard/66_hotswap/gen1/gen1.c create mode 100644 keyboards/clueboard/66_hotswap/gen1/gen1.h create mode 100644 keyboards/clueboard/66_hotswap/gen1/info.json create mode 100644 keyboards/clueboard/66_hotswap/gen1/rules.mk create mode 100644 keyboards/clueboard/66_hotswap/info.json create mode 100644 keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c create mode 100644 keyboards/clueboard/66_hotswap/keymaps/66_ansi/readme.md create mode 100644 keyboards/clueboard/66_hotswap/keymaps/default/keymap.c create mode 100644 keyboards/clueboard/66_hotswap/keymaps/default/readme.md create mode 100644 keyboards/clueboard/66_hotswap/readme.md create mode 100644 keyboards/clueboard/66_hotswap/rules.mk diff --git a/keyboards/clueboard/66_hotswap/66_hotswap.c b/keyboards/clueboard/66_hotswap/66_hotswap.c new file mode 100644 index 000000000..cc38050a9 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/66_hotswap.c @@ -0,0 +1 @@ +#include "66_hotswap.h" diff --git a/keyboards/clueboard/66_hotswap/66_hotswap.h b/keyboards/clueboard/66_hotswap/66_hotswap.h new file mode 100644 index 000000000..61c6fe359 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/66_hotswap.h @@ -0,0 +1,10 @@ +#ifndef CLUEBOARD_H +#define CLUEBOARD_H + +#include "quantum.h" + +#ifdef KEYBOARD_clueboard_66_hotswap_gen1 + #include "gen1.h" +#endif + +#endif diff --git a/keyboards/clueboard/66_hotswap/config.h b/keyboards/clueboard/66_hotswap/config.h new file mode 100644 index 000000000..59a0abc7f --- /dev/null +++ b/keyboards/clueboard/66_hotswap/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CLUEBOARD_66_CONFIG_H +#define CLUEBOARD_66_CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define MANUFACTURER Clueboard +#define PRODUCT Clueboard 66% HotSwap +#define DESCRIPTION QMK keyboard firmware for Clueboard 66% + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* 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 + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * 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 + +#endif diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h new file mode 100644 index 000000000..d8163f538 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/gen1/config.h @@ -0,0 +1,53 @@ +#ifndef CLUEBOARD_66_REV3_CONFIG_H +#define CLUEBOARD_66_REV3_CONFIG_H + +#include "config_common.h" + +#define PRODUCT_ID 0x2390 +#define DEVICE_VER 0x0001 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +// ROWS: Top to bottom, COLS: Left to right +/* Row pin configuration +* row: 0 1 2 3 4 5 6 7 8 9 +* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2 +*/ + +#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } +/* Column pin configuration + * col: 0 1 2 3 4 5 6 7 + * pin: F0 F1 F4 F5 F6 F7 E6 B1 + */ +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } +#define UNUSED_PINS + +/* Speaker configuration + */ +//#define SPEAKER_PIN B7 // FIXME: find the correct name for this define + +/* Backlight configuration + */ +#define BACKLIGHT_LEVELS 1 + +/* Underlight configuration + */ +#define RGB_DI_PIN D7 +#define RGBLED_NUM 26 // Number of LEDs +#define RGBLIGHT_HUE_STEP 32 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 +#define RGBLIGHT_EFFECT_BREATHE_MAX 200 +#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 666*2 +#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 4 // How many LEDs wide to light up +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 16 // The led to start at +#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 8 // How many LEDs to travel +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up + +#endif diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.c b/keyboards/clueboard/66_hotswap/gen1/gen1.c new file mode 100644 index 000000000..01f74bc50 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/gen1/gen1.c @@ -0,0 +1,63 @@ +#include "gen1.h" +#include +#include "backlight.h" +#include "print.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + matrix_init_user(); + led_init_ports(); + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1<