From c23b73530f6683b52775ad6415fa201597f15f4f Mon Sep 17 00:00:00 2001 From: Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com> Date: Tue, 21 Jan 2020 07:40:33 +0900 Subject: [PATCH] [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 --- keyboards/getta25/config.h | 21 ++ keyboards/getta25/getta25.c | 1 + keyboards/getta25/getta25.h | 7 + keyboards/getta25/info.json | 38 ++++ keyboards/getta25/keymaps/default/config.h | 24 +++ keyboards/getta25/keymaps/default/keymap.c | 61 ++++++ keyboards/getta25/keymaps/oled/config.h | 25 +++ keyboards/getta25/keymaps/oled/glcdfont.c | 231 +++++++++++++++++++++ keyboards/getta25/keymaps/oled/keymap.c | 204 ++++++++++++++++++ keyboards/getta25/readme.md | 17 ++ keyboards/getta25/rev1/config.h | 73 +++++++ keyboards/getta25/rev1/rev1.c | 1 + keyboards/getta25/rev1/rev1.h | 35 ++++ keyboards/getta25/rules.mk | 33 +++ 14 files changed, 771 insertions(+) create mode 100644 keyboards/getta25/config.h create mode 100644 keyboards/getta25/getta25.c create mode 100644 keyboards/getta25/getta25.h create mode 100644 keyboards/getta25/info.json create mode 100644 keyboards/getta25/keymaps/default/config.h create mode 100644 keyboards/getta25/keymaps/default/keymap.c create mode 100644 keyboards/getta25/keymaps/oled/config.h create mode 100644 keyboards/getta25/keymaps/oled/glcdfont.c create mode 100644 keyboards/getta25/keymaps/oled/keymap.c create mode 100644 keyboards/getta25/readme.md create mode 100644 keyboards/getta25/rev1/config.h create mode 100644 keyboards/getta25/rev1/rev1.c create mode 100644 keyboards/getta25/rev1/rev1.h create mode 100644 keyboards/getta25/rules.mk diff --git a/keyboards/getta25/config.h b/keyboards/getta25/config.h new file mode 100644 index 00000000000..cfb6bf4ffcc --- /dev/null +++ b/keyboards/getta25/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2012 Jun Wako +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 . +*/ + +#pragma once + +#include "config_common.h" diff --git a/keyboards/getta25/getta25.c b/keyboards/getta25/getta25.c new file mode 100644 index 00000000000..4f8cc63b422 --- /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 00000000000..ff448201738 --- /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 00000000000..d3a02f29854 --- /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 00000000000..8c4e1f51299 --- /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 . + */ + +#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 00000000000..a70df01c180 --- /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 00000000000..be988915c21 --- /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 . + */ + +#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 00000000000..939db32ca65 --- /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 00000000000..44833857d31 --- /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 00000000000..886e52a2ea1 --- /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 00000000000..e7b198c573e --- /dev/null +++ b/keyboards/getta25/rev1/config.h @@ -0,0 +1,73 @@ +/* +Copyright 2012 Jun Wako +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 . +*/ + +#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 00000000000..520a869e57b --- /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 00000000000..98f4318a6af --- /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 00000000000..65aca76133c --- /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