From 2a5da62728a42da1cdd7c05f403b3d903e3509f2 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Fri, 16 Feb 2018 22:13:28 -0500 Subject: [PATCH] Add Dilly keyboard --- keyboards/dilly/README.md | 14 ++++ keyboards/dilly/config.h | 62 ++++++++++++++ keyboards/dilly/dilly.c | 1 + keyboards/dilly/dilly.h | 31 +++++++ keyboards/dilly/keymaps/default/config.h | 6 ++ keyboards/dilly/keymaps/default/keymap.c | 101 +++++++++++++++++++++++ keyboards/dilly/keymaps/default/rules.mk | 1 + keyboards/dilly/rules.mk | 56 +++++++++++++ 8 files changed, 272 insertions(+) create mode 100644 keyboards/dilly/README.md create mode 100644 keyboards/dilly/config.h create mode 100644 keyboards/dilly/dilly.c create mode 100644 keyboards/dilly/dilly.h create mode 100644 keyboards/dilly/keymaps/default/config.h create mode 100644 keyboards/dilly/keymaps/default/keymap.c create mode 100644 keyboards/dilly/keymaps/default/rules.mk create mode 100644 keyboards/dilly/rules.mk diff --git a/keyboards/dilly/README.md b/keyboards/dilly/README.md new file mode 100644 index 0000000000..866d07ccbb --- /dev/null +++ b/keyboards/dilly/README.md @@ -0,0 +1,14 @@ +Dilly +===== + +A 3x10 ortholinear keyboard using Kailh PG1350 Lower Profile Choc switches. + +Keyboard Maintainer: Keebio +Hardware Supported: Dilly PCB, Arduino Pro Micro +Hardware Availability: [Keebio](https://keeb.io) + +Make example for this keyboard (after setting up your build environment): + + make dilly:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/dilly/config.h b/keyboards/dilly/config.h new file mode 100644 index 0000000000..97a6e533bb --- /dev/null +++ b/keyboards/dilly/config.h @@ -0,0 +1,62 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB10 +#define PRODUCT_ID 0x113a +#define DEVICE_VER 0x0100 +#define MANUFACTURER Keebio +#define PRODUCT Dilly +#define DESCRIPTION 30 percent ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 5 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D7, E6, B4, B1, B3, B2 } +#define MATRIX_COL_PINS { D2, D4, C6, F6, F5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_PIN B5 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* 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)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + + +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 10 +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD + +#endif \ No newline at end of file diff --git a/keyboards/dilly/dilly.c b/keyboards/dilly/dilly.c new file mode 100644 index 0000000000..89affe8509 --- /dev/null +++ b/keyboards/dilly/dilly.c @@ -0,0 +1 @@ +#include "dilly.h" diff --git a/keyboards/dilly/dilly.h b/keyboards/dilly/dilly.h new file mode 100644 index 0000000000..ca75704bf9 --- /dev/null +++ b/keyboards/dilly/dilly.h @@ -0,0 +1,31 @@ +#ifndef DILLY_H +#define DILLY_H + +#include "quantum.h" + +#define KEYMAP( \ + A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, \ + B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, \ + C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 \ +) { \ + { A1, A2, A3, A4, A5 }, \ + { B1, B2, B3, B4, B5 }, \ + { C1, C2, C3, C4, C5 }, \ + { A10, A9, A8, A7, A6 }, \ + { B10, B9, B8, B7, B6 }, \ + { C10, C9, C8, C7, C6 } \ +} + +// Used to create a keymap using only KC_ prefixed keys +#define KC_KEYMAP( \ + A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, \ + B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, \ + C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 \ +) \ + KEYMAP( \ + KC_##A1, KC_##A2, KC_##A3, KC_##A4, KC_##A5, KC_##A6, KC_##A7, KC_##A8, KC_##A9, KC_##A10, \ + KC_##B1, KC_##B2, KC_##B3, KC_##B4, KC_##B5, KC_##B6, KC_##B7, KC_##B8, KC_##B9, KC_##B10, \ + KC_##C1, KC_##C2, KC_##C3, KC_##C4, KC_##C5, KC_##C6, KC_##C7, KC_##C8, KC_##C9, KC_##C10 \ + ) + +#endif diff --git a/keyboards/dilly/keymaps/default/config.h b/keyboards/dilly/keymaps/default/config.h new file mode 100644 index 0000000000..7fa3bf328e --- /dev/null +++ b/keyboards/dilly/keymaps/default/config.h @@ -0,0 +1,6 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#endif diff --git a/keyboards/dilly/keymaps/default/keymap.c b/keyboards/dilly/keymaps/default/keymap.c new file mode 100644 index 0000000000..56e1ef4c7f --- /dev/null +++ b/keyboards/dilly/keymaps/default/keymap.c @@ -0,0 +1,101 @@ +#include "dilly.h" +#include "action_layer.h" + +extern keymap_config_t keymap_config; + +#define _BASE 0 +#define _FN1 1 +#define _FN2 2 +#define _FN3 3 +#define _FN4 4 +#define _FN5 5 + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +#define KC_ZCTL MT(MOD_LCTL, KC_Z) +#define KC_XALT MT(MOD_LALT, KC_X) +#define KC_C_L3 LT(_FN3, KC_C) +#define KC_V_L4 LT(_FN4, KC_V) +#define KC_SPL2 LT(_FN2, KC_SPC) +#define KC_BSL1 LT(_FN1, KC_BSPC) +#define KC_B_L5 LT(_FN5, KC_B) +#define KC_NALT MT(MOD_RALT, KC_N) +#define KC_MCTL MT(MOD_RCTL, KC_M) +#define KC_ENTS MT(MOD_RSFT, KC_ENT) + +#define KC_RST RESET +#define KC_BL_S BL_STEP +#define KC_DBUG DEBUG +#define KC_RTOG RGB_TOG +#define KC_RMOD RGB_MOD +#define KC_RHUI RGB_HUI +#define KC_RHUD RGB_HUD +#define KC_RSAI RGB_SAI +#define KC_RSAD RGB_SAD +#define KC_RVAI RGB_VAI +#define KC_RVAD RGB_VAD + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + Q , W , E , R , T , Y , U , I , O , P , + //|----+----+----+----+----+----+----+----+----+----| + A , S , D , F , G , H , J , K , L ,ESC , + //|----+----+----+----+----+----+----+----+----+----| + ZCTL,XALT,C_L3,V_L4,SPL2,BSL1,B_L5,NALT,MCTL,ENTS + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN1] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , + //|----+----+----+----+----+----+----+----+----+----| + F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , + //|----+----+----+----+----+----+----+----+----+----| + , , , , ,DEL , , , , + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN2] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN, + //|----+----+----+----+----+----+----+----+----+----| + F11 ,F12 , , , , , , , ,GRV , + //|----+----+----+----+----+----+----+----+----+----| + , , , , , , , , , + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN3] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + , , , , ,MINS,EQL ,LBRC,RBRC,BSLS, + //|----+----+----+----+----+----+----+----+----+----| + TAB , , , , ,COMM,DOT ,SLSH,SCLN,QUOT, + //|----+----+----+----+----+----+----+----+----+----| + , , , , , ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN4] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + , , , , ,UNDS,PLUS,LCBR,RCBR,PIPE, + //|----+----+----+----+----+----+----+----+----+----| + TAB , , , , , LT , GT ,QUES,COLN,DQUO, + //|----+----+----+----+----+----+----+----+----+----| + , , , , , ,HOME,PGDN,PGUP,END + //`----+----+----+----+----+----+----+----+----+----' + ), + + [_FN5] = KC_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----. + RTOG,RMOD, ,RST ,RHUI,RSAI,RVAI, , , , + //|----+----+----+----+----+----+----+----+----+----| + , ,DBUG, ,RHUD,RSAD,RVAD, , , , + //|----+----+----+----+----+----+----+----+----+----| + BL_S, , , , , , , , , + //`----+----+----+----+----+----+----+----+----+----' + ) + +}; diff --git a/keyboards/dilly/keymaps/default/rules.mk b/keyboards/dilly/keymaps/default/rules.mk new file mode 100644 index 0000000000..1e3cebb145 --- /dev/null +++ b/keyboards/dilly/keymaps/default/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/dilly/rules.mk b/keyboards/dilly/rules.mk new file mode 100644 index 0000000000..9c4082da29 --- /dev/null +++ b/keyboards/dilly/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes \ No newline at end of file