From 88a7fa762f0b6b696b15334dde4851fdc601b558 Mon Sep 17 00:00:00 2001 From: yiancar Date: Sat, 10 Feb 2018 23:47:15 +0100 Subject: New keyboard: Cu75 (#2374) * Added Modular keyboards L,R and NUM Created code modules for the 3 modules of the modular keyboard. Original idea by MechboardsUK. Uses i2c implementation similar to lets split * Remove modular from master This is to fix incorrect branching * Addition of cu75 Addition of cu75 keyboard, uses libraries from LFKeyboards directory which are path linked to reduce file duplication. Minor fix on cu24 readme * Minor Readme Fix --- keyboards/cu75/config.h | 151 +++++++++++++++++++++++++++ keyboards/cu75/cu75.c | 179 ++++++++++++++++++++++++++++++++ keyboards/cu75/cu75.h | 110 ++++++++++++++++++++ keyboards/cu75/keymaps/default/config.h | 8 ++ keyboards/cu75/keymaps/default/keymap.c | 91 ++++++++++++++++ keyboards/cu75/keymaps/default/rules.mk | 53 ++++++++++ keyboards/cu75/keymaps/iso/config.h | 8 ++ keyboards/cu75/keymaps/iso/keymap.c | 91 ++++++++++++++++ keyboards/cu75/keymaps/iso/rules.mk | 53 ++++++++++ keyboards/cu75/readme.md | 17 +++ keyboards/cu75/rules.mk | 41 ++++++++ 11 files changed, 802 insertions(+) create mode 100644 keyboards/cu75/config.h create mode 100644 keyboards/cu75/cu75.c create mode 100644 keyboards/cu75/cu75.h create mode 100644 keyboards/cu75/keymaps/default/config.h create mode 100644 keyboards/cu75/keymaps/default/keymap.c create mode 100644 keyboards/cu75/keymaps/default/rules.mk create mode 100644 keyboards/cu75/keymaps/iso/config.h create mode 100644 keyboards/cu75/keymaps/iso/keymap.c create mode 100644 keyboards/cu75/keymaps/iso/rules.mk create mode 100644 keyboards/cu75/readme.md create mode 100644 keyboards/cu75/rules.mk (limited to 'keyboards/cu75') diff --git a/keyboards/cu75/config.h b/keyboards/cu75/config.h new file mode 100644 index 0000000000..c21e1da017 --- /dev/null +++ b/keyboards/cu75/config.h @@ -0,0 +1,151 @@ +/* +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 CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6062 +#define DEVICE_VER 0x0001 +#define MANUFACTURER LFKeyboards/CapsUnlocked +#define PRODUCT CU75 +#define DESCRIPTION A luxurious fully customisable 75% + +#define DIODE_DIRECTION COL2ROW +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 +#define MATRIX_ROW_PINS {F1, B7, B3, D2, D3, B2} +#define MATRIX_COL_PINS {F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, B1, B0, F0} +#define UNUSED_PINS {} + +#define RGB_DI_PIN C7 // Have to set it to something to get the ws2812 code to compile +#define RGBLED_NUM 24 // Number of LEDs +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 8 +#define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255} + +/* 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 + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * 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/cu75/cu75.c b/keyboards/cu75/cu75.c new file mode 100644 index 0000000000..6dc2898454 --- /dev/null +++ b/keyboards/cu75/cu75.c @@ -0,0 +1,179 @@ +#include +#include +#include +#include "cu75.h" +#include "keymap.h" +#include "debug.h" +#include "../lfkeyboards/issi.h" +#include "../lfkeyboards/TWIlib.h" +#include "../lfkeyboards/lighting.h" + +#ifdef AUDIO_ENABLE +float test_sound[][2] = SONG(STARTUP_SOUND); +#include