From aa660d61ea078dd8633b2fc0a3f6ff4be6a450ee Mon Sep 17 00:00:00 2001 From: Ryan Sullivan Date: Wed, 9 Aug 2017 09:47:16 -0400 Subject: Add Org60 keyboard This makes some small changes to the XD60 configuration. Also moves Eagleheardt's base keymap. --- keyboards/org60/Makefile | 3 ++ keyboards/org60/config.h | 82 ++++++++++++++++++++++++++++++++++ keyboards/org60/keymaps/base/keymap.c | 46 +++++++++++++++++++ keyboards/org60/keymaps/base/readme.md | 5 +++ keyboards/org60/org60.c | 19 ++++++++ keyboards/org60/org60.h | 37 +++++++++++++++ keyboards/org60/readme.md | 21 +++++++++ keyboards/org60/rules.mk | 64 ++++++++++++++++++++++++++ 8 files changed, 277 insertions(+) create mode 100644 keyboards/org60/Makefile create mode 100644 keyboards/org60/config.h create mode 100644 keyboards/org60/keymaps/base/keymap.c create mode 100644 keyboards/org60/keymaps/base/readme.md create mode 100644 keyboards/org60/org60.c create mode 100644 keyboards/org60/org60.h create mode 100644 keyboards/org60/readme.md create mode 100644 keyboards/org60/rules.mk (limited to 'keyboards/org60') diff --git a/keyboards/org60/Makefile b/keyboards/org60/Makefile new file mode 100644 index 000000000..57b2ef62e --- /dev/null +++ b/keyboards/org60/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif diff --git a/keyboards/org60/config.h b/keyboards/org60/config.h new file mode 100644 index 000000000..62b3b69a0 --- /dev/null +++ b/keyboards/org60/config.h @@ -0,0 +1,82 @@ +/* +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" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 大橘子外设 (Large orange peripherals) +#define PRODUCT Org60 +#define DESCRIPTION Org60 Keyboard PCB by 大橘子外设 (Large orange peripherals) + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } +#define UNUSED_PINS + +/* Backlight Setup */ +#define BACKLIGHT_PIN F5 +#define BACKLIGHT_LEVELS 6 +//#define BACKLIGHT_BREATHING + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* RGB Underglow + * F6 PIN for Org60 that has pre-soldered WS2812 LEDs + */ +#define RGB_DI_PIN F6 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 20 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* 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 magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +#define TAPPING_TERM 200 + +#endif diff --git a/keyboards/org60/keymaps/base/keymap.c b/keyboards/org60/keymaps/base/keymap.c new file mode 100644 index 000000000..b3ccd5e58 --- /dev/null +++ b/keyboards/org60/keymaps/base/keymap.c @@ -0,0 +1,46 @@ +#include "xd60.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base Layer + KEYMAP( + KC_ESC, 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_NO, \ + 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_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_NO, KC_RSFT ,KC_UP, KC_DEL, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), + + // 1: Function Layer + KEYMAP( + RESET, 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_NO, KC_NO, \ + KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ + KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_RSFT, KC_NO ,KC_PGUP, KC_INS, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END), + +}; + +// Custom Actions +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay +}; + +// Macros +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { register_code(KC_RSFT); } + else { unregister_code(KC_RSFT); } + break; + } + + return MACRO_NONE; +}; + +// Loop +void matrix_scan_user(void) { + // Empty +}; diff --git a/keyboards/org60/keymaps/base/readme.md b/keyboards/org60/keymaps/base/readme.md new file mode 100644 index 000000000..89f9acaa9 --- /dev/null +++ b/keyboards/org60/keymaps/base/readme.md @@ -0,0 +1,5 @@ +![Uses this layout](https://i.redd.it/v64eqwsrk8jx.jpg) + +All of the keys which CAN have a function should be assigned one. + +The keys with KC_NO cannot be assigned a value diff --git a/keyboards/org60/org60.c b/keyboards/org60/org60.c new file mode 100644 index 000000000..77a5e7c18 --- /dev/null +++ b/keyboards/org60/org60.c @@ -0,0 +1,19 @@ +#include "org60.h" + + +extern inline void org60_caps_led_on(void); +extern inline void org60_bl_led_on(void); + +extern inline void org60_caps_led_off(void); +extern inline void org60_bl_led_off(void); + + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1<