summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Aloysius <krusli@users.noreply.github.com>2018-04-21 02:14:40 +1000
committerDrashna Jaelre <drashna@live.com>2018-04-20 09:14:40 -0700
commit0912c42f04e7c96c80cc9f48c258082e5ba31e2d (patch)
treee2ec9ea8ed934c8e3aa4b4efe4fcdb0b53a57a84
parent3ea8bcb8ae768f43218a5d1e0934867059259f92 (diff)
downloadqmk_firmware-0912c42f04e7c96c80cc9f48c258082e5ba31e2d.tar.gz
qmk_firmware-0912c42f04e7c96c80cc9f48c258082e5ba31e2d.zip
Add Staryu macropad support (#2768)
* Add M6-A keymap * Update XD60 keymap * Update XD60 keymap readme * Update JJ40 and Let's Split keymaps * Add readme for M6-A * Fix typo, update JJ40 README * Update jj40 readme * Cleanup jj40 keymap * Revert Let's Split QWERTY layer to default before #2010 * Update numpad layers * Fix: Let's Split keymap getting stuck mods due to having keycodes assigned on the Raise layer * Keep ASCII art consistent with keymap * Staryu: initial port * Add personal keymap * Added and updated READMEs * Fix: default keymap for staryu * Rudimentary backlight support. * Enabled mousekeys for default keymap * use QMK_KEYBOARD_H and LAYOUT * Update readme.md for NIU mini: flash using avrdude * Fix missing linebreaks for Staryu README * Update readme.md
-rw-r--r--keyboards/hhkb/keymaps/krusli/config.h1
-rw-r--r--keyboards/hhkb/keymaps/krusli/keymap.c78
-rw-r--r--keyboards/lets_split/keymaps/default/keymap.c15
-rw-r--r--keyboards/niu_mini/readme.md2
-rw-r--r--keyboards/staryu/backlight_staryu.c52
-rw-r--r--keyboards/staryu/backlight_staryu.h12
-rwxr-xr-xkeyboards/staryu/config.h74
-rw-r--r--keyboards/staryu/keymaps/default/README.md3
-rwxr-xr-xkeyboards/staryu/keymaps/default/keymap.c82
-rw-r--r--keyboards/staryu/keymaps/default/rules.mk1
-rw-r--r--keyboards/staryu/keymaps/krusli/README.md9
-rw-r--r--keyboards/staryu/keymaps/krusli/keymap.c97
-rw-r--r--keyboards/staryu/readme.md15
-rwxr-xr-xkeyboards/staryu/rules.mk60
-rwxr-xr-xkeyboards/staryu/staryu.c26
-rwxr-xr-xkeyboards/staryu/staryu.h28
16 files changed, 546 insertions, 9 deletions
diff --git a/keyboards/hhkb/keymaps/krusli/config.h b/keyboards/hhkb/keymaps/krusli/config.h
new file mode 100644
index 0000000000..af2fb9d8a5
--- /dev/null
+++ b/keyboards/hhkb/keymaps/krusli/config.h
@@ -0,0 +1 @@
+#define USB_MAX_POWER_CONSUMPTION 100
diff --git a/keyboards/hhkb/keymaps/krusli/keymap.c b/keyboards/hhkb/keymaps/krusli/keymap.c
new file mode 100644
index 0000000000..bd5dd8372d
--- /dev/null
+++ b/keyboards/hhkb/keymaps/krusli/keymap.c
@@ -0,0 +1,78 @@
+/* -*- eval: (turn-on-orgtbl); -*-
+ * default HHKB Layout
+ */
+#include "hhkb.h"
+
+#define BASE 0
+#define HHKB 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* BASE Level: Default Layer
+ |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
+ | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
+ |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
+ | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | |
+ |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
+ | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | |
+ |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
+ | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | |
+ |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
+
+ |------+------+-----------------------+------+------|
+ | LAlt | LGUI | ******* Space ******* | RGUI | RAlt |
+ |------+------+-----------------------+------+------|
+ */
+
+ [BASE] = KEYMAP( // default layer
+ 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_BSLS, KC_GRV, \
+ 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_BSPC, \
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \
+ KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT),
+
+
+
+ /* Layer HHKB: HHKB mode (HHKB Fn)
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+ | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+ | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | |
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+ | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | |
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+ | | | | | | | + | - | End | PgD | Dow | | | | |
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+
+ |------+------+----------------------+------+------+
+ | **** | **** | ******************** | **** | **** |
+ |------+------+----------------------+------+------+
+
+ */
+
+ [HHKB] = KEYMAP(
+ KC_PWR, 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_INS, KC_DEL, \
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+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;
+};
diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c
index 7cc9e53c02..a2d9c27eb7 100644
--- a/keyboards/lets_split/keymaps/default/keymap.c
+++ b/keyboards/lets_split/keymaps/default/keymap.c
@@ -31,21 +31,20 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
- * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
-
-[_QWERTY] = LAYOUT( \
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
- KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
- KC_LCTRL,KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+[_QWERTY] = KEYMAP(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
),
/* Colemak
diff --git a/keyboards/niu_mini/readme.md b/keyboards/niu_mini/readme.md
index 6955343b9f..91f0cd4b6c 100644
--- a/keyboards/niu_mini/readme.md
+++ b/keyboards/niu_mini/readme.md
@@ -11,6 +11,6 @@ Hardware Availability: [KBDFans](https://kbdfans.myshopify.com/products/niu-mini
Make example for this keyboard (after setting up your build environment):
- make niu_mini:default
+ make niu_mini:default:avrdude
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/staryu/backlight_staryu.c b/keyboards/staryu/backlight_staryu.c
new file mode 100644
index 0000000000..6fb9713f3a
--- /dev/null
+++ b/keyboards/staryu/backlight_staryu.c
@@ -0,0 +1,52 @@
+#include "backlight.h"
+#include <avr/pgmspace.h>
+
+/* backlighting */
+void init_backlight_led(void)
+{
+ DDRC |= (1<<PC2 | 1<<PC7);
+ DDRD |= (1<<PD5 | 1<<PD6);
+ DDRB |= (1<<PB0);
+}
+
+void backlight_led_off(uint8_t index)
+{
+ switch (index) {
+ case 0:
+ PORTC |= (1<<PC2);
+ break;
+ case 1:
+ PORTC |= (1<<PC7);
+ break;
+ case 2:
+ PORTD |= (1<<PD5);
+ break;
+ case 3:
+ PORTD |= (1<<PD6);
+ break;
+ case 4:
+ PORTB |= (1<<PB0);
+ break;
+ }
+}
+
+void backlight_led_on(uint8_t index)
+{
+ switch (index) {
+ case 0:
+ PORTC &= ~(1<<PC2);
+ break;
+ case 1:
+ PORTC &= ~(1<<PC7);
+ break;
+ case 2:
+ PORTD &= ~(1<<PD5);
+ break;
+ case 3:
+ PORTD &= ~(1<<PD6);
+ break;
+ case 4:
+ PORTB &= ~(1<<PB0);
+ break;
+ }
+}
diff --git a/keyboards/staryu/backlight_staryu.h b/keyboards/staryu/backlight_staryu.h
new file mode 100644
index 0000000000..f718b970c2
--- /dev/null
+++ b/keyboards/staryu/backlight_staryu.h
@@ -0,0 +1,12 @@
+#ifndef STARYU_BL
+#define STARYU_BL
+
+#include <stdint.h>
+
+void init_backlight_led(void);
+
+void backlight_led_on(uint8_t index);
+
+void backlight_led_off(uint8_t index);
+
+#endif
diff --git a/keyboards/staryu/config.h b/keyboards/staryu/config.h
new file mode 100755
index 0000000000..268fe991ac
--- /dev/null
+++ b/keyboards/staryu/config.h
@@ -0,0 +1,74 @@
+/*
+Copyright 2018 Cole Markham
+
+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/>.
+*/
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x1209
+#define PRODUCT_ID 0x2328
+#define DEVICE_VER 0x0205
+#define MANUFACTURER K.T.E.C.
+#define PRODUCT Staryu
+#define DESCRIPTION 5-key macropad
+
+/* key matrix size */
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 5
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { }
+#define MATRIX_COL_PINS { D0, D1, D2, D3, D4 }
+#define UNUSED_PINS
+
+// from light_ws2812_config @
+// https://github.com/kairyu/tmk_keyboard_custom/tree/master/keyboard/staryu
+#define RGB_DI_PIN C6
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 1 // Number of LEDs
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+// TODO backlighting
+#define BACKLIGHT_LEVELS 10
+// #define BACKLIGHT_PIN B7
+/*
+Backlight: C2, C7, D5, D6, B0
+switch (index) {
+ case 0:
+ PORTC &= ~(1<<PC2);
+ break;
+ case 1:
+ PORTC &= ~(1<<PC7);
+ break;
+ case 2:
+ PORTD &= ~(1<<PD5);
+ break;
+ case 3:
+ PORTD &= ~(1<<PD6);
+ break;
+ case 4:
+ PORTB &= ~(1<<PB0);
+ break;
+*/
+
+#endif
diff --git a/keyboards/staryu/keymaps/default/README.md b/keyboards/staryu/keymaps/default/README.md
new file mode 100644
index 0000000000..836d3ab4dc
--- /dev/null
+++ b/keyboards/staryu/keymaps/default/README.md
@@ -0,0 +1,3 @@
+# Default keymap
+
+Default keymap for the Staryu macropad, adapted from [kairyu's repo](https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/staryu/keymap_default.c).
diff --git a/keyboards/staryu/keymaps/default/keymap.c b/keyboards/staryu/keymaps/default/keymap.c
new file mode 100755
index 0000000000..3dc480299f
--- /dev/null
+++ b/keyboards/staryu/keymaps/default/keymap.c
@@ -0,0 +1,82 @@
+/*
+Copyright 2018 Kenneth Aloysius
+
+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/>.
+*/
+#include QMK_KEYBOARD_H
+#include "action_layer.h"
+
+enum layers {
+ _LAYER0,
+ _LAYER1,
+ _LAYER2,
+ _LAYER3
+};
+
+
+const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
+ /* Keymap 0
+ * ,-----------.
+ * | |Up |Fn0|
+ * |---+---+---|
+ * |Lef|Dow|Rig|
+ * `-----------'
+ */
+ LAYOUT( KC_UP, TO(_LAYER1), KC_LEFT,KC_DOWN,KC_RIGHT ),
+ /* Keymap 1
+ * ,-----------.
+ * | |PgU|Fn1|
+ * |---+---+---|
+ * |Hom|PgD|End|
+ * `-----------'
+ */
+ LAYOUT( KC_PGUP,TO(_LAYER2), KC_HOME,KC_PGDN,KC_END ),
+ /* Keymap 2
+ * ,-----------.
+ * | |Sel|Fn2|
+ * |---+---+---|
+ * |Pre|Pla|Nex|
+ * `-----------'
+ */
+ LAYOUT( KC_MSEL,TO(_LAYER3), KC_MPRV,KC_MPLY,KC_MNXT ),
+ /* Keymap 3
+ * ,-----------.
+ * | |MsU|Fn3|
+ * |---+---+---|
+ * |MsL|MsD|MsR|
+ * `-----------'
+ */
+ LAYOUT( KC_MS_U,TO(_LAYER0), KC_MS_L,KC_MS_D,KC_MS_R ),
+ // /* Keymap 4
+ // * ,-----------.
+ // * | |Fn6|Fn4|
+ // * |---+---+---|
+ // * |Fn7|Fn5|Fn8|
+ // * `-----------'
+ // */
+ // LAYOUT( FN6, FN4, FN7, FN5, FN8 ),
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ return MACRO_NONE ;
+}
+
+void matrix_init_user(void) {
+}
+
+void matrix_scan_user(void) {
+}
+
+void led_set_user(uint8_t usb_led) {
+}
diff --git a/keyboards/staryu/keymaps/default/rules.mk b/keyboards/staryu/keymaps/default/rules.mk
new file mode 100644
index 0000000000..6c605daecf
--- /dev/null
+++ b/keyboards/staryu/keymaps/default/rules.mk
@@ -0,0 +1 @@
+MOUSEKEY_ENABLE = yes
diff --git a/keyboards/staryu/keymaps/krusli/README.md b/keyboards/staryu/keymaps/krusli/README.md
new file mode 100644
index 0000000000..66a0979070
--- /dev/null
+++ b/keyboards/staryu/keymaps/krusli/README.md
@@ -0,0 +1,9 @@
+# krusli's RAMA M6-A Layout
+
+Personal keymap for the RAMA M6-A.
+
+Top-right button acts as a "toggle between layers" button. Layer 0 -> Layer 1 -> Layer 2 -> Layer 0 -> ...
+
+- Layer 0: Osu! gamepad layer
+- Layer 1: Git commands
+- Layer 2 and 3: RGB controls
diff --git a/keyboards/staryu/keymaps/krusli/keymap.c b/keyboards/staryu/keymaps/krusli/keymap.c
new file mode 100644
index 0000000000..2879b68e58
--- /dev/null
+++ b/keyboards/staryu/keymaps/krusli/keymap.c
@@ -0,0 +1,97 @@
+/*
+Copyright 2018 Kenneth Aloysius
+
+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/>.
+*/
+#include QMK_KEYBOARD_H
+#include "action_layer.h"
+
+#include "../../backlight_staryu.h"
+
+enum layers {
+ _LAYER0,
+ _LAYER1,
+ _LAYER2,
+ _LAYER3
+};
+
+enum custom_keycodes {
+ GIT_ADD = SAFE_RANGE,
+ GIT_COMMIT,
+ GIT_PUSH,
+ MUTE,
+ DEAFEN
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch(keycode) {
+ case GIT_ADD:
+ SEND_STRING("git add ."SS_TAP(X_ENTER));
+ break;
+ case GIT_COMMIT:
+ SEND_STRING("git commit -m "SS_DOWN(X_LSHIFT)SS_TAP(X_QUOTE)SS_UP(X_LSHIFT));
+ break;
+ case GIT_PUSH:
+ SEND_STRING("git push"SS_TAP(X_ENTER));
+ break;
+ case MUTE:
+ SEND_STRING(SS_LGUI(SS_LSFT("M")));
+ break;
+ case DEAFEN:
+ SEND_STRING(SS_LGUI(SS_LSFT("D")));
+ break;
+ return false;
+ }
+ }
+ return true;
+};
+
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_LAYER0] = LAYOUT( \
+ KC_ESC, TO(_LAYER1), \
+ KC_Z, KC_X, KC_SPACE \
+ ),
+ [_LAYER1] = LAYOUT( \
+ MUTE, TO(_LAYER2), \
+ GIT_ADD, GIT_COMMIT, GIT_PUSH \
+ ),
+ [_LAYER2] = LAYOUT( \
+ RGB_MOD, TO(_LAYER3), \
+ RGB_TOG, RGB_HUD, RGB_HUI \
+ ),
+ [_LAYER3] = LAYOUT( \
+ RGB_VAI, TO(_LAYER0), \
+ RGB_SAD, RGB_VAD, RGB_SAI \
+ )
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ return MACRO_NONE ;
+}
+
+void matrix_init_user(void) {
+ for (int i=0; i<5; i++) {
+ backlight_led_on(i);
+ }
+}
+
+void matrix_scan_user(void) {
+}
+
+void led_set_user(uint8_t usb_led) {
+}
diff --git a/keyboards/staryu/readme.md b/keyboards/staryu/readme.md
new file mode 100644
index 0000000000..bca7482bc2
--- /dev/null
+++ b/keyboards/staryu/readme.md
@@ -0,0 +1,15 @@
+# Staryu
+
+![Staryu](https://i.imgur.com/obcCpZN.jpg)
+
+A 5 key macropad, designed by Kai and sold by KPRepublic.
+
+Keyboard Maintainer: QMK Community
+Hardware Supported: Staryu (only the non-lite version has been tested)
+Hardware Availability: [AliExpress](https://www.aliexpress.com/item/Staryu-Mini-Macro-Pad-custom-keyboard-by-tkg-kai-Mini-macro-pad-mechanical-keyboard-5-keys/32817560746.html)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make staryu: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/staryu/rules.mk b/keyboards/staryu/rules.mk
new file mode 100755
index 0000000000..3e043bbcd5
--- /dev/null
+++ b/keyboards/staryu/rules.mk
@@ -0,0 +1,60 @@
+# MCU name
+MCU = atmega32u2
+
+BOOTLOADER = lufa-dfu
+
+SRC = backlight_staryu.c
+
+# 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 = no # Virtual DIP switch configuration(+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 = no # Commands for debug and configuration
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # In-switch LEDs
+AUDIO_ENABLE = no # There is no available timer or pin for audio on the NovelPad
+RGBLIGHT_ENABLE = yes # RGB LEDs for underglow, installed and enabled by default for the NovelPad
diff --git a/keyboards/staryu/staryu.c b/keyboards/staryu/staryu.c
new file mode 100755
index 0000000000..6dcaaea0e8
--- /dev/null
+++ b/keyboards/staryu/staryu.c
@@ -0,0 +1,26 @@
+/*
+Copyright 2018 Cole Markham
+
+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/>.
+*/
+#include "staryu.h"
+#include "backlight_staryu.h"
+
+// for keyboard subdirectory level init functions
+// @Override
+void matrix_init_kb(void) {
+ // call user level keymaps, if any
+ init_backlight_led();
+ matrix_init_user();
+}
diff --git a/keyboards/staryu/staryu.h b/keyboards/staryu/staryu.h
new file mode 100755
index 0000000000..12b8be92e7
--- /dev/null
+++ b/keyboards/staryu/staryu.h
@@ -0,0 +1,28 @@
+/*
+Copyright 2018 Cole Markham
+
+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/>.
+*/
+#ifndef KB_H
+#define KB_H
+#include "quantum.h"
+
+#define LAYOUT( \
+ K00, K01, \
+ K10, K11, K12 \
+) { \
+ { K00, K01, K12, K11, K10 }, \
+}
+
+#endif