diff options
13 files changed, 609 insertions, 0 deletions
| diff --git a/keyboards/handwired/tritium_numpad/config.h b/keyboards/handwired/tritium_numpad/config.h new file mode 100644 index 000000000..83333c0fb --- /dev/null +++ b/keyboards/handwired/tritium_numpad/config.h @@ -0,0 +1,83 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> + +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 <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID       0xFEED +#define PRODUCT_ID      0x6060 +#define DEVICE_VER      0x0003 +#define MANUFACTURER    Handwired +#define PRODUCT         Tritium Numpad +#define DESCRIPTION     QMK keyboard firmware for handwired numpad + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6 } +#define MATRIX_COL_PINS { F4, F6, B1, B2 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B6 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 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 + +/* Backlight configuration + */ +#define BACKLIGHT_LEVELS 4 + +/* Underlight configuration + */ + +#define RGB_DI_PIN D2 +#define RGBLED_NUM 4     // Number of LEDs + +/* + * 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 + diff --git a/keyboards/handwired/tritium_numpad/info.json b/keyboards/handwired/tritium_numpad/info.json new file mode 100644 index 000000000..bc10efc82 --- /dev/null +++ b/keyboards/handwired/tritium_numpad/info.json @@ -0,0 +1,21 @@ +{ +  "keyboard_name": "Tritium_numpad", +  "url": "https://www.thingiverse.com/thing:2855938", +  "maintainer": "qmk", +  "width": 4, +  "height": 6, +  "layouts": { +    "LAYOUT_numpad_6x4": { +      "key_count": 21, +      "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k23", "x":3, "y":2, "h":2}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k50", "x":0, "y":5, "w":2}, {"label":"k52", "x":2, "y":5}, {"label":"k43", "x":3, "y":4, "h":2}] +    }, +	"LAYOUT_nontra_6x4": { +	  "key_count": 22, +      "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k23", "x":3, "y":2, "h":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k43", "x":3, "y":4, "h":2}, {"label":"k50", "x":0, "y":5}, {"label":"k51", "x":1, "y":5}, {"label":"k52", "x":2, "y":5}] +    }, +    "LAYOUT_ortho_6x4": { +      "key_count": 24, +      "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}, {"label":"k13", "x":3, "y":1}, {"label":"k20", "x":0, "y":2}, {"label":"k21", "x":1, "y":2}, {"label":"k22", "x":2, "y":2}, {"label":"k23", "x":3, "y":2}, {"label":"k30", "x":0, "y":3}, {"label":"k31", "x":1, "y":3}, {"label":"k32", "x":2, "y":3}, {"label":"k33", "x":3, "y":3}, {"label":"k40", "x":0, "y":4}, {"label":"k41", "x":1, "y":4}, {"label":"k42", "x":2, "y":4}, {"label":"k43", "x":3, "y":4}, {"label":"k50", "x":0, "y":5}, {"label":"k51", "x":1, "y":5}, {"label":"k52", "x":2, "y":5}, {"label":"k53", "x":3, "y":5}] +    } +  } +} diff --git a/keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c b/keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c new file mode 100644 index 000000000..958c17e42 --- /dev/null +++ b/keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c @@ -0,0 +1,40 @@ +#include QMK_KEYBOARD_H + +void keyboard_pre_init_user(void) +{ +	// Set layer LED as an output +    setPinOutput(B0); +} + +uint32_t layer_state_set_user(uint32_t state) +{ +	// Switch layer LED accordingly +    switch (biton32(state)) { +    case 0: +        writePinHigh(B0); +        break; +    case 1: +        writePinLow(B0); +        break; +	} +    return state; +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +	[0] = LAYOUT_ortho_6x4( +		KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,  +		KC_P7,   KC_P8,   KC_P9,   KC_PPLS,  +		KC_P4,   KC_P5,   KC_P6,   KC_BSPC,  +		KC_P1,   KC_P2,   KC_P3,   KC_PENT,  +		KC_P0,   KC_UP,   KC_PDOT, TT(1),  +		KC_LEFT, KC_DOWN, KC_RGHT, BL_STEP +	), +	[1] = LAYOUT_ortho_6x4( +		KC_NO,   KC_NO,   KC_NO,   KC_NO,  +		KC_NO,   KC_K,    KC_NO,   KC_NO,  +		KC_H,    KC_NO,   KC_L,    KC_NO,  +		KC_NO,   KC_J,    KC_NO,   KC_NO,  +		KC_LSFT, KC_Z,    KC_X,    KC_TRNS,  +		KC_NO,   KC_NO,   KC_NO,   KC_NO +	) +}; diff --git a/keyboards/handwired/tritium_numpad/keymaps/blu/layers.json b/keyboards/handwired/tritium_numpad/keymaps/blu/layers.json new file mode 100644 index 000000000..5335c651f --- /dev/null +++ b/keyboards/handwired/tritium_numpad/keymaps/blu/layers.json @@ -0,0 +1 @@ +[["KC_NLCK", "KC_PSLS", "KC_PAST", "KC_PMNS", "KC_P7", "KC_P8", "KC_P9", "KC_PPLS", "KC_P4", "KC_P5", "KC_P6", "KC_BSPC", "KC_P1", "KC_P2", "KC_P3", "KC_PENT", "KC_P0", "KC_UP", "KC_PDOT", "TT(1)", "KC_LEFT", "KC_DOWN", "KC_RGHT", "BL_STEP"], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_K", "KC_NO", "KC_NO", "KC_H", "KC_NO", "KC_L", "KC_NO", "KC_NO", "KC_J", "KC_NO", "KC_NO", "KC_LSFT", "KC_Z", "KC_X", "KC_TRNS", "KC_NO", "KC_NO", "KC_NO", "KC_NO"]]
\ No newline at end of file diff --git a/keyboards/handwired/tritium_numpad/keymaps/blu/readme.md b/keyboards/handwired/tritium_numpad/keymaps/blu/readme.md new file mode 100644 index 000000000..fd07b155f --- /dev/null +++ b/keyboards/handwired/tritium_numpad/keymaps/blu/readme.md @@ -0,0 +1,13 @@ +# Generated Keymap Layout + +This layout was generated by the QMK API. You can find the JSON data used to +generate this keymap in the file layers.json. + +To make use of this file you will need follow the following steps: + +* Download or Clone QMK Firmware: <https://github.com/qmk/qmk_firmware/> +* Extract QMK Firmware to a location on your hard drive +* Copy this folder into %s +* You are now ready to compile or use your keymap with the source + +More information can be found in the QMK docs: <https://docs.qmk.fm>
\ No newline at end of file diff --git a/keyboards/handwired/tritium_numpad/keymaps/default/keymap.c b/keyboards/handwired/tritium_numpad/keymaps/default/keymap.c new file mode 100644 index 000000000..60430217b --- /dev/null +++ b/keyboards/handwired/tritium_numpad/keymaps/default/keymap.c @@ -0,0 +1,59 @@ +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  /* Keymap _BL: (Base Layer) Default Layer +   * ,-------------------. +   * |Esc |TAB |BS  | =  | +   * |----|----|----|----| +   * | NL | /  | *  | -  | +   * |----|----|----|----| +   * | 7  | 8  | 9  |    | +   * |----|----|----| +  | +   * | 4  | 5  | 6  |    | +   * |----|----|----|----| +   * | 1  | 2  | 3  |    | +   * |----|----|----| En | +   * |   0     |./FN|    | +   * `-------------------' +   */ + +  [_BL] = LAYOUT_numpad_6x4( +    KC_ESC,  KC_TAB,  KC_BSPC, KC_PEQL,  +    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,  +    KC_P7,   KC_P8,   KC_P9,    +    KC_P4,   KC_P5,   KC_P6,   KC_PPLS,  +    KC_P1,   KC_P2,   KC_P3,    +      KC_P0, LT(_FL,KC_PDOT),  KC_PENT   +  ), + +  /* Keymap _FL: Function Layer +   * ,-------------------. +   * |Esc |TAB |BS  | =  | +   * |----|----|----|----| +   * | NL | /  | *  | -  | +   * |----|----|----|----| +   * | 7  | 8  | 9  |    | +   * |----|----|----|RST | +   * | 4  | 5  | 6  |    | +   * |----|----|----|----| +   * | 1  | 2  | 3  |    | +   * |----|----|----| En | +   * |   0     |./FN|    | +   * `-------------------' +   */ +  [_FL] = LAYOUT_numpad_6x4( +    KC_ESC,  KC_TAB,  KC_BSPC, KC_PEQL,  +    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,  +    KC_P7,   KC_P8,   KC_P9,    +    KC_P4,   KC_P5,   KC_P6,   RESET,    +    KC_P1,   KC_P2,   KC_P3,    +      KC_P0, LT(_FL,KC_PDOT),  KC_PENT  +  ), +}; diff --git a/keyboards/handwired/tritium_numpad/keymaps/max/keymap.c b/keyboards/handwired/tritium_numpad/keymaps/max/keymap.c new file mode 100644 index 000000000..bba5c43bb --- /dev/null +++ b/keyboards/handwired/tritium_numpad/keymaps/max/keymap.c @@ -0,0 +1,59 @@ +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  /* Keymap _BL: (Base Layer) Default Layer +   * ,-------------------. +   * |Esc |Setp| -  | =  | +   * |----|----|----|----| +   * | F1 | F2 | F3 | F4 | +   * |----|----|----|----| +   * | 7  | 8  | 9  |  - | +   * |----|----|----|----| +   * | 4  | 5  | 6  | LF | +   * |----|----|----|----| +   * | 1  | 2  | 3  | \  | +   * |----|----|----|----| +   * |Left|Down| Up |Rght| +   * `-------------------' +   */ + +  [_BL] = LAYOUT_ortho_6x4( +    KC_ESC,  KC_TAB,  KC_MINS,KC_EQL,   +    KC_F1,   KC_F2,   KC_F3,  KC_F4,    +    KC_P7,   KC_P8,   KC_P9,  KC_PMNS, +    KC_P4,   KC_P5,   KC_P6,  KC_PENT,  +    KC_P1,   KC_P2,   KC_P3,  KC_BSLS,  +    KC_LEFT, KC_DOWN, KC_UP,  KC_RIGHT +  ), + +  /* Keymap _FL: Function Layer +   * ,-------------------. +   * |Esc |TAB |BS  | =  | +   * |----|----|----|----| +   * | NL | /  | *  | -  | +   * |----|----|----|----| +   * | 7  | 8  | 9  |    | +   * |----|----|----|RST | +   * | 4  | 5  | 6  |    | +   * |----|----|----|----| +   * | 1  | 2  | 3  |    | +   * |----|----|----| En | +   * |   0     |./FN|    | +   * `-------------------' +   */ +  [_FL] = LAYOUT_ortho_6x4( +    KC_ESC,  KC_TAB,  KC_BSPC, KC_PEQL,  +    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,  +    KC_P7,   KC_P8,   KC_P9,   RESET,    +    KC_P4,   KC_P5,   KC_P6,   KC_PENT,  +    KC_P1,   KC_P2,   KC_P3,   KC_PENT,  +    KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT +  ), +}; diff --git a/keyboards/handwired/tritium_numpad/keymaps/ortho_left/keymap.c b/keyboards/handwired/tritium_numpad/keymaps/ortho_left/keymap.c new file mode 100644 index 000000000..9d569f18a --- /dev/null +++ b/keyboards/handwired/tritium_numpad/keymaps/ortho_left/keymap.c @@ -0,0 +1,59 @@ +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  /* Keymap _BL: (Base Layer) Default Layer +   * ,-------------------. +   * | T  | G  | B  |Spac| +   * |----|----|----|----| +   * | R  | F  | V  | Fn | +   * |----|----|----|----| +   * | E  | D  | C  | OS | +   * |----|----|----|----| +   * | W  | S  | X  | Alt| +   * |----|----|----|----| +   * | Q  | A  | Z  | Ctl| +   * |----|----|----|----| +   * | Esc| Tab|Shft| Fn2| +   * `-------------------' +   */ + +  [_BL] = LAYOUT_ortho_6x4( +    KC_T,   KC_G,   KC_B,      KC_SPACE, +    KC_R,   KC_F,   KC_V,      MO(1),     +    KC_E,   KC_D,   KC_C,      KC_LGUI,  +    KC_W,   KC_S,   KC_X,      KC_LALT, +    KC_Q,   KC_A,   KC_Z,      KC_LCTL,  +    KC_TAB, KC_ESC, KC_LSHIFT, MO(1) +  ), + +  /* Keymap _FL: Function Layer +   * ,-------------------. +   * | 5  | F5 | F11|Spac| +   * |----|----|----|----| +   * | 4  | F4 | F10|    | +   * |----|----|----|----| +   * | 3  | F3 | F9 | OS | +   * |----|----|----|----| +   * | 2  | F2 | F8 | Alt| +   * |----|----|----|----| +   * | 1  | F1 | F7 | Ctl| +   * |----|----|----|----| +   * | `  | Del|Shft|    | +   * `-------------------' +   */ +  [_FL] = LAYOUT_ortho_6x4( +    KC_5,  KC_F5,  KC_F11,  _______,  +    KC_4,  KC_F4,  KC_F10,  _______,  +    KC_3,  KC_F3,  KC_F9,   _______,  +    KC_2,  KC_F2,  KC_F8,   _______,  +    KC_1,  KC_F1,  KC_F7,   _______,  +    KC_GRV,KC_DEL, _______, _______ +  ), +}; diff --git a/keyboards/handwired/tritium_numpad/keymaps/ortho_right/keymap.c b/keyboards/handwired/tritium_numpad/keymaps/ortho_right/keymap.c new file mode 100644 index 000000000..0dc2f81bc --- /dev/null +++ b/keyboards/handwired/tritium_numpad/keymaps/ortho_right/keymap.c @@ -0,0 +1,61 @@ +#include QMK_KEYBOARD_H + +#ifdef RGBLIGHT_ENABLE +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  /* Keymap _BL: (Base Layer) Default Layer +   * ,-------------------. +   * |Spac| N  | H  | Y  | +   * |----|----|----|----| +   * | Fn | M  | J  | U  | +   * |----|----|----|----| +   * |Left| ,  | K  | I  | +   * |----|----|----|----| +   * |Down| .  | L  | O  | +   * |----|----|----|----| +   * | Up | /  | ;  | P  | +   * |----|----|----|----| +   * |Rght| Ret| "  |Bspc| +   * `-------------------' +   */ +  [_BL] = LAYOUT_ortho_6x4( +    KC_SPACE, KC_N,     KC_H,      KC_Y,    +    MO(1),    KC_M,     KC_J,      KC_U,    +    KC_LEFT,  KC_COMM,  KC_K,      KC_I,    +    KC_DOWN,  KC_DOT,   KC_L,      KC_O,    +    KC_UP,    KC_SLASH, KC_SCLN,   KC_P,    +    KC_RIGHT, KC_ENT,   KC_QUOT,   KC_BSPC +  ), + +  /* Keymap _FL: Function Layer +   * ,-------------------. +   * |Esc | F12| F6 | 6  | +   * |----|----|----|----| +   * | NL | M  | -  | 7  | +   * |----|----|----|----| +   * |Left| ,  | =  | 8  | +   * |----|----|----|----| +   * |Down| .  | [  | 9  | +   * |----|----|----|----| +   * | Up | /  | ]  | 0  | +   * |----|----|----|----| +   * |Rght| Ret| \  | Del| +   * `-------------------' +   */ +  [_FL] = LAYOUT_ortho_6x4( +    _______, KC_F12,  KC_F6,   KC_6,   +    _______, _______, KC_MINS, KC_7,  +    _______, _______, KC_EQL,  KC_8,   +    _______, _______, KC_LBRC, KC_9,   +    _______, _______, KC_RBRC, KC_0,   +    _______, _______, KC_BSLS, KC_DEL +  ), +}; diff --git a/keyboards/handwired/tritium_numpad/readme.md b/keyboards/handwired/tritium_numpad/readme.md new file mode 100644 index 000000000..21acfe759 --- /dev/null +++ b/keyboards/handwired/tritium_numpad/readme.md @@ -0,0 +1,28 @@ +Tritium Numpad +=== + +Keyboard Maintainer: QMK Community   +Hardware Supported: Handwired 6x4 numpads using promicro controller   +Hardware Availability: https://www.thingiverse.com/thing:2855938 + +Wiring is accomplished on the Pro Micro board using the following pins as rows: +* D2 : Row 1 +* D3 : Row 2 +* D4 : Row 3 +* D5 : Row 4 +* D6 : Row 5 +* D7 : Row 6 + +and the following pins as columns: +* A3 : Col 1 +* A1 : Col 2 +* D15 : Col 3 +* D16 : Col 4 + +Make example for this keyboard (after setting up your build environment): + +    make tritium_numpad:default + +Bootmagic is enabled.  Press the key at 0,0 (usually escape or numlock in the top left corner) while plugging the keyboard in to jump to bootloader. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/tritium_numpad/rules.mk b/keyboards/handwired/tritium_numpad/rules.mk new file mode 100644 index 000000000..c990a6ab1 --- /dev/null +++ b/keyboards/handwired/tritium_numpad/rules.mk @@ -0,0 +1,61 @@ +# 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) + +# Bootloader +#     This definition is optional, and if your keyboard supports multiple bootloaders of +#     different sizes, comment this out, and the correct address will be loaded +#     automatically (+60). See bootloader.mk for all options. +BOOTLOADER = caterina + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Build Options +#   comment out to disable the options. +# +BOOTMAGIC_ENABLE = lite	# Key at 0,0 makes the keyboard go into bootloader(+1000) +MOUSEKEY_ENABLE = no	# Mouse keys(+4700) +EXTRAKEY_ENABLE = yes	# Audio control and System control(+450) +CONSOLE_ENABLE = yes	# Console for debug(+400) +COMMAND_ENABLE = yes    # Commands for debug and configuration +NKRO_ENABLE = yes		# USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE = no   # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE = no 		# MIDI controls +AUDIO_ENABLE = no +UNICODE_ENABLE = no 		# Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID + +LAYOUTS = numpad_6x4 ortho_6x4 nontra_6x4 diff --git a/keyboards/handwired/tritium_numpad/tritium_numpad.c b/keyboards/handwired/tritium_numpad/tritium_numpad.c new file mode 100644 index 000000000..7193a934d --- /dev/null +++ b/keyboards/handwired/tritium_numpad/tritium_numpad.c @@ -0,0 +1,29 @@ +#include "tritium_numpad.h" +#include "led.h" + +void keyboard_pre_init_kb(void) { +	// put your keyboard start-up code here +	// runs once when the firmware starts up +	keyboard_pre_init_user(); +	led_init_ports(); +}; + +void matrix_scan_kb(void) { +	// put your looping keyboard code here +	// runs every cycle (a lot) +	matrix_scan_user(); +}; + +void led_init_ports(void) { +    // * Set our LED pins as output +    // Numlock LED +    setPinOutput(D5); +} + +void led_set_kb(uint8_t usb_led) { +    if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { +        writePinLow(D5); +    } else { +        writePinHigh(D5); +    } +} diff --git a/keyboards/handwired/tritium_numpad/tritium_numpad.h b/keyboards/handwired/tritium_numpad/tritium_numpad.h new file mode 100644 index 000000000..8d2e78329 --- /dev/null +++ b/keyboards/handwired/tritium_numpad/tritium_numpad.h @@ -0,0 +1,95 @@ +#pragma once + +#include "quantum.h" + +// readability +#define XXX KC_NO + +/*  matrix layout +   * ,-------------------. +   * | 00 | 01 | 02 | 03 | +   * |----|----|----|----| +   * | 10 | 11 | 12 | 13 | +   * |----|----|----|----| +   * | 20 | 21 | 22 |    | +   * |----|----|----| 23 | +   * | 30 | 31 | 32 |    | +   * |----|----|----|----| +   * | 40 | 41 | 42 |    | +   * |----|----|----| 43 | +   * |   50    | 52 |    | +   * `-------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define LAYOUT_numpad_6x4( \ +  k00, k01, k02, k03, \ +  k10, k11, k12, k13, \ +  k20, k21, k22,      \ +  k30, k31, k32, k23, \ +  k40, k41, k42,      \ +     k50,   k52, k43  \ +) \ +{ \ +  {k00, k01, k02, k03}, \ +  {k10, k11, k12, k13}, \ +  {k20, k21, k22, k23}, \ +  {k30, k31, k32, XXX}, \ +  {k40, k41, k42, k43}, \ +  {k50, XXX, k52, XXX} \ +} + +/*  matrix layout +   * ,-------------------. +   * | 00 | 01 | 02 | 03 | +   * |----|----|----|----| +   * | 10 | 11 | 12 | 13 | +   * |----|----|----|----| +   * | 20 | 21 | 22 |    | +   * |----|----|----| 23 | +   * | 30 | 31 | 32 |    | +   * |----|----|----|----| +   * | 40 | 41 | 42 |    | +   * |----|----|----| 43 | +   * | 50 | 51 | 52 |    | +   * `-------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define LAYOUT_nontra_6x4( \ +  k00, k01, k02, k03, \ +  k10, k11, k12, k13, \ +  k20, k21, k22,      \ +  k30, k31, k32, k23, \ +  k40, k41, k42,      \ +  k50, k51, k52, k43  \ +) \ +{ \ +  {k00, k01, k02, k03}, \ +  {k10, k11, k12, k13}, \ +  {k20, k21, k22, k23}, \ +  {k30, k31, k32, xxx}, \ +  {k40, k41, k42, k43}, \ +  {k50, k51, k52, xxx} \ +} + +#define LAYOUT_ortho_6x4( \ +  k00, k01, k02, k03, \ +  k10, k11, k12, k13, \ +  k20, k21, k22, k23, \ +  k30, k31, k32, k33, \ +  k40, k41, k42, k43, \ +  k50, k51, k52, k53  \ +) \ +{ \ +  {k00, k01, k02, k03}, \ +  {k10, k11, k12, k13}, \ +  {k20, k21, k22, k23}, \ +  {k30, k31, k32, k33}, \ +  {k40, k41, k42, k43}, \ +  {k50, k51, k52, k53} \ +} + +void keyboard_pre_init_user(void); +void matrix_scan_user(void); + | 
