From 8e56d10e4e33c045c7835822b267919853fdb1e1 Mon Sep 17 00:00:00 2001
From: marksard <38324387+marksard@users.noreply.github.com>
Date: Fri, 8 May 2020 03:49:40 +0900
Subject: [Keyboard] treadstone48/rev2 (#8719)
* Keyboard: add treeadstone48
* rename layout defines
* Use of pragma once
* move common include code
* fixed info.json
* change keymap layout from kc to normal
* fix alpha revision keymap
* fixed info.json
* remove USE_Link_Time_Optimization
* Add keyboard firmware of treadstone48 rev.2
* move the rev1-supported keymap.
* layout code was updated by review
* remove comment bar
* remove LTO ifded
* Update keyboards/treadstone48/rev2/rev2.h
* Update keyboards/treadstone48/rev2/rev2.h
---
.../treadstone48/keymaps/like_jis_rs/config.h | 51 ----
.../treadstone48/keymaps/like_jis_rs/keymap.c | 295 ---------------------
.../treadstone48/keymaps/like_jis_rs/readme.md | 5 -
.../treadstone48/keymaps/like_jis_rs/readme_jp.md | 79 ------
.../treadstone48/keymaps/like_jis_rs/rules.mk | 11 -
keyboards/treadstone48/readme.md | 5 +-
.../treadstone48/rev1/keymaps/like_jis_rs/config.h | 51 ++++
.../treadstone48/rev1/keymaps/like_jis_rs/keymap.c | 295 +++++++++++++++++++++
.../rev1/keymaps/like_jis_rs/readme.md | 5 +
.../rev1/keymaps/like_jis_rs/readme_jp.md | 79 ++++++
.../treadstone48/rev1/keymaps/like_jis_rs/rules.mk | 11 +
keyboards/treadstone48/rev2/config.h | 250 +++++++++++++++++
keyboards/treadstone48/rev2/info.json | 261 ++++++++++++++++++
keyboards/treadstone48/rev2/rev2.c | 17 ++
keyboards/treadstone48/rev2/rev2.h | 48 ++++
keyboards/treadstone48/rev2/rules.mk | 1 +
16 files changed, 1022 insertions(+), 442 deletions(-)
delete mode 100644 keyboards/treadstone48/keymaps/like_jis_rs/config.h
delete mode 100644 keyboards/treadstone48/keymaps/like_jis_rs/keymap.c
delete mode 100644 keyboards/treadstone48/keymaps/like_jis_rs/readme.md
delete mode 100644 keyboards/treadstone48/keymaps/like_jis_rs/readme_jp.md
delete mode 100644 keyboards/treadstone48/keymaps/like_jis_rs/rules.mk
create mode 100644 keyboards/treadstone48/rev1/keymaps/like_jis_rs/config.h
create mode 100644 keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c
create mode 100644 keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme.md
create mode 100644 keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme_jp.md
create mode 100644 keyboards/treadstone48/rev1/keymaps/like_jis_rs/rules.mk
create mode 100644 keyboards/treadstone48/rev2/config.h
create mode 100644 keyboards/treadstone48/rev2/info.json
create mode 100644 keyboards/treadstone48/rev2/rev2.c
create mode 100644 keyboards/treadstone48/rev2/rev2.h
create mode 100644 keyboards/treadstone48/rev2/rules.mk
(limited to 'keyboards/treadstone48')
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/config.h b/keyboards/treadstone48/keymaps/like_jis_rs/config.h
deleted file mode 100644
index 95b58c23db..0000000000
--- a/keyboards/treadstone48/keymaps/like_jis_rs/config.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2020 marksard
- *
- * 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
-
-// place overrides here
-
-#ifdef TAPPING_TERM
-#undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 225
-#define PREVENT_STUCK_MODIFIERS
-#define IGNORE_MOD_TAP_INTERRUPT
-
-#ifdef MOUSEKEY_ENABLE
- #undef MOUSEKEY_INTERVAL
- #define MOUSEKEY_INTERVAL 1
-
- #undef MOUSEKEY_TIME_TO_MAX
- #define MOUSEKEY_TIME_TO_MAX 150
-
- #undef MOUSEKEY_MAX_SPEED
- #define MOUSEKEY_MAX_SPEED 3
-
- #undef MOUSEKEY_MOVE_DELTA
- #define MOUSEKEY_MOVE_DELTA 4
-
- #undef MOUSEKEY_DELAY
- #define MOUSEKEY_DELAY 0
-#endif
-
-// If you use the HashTwenty(alpha), please enable USE_HASHTWENTY
-// #define ANGELINA_KEYMAP
-
-// If you plug in the USB on the right side, please enable MASTER_RIGHT
-// #define RHYMESTONE_RIGHTHAND
-
-#define OLED_FONT_H "keyboards/treadstone48/common/glcdfont.c"
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/keymap.c b/keyboards/treadstone48/keymaps/like_jis_rs/keymap.c
deleted file mode 100644
index 171e034556..0000000000
--- a/keyboards/treadstone48/keymaps/like_jis_rs/keymap.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/* Copyright 2020 marksard
- *
- * 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 .
- */
-#include QMK_KEYBOARD_H
-#include "../common/oled_helper.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 = 0,
- _BASES,
- _LOWER,
- _LOWRS,
- _RAISE,
- _ADJUST,
-};
-
-enum custom_keycodes {
- BASE = SAFE_RANGE,
- BASES,
- LOWER,
- LOWRS,
- RAISE,
- ADJUST,
- KANJI,
- RGBRST
-};
-
-#define KC_TBSF LSFT_T(KC_TAB)
-#define KC_ALAP LALT_T(KC_APP)
-
-#define KC_JEQL LSFT(KC_MINS)
-#define KC_SFUC LSFT(KC_RO)
-#define KC_RSBR LSFT(KC_8)
-#define KC_REBR LSFT(KC_9)
-
-#define KC_ZSFT LSFT_T(KC_Z)
-#define KC_ESCT LCTL_T(KC_ESC)
-#define KC_TBAL LALT_T(KC_TAB)
-#define KC_11SF LSFT_T(KC_F11)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_rs( \
- // Treadstone48 Rhymestone
- //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
- 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_P7, KC_P8, KC_P9, KC_PSLS, KC_NLCK,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
- KC_TBSF, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TAB,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PENT,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_ALAP, KC_LEFT, KC_DOWN, KC_RGHT, LOWER, KC_P0, KC_PDOT, KC_PPLS, KC_BSPC,\
- //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
- KC_DEL \
- // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
- ),
-
- [_LOWER] = LAYOUT_rs( \
- // Treadstone48 Rhymestone
- //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC, KC_DEL, KC_A, KC_B, KC_C, KC_JYEN, KC_HASH,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS, _______, KC_D, KC_E, KC_F, KC_PERC, KC_SFUC,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- _______, KC_F11, KC_F12, BASES, KANJI, KC_ENT, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_PGUP, KC_RSBR, KC_REBR, KC_RBRC, KC_QUOT, _______,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- _______, _______, _______, _______, KC_DEL, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END, _______, XXXXXXX, KC_COMM, KC_JEQL, KC_DEL,\
- //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
- _______ \
- // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
- ),
-
- [_BASES] = LAYOUT_rs( \
- // Treadstone48 Rhymestone
- //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_Q, KC_W, KC_E, KC_R, KC_T,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
- KC_TBSF, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ZSFT, KC_X, KC_C, KC_V, KC_B,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_ALAP, KC_LEFT, KC_DOWN, KC_RGHT, KC_ESCT, KC_TBAL, KC_LGUI, LOWRS, KC_BSPC,\
- //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
- KC_DEL \
- // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
- ),
-
- [_LOWRS] = LAYOUT_rs( \
- // Treadstone48 Rhymestone
- //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- _______, KC_F11, KC_F12, BASE, KANJI, KC_ENT, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_PGUP, KC_11SF, KC_F12, BASE, KANJI, KC_ENT,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- _______, _______, _______, _______, KC_DEL, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_DEL,\
- //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
- _______ \
- // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
- ),
-
- [_RAISE] = LAYOUT_rs( \
- // Treadstone48 Rhymestone
- //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_QUOT, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_RO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, KC_SLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
- //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
- _______ \
- // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
- ),
-
- [_ADJUST] = LAYOUT_rs( \
- // Treadstone48 Rhymestone
- //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
- XXXXXXX, RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
- XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
- //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
- _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
- //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
- _______ \
- // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
- )
-};
-
-#define L_BASE _BASE
-#define L_BASES (1<<_BASES)
-#define L_LOWER (1<<_LOWER)
-#define L_LOWRS (1<<_LOWRS)
-#define L_RAISE (1<<_RAISE)
-#define L_ADJUST (1<<_ADJUST)
-#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER)
-
-#ifdef OLED_DRIVER_ENABLE
-#include
-#include
-
-typedef struct {
- uint8_t state;
- char name[8];
-}LAYER_DISPLAY_NAME;
-
-#define LAYER_DISPLAY_MAX 7
-const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = {
- {L_BASE, "Base"},
- {L_BASE + 1, "Base"},
- {L_BASES, "BaseSpl"},
- {L_LOWER, "Lower"},
- {L_LOWRS, "LowrSpl"},
- {L_RAISE, "Raise"},
- {L_ADJUST_TRI, "Adjust"}
-};
-
-static inline const char* get_leyer_status(void) {
-
- for (uint8_t i = 0; i < LAYER_DISPLAY_MAX; ++i) {
- if (layer_state == 0 && layer_display_name[i].state == default_layer_state) {
-
- return layer_display_name[i].name;
- } else if (layer_state != 0 && layer_display_name[i].state == layer_state) {
-
- return layer_display_name[i].name;
- }
- }
-
- return "?";
-}
-
-static char layer_status_buf[24] = "Layer state ready.\n";
-static inline void update_keymap_status(void) {
-
- snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "OS:%s Layer:%s\n",
- keymap_config.swap_lalt_lgui? "win" : "mac", get_leyer_status());
-}
-
-static inline void render_keymap_status(void) {
-
- oled_write(layer_status_buf, false);
-}
-
-#define UPDATE_KEYMAP_STATUS() update_keymap_status()
-
-static inline void render_status(void) {
-
- UPDATE_LED_STATUS();
- RENDER_LED_STATUS();
- render_keymap_status();
- UPDATE_LOCK_STATUS();
- RENDER_LOCK_STATUS();
- RENDER_KEY_STATUS();
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
-
-// if (is_keyboard_master())
-// return OLED_ROTATION_180; // flips the display 180 degrees if offhand
- return rotation;
-}
-
-void oled_task_user(void) {
-
- if (is_keyboard_master()) {
- render_status();
- } else {
- render_logo();
- }
-}
-
-#else
-
-#define UPDATE_KEYMAP_STATUS()
-
-#endif
-
-void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
-
- pressed ? layer_on(layer1) : layer_off(layer1);
- IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
-}
-
-int RGB_current_mode;
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- UPDATE_KEY_STATUS(keycode, record);
-
- bool result = false;
- switch (keycode) {
- case LOWER:
- update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
- break;
- case RAISE:
- update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
- break;
- case BASE:
- if (record->event.pressed) {
- default_layer_set(L_BASE);
- }
- break;
- case BASES:
- if (record->event.pressed) {
- default_layer_set(L_BASES);
- }
- break;
- case LOWRS:
- update_change_layer(record->event.pressed, _LOWRS, _RAISE, _ADJUST);
- break;
- case KANJI:
- if (record->event.pressed) {
- if (keymap_config.swap_lalt_lgui == false) {
- register_code(KC_LANG2);
- } else {
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- unregister_code(KC_LANG2);
- }
- break;
- #ifdef RGBLIGHT_ENABLE
- case RGBRST:
- if (record->event.pressed) {
- eeconfig_update_rgblight_default();
- rgblight_enable();
- }
- break;
- #endif
- default:
- result = true;
- break;
- }
-
- UPDATE_KEYMAP_STATUS();
- return result;
-}
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/readme.md b/keyboards/treadstone48/keymaps/like_jis_rs/readme.md
deleted file mode 100644
index 796df6c4cd..0000000000
--- a/keyboards/treadstone48/keymaps/like_jis_rs/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# The like jis type keyboard keymap for treadstone48
-
-## Description
-
-## How to use
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/readme_jp.md b/keyboards/treadstone48/keymaps/like_jis_rs/readme_jp.md
deleted file mode 100644
index 81c5e017ec..0000000000
--- a/keyboards/treadstone48/keymaps/like_jis_rs/readme_jp.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# JISキーボードライクなキーマップ
-
-## 概要
-
- デフォルトキーマップの記号類をJISライクな配置に揃えなおしたものです。
- オプションのRhymestone用のマップを使用するために拡張しています。RhymestoneのpromicroにもTreadstone48のキーマップを入れてください。
- Rhymestoneは基本的には左手側を使うことを想定していますが、右手側を使用する場合はconfig.hの以下の行を有効にしてください。
-
-```#define RHYMESTONE_RIGHTHAND```
-
-## キーマップの見かた
-
-qmk_firmware\tmk_core\common\keycode.h
-に基本的なキーコードがあります。また、Keymap.cの上部にカスタムしたKC_で始まるものを登録しています。
-キーマップに書くときは「KC_」を省略して書いています。
-例:KC_A → A
-
-Leyer Tap、Mod Tap、Tap DanceというQMKの機能を使っています。
-
-Layer Tapはタップで指定したキー、長押しで指定したレイヤーに移動します。
-例:LT(RAISE, KC_V) → タップでV、長押しでRAISEレイヤー移動
-
-Mod Tapはタップで視程したキー、長押しで視程したレイヤーに移動します。
-例:LSFT_T(KC_Z) → タップでZ、長押しで左シフト
-
-もう少し詳しい内容についてはQMK Documentをお読みいただくかネットを検索すれば情報が載っていますので別途検索してみてください。
-
-## 機能
-
- QWERTYキーマップをベースにしていて、LowerレイヤーとRaiseレイヤーに他のキーを配置しています。
- LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
- マウスキーの割り当てがありますので、もし使用したい場合はrules.mkでMOUSEKEY_ENABLE = yesにしてmakeすると使用することができます。
-
-## 48キー目について
-
- このキーボードはEnterキーの上の2Uキーを1Ux2個にして使用する事が出来るようになっています。 使用する場合はキーマップの書き換えが必要です。
-
- 各レイヤーの最下段の
-
-```c
- XXXXXXX \
- // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
-```
-
- のXXXXXに任意のキーを入れることでPの右隣のキーとして動作するようになっています。その右隣りに従来のキーが配置されています。
-
-## OS切り替え方法
-
- Adjustレイヤーにあります。LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
-
-- KNRM: QMKのノーマル状態です。macだと正常に使える(はず)です
-- KSWP: ノーマル状態のままWindowsで使用するとALTキーとGUI(win)キーが逆ですので、それを入れ換えます。Windowsユーザーはこちらのモードにしてください
-
-## NUMPADモードについて
-
- Lower + DLNPキーを一度押下するとNumpadモードになります。通常モードに戻す場合はDLBSキーを押下してください。
-
-## IME切り替え方法
-
- Winの場合、LowerレイヤーにKANJIキー(半角/全角 漢字)がありますので、Lower+KANJIで切り替えてください。
-
-## ソフトウェアリセットについて
-
- キーボードにはハードウェアのリセットボタンが付いていますが、ソフトウェアリセットをかけられます。
- LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来、AdjustレイヤーのRSTを押下するとリセットがかかります。
-
-## LEDの点灯切り替え方法
-
- Adjustレイヤーにあります。LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
-
-- RGBRST: LEDのリセット
-- RGB_TOG: LEDのON/OFF切り替え
-- RGB_MOD: LEDの光り方の変更
-- RGB_HUI: Hue+ 色合いを変更
-- RGB_HUD: Hue- 色合いを変更
-- RGB_SAI: Saturation+ 色の濃さを変更
-- RGB_SAD: Saturation- 色の濃さを変更
-- RGB_VAI: Value+ 明るさを変更
-- RGB_VAD: Value- 明るさを変更
diff --git a/keyboards/treadstone48/keymaps/like_jis_rs/rules.mk b/keyboards/treadstone48/keymaps/like_jis_rs/rules.mk
deleted file mode 100644
index 7380582ca1..0000000000
--- a/keyboards/treadstone48/keymaps/like_jis_rs/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-MOUSEKEY_ENABLE = yes # Mouse keys
-
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-OLED_DRIVER_ENABLE = yes
-LTO_ENABLE = yes
-
-# If you use connection the Rhymestone, please enable RS_EXTRA_LED
-OPT_DEFS += -DRS_EXTRA_LED
-
-# If you want to change the display of OLED, you need to change here
-SRC += ./common/oled_helper.c \
diff --git a/keyboards/treadstone48/readme.md b/keyboards/treadstone48/readme.md
index eef39c39b3..432ef33fe9 100644
--- a/keyboards/treadstone48/readme.md
+++ b/keyboards/treadstone48/readme.md
@@ -11,8 +11,11 @@ Hardware Availability: links to where you can find this hardware
Make example for this keyboard (after setting up your build environment):
make treadstone48:default
+ or
+ make treadstone48/rev2: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://github.com/marksard/Keyboards/blob/master/treadstpne48/documents/treadstone48_buildguide.md)
+[Build guide](https://github.com/marksard/Keyboards/blob/master/treadstone48/documents/treadstone48_buildguide.md)
+[Build guide (rev2)](https://github.com/marksard/Keyboards/blob/master/treadstone48/documents/treadstone48rev2_buildguide.md)
[Firmware](https://github.com/marksard/qmk_firmware/tree/my_customize/keyboards/treadstone48)
diff --git a/keyboards/treadstone48/rev1/keymaps/like_jis_rs/config.h b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/config.h
new file mode 100644
index 0000000000..95b58c23db
--- /dev/null
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/config.h
@@ -0,0 +1,51 @@
+/* Copyright 2020 marksard
+ *
+ * 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
+
+// place overrides here
+
+#ifdef TAPPING_TERM
+#undef TAPPING_TERM
+#endif
+#define TAPPING_TERM 225
+#define PREVENT_STUCK_MODIFIERS
+#define IGNORE_MOD_TAP_INTERRUPT
+
+#ifdef MOUSEKEY_ENABLE
+ #undef MOUSEKEY_INTERVAL
+ #define MOUSEKEY_INTERVAL 1
+
+ #undef MOUSEKEY_TIME_TO_MAX
+ #define MOUSEKEY_TIME_TO_MAX 150
+
+ #undef MOUSEKEY_MAX_SPEED
+ #define MOUSEKEY_MAX_SPEED 3
+
+ #undef MOUSEKEY_MOVE_DELTA
+ #define MOUSEKEY_MOVE_DELTA 4
+
+ #undef MOUSEKEY_DELAY
+ #define MOUSEKEY_DELAY 0
+#endif
+
+// If you use the HashTwenty(alpha), please enable USE_HASHTWENTY
+// #define ANGELINA_KEYMAP
+
+// If you plug in the USB on the right side, please enable MASTER_RIGHT
+// #define RHYMESTONE_RIGHTHAND
+
+#define OLED_FONT_H "keyboards/treadstone48/common/glcdfont.c"
diff --git a/keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c
new file mode 100644
index 0000000000..171e034556
--- /dev/null
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/keymap.c
@@ -0,0 +1,295 @@
+/* Copyright 2020 marksard
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+#include "../common/oled_helper.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 = 0,
+ _BASES,
+ _LOWER,
+ _LOWRS,
+ _RAISE,
+ _ADJUST,
+};
+
+enum custom_keycodes {
+ BASE = SAFE_RANGE,
+ BASES,
+ LOWER,
+ LOWRS,
+ RAISE,
+ ADJUST,
+ KANJI,
+ RGBRST
+};
+
+#define KC_TBSF LSFT_T(KC_TAB)
+#define KC_ALAP LALT_T(KC_APP)
+
+#define KC_JEQL LSFT(KC_MINS)
+#define KC_SFUC LSFT(KC_RO)
+#define KC_RSBR LSFT(KC_8)
+#define KC_REBR LSFT(KC_9)
+
+#define KC_ZSFT LSFT_T(KC_Z)
+#define KC_ESCT LCTL_T(KC_ESC)
+#define KC_TBAL LALT_T(KC_TAB)
+#define KC_11SF LSFT_T(KC_F11)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT_rs( \
+ // Treadstone48 Rhymestone
+ //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
+ 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_P7, KC_P8, KC_P9, KC_PSLS, KC_NLCK,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
+ KC_TBSF, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TAB,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PENT,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_ALAP, KC_LEFT, KC_DOWN, KC_RGHT, LOWER, KC_P0, KC_PDOT, KC_PPLS, KC_BSPC,\
+ //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
+ KC_DEL \
+ // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
+ ),
+
+ [_LOWER] = LAYOUT_rs( \
+ // Treadstone48 Rhymestone
+ //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC, KC_DEL, KC_A, KC_B, KC_C, KC_JYEN, KC_HASH,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
+ _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS, _______, KC_D, KC_E, KC_F, KC_PERC, KC_SFUC,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ _______, KC_F11, KC_F12, BASES, KANJI, KC_ENT, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_PGUP, KC_RSBR, KC_REBR, KC_RBRC, KC_QUOT, _______,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ _______, _______, _______, _______, KC_DEL, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END, _______, XXXXXXX, KC_COMM, KC_JEQL, KC_DEL,\
+ //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
+ _______ \
+ // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
+ ),
+
+ [_BASES] = LAYOUT_rs( \
+ // Treadstone48 Rhymestone
+ //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, KC_Q, KC_W, KC_E, KC_R, KC_T,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
+ KC_TBSF, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ZSFT, KC_X, KC_C, KC_V, KC_B,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_ALAP, KC_LEFT, KC_DOWN, KC_RGHT, KC_ESCT, KC_TBAL, KC_LGUI, LOWRS, KC_BSPC,\
+ //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
+ KC_DEL \
+ // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
+ ),
+
+ [_LOWRS] = LAYOUT_rs( \
+ // Treadstone48 Rhymestone
+ //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
+ _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ _______, KC_F11, KC_F12, BASE, KANJI, KC_ENT, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_PGUP, KC_11SF, KC_F12, BASE, KANJI, KC_ENT,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ _______, _______, _______, _______, KC_DEL, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_DEL,\
+ //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
+ _______ \
+ // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
+ ),
+
+ [_RAISE] = LAYOUT_rs( \
+ // Treadstone48 Rhymestone
+ //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_QUOT, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_RO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, KC_SLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
+ //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
+ _______ \
+ // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
+ ),
+
+ [_ADJUST] = LAYOUT_rs( \
+ // Treadstone48 Rhymestone
+ //,--------------------------------------------------------------------------------------------------------------------. --------------------------------------------.
+ XXXXXXX, RESET, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------| --------+--------+--------+--------+--------|
+ XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
+ //|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------| --------+--------+--------+--------+--------|
+ _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
+ //`--------------------------------------------------------------------------------------------------------------------' --------------------------------------------'
+ _______ \
+ // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
+ )
+};
+
+#define L_BASE _BASE
+#define L_BASES (1<<_BASES)
+#define L_LOWER (1<<_LOWER)
+#define L_LOWRS (1<<_LOWRS)
+#define L_RAISE (1<<_RAISE)
+#define L_ADJUST (1<<_ADJUST)
+#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER)
+
+#ifdef OLED_DRIVER_ENABLE
+#include
+#include
+
+typedef struct {
+ uint8_t state;
+ char name[8];
+}LAYER_DISPLAY_NAME;
+
+#define LAYER_DISPLAY_MAX 7
+const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = {
+ {L_BASE, "Base"},
+ {L_BASE + 1, "Base"},
+ {L_BASES, "BaseSpl"},
+ {L_LOWER, "Lower"},
+ {L_LOWRS, "LowrSpl"},
+ {L_RAISE, "Raise"},
+ {L_ADJUST_TRI, "Adjust"}
+};
+
+static inline const char* get_leyer_status(void) {
+
+ for (uint8_t i = 0; i < LAYER_DISPLAY_MAX; ++i) {
+ if (layer_state == 0 && layer_display_name[i].state == default_layer_state) {
+
+ return layer_display_name[i].name;
+ } else if (layer_state != 0 && layer_display_name[i].state == layer_state) {
+
+ return layer_display_name[i].name;
+ }
+ }
+
+ return "?";
+}
+
+static char layer_status_buf[24] = "Layer state ready.\n";
+static inline void update_keymap_status(void) {
+
+ snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "OS:%s Layer:%s\n",
+ keymap_config.swap_lalt_lgui? "win" : "mac", get_leyer_status());
+}
+
+static inline void render_keymap_status(void) {
+
+ oled_write(layer_status_buf, false);
+}
+
+#define UPDATE_KEYMAP_STATUS() update_keymap_status()
+
+static inline void render_status(void) {
+
+ UPDATE_LED_STATUS();
+ RENDER_LED_STATUS();
+ render_keymap_status();
+ UPDATE_LOCK_STATUS();
+ RENDER_LOCK_STATUS();
+ RENDER_KEY_STATUS();
+}
+
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+
+// if (is_keyboard_master())
+// return OLED_ROTATION_180; // flips the display 180 degrees if offhand
+ return rotation;
+}
+
+void oled_task_user(void) {
+
+ if (is_keyboard_master()) {
+ render_status();
+ } else {
+ render_logo();
+ }
+}
+
+#else
+
+#define UPDATE_KEYMAP_STATUS()
+
+#endif
+
+void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
+
+ pressed ? layer_on(layer1) : layer_off(layer1);
+ IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
+}
+
+int RGB_current_mode;
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ UPDATE_KEY_STATUS(keycode, record);
+
+ bool result = false;
+ switch (keycode) {
+ case LOWER:
+ update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
+ break;
+ case RAISE:
+ update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
+ break;
+ case BASE:
+ if (record->event.pressed) {
+ default_layer_set(L_BASE);
+ }
+ break;
+ case BASES:
+ if (record->event.pressed) {
+ default_layer_set(L_BASES);
+ }
+ break;
+ case LOWRS:
+ update_change_layer(record->event.pressed, _LOWRS, _RAISE, _ADJUST);
+ break;
+ case KANJI:
+ if (record->event.pressed) {
+ if (keymap_config.swap_lalt_lgui == false) {
+ register_code(KC_LANG2);
+ } else {
+ SEND_STRING(SS_LALT("`"));
+ }
+ } else {
+ unregister_code(KC_LANG2);
+ }
+ break;
+ #ifdef RGBLIGHT_ENABLE
+ case RGBRST:
+ if (record->event.pressed) {
+ eeconfig_update_rgblight_default();
+ rgblight_enable();
+ }
+ break;
+ #endif
+ default:
+ result = true;
+ break;
+ }
+
+ UPDATE_KEYMAP_STATUS();
+ return result;
+}
diff --git a/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme.md b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme.md
new file mode 100644
index 0000000000..796df6c4cd
--- /dev/null
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme.md
@@ -0,0 +1,5 @@
+# The like jis type keyboard keymap for treadstone48
+
+## Description
+
+## How to use
diff --git a/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme_jp.md b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme_jp.md
new file mode 100644
index 0000000000..81c5e017ec
--- /dev/null
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/readme_jp.md
@@ -0,0 +1,79 @@
+# JISキーボードライクなキーマップ
+
+## 概要
+
+ デフォルトキーマップの記号類をJISライクな配置に揃えなおしたものです。
+ オプションのRhymestone用のマップを使用するために拡張しています。RhymestoneのpromicroにもTreadstone48のキーマップを入れてください。
+ Rhymestoneは基本的には左手側を使うことを想定していますが、右手側を使用する場合はconfig.hの以下の行を有効にしてください。
+
+```#define RHYMESTONE_RIGHTHAND```
+
+## キーマップの見かた
+
+qmk_firmware\tmk_core\common\keycode.h
+に基本的なキーコードがあります。また、Keymap.cの上部にカスタムしたKC_で始まるものを登録しています。
+キーマップに書くときは「KC_」を省略して書いています。
+例:KC_A → A
+
+Leyer Tap、Mod Tap、Tap DanceというQMKの機能を使っています。
+
+Layer Tapはタップで指定したキー、長押しで指定したレイヤーに移動します。
+例:LT(RAISE, KC_V) → タップでV、長押しでRAISEレイヤー移動
+
+Mod Tapはタップで視程したキー、長押しで視程したレイヤーに移動します。
+例:LSFT_T(KC_Z) → タップでZ、長押しで左シフト
+
+もう少し詳しい内容についてはQMK Documentをお読みいただくかネットを検索すれば情報が載っていますので別途検索してみてください。
+
+## 機能
+
+ QWERTYキーマップをベースにしていて、LowerレイヤーとRaiseレイヤーに他のキーを配置しています。
+ LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
+ マウスキーの割り当てがありますので、もし使用したい場合はrules.mkでMOUSEKEY_ENABLE = yesにしてmakeすると使用することができます。
+
+## 48キー目について
+
+ このキーボードはEnterキーの上の2Uキーを1Ux2個にして使用する事が出来るようになっています。 使用する場合はキーマップの書き換えが必要です。
+
+ 各レイヤーの最下段の
+
+```c
+ XXXXXXX \
+ // ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
+```
+
+ のXXXXXに任意のキーを入れることでPの右隣のキーとして動作するようになっています。その右隣りに従来のキーが配置されています。
+
+## OS切り替え方法
+
+ Adjustレイヤーにあります。LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
+
+- KNRM: QMKのノーマル状態です。macだと正常に使える(はず)です
+- KSWP: ノーマル状態のままWindowsで使用するとALTキーとGUI(win)キーが逆ですので、それを入れ換えます。Windowsユーザーはこちらのモードにしてください
+
+## NUMPADモードについて
+
+ Lower + DLNPキーを一度押下するとNumpadモードになります。通常モードに戻す場合はDLBSキーを押下してください。
+
+## IME切り替え方法
+
+ Winの場合、LowerレイヤーにKANJIキー(半角/全角 漢字)がありますので、Lower+KANJIで切り替えてください。
+
+## ソフトウェアリセットについて
+
+ キーボードにはハードウェアのリセットボタンが付いていますが、ソフトウェアリセットをかけられます。
+ LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来、AdjustレイヤーのRSTを押下するとリセットがかかります。
+
+## LEDの点灯切り替え方法
+
+ Adjustレイヤーにあります。LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
+
+- RGBRST: LEDのリセット
+- RGB_TOG: LEDのON/OFF切り替え
+- RGB_MOD: LEDの光り方の変更
+- RGB_HUI: Hue+ 色合いを変更
+- RGB_HUD: Hue- 色合いを変更
+- RGB_SAI: Saturation+ 色の濃さを変更
+- RGB_SAD: Saturation- 色の濃さを変更
+- RGB_VAI: Value+ 明るさを変更
+- RGB_VAD: Value- 明るさを変更
diff --git a/keyboards/treadstone48/rev1/keymaps/like_jis_rs/rules.mk b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/rules.mk
new file mode 100644
index 0000000000..7380582ca1
--- /dev/null
+++ b/keyboards/treadstone48/rev1/keymaps/like_jis_rs/rules.mk
@@ -0,0 +1,11 @@
+MOUSEKEY_ENABLE = yes # Mouse keys
+
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+OLED_DRIVER_ENABLE = yes
+LTO_ENABLE = yes
+
+# If you use connection the Rhymestone, please enable RS_EXTRA_LED
+OPT_DEFS += -DRS_EXTRA_LED
+
+# If you want to change the display of OLED, you need to change here
+SRC += ./common/oled_helper.c \
diff --git a/keyboards/treadstone48/rev2/config.h b/keyboards/treadstone48/rev2/config.h
new file mode 100644
index 0000000000..fb5011a0be
--- /dev/null
+++ b/keyboards/treadstone48/rev2/config.h
@@ -0,0 +1,250 @@
+/*
+Copyright 2020 marksard
+
+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"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0xDFA3
+#define DEVICE_VER 0x0020
+#define MANUFACTURER marksard
+#define PRODUCT treadstone48
+#define DESCRIPTION Symmetrical staggered 48 Keys Keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 6
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3, B2, B6 }
+#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+// #define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+#define RGB_DI_PIN D3
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 12
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_VAL_STEP 8
+ #define RGBLIGHT_LIMIT_VAL 220 /* The maximum brightness level */
+ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+ #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+ #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+ #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+ #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+/*== customize breathing effect ==*/
+ /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+ #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+ /*==== use exp() and sin() ====*/
+ #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+ #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* 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
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/treadstone48/rev2/info.json b/keyboards/treadstone48/rev2/info.json
new file mode 100644
index 0000000000..df9e7591b5
--- /dev/null
+++ b/keyboards/treadstone48/rev2/info.json
@@ -0,0 +1,261 @@
+{
+ "keyboard_name": "Treadstone48",
+ "url": "https://github.com/marksard/Keyboards",
+ "maintainer": "marksard",
+ "width": 14.75,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_base": {
+ "layout": [
+ {
+ "label": "Esc",
+ "x": 1,
+ "y": 0
+ },
+ {
+ "label": "Q",
+ "x": 2.25,
+ "y": 0
+ },
+ {
+ "label": "W",
+ "x": 3.25,
+ "y": 0
+ },
+ {
+ "label": "E",
+ "x": 4.25,
+ "y": 0
+ },
+ {
+ "label": "R",
+ "x": 5.25,
+ "y": 0
+ },
+ {
+ "label": "T",
+ "x": 6.25,
+ "y": 0
+ },
+ {
+ "label": "Y",
+ "x": 7.75,
+ "y": 0
+ },
+ {
+ "label": "U",
+ "x": 8.75,
+ "y": 0
+ },
+ {
+ "label": "I",
+ "x": 9.75,
+ "y": 0
+ },
+ {
+ "label": "O",
+ "x": 10.75,
+ "y": 0
+ },
+ {
+ "label": "P",
+ "x": 11.75,
+ "y": 0
+ },
+ {
+ "label": "-",
+ "x": 13.75,
+ "y": 0
+ },
+ {
+ "label": "Tab",
+ "x": 1,
+ "y": 1,
+ "w": 1.5
+ },
+ {
+ "label": "A",
+ "x": 2.5,
+ "y": 1
+ },
+ {
+ "label": "S",
+ "x": 3.5,
+ "y": 1
+ },
+ {
+ "label": "D",
+ "x": 4.5,
+ "y": 1
+ },
+ {
+ "label": "F",
+ "x": 5.5,
+ "y": 1
+ },
+ {
+ "label": "G",
+ "x": 6.5,
+ "y": 1
+ },
+ {
+ "label": "H",
+ "x": 7.5,
+ "y": 1
+ },
+ {
+ "label": "J",
+ "x": 8.5,
+ "y": 1
+ },
+ {
+ "label": "K",
+ "x": 9.5,
+ "y": 1
+ },
+ {
+ "label": "L",
+ "x": 10.5,
+ "y": 1
+ },
+ {
+ "label": ":",
+ "x": 11.5,
+ "y": 1
+ },
+ {
+ "label": "Enter",
+ "x": 12.5,
+ "y": 1,
+ "w": 2.25
+ },
+ {
+ "label": "Shift",
+ "x": 0,
+ "y": 2,
+ "w": 2.25
+ },
+ {
+ "label": "Z",
+ "x": 2.25,
+ "y": 2
+ },
+ {
+ "label": "X",
+ "x": 3.25,
+ "y": 2
+ },
+ {
+ "label": "C",
+ "x": 4.25,
+ "y": 2
+ },
+ {
+ "label": "V",
+ "x": 5.25,
+ "y": 2
+ },
+ {
+ "label": "B",
+ "x": 6.25,
+ "y": 2
+ },
+ {
+ "label": "N",
+ "x": 7.75,
+ "y": 2
+ },
+ {
+ "label": "M",
+ "x": 8.75,
+ "y": 2
+ },
+ {
+ "label": "<",
+ "x": 9.75,
+ "y": 2
+ },
+ {
+ "label": ">",
+ "x": 10.75,
+ "y": 2
+ },
+ {
+ "label": "?",
+ "x": 11.75,
+ "y": 2
+ },
+ {
+ "label": "\u2191",
+ "x": 12.75,
+ "y": 2
+ },
+ {
+ "label": "Ctrl",
+ "x": 0.75,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "Win",
+ "x": 2,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "Alt",
+ "x": 3.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "Lower",
+ "x": 4.5,
+ "y": 3
+ },
+ {
+ "label": "BackSpace",
+ "x": 5.5,
+ "y": 3,
+ "w": 2
+ },
+ {
+ "x": 7.5,
+ "y": 3,
+ "w": 2
+ },
+ {
+ "label": "Raise",
+ "x":