diff options
Diffstat (limited to 'keyboards/1upkeyboards/sweet16')
-rw-r--r-- | keyboards/1upkeyboards/sweet16/config.h | 55 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/info.json | 16 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/keymaps/default/keymap.c | 43 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/keymaps/dlaroe/keymap.c | 38 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/keymaps/dlaroe/readme.md | 3 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h | 15 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c | 215 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/readme.md | 10 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/rules.mk | 5 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/readme.md | 14 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/rules.mk | 56 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/sweet16.c | 1 | ||||
-rw-r--r-- | keyboards/1upkeyboards/sweet16/sweet16.h | 32 |
13 files changed, 503 insertions, 0 deletions
diff --git a/keyboards/1upkeyboards/sweet16/config.h b/keyboards/1upkeyboards/sweet16/config.h new file mode 100644 index 0000000000..20d99651da --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/config.h @@ -0,0 +1,55 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x2010 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 1up Keyboards +#define PRODUCT Sweet16 +#define DESCRIPTION 4x4 grid + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 4 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F4, F5, F6, F7 } +#define MATRIX_COL_PINS { D1, D0, D4, C6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ + +#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)) \ +) + +#define RGB_DI_PIN B1 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 1 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif diff --git a/keyboards/1upkeyboards/sweet16/info.json b/keyboards/1upkeyboards/sweet16/info.json new file mode 100644 index 0000000000..445a5909ec --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Sweet 16", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}] + }, + + "LAYOUT_numpad_4x4": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0, "h":2}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "h":2}, {"x":0, "y":3, "w":2}, {"x":2, "y":3}] + } + } +} diff --git a/keyboards/1upkeyboards/sweet16/keymaps/default/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/default/keymap.c new file mode 100644 index 0000000000..2ddf8acb41 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +#include "sweet16.h" + +enum custom_keycodes { + UP_URL = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ortho_4x4( + KC_7, KC_8, KC_9, KC_ASTR, + KC_4, KC_5, KC_6, KC_SLSH, + KC_1, KC_2, KC_3, KC_MINS, + KC_0, KC_ENT, KC_DOT, KC_EQL + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case UP_URL: + if (record->event.pressed) { + SEND_STRING("http://1upkeyboards.com"); + } + return false; + break; + } + return true; +} + +void led_set_user(uint8_t usb_led) { + + /* Map RXLED to USB_LED_NUM_LOCK */ + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + DDRB |= (1 << 0); PORTB &= ~(1 << 0); + } else { + DDRB &= ~(1 << 0); PORTB &= ~(1 << 0); + } + + /* Map TXLED to USB_LED_CAPS_LOCK */ + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRD |= (1 << 5); PORTD &= ~(1 << 5); + } else { + DDRD &= ~(1 << 5); PORTD &= ~(1 << 5); + } +} diff --git a/keyboards/1upkeyboards/sweet16/keymaps/dlaroe/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/dlaroe/keymap.c new file mode 100644 index 0000000000..b42c34edb7 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/dlaroe/keymap.c @@ -0,0 +1,38 @@ +#include "sweet16.h" + +enum layers { + num, + extra, + mouse +}; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [num] = LAYOUT_numpad_4x4( + KC_P7, KC_P8, KC_P9, LT(extra, KC_PPLS), + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, KC_PENT, + LT(mouse, KC_P0), KC_DOT + ), + + [extra] = LAYOUT_numpad_4x4( + KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS, + KC_BSPC, KC_EXECUTE, KC_DEL, + KC_LPRN, KC_RPRN, KC_PEQL, KC_PENT, + KC_TAB, KC_NLCK + ), + + +[mouse] = LAYOUT_numpad_4x4( + KC_WH_D, KC_MS_U, KC_WH_U, LT(extra, KC_PPLS), + KC_MS_L, KC_MS_D, KC_MS_R, + KC_BTN1, KC_BTN2, KC_BTN3, KC_PENT, + KC_TRNS, KC_DOT + ) + + + + +}; + diff --git a/keyboards/1upkeyboards/sweet16/keymaps/dlaroe/readme.md b/keyboards/1upkeyboards/sweet16/keymaps/dlaroe/readme.md new file mode 100644 index 0000000000..aabcf82c61 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/dlaroe/readme.md @@ -0,0 +1,3 @@ +# Dale's keymap for the Sweet16 + +I wanted to reuse a standard numpad keyset and have the full functionality of an larger numpad with a nod to Excel functionality. diff --git a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h new file mode 100644 index 0000000000..c835440076 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/config.h @@ -0,0 +1,15 @@ +#pragma once + +/* tap dance stuff*/ +#undef TAPPING_TERM +#define TAPPING_TERM 500 + +#define TAPPING_TOGGLE 2 + +#define EXAMPLESTRING1 "tapdance_1" +#define EXAMPLESTRING2 "tapdance_2" +#define EXAMPLESTRING3 "tapdance_3" +#define EXAMPLESTRING4 "tapdance_4" + +#undef RGBLED_NUM +#define RGBLED_NUM 16
\ No newline at end of file diff --git a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c new file mode 100644 index 0000000000..ad9786ba7f --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c @@ -0,0 +1,215 @@ +/* +tap danc eis turned on in the rules now... +*/ +#include QMK_KEYBOARD_H + +#define _EMOJI 0 +#define _TAPLAND 1 +#define _LEDCNTL 2 + +enum custom_keycodes { + SHRUG, + DISFACE, + FU, + TFLIP, + TFLIP2, + SAD_EYES, + TPUT, + HAPPYFACE, + HEARTFACE, + CLOUD, + CHANFACE, + CMDCLEAR +}; +//Tap Dance Declarations +enum { + TD_EXAMPLE1 = 0, + TD_EXAMPLE2, + TD_EXAMPLE3, + TD_EXAMPLE4 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* EMOJI Pad + * ,-------------------------------. + * |TFLIP | TFlIP2|DISFACE| FU | + * |------+-------+-------+--------| + * | CLOUD| | | CLEAR | + * |------+-------+-------+--------| + * |SHRUG |DISFACE| HRTFAC| HAPPYF | + * |------+-------+-------+--------| + * | ENTER| |LEDCNTR| tapland| + * `-------------------------------' + */ + //purple + [_EMOJI] = LAYOUT_ortho_4x4( + TFLIP, TFLIP2, KC_NO, FU , + CLOUD, KC_NO, KC_NO, CMDCLEAR, + SHRUG, DISFACE, HEARTFACE, HAPPYFACE, + KC_ENT, RGB_TOG, MO(_LEDCNTL), MO(_TAPLAND) + ), + + /* TapLand // + * ,-------------------------------. + * | str1 | str2 | str3 | str4 | + * |------+-------+-------+--------| + * | | | | | + * |------+-------+-------+--------| + * | | | | | + * |------+-------+-------+--------| + * | | | | | + * `-------------------------------' + */ + //blue + [_TAPLAND] = LAYOUT_ortho_4x4( + TD(TD_EXAMPLE1), TD(TD_EXAMPLE2), TD(TD_EXAMPLE3), TD(TD_EXAMPLE4), + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO + ), + /* LEDControl Pad + * ,-------------------------------. + * | snake|breathe|rainbow|gradient| + * |------+-------+-------+--------| + * | xmas | Val+ | Sat+ | HUE+ | + * |------+-------+-------+--------| + * |kngrdr| Val- | Sat- | HUE- | + * |------+-------+-------+--------| + * | swirl| PLAIN | | ON/OFF | + * `-------------------------------' + */ + //blue + [_LEDCNTL] = LAYOUT_ortho_4x4( + RGB_M_SN, RGB_M_B, RGB_M_R, RGB_M_G, + RGB_M_X, RGB_VAI, RGB_SAI, RGB_HUI, + RGB_M_K, RGB_VAD, RGB_SAD, RGB_HUD, + RGB_M_SW, RGB_M_P, KC_NO, RGB_TOG + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case CLOUD: // (っ◕‿◕)っ + if(record->event.pressed){ + send_unicode_hex_string("0028 3063 25D5 203F 25D5 0029 3063"); + } + return false; + break; + case FU: // t(-_-t) + if(record->event.pressed){ + SEND_STRING("t(-_-t)"); + } + return false; + break; + case HAPPYFACE: // ʘ‿ʘ + if(record->event.pressed){ + send_unicode_hex_string("0298 203F 0298"); + } + return false; + break; + case CMDCLEAR: + if (record->event.pressed) { + register_code(KC_LGUI); + tap_code(KC_A); + unregister_code(KC_LGUI); + tap_code(KC_DEL); + } + return false; + break; + case SHRUG: // ¯\_(ツ)_/¯ + if (record->event.pressed) { + send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF"); + } + return false; + break; + case HEARTFACE: // ♥‿♥ + if(record->event.pressed){ + send_unicode_hex_string("2665 203F 2665"); + } + return false; + break; + case DISFACE: // ಠ_ಠ + if(record->event.pressed){ + send_unicode_hex_string("0CA0 005F 0CA0"); + } + return false; + break; + case TFLIP: // (╯°□°)╯ ︵ ┻━┻ + if(record->event.pressed){ + send_unicode_hex_string("0028 256F 00B0 25A1 00B0 0029 256F 0020 FE35 0020 253B 2501 253B"); + } + return false; + break; + case TFLIP2: // ┻━┻︵ \(°□°)/ ︵ ┻━┻ + if(record->event.pressed){ + send_unicode_hex_string("253B 2501 253B FE35 0020 005C 0028 00B0 25A1 00B0 0029 002F 0020 FE35 0020 253B 2501 253B"); + } + return false; + break; + } + } + return true; +} + + +/* tap dance time */ +void tdexample1(qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 2) { + SEND_STRING(EXAMPLESTRING1); + reset_tap_dance (state); + } +} +void tdexample2(qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 2) { + SEND_STRING(EXAMPLESTRING2); + reset_tap_dance (state); + } +} +void tdexample3(qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 2) { + SEND_STRING(EXAMPLESTRING3); + reset_tap_dance (state); + } +} +void tdexample4(qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 2) { + SEND_STRING(EXAMPLESTRING4); + reset_tap_dance (state); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_EXAMPLE1] = ACTION_TAP_DANCE_FN(tdexample1), + [TD_EXAMPLE2] = ACTION_TAP_DANCE_FN(tdexample2), + [TD_EXAMPLE3] = ACTION_TAP_DANCE_FN(tdexample3), + [TD_EXAMPLE4] = ACTION_TAP_DANCE_FN(tdexample4) +}; + +// Runs just one time when the keyboard initializes. +void matrix_scan_user(void) { + static bool has_ran_yet; + if (!has_ran_yet) { + has_ran_yet = true; + rgblight_setrgb (16, 0, 16); + } +} +uint32_t layer_state_set_user(uint32_t state) { + switch (biton32(state)) { + case _TAPLAND: + rgblight_setrgb(0, 16, 0); //green + break; + case _LEDCNTL: + rgblight_setrgb(0, 0, 16); //blue + break; + case _EMOJI: + rgblight_setrgb (16, 0, 16); //purple + break; + + default: // for any other layers, or the default layer + rgblight_setrgb (16, 0, 16); //purple + break; + } + return state; +}
\ No newline at end of file diff --git a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/readme.md b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/readme.md new file mode 100644 index 0000000000..7a3b8c8e44 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/readme.md @@ -0,0 +1,10 @@ +# Ridingtraffic's examples +=== +This keymap has many features: +3 layers +Momentary layer switching +16 pixel neopixel +Unicode Enabled +Tap dance enabled + +The rgb also updates depending on what layer you are on, and then flips back when done. diff --git a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/rules.mk b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/rules.mk new file mode 100644 index 0000000000..de44175531 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/rules.mk @@ -0,0 +1,5 @@ +# turning on tap dance +TAP_DANCE_ENABLE = yes +RGBLIGHT_ENABLE = yes +MOUSEKEY_ENABLE = no +UNICODE_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/1upkeyboards/sweet16/readme.md b/keyboards/1upkeyboards/sweet16/readme.md new file mode 100644 index 0000000000..3b7b1d6f0b --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/readme.md @@ -0,0 +1,14 @@ +Sweet16 +=== + +A 4x4 numpad/macro pad sold by 1up Keyboards - designed by Bishop Keyboards + +Keyboard Maintainer: QMK Community +Hardware Supported: Sweet16 Keyboard PCB +Hardware Availability: [1up Keyboards](https://1upkeyboards.com/) + +Make example for this keyboard (after setting up your build environment): + + make 1upkeyboards/sweet16:default + +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/1upkeyboards/sweet16/rules.mk b/keyboards/1upkeyboards/sweet16/rules.mk new file mode 100644 index 0000000000..212e74059e --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/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 = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/1upkeyboards/sweet16/sweet16.c b/keyboards/1upkeyboards/sweet16/sweet16.c new file mode 100644 index 0000000000..2f116c2a37 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/sweet16.c @@ -0,0 +1 @@ +#include "sweet16.h"
\ No newline at end of file diff --git a/keyboards/1upkeyboards/sweet16/sweet16.h b/keyboards/1upkeyboards/sweet16/sweet16.h new file mode 100644 index 0000000000..879f51fae6 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/sweet16.h @@ -0,0 +1,32 @@ +#ifndef KB_H +#define KB_H + +#include "quantum.h" + +// Any changes to the layout names and/or definitions must also be made to info.json + +#define LAYOUT_ortho_4x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 } \ +} + +#define LAYOUT_numpad_4x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, \ + K20, K21, K22, K23, \ + K31, K32 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, KC_NO }, \ + { K20, K21, K22, K23 }, \ + { KC_NO, K31, K32, KC_NO } \ +} + +#endif |