[Keyboard] Add Shisaku keyboard (#17572)
parent
ca04babf3f
commit
d27a6bd629
|
@ -0,0 +1,37 @@
|
||||||
|
// Copyright 2022 Arturo Avila (@ADPenrose)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 8
|
||||||
|
#define MATRIX_COLS 7
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 { B2, B0, B1, D0, B4, D6, B3, D7 }
|
||||||
|
#define MATRIX_COL_PINS { D1, C3, C4, D4, C0, C1, C2 }
|
||||||
|
//#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
#define BOOTMAGIC_LITE_ROW 0
|
||||||
|
#define BOOTMAGIC_LITE_COLUMN 0
|
||||||
|
|
||||||
|
/* Solenoid pin */
|
||||||
|
#define SOLENOID_PIN C5
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "shisaku",
|
||||||
|
"url": "https://github.com/ADPenrose/shisaku_keeb",
|
||||||
|
"maintainer": "ADPenrose",
|
||||||
|
"usb": {
|
||||||
|
"vid": "0x4450",
|
||||||
|
"pid": "0x0003",
|
||||||
|
"device_version": "0.0.1"
|
||||||
|
},
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Esc", "x":1.25, "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":"Backspace", "x":12.75, "y":0, "w":1.5}, {"label":"Caps Lock", "x":0.5, "y":1, "w":1.75}, {"label":"A", "x":2.25, "y":1}, {"label":"S", "x":3.25, "y":1}, {"label":"D", "x":4.25, "y":1}, {"label":"F", "x":5.25, "y":1}, {"label":"G", "x":6.25, "y":1}, {"label":"H", "x":7.75, "y":1}, {"label":"J", "x":8.75, "y":1}, {"label":"K", "x":9.75, "y":1}, {"label":"L", "x":10.75, "y":1}, {"label":":", "x":11.75, "y":1}, {"label":"Enter", "x":12.75, "y":1, "w":1.75}, {"label":"Shift", "x":0, "y":2, "w":1.25}, {"label":"Fn", "x":1.25, "y":2}, {"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":"B", "x":7.75, "y":2}, {"label":"N", "x":8.75, "y":2}, {"label":"M", "x":9.75, "y":2}, {"label":"<", "x":10.75, "y":2}, {"label":">", "x":11.75, "y":2}, {"label":"Up", "x":12.75, "y":2}, {"label":"?", "x":13.75, "y":2, "w":1.25}, {"label":"Ctrl", "x":0, "y":3, "w":1.5}, {"label":"Win", "x":3, "y":3}, {"x":4, "y":3, "w":2.25}, {"label":"Alt", "x":6.25, "y":3}, {"x":7.75, "y":3, "w":2.75}, {"label":"Left", "x":11.75, "y":3}, {"label":"Down", "x":12.75, "y":3}, {"label":"Right", "x":13.75, "y":3}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
// Copyright 2022 Arturo Avila (@ADPenrose)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||||
|
KC_LSFT, MO(2), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||||
|
KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
# The default keymap for Shisaku
|
|
@ -0,0 +1,32 @@
|
||||||
|
// Copyright 2022 Arturo Avila (@ADPenrose)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||||
|
KC_LSFT, MO(2), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, HPT_TOG,
|
||||||
|
KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
# Solenoid keymap for Shisaku
|
|
@ -0,0 +1,4 @@
|
||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
HAPTIC_ENABLE = yes
|
||||||
|
HAPTIC_DRIVER += SOLENOID
|
|
@ -0,0 +1,32 @@
|
||||||
|
// Copyright 2022 Arturo Avila (@ADPenrose)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||||
|
KC_LSFT, MO(2), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||||
|
KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[2] = LAYOUT_all(
|
||||||
|
KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
# VIA keymap for Shisaku
|
|
@ -0,0 +1,2 @@
|
||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
|
@ -0,0 +1,29 @@
|
||||||
|
# Shisaku
|
||||||
|
|
||||||
|
![shisaku](https://i.imgur.com/42H1h1dh.jpg)
|
||||||
|
|
||||||
|
A 40% alice-like keyboard assembled only with THT components, including the option for a solenoid.
|
||||||
|
|
||||||
|
## General info
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Arturo Avila](https://github.com/ADPenrose)
|
||||||
|
* Hardware Supported: Shisaku v1 PCB
|
||||||
|
* Hardware Availability: [Arturo Avila](https://github.com/ADPenrose)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make adpenrose/shisaku:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make adpenrose/shisaku:default:flash
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
Enter the bootloader in 3 ways:
|
||||||
|
|
||||||
|
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||||
|
* **Physical reset button**: Hold down the button labeled "BOOT" and briefly press the button labeled "RESET" on the back of the PCB. To exit the bootloader mode, briefly press the button labeled "RESET" once more.
|
||||||
|
* **Keycode in layout**: Press the key mapped to "QK BOOT" if it is available
|
|
@ -0,0 +1,18 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega328p
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = usbasploader
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
|
@ -0,0 +1,4 @@
|
||||||
|
// Copyright 2022 Arturo Avila (@ADPenrose)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include "shisaku.h"
|
|
@ -0,0 +1,32 @@
|
||||||
|
// Copyright 2022 Arturo Avila (@ADPenrose)
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* This is a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define XXX KC_NO
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k10, k11, k12, k13, k14, \
|
||||||
|
k15, k16, k20, k21, k22, k23, k24, k25, k26, k30, k33, k34, \
|
||||||
|
k35, k40, k41, k42, k43, k44, k45, k50, k51, k52, k53, k54, k55, k60, \
|
||||||
|
k61, k62, k63, k64, k65, k70, k74, k75 \
|
||||||
|
) { \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06 }, \
|
||||||
|
{ k10, k11, k12, k13, k14, k15, k16 }, \
|
||||||
|
{ k20, k21, k22, k23, k24, k25, k26 }, \
|
||||||
|
{ k30, XXX, XXX, k33, k34, k35, XXX }, \
|
||||||
|
{ k40, k41, k42, k43, k44, k45, XXX }, \
|
||||||
|
{ k50, k51, k52, k53, k54, k55, XXX }, \
|
||||||
|
{ k60, k61, k62, k63, k64, k65, XXX }, \
|
||||||
|
{ k70, XXX, XXX, XXX, k74, k75, XXX } \
|
||||||
|
}
|
Loading…
Reference in New Issue