summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSalicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com>2020-01-21 07:40:33 +0900
committerJames Young <18669334+noroadsleft@users.noreply.github.com>2020-01-20 14:40:33 -0800
commitc23b73530f6683b52775ad6415fa201597f15f4f (patch)
tree9bc716673309d12277e4f748cc74af8949dbd3eb
parent61dbb9267936f5b3dc6a4c804dc773ab79d9c309 (diff)
[Keyboard] Add keyboard Getta25 (#7497)
* [Keyboard] Add keyboard Getta25 Add Getta25 keyboard. A 25 keys Tenkey. Salicylic-acid3 * Update keyboards/getta25/info.json * Update keyboards/getta25/readme.md * Update keyboards/getta25/readme.md * Update keyboards/getta25/readme.md * Update keyboards/getta25/info.json * Update keyboards/getta25/info.json * Update keyboards/getta25/info.json * Update keyboards/getta25/info.json * Update keyboards/getta25/keymaps/oled/glcdfont.c * Update keyboards/getta25/keymaps/oled/glcdfont.c * Keymap Update Remove unnecessary code blocks * Update keyboards/getta25/keymaps/oled/keymap.c * Update keyboards/getta25/keymaps/oled/keymap.c * Update keyboards/getta25/keymaps/oled/keymap.c
-rw-r--r--keyboards/getta25/config.h21
-rw-r--r--keyboards/getta25/getta25.c1
-rw-r--r--keyboards/getta25/getta25.h7
-rw-r--r--keyboards/getta25/info.json38
-rw-r--r--keyboards/getta25/keymaps/default/config.h24
-rw-r--r--keyboards/getta25/keymaps/default/keymap.c61
-rw-r--r--keyboards/getta25/keymaps/oled/config.h25
-rw-r--r--keyboards/getta25/keymaps/oled/glcdfont.c231
-rw-r--r--keyboards/getta25/keymaps/oled/keymap.c204
-rw-r--r--keyboards/getta25/readme.md17
-rw-r--r--keyboards/getta25/rev1/config.h73
-rw-r--r--keyboards/getta25/rev1/rev1.c1
-rw-r--r--keyboards/getta25/rev1/rev1.h35
-rw-r--r--keyboards/getta25/rules.mk33
14 files changed, 771 insertions, 0 deletions
diff --git a/keyboards/getta25/config.h b/keyboards/getta25/config.h
new file mode 100644
index 0000000000..cfb6bf4ffc
--- /dev/null
+++ b/keyboards/getta25/config.h
@@ -0,0 +1,21 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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"
diff --git a/keyboards/getta25/getta25.c b/keyboards/getta25/getta25.c
new file mode 100644
index 0000000000..4f8cc63b42
--- /dev/null
+++ b/keyboards/getta25/getta25.c
@@ -0,0 +1 @@
+#include "getta25.h"
diff --git a/keyboards/getta25/getta25.h b/keyboards/getta25/getta25.h
new file mode 100644
index 0000000000..ff44820173
--- /dev/null
+++ b/keyboards/getta25/getta25.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#include "quantum.h"
+
+#ifdef KEYBOARD_getta25_rev1
+ #include "rev1.h"
+#endif
diff --git a/keyboards/getta25/info.json b/keyboards/getta25/info.json
new file mode 100644
index 0000000000..d3a02f2985
--- /dev/null
+++ b/keyboards/getta25/info.json
@@ -0,0 +1,38 @@
+{
+ "keyboard_name": "Getta25",
+ "url": "https://salicylic-acid3.hatenablog.com/",
+ "maintainer": "Salicylic_acid3",
+ "width": 5.25,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"ESC", "x":0, "y":0},
+ {"label":"F2", "x":1, "y":0},
+ {"label":"=", "x":2, "y":0},
+ {"label":"DEL", "x":3, "y":0},
+ {"label":"Num Lock", "x":0, "y":1.25},
+ {"label":"/", "x":1, "y":1.25},
+ {"label":"*", "x":2, "y":1.25},
+ {"label":"-", "x":3, "y":1.25},
+ {"label":"7", "x":0, "y":2.25},
+ {"label":"8", "x":1, "y":2.25},
+ {"label":"9", "x":2, "y":2.25},
+ {"label":"ESC", "x":4.25, "y":2.25},
+ {"label":"4", "x":0, "y":3.25},
+ {"label":"5", "x":1, "y":3.25},
+ {"label":"6", "x":2, "y":3.25},
+ {"label":"+", "x":3, "y":2.25, "h":2},
+ {"label":"F2", "x":4.25, "y":3.25},
+ {"label":"1", "x":0, "y":4.25},
+ {"label":"2", "x":1, "y":4.25},
+ {"label":"3", "x":2, "y":4.25},
+ {"label":"DEL", "x":4.25, "y":4.25},
+ {"label":"0", "x":0, "y":5.25, "w":2},
+ {"label":".", "x":2, "y":5.25},
+ {"label":"Enter", "x":3, "y":4.25, "h":2},
+ {"label":"BSPC", "x":4.25, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/getta25/keymaps/default/config.h b/keyboards/getta25/keymaps/default/config.h
new file mode 100644
index 0000000000..8c4e1f5129
--- /dev/null
+++ b/keyboards/getta25/keymaps/default/config.h
@@ -0,0 +1,24 @@
+/* Copyright 2018 Salicylic_acid3
+ *
+ * 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
+
+/* Select hand configuration */
+
+#define TAPPING_FORCE_HOLD
+#define TAPPING_TERM 180
+
+
diff --git a/keyboards/getta25/keymaps/default/keymap.c b/keyboards/getta25/keymaps/default/keymap.c
new file mode 100644
index 0000000000..a70df01c18
--- /dev/null
+++ b/keyboards/getta25/keymaps/default/keymap.c
@@ -0,0 +1,61 @@
+#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.
+enum layer_number {
+ _BASE,
+ _ARROW,
+ _ADJUST,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ //,-----------------------------------|
+LT(_ADJUST,KC_ESC), KC_F2, KC_EQL, KC_DEL,
+ //|--------+--------+--------+--------|
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ //|--------+--------+--------+--------+--------|
+ KC_P7, KC_P8, KC_P9, KC_ESC,
+ //|--------+--------+--------+--------+--------|
+ KC_P4, KC_P5, KC_P6, KC_PPLS, KC_F2,
+ //|--------+--------+--------+--------+--------|
+ KC_P1, KC_P2, KC_P3, KC_DEL,
+ //|--------+--------+--------+--------+--------|
+LT(_ARROW, KC_P0), KC_PDOT, KC_PENT, KC_BSPC
+ //`--------------------------------------------'
+ ),
+
+ [_ARROW] = LAYOUT(
+ //,-----------------------------------|
+ _______, _______, _______, _______,
+ //|--------+--------+--------+--------|
+ XXXXXXX, _______, _______, _______,
+ //|--------+--------+--------+--------+--------|
+ XXXXXXX, KC_UP, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______,
+ //|--------+--------+--------+--------+--------|
+ XXXXXXX, KC_DOWN, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ MO(_ARROW), _______, _______, _______
+ //`--------------------------------------------'
+ ),
+
+ [_ADJUST] = LAYOUT( /* Base */
+ //,-----------------------------------|
+ MO(_ADJUST), _______, _______, _______,
+ //|--------+--------+--------+--------|
+ XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_SAD, RGB_SAI, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_HUD, RGB_HUI, XXXXXXX, RGB_TOG, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_VAD, RGB_VAI, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ _______, _______, RGB_MOD, _______
+ //`--------------------------------------------'
+ )
+};
diff --git a/keyboards/getta25/keymaps/oled/config.h b/keyboards/getta25/keymaps/oled/config.h
new file mode 100644
index 0000000000..be988915c2
--- /dev/null
+++ b/keyboards/getta25/keymaps/oled/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2018 Salicylic_acid3
+ *
+ * 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
+
+/* Select hand configuration */
+
+#define TAPPING_FORCE_HOLD
+#define TAPPING_TERM 180
+
+#define OLED_FONT_H "keyboards/getta25/keymaps/oled/glcdfont.c"
+
diff --git a/keyboards/getta25/keymaps/oled/glcdfont.c b/keyboards/getta25/keymaps/oled/glcdfont.c
new file mode 100644
index 0000000000..939db32ca6
--- /dev/null
+++ b/keyboards/getta25/keymaps/oled/glcdfont.c
@@ -0,0 +1,231 @@
+// 'loveLain', 128x32px
+
+#include "progmem.h"
+
+static const unsigned char font[] PROGMEM = {
+0x00,0x00,0x00,0x00,0x00,0x00, // 00
+0x3E,0x5B,0x4F,0x5B,0x3E,0x00, // 01
+0x3E,0x6B,0x4F,0x6B,0x3E,0x00, // 02
+0x1C,0x3E,0x7C,0x3E,0x1C,0x00, // 03
+0x18,0x3C,0x7E,0x3C,0x18,0x00, // 04
+0x1C,0x57,0x7D,0x57,0x1C,0x00, // 05
+0x1C,0x5E,0x7F,0x5E,0x1C,0x00, // 06
+0x00,0x18,0x3C,0x18,0x00,0x00, // 07
+0xFF,0xE7,0xC3,0xE7,0xFF,0x00, // 08
+0x00,0x18,0x24,0x18,0x00,0x00, // 09
+0xFF,0xE7,0xDB,0xE7,0xFF,0x00, // 0A
+0x30,0x48,0x3A,0x06,0x0E,0x00, // 0B
+0x26,0x29,0x79,0x29,0x26,0x00, // 0C
+0x40,0x7F,0x05,0x05,0x07,0x00, // 0D
+0x40,0x7F,0x05,0x25,0x3F,0x00, // 0E
+0x5A,0x3C,0xE7,0x3C,0x5A,0x00, // 0F
+0x7F,0x3E,0x1C,0x1C,0x08,0x00, // 10
+0x08,0x1C,0x1C,0x3E,0x7F,0x00, // 11
+0x14,0x22,0x7F,0x22,0x14,0x00, // 12
+0x5F,0x5F,0x00,0x5F,0x5F,0x00, // 13
+0x06,0x09,0x7F,0x01,0x7F,0x00, // 14
+0x00,0x66,0x89,0x95,0x6A,0x00, // 15
+0x60,0x60,0x60,0x60,0x60,0x00, // 16
+0x94,0xA2,0xFF,0xA2,0x94,0x00, // 17
+0x08,0x04,0x7E,0x04,0x08,0x00, // 18
+0x10,0x20,0x7E,0x20,0x10,0x00, // 19
+0x08,0x08,0x2A,0x1C,0x08,0x00, // 1A
+0x08,0x1C,0x2A,0x08,0x08,0x00, // 1B
+0x1E,0x10,0x10,0x10,0x10,0x00, // 1C
+0x0C,0x1E,0x0C,0x1E,0x0C,0x00, // 1D
+0x30,0x38,0x3E,0x38,0x30,0x00, // 1E
+0x06,0x0E,0x3E,0x0E,0x06,0x00, // 1F
+0x00,0x00,0x00,0x00,0x00,0x00, // 20
+0x00,0x00,0x5F,0x00,0x00,0x00, // 21 !
+0x00,0x07,0x00,0x07,0x00,0x00, // 22 "
+0x14,0x7F,0x14,0x7F,0x14,0x00, // 23 #
+0x24,0x2A,0x7F,0x2A,0x12,0x00, // 24 $
+0x23,0x13,0x08,0x64,0x62,0x00, // 25 %
+0x36,0x49,0x56,0x20,0x50,0x00, // 26 &
+0x00,0x08,0x07,0x03,0x00,0x00, // 27 '
+0x00,0x1C,0x22,0x41,0x00,0x00, // 28 (
+0x00,0x41,0x22,0x1C,0x00,0x00, // 29 )
+0x2A,0x1C,0x7F,0x1C,0x2A,0x00, // 2A *
+0x08,0x08,0x3E,0x08,0x08,0x00, // 2B +
+0x00,0x80,0x70,0x30,0x00,0x00, // 2C ,
+0x08,0x08,0x08,0x08,0x08,0x00, // 2D -
+0x00,0x00,0x60,0x60,0x00,0x00, // 2E .
+0x20,0x10,0x08,0x04,0x02,0x00, // 2F /
+0x3E,0x51,0x49,0x45,0x3E,0x00, // 30 0
+0x00,0x42,0x7F,0x40,0x00,0x00, // 31 1
+0x72,0x49,0x49,0x49,0x46,0x00, // 32 2
+0x21,0x41,0x49,0x4D,0x33,0x00, // 33 3
+0x18,0x14,0x12,0x7F,0x10,0x00, // 34 4
+0x27,0x45,0x45,0x45,0x39,0x00, // 35 5
+0x3C,0x4A,0x49,0x49,0x31,0x00, // 36 6
+0x41,0x21,0x11,0x09,0x07,0x00, // 37 7
+0x36,0x49,0x49,0x49,0x36,0x00, // 38 8
+0x46,0x49,0x49,0x29,0x1E,0x00, // 39 9
+0x00,0x00,0x14,0x00,0x00,0x00, // 3A :
+0x00,0x40,0x34,0x00,0x00,0x00, // 3B ;
+0x00,0x08,0x14,0x22,0x41,0x00, // 3C <
+0x14,0x14,0x14,0x14,0x14,0x00, // 3D =
+0x00,0x41,0x22,0x14,0x08,0x00, // 3E >
+0x02,0x01,0x59,0x09,0x06,0x00, // 3F ?
+0x3E,0x41,0x5D,0x59,0x4E,0x00, // 40 @
+0x7C,0x12,0x11,0x12,0x7C,0x00, // 41 A
+0x7F,0x49,0x49,0x49,0x36,0x00, // 42 B
+0x3E,0x41,0x41,0x41,0x22,0x00, // 43 C
+0x7F,0x41,0x41,0x41,0x3E,0x00, // 44 D
+0x7F,0x49,0x49,0x49,0x41,0x00, // 45 E
+0x7F,0x09,0x09,0x09,0x01,0x00, // 46 F
+0x3E,0x41,0x41,0x51,0x73,0x00, // 47 G
+0x7F,0x08,0x08,0x08,0x7F,0x00, // 48 H
+0x00,0x41,0x7F,0x41,0x00,0x00, // 49 I
+0x20,0x40,0x41,0x3F,0x01,0x00, // 4A J
+0x7F,0x08,0x14,0x22,0x41,0x00, // 4B K
+0x7F,0x40,0x40,0x40,0x40,0x00, // 4C L
+0x7F,0x02,0x1C,0x02,0x7F,0x00, // 4D M
+0x7F,0x04,0x08,0x10,0x7F,0x00, // 4E N
+0x3E,0x41,0x41,0x41,0x3E,0x00, // 4F O
+0x7F,0x09,0x09,0x09,0x06,0x00, // 50 P
+0x3E,0x41,0x51,0x21,0x5E,0x00, // 51 Q
+0x7F,0x09,0x19,0x29,0x46,0x00, // 52 R
+0x26,0x49,0x49,0x49,0x32,0x00, // 53 S
+0x03,0x01,0x7F,0x01,0x03,0x00, // 54 T
+0x3F,0x40,0x40,0x40,0x3F,0x00, // 55 U
+0x1F,0x20,0x40,0x20,0x1F,0x00, // 56 V
+0x3F,0x40,0x38,0x40,0x3F,0x00, // 57 W
+0x63,0x14,0x08,0x14,0x63,0x00, // 58 X
+0x03,0x04,0x78,0x04,0x03,0x00, // 59 Y
+0x61,0x59,0x49,0x4D,0x43,0x00, // 5A Z
+0x00,0x7F,0x41,0x41,0x41,0x00, // 5B [
+0x02,0x04,0x08,0x10,0x20,0x00, // 5C \ .
+0x00,0x41,0x41,0x41,0x7F,0x00, // 5D ]
+0x04,0x02,0x01,0x02,0x04,0x00, // 5E ^
+0x40,0x40,0x40,0x40,0x40,0x00, // 5F _
+0x00,0x03,0x07,0x08,0x00,0x00, // 60 `
+0x20,0x54,0x54,0x78,0x40,0x00, // 61 a
+0x7F,0x28,0x44,0x44,0x38,0x00, // 62 b
+0x38,0x44,0x44,0x44,0x28,0x00, // 63 c
+0x38,0x44,0x44,0x28,0x7F,0x00, // 64 d
+0x38,0x54,0x54,0x54,0x18,0x00, // 65 e
+0x00,0x08,0x7E,0x09,0x02,0x00, // 66 f
+0x18,0xA4,0xA4,0x9C,0x78,0x00, // 67 g
+0x7F,0x08,0x04,0x04,0x78,0x00, // 68 h
+0x00,0x44,0x7D,0x40,0x00,0x00, // 69 i
+0x20,0x40,0x40,0x3D,0x00,0x00, // 6A j
+0x7F,0x10,0x28,0x44,0x00,0x00, // 6B k
+0x00,0x41,0x7F,0x40,0x00,0x00, // 6C l
+0x7C,0x04,0x78,0x04,0x78,0x00, // 6D m
+0x7C,0x08,0x04,0x04,0x78,0x00, // 6E n
+0x38,0x44,0x44,0x44,0x38,0x00, // 6F o
+0xFC,0x18,0x24,0x24,0x18,0x00, // 70 p
+0x18,0x24,0x24,0x18,0xFC,0x00, // 71 q
+0x7C,0x08,0x04,0x04,0x08,0x00, // 72 r
+0x48,0x54,0x54,0x54,0x24,0x00, // 73 s
+0x04,0x04,0x3F,0x44,0x24,0x00, // 74 t
+0x3C,0x40,0x40,0x20,0x7C,0x00, // 75 u
+0x1C,0x20,0x40,0x20,0x1C,0x00, // 76 v
+0x3C,0x40,0x30,0x40,0x3C,0x00, // 77 w
+0x44,0x28,0x10,0x28,0x44,0x00, // 78 x
+0x4C,0x90,0x90,0x90,0x7C,0x00, // 79 y
+0x44,0x64,0x54,0x4C,0x44,0x00, // 7A z
+0x00,0x08,0x36,0x41,0x00,0x00, // 7B {
+0x00,0x00,0x77,0x00,0x00,0x00, // 7C |
+0x00,0x41,0x36,0x08,0x00,0x00, // 7D }
+0x02,0x01,0x02,0x04,0x02,0x00, // 7E ~
+0x3C,0x26,0x23,0x26,0x3C,0x00, // 7F
+0xC7,0xC7,0xC7,0x00,0x00,0x00, // 80
+0x00,0x20,0x60,0x60,0x60,0x60, // 81
+0x60,0xE0,0x20,0x20,0x20,0x20, // 82
+0x20,0x60,0x60,0x00,0x00,0x00, // 83
+0x00,0x00,0x00,0xC7,0xC7,0xC7, // 84
+0xC7,0xC7,0xC7,0x00,0x00,0x00, // 85
+0x00,0xE0,0x70,0x50,0xFE,0x7A, // 86
+0x02,0x00,0x20,0x60,0xE0,0xF3, // 87
+0x3E,0x30,0x10,0x10,0x00,0x00, // 88
+0x00,0x00,0x00,0xC7,0xC7,0xC7, // 89
+0xC7,0xC7,0xC7,0x00,0x00,0x80, // 8A
+0xC0,0xC3,0xA1,0x90,0x98,0x84, // 8B
+0x83,0x00,0x00,0x1E,0x09,0x0C, // 8C
+0x04,0xC4,0x7C,0x18,0x00,0x00, // 8D
+0x00,0x00,0x00,0xC7,0xC7,0xC7, // 8E
+0x00,0x00,0x00,0x00,0x00,0x00, // 8F
+0x00,0x00,0x00,0x00,0x00,0x00, // 90
+0x00,0x00,0x00,0x00,0x00,0x00, // 91
+0x00,0x00,0x00,0x00,0x00,0x00, // 92
+0x00,0x00,0x00,0x00,0x00,0x00, // 93
+0x00,0x00,0x00,0x00,0x00,0xE0, // 94
+0xF0,0xF0,0xF0,0xE0,0xEC,0xEE, // 95
+0xF7,0xF3,0x70,0x20,0x00,0x7C, // 96
+0x7C,0x7C,0x7E,0x00,0x7E,0x7E, // 97
+0x7E,0x7F,0x7F,0x7F,0x00,0x00, // 98
+0x80,0xC0,0xE0,0x7E,0x5B,0x4F, // 99
+0x5B,0xFE,0xC0,0x00,0x00,0xC0, // 9A
+0x00,0xDC,0xD7,0xDE,0xDE,0xDE, // 9B
+0xD7,0xDC,0x00,0xC0,0x00,0x00, // 9C
+0x00,0x00,0x00,0x00,0x00,0x00, // 9D
+0x00,0x00,0x00,0x00,0x00,0x00, // 9E
+0x00,0x00,0x00,0x00,0x00,0xFF, // 9F
+0x71,0x71,0x71,0x00,0x00,0x00, // A0
+0x00,0x00,0x00,0x00,0x00,0x00, // A1 ?
+0xC0,0xFF,0x00,0x08,0x0E,0x0E, // A2 ?
+0x0C,0x00,0x00,0x00,0x00,0x00, // A3 ?
+0x00,0x00,0x00,0x71,0x71,0x71, // A4 ?
+0x71,0x71,0x71,0x00,0x00,0x08, // A5 ?
+0x08,0x09,0x18,0x25,0x61,0x31, // A6 ?
+0x1F,0x06,0x04,0x06,0x13,0x32, // A7 §
+0x32,0x62,0x02,0x06,0x0C,0x08, // A8 ¨
+0x00,0x00,0x00,0x71,0x71,0x71, // A9 ?
+0x71,0x71,0x71,0x00,0x00,0x00, // AA ?
+0x00,0x00,0x00,0x00,0x00,0x00, // AB ?
+0x09,0x11,0x18,0x08,0x0C,0x06, // AC ?
+0x03,0x00,0x00,0x00,0x00,0x00, // AD ?
+0x00,0x00,0x00,0x71,0x71,0x71, // AE ?
+0x00,0x00,0x00,0x00,0x00,0x00, // AF ?
+0x00,0x00,0x00,0x00,0x00,0x00, // B0 °
+0x00,0x00,0x00,0x00,0x00,0x00, // B1 ±
+0x00,0x00,0x00,0x00,0x00,0x00, // B2 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // B3 ?
+0x00,0x00,0x00,0x00,0x00,0x0F, // B4 ´
+0x1F,0x3F,0x7F,0x7F,0x7F,0x7F, // B5 ?
+0x7F,0x3F,0x1E,0x0C,0x00,0x1F, // B6 ¶
+0x1F,0x1F,0x3F,0x00,0x3F,0x3F, // B7 ?
+0x3F,0x7F,0x7F,0x7F,0x00,0x30, // B8 ?
+0x7B,0x7F,0x78,0x30,0x20,0x20, // B9 ?
+0x30,0x78,0x7F,0x3B,0x00,0x03, // BA ?
+0x00,0x0F,0x7F,0x0F,0x0F,0x0F, // BB ?
+0x7F,0x0F,0x00,0x03,0x00,0x00, // BC ?
+0x00,0x00,0x00,0x00,0x00,0x00, // BD ?
+0x00,0x00,0x00,0x00,0x00,0x00, // BE ?
+0x00,0x00,0x00,0x00,0x00,0xFF, // BF ?
+0x1C,0x1C,0x1C,0x00,0x00,0x00, // C0 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // C1 ?
+0x07,0x0F,0x00,0x00,0x00,0x00, // C2 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // C3 ?
+0x00,0x00,0x00,0x1C,0x1C,0x1C, // C4 ?
+0x1C,0x1C,0x1C,0x00,0x00,0x00, // C5 ?
+0x00,0x00,0x80,0x80,0xC0,0x40, // C6 ?
+0x80,0x00,0x00,0x00,0xC0,0x40, // C7 ?
+0x40,0xC0,0xC0,0xC0,0x00,0x00, // C8 ?
+0x00,0x00,0x00,0x1C,0x1C,0x1C, // C9 ?
+0x1C,0x1C,0x1C,0x00,0x00,0x00, // CA ?
+0x00,0x00,0x00,0x00,0x00,0x00, // CB ?
+0x00,0x00,0x00,0x00,0x00,0x00, // CC ?
+0x00,0x00,0x00,0x00,0x00,0x00, // CD ?
+0x00,0x00,0x00,0x1C,0x1C,0x1C, // CE ?
+0x00,0x00,0x00,0x00,0x00,0x00, // CF ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D0 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D1 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D2 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D3 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D4 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D5 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D6 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D7 ×
+0x00,0x00,0x00,0x00,0x00,0x00, // D8 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D9 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DA ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DB ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DC ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DD ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DE ?
+0x00,0x00,0x00,0x00,0x00,0xFF, // DF ?
+};
+static const unsigned int fontLen = 512;
diff --git a/keyboards/getta25/keymaps/oled/keymap.c b/keyboards/getta25/keymaps/oled/keymap.c
new file mode 100644
index 0000000000..44833857d3
--- /dev/null
+++ b/keyboards/getta25/keymaps/oled/keymap.c
@@ -0,0 +1,204 @@
+#include QMK_KEYBOARD_H
+#include "keymap_jp.h"
+
+#ifdef OLED_DRIVER_ENABLE
+static uint32_t oled_timer = 0;
+#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.
+enum layer_number {
+ _BASE,
+ _ARROW,
+ _MACRO,
+ _ADJUST,
+};
+
+enum custom_keycodes {
+ RGB_RST = SAFE_RANGE,
+ SEND_SUM,
+ SEND_AVE,
+ SEND_CIF,
+ SEND_MAX,
+ SEND_MIN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ //,-----------------------------------|
+ KC_ESC, KC_F2, JP_EQL, KC_DEL,
+ //|--------+--------+--------+--------|
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ //|--------+--------+--------+--------+--------|
+ KC_P7, KC_P8, KC_P9, LCTL(JP_LBRC),
+ //|--------+--------+--------+--------+--------|
+ KC_P4, KC_P5, KC_P6, KC_PPLS, JP_EQL,
+ //|--------+--------+--------+--------+--------|
+ KC_P1, KC_P2, KC_P3, KC_DEL,
+ //|--------+--------+--------+--------+--------|
+LT(_ARROW, KC_P0),LT(_MACRO, KC_PDOT),KC_PENT,KC_BSPC
+ //`--------------------------------------------'
+ ),
+
+ [_ARROW] = LAYOUT(
+ //,-----------------------------------|
+ _______, _______, _______, _______,
+ //|--------+--------+--------+--------|
+ XXXXXXX, _______, _______, _______,
+ //|--------+--------+--------+--------+--------|
+ XXXXXXX, KC_UP, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______,
+ //|--------+--------+--------+--------+--------|
+ XXXXXXX, KC_DOWN, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ MO(_ARROW), MO(_MACRO), _______, _______
+ //`--------------------------------------------'
+ ),
+
+ [_MACRO] = LAYOUT(
+ //,-----------------------------------|
+ _______, _______, _______, _______,
+ //|--------+--------+--------+--------|
+ SEND_MIN,SEND_MAX,SEND_CIF,SEND_AVE,
+ //|--------+--------+--------+--------+--------|
+ KC_F7, KC_F8, KC_F9, _______,
+ //|--------+--------+--------+--------+--------|
+ KC_F4, KC_F5, KC_F6,SEND_SUM, _______,
+ //|--------+--------+--------+--------+--------|
+ KC_F11, KC_F12, KC_F3, _______,
+ //|--------+--------+--------+--------+--------|
+ _______, _______, JP_RPRN, _______
+ //`--------------------------------------------'
+ ),
+
+ [_ADJUST] = LAYOUT( /* Base */
+ //,-----------------------------------|
+ _______, _______, _______, _______,
+ //|--------+--------+--------+--------|
+ XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_SAD, RGB_SAI, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_HUD, RGB_HUI, XXXXXXX, RGB_TOG, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_VAD, RGB_VAI, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ _______, _______, RGB_MOD, _______
+ //`--------------------------------------------'
+ )
+};
+
+//A description for expressing the layer position in LED mode.
+layer_state_t layer_state_set_user(layer_state_t state) {
+ state = update_tri_layer_state(state, _ARROW, _MACRO, _ADJUST);
+#ifdef RGBLIGHT_ENABLE
+ switch (get_highest_layer(state)) {
+ case _ARROW:
+ rgblight_sethsv_at(HSV_BLUE, 0);
+ break;
+ case _MACRO:
+ rgblight_sethsv_at(HSV_RED, 0);
+ break;
+ case _ADJUST:
+ rgblight_sethsv_at(HSV_PURPLE, 0);
+ break;
+ default: // for any other layers, or the default layer
+ rgblight_sethsv_range( 0, 0, 0, 0, 1);
+ break;
+ }
+ rgblight_set_effect_range( 1, 8);
+#endif
+return state;
+}
+
+int RGB_current_mode;
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ bool result = false;
+ if (record->event.pressed) {
+ #ifdef OLED_DRIVER_ENABLE
+ oled_timer = timer_read32();
+ #endif
+ }
+ switch (keycode) {
+ case SEND_SUM:
+ if (record->event.pressed) {
+ SEND_STRING("_SUM*");
+ }
+ break;
+ case SEND_AVE:
+ if (record->event.pressed) {
+ SEND_STRING("_AVERAGE*");
+ }
+ break;
+ case SEND_CIF:
+ if (record->event.pressed) {
+ SEND_STRING("_COUNTIF*");
+ }
+ break;
+ case SEND_MAX:
+ if (record->event.pressed) {
+ SEND_STRING("_MAX*");
+ }
+ break;
+ case SEND_MIN:
+ if (record->event.pressed) {
+ SEND_STRING("_MIN*");
+ }
+ break;
+ default:
+ result = true;
+ break;
+ }
+
+ return result;
+}
+
+#ifdef OLED_DRIVER_ENABLE
+oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
+
+void render_layer_state(void) {
+ oled_write_P(PSTR(" "), false);
+ oled_write_P(PSTR("LAYER"), false);
+ oled_write_P(PSTR("Arrow"), layer_state_is(_ARROW));
+ oled_write_P(PSTR("Macro"), layer_state_is(_MACRO));
+ oled_write_P(PSTR("Adjus"), layer_state_is(_ADJUST));
+ oled_write_P(PSTR(" "), false);
+}
+
+void render_keylock_status(led_t led_state) {
+ oled_write_P(PSTR("NumL "), led_state.num_lock);
+}
+
+void render_layer_messages(void) {
+ oled_write_P(PSTR("GETtA 25 For Your Good Job. "), false);
+}
+
+void render_status(void) {
+ /* Show Keyboard Layout */
+ render_layer_state();
+ render_keylock_status(host_keyboard_led_state());
+}
+
+void oled_task_user(void) {
+ static const char PROGMEM font_logo[] = {
+ 0x80,0x81,0x82,0x83,0x84,
+ 0xa0,0xa1,0xa2,0xa3,0xa4,
+ 0xc0,0xc1,0xc2,0xc3,0xc4,
+
+ 0x85,0x86,0x87,0x88,0x89,
+ 0xa5,0xa6,0xa7,0xa8,0xa9,
+ 0xc5,0xc6,0xc7,0xc8,0xc9,
+
+ 0x8a,0x8b,0x8c,0x8d,0x8e,
+ 0xaa,0xab,0xac,0xad,0xae,
+ 0xca,0xcb,0xcc,0xcd,0xce,0
+ };
+ oled_write_P(font_logo, false);
+
+ render_status(); // Renders the current keyboard state (layer, lock)
+}
+
+#endif
diff --git a/keyboards/getta25/readme.md b/keyboards/getta25/readme.md
new file mode 100644
index 0000000000..886e52a2ea
--- /dev/null
+++ b/keyboards/getta25/readme.md
@@ -0,0 +1,17 @@
+# getta25
+
+![getta25](https://cdn-ak.f.st-hatena.com/images/fotolife/S/Salicylic_acid3/20191127/20191127005608.png)
+
+This is 25 keys tenkeypad.
+
+* Keyboard Maintainer: [Salicylic_acid3](https://github.com/Salicylic-acid3)
+* Hardware Supported: Getta25 PCB, Pro Micro
+* Hardware Availability: [PCB & Case Data](https://github.com/Salicylic-acid3/PCB_Data), [Booth Shop](https://salicylic-acid3.booth.pm/items/1700006)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make getta25: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).
+
+[Build guide](https://salicylic-acid3.hatenablog.com/entry/getta25-rev2-build-guide)
diff --git a/keyboards/getta25/rev1/config.h b/keyboards/getta25/rev1/config.h
new file mode 100644
index 0000000000..e7b198c573
--- /dev/null
+++ b/keyboards/getta25/rev1/config.h
@@ -0,0 +1,73 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x3060
+#define DEVICE_VER 0x0013
+#define MANUFACTURER Salicylic_Acid
+#define PRODUCT getta25
+#define DESCRIPTION A custom keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 6
+
+// wiring of each half
+#define MATRIX_ROW_PINS { D4, C6, D7, E6, B2 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
+
+/* 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
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D3
+
+#define RGBLED_NUM 9 // Number of LEDs
+#define RGBLIGHT_ANIMATIONS
+
+#ifndef IOS_DEVICE_ENABLE
+ #define RGBLIGHT_LIMIT_VAL 180
+ #define RGBLIGHT_VAL_STEP 17
+#else
+ #define RGBLIGHT_LIMIT_VAL 50
+ #define RGBLIGHT_VAL_STEP 4
+#endif
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+
+#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
+// USB_MAX_POWER_CONSUMPTION value for naked48 keyboard
+// 120 RGBoff, OLEDoff
+// 120 OLED
+// 330 RGB 6
+// 300 RGB 32
+// 310 OLED & RGB 32
+ #define USB_MAX_POWER_CONSUMPTION 400
+#else
+ // fix iPhone and iPad power adapter issue
+ // iOS device need lessthan 100
+ #define USB_MAX_POWER_CONSUMPTION 100
+#endif
diff --git a/keyboards/getta25/rev1/rev1.c b/keyboards/getta25/rev1/rev1.c
new file mode 100644
index 0000000000..520a869e57
--- /dev/null
+++ b/keyboards/getta25/rev1/rev1.c
@@ -0,0 +1 @@
+#include "rev1.h"
diff --git a/keyboards/getta25/rev1/rev1.h b/keyboards/getta25/rev1/rev1.h
new file mode 100644
index 0000000000..98f4318a6a
--- /dev/null
+++ b/keyboards/getta25/rev1/rev1.h
@@ -0,0 +1,35 @@
+#pragma once
+
+#include "getta25.h"
+
+/*
+ * ,-----------------------.
+ * | L05 | L15 | L25 | L35 |
+ * |-----------------------+
+ * | L04 | L14 | L24 | L34 |
+ * |-----------------------------+
+ * | L03 | L13 | L23 | | L43 |
+ * |-----------------------------+
+ * | L02 | L12 | L22 | L32 | L42 |
+ * |-----------------------------+
+ * | L01 | L11 | L21 | | L41 |
+ * |-----------------------------+
+ * | L00 | | L20 | L30 | L40 |
+ * ,-----------------------------'
+ */
+
+#define LAYOUT( \
+ L05, L15, L25, L35, \
+ L04, L14, L24, L34, \
+ L03, L13, L23, L43, \
+ L02, L12, L22, L32, L42, \
+ L01, L11, L21, L41, \
+ L00, L20, L30, L40 \
+ ) \
+ { \
+ { L00, L01, L02, L03, L04, L05 }, \
+ {KC_NO, L11, L12, L13, L14, L15 }, \
+ { L20, L21, L22, L23, L24, L25 }, \
+ { L30,KC_NO, L32,KC_NO, L34, L35 }, \
+ { L40, L41, L42, L43,KC_NO,KC_NO } \
+ }
diff --git a/keyboards/getta25/rules.mk b/keyboards/getta25/rules.mk
new file mode 100644
index 0000000000..65aca76133
--- /dev/null
+++ b/keyboards/getta25/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # 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
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+OLED_DRIVER_ENABLE = yes
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+DEFAULT_FOLDER = getta25/rev1