mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-24 18:25:01 +06:00
Add Rorschach keyboard (#3532)
* Add Rorschach keyboard * Add info.json * Replace header guards with pragma once
This commit is contained in:
parent
76f3a10eec
commit
1c88e4663d
23
keyboards/rorschach/config.h
Normal file
23
keyboards/rorschach/config.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 Danny Nguyen <danny@keeb.io>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CONFIG_H
|
||||||
|
#define CONFIG_H
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
#endif // CONFIG_H
|
77
keyboards/rorschach/info.json
Normal file
77
keyboards/rorschach/info.json
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Rorschach",
|
||||||
|
"keyboard_folder": "rorschach",
|
||||||
|
"url": "https://keeb.io",
|
||||||
|
"maintainer": "nooges",
|
||||||
|
"width": 15,
|
||||||
|
"height": 6,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"key_count": 52,
|
||||||
|
"layout": [
|
||||||
|
{ "w": 1, "x": 0, "y": 0 },
|
||||||
|
{ "w": 1, "x": 1, "y": 0 },
|
||||||
|
{ "w": 1, "x": 2, "y": 0 },
|
||||||
|
{ "w": 1, "x": 3, "y": 0 },
|
||||||
|
{ "w": 1, "x": 4, "y": 0 },
|
||||||
|
{ "w": 1, "x": 5, "y": 0 },
|
||||||
|
|
||||||
|
{ "w": 1, "x": 9, "y": 0 },
|
||||||
|
{ "w": 1, "x": 10, "y": 0 },
|
||||||
|
{ "w": 1, "x": 11, "y": 0 },
|
||||||
|
{ "w": 1, "x": 12, "y": 0 },
|
||||||
|
{ "w": 1, "x": 13, "y": 0 },
|
||||||
|
{ "w": 1, "x": 14, "y": 0 },
|
||||||
|
|
||||||
|
{ "w": 1, "x": 0, "y": 1 },
|
||||||
|
{ "w": 1, "x": 1, "y": 1 },
|
||||||
|
{ "w": 1, "x": 2, "y": 1 },
|
||||||
|
{ "w": 1, "x": 3, "y": 1 },
|
||||||
|
{ "w": 1, "x": 4, "y": 1 },
|
||||||
|
{ "w": 1, "x": 5, "y": 1 },
|
||||||
|
|
||||||
|
{ "w": 1, "x": 9, "y": 1 },
|
||||||
|
{ "w": 1, "x": 10, "y": 1 },
|
||||||
|
{ "w": 1, "x": 11, "y": 1 },
|
||||||
|
{ "w": 1, "x": 12, "y": 1 },
|
||||||
|
{ "w": 1, "x": 13, "y": 1 },
|
||||||
|
{ "w": 1, "x": 14, "y": 1 },
|
||||||
|
|
||||||
|
{ "w": 1, "x": 0, "y": 2 },
|
||||||
|
{ "w": 1, "x": 1, "y": 2 },
|
||||||
|
{ "w": 1, "x": 2, "y": 2 },
|
||||||
|
{ "w": 1, "x": 3, "y": 2 },
|
||||||
|
{ "w": 1, "x": 4, "y": 2 },
|
||||||
|
{ "w": 1, "x": 5, "y": 2 },
|
||||||
|
|
||||||
|
{ "w": 1, "x": 9, "y": 2 },
|
||||||
|
{ "w": 1, "x": 10, "y": 2 },
|
||||||
|
{ "w": 1, "x": 11, "y": 2 },
|
||||||
|
{ "w": 1, "x": 12, "y": 2 },
|
||||||
|
{ "w": 1, "x": 13, "y": 2 },
|
||||||
|
{ "w": 1, "x": 14, "y": 2 },
|
||||||
|
|
||||||
|
{ "w": 1, "x": 0, "y": 3 },
|
||||||
|
{ "w": 1, "x": 1, "y": 3 },
|
||||||
|
{ "w": 1, "x": 2, "y": 3 },
|
||||||
|
{ "w": 1, "x": 3, "y": 3 },
|
||||||
|
{ "w": 1, "x": 4, "y": 3 },
|
||||||
|
{ "w": 1, "x": 5, "y": 3 },
|
||||||
|
|
||||||
|
{ "w": 1, "x": 9, "y": 3 },
|
||||||
|
{ "w": 1, "x": 10, "y": 3 },
|
||||||
|
{ "w": 1, "x": 11, "y": 3 },
|
||||||
|
{ "w": 1, "x": 12, "y": 3 },
|
||||||
|
{ "w": 1, "x": 13, "y": 3 },
|
||||||
|
{ "w": 1, "x": 14, "y": 3 },
|
||||||
|
|
||||||
|
{ "w": 1, "x": 5.5, "y": 4 },
|
||||||
|
{ "w": 1, "x": 6, "y": 5 },
|
||||||
|
|
||||||
|
{ "w": 1, "x": 8, "y": 5 },
|
||||||
|
{ "w": 1, "x": 8.5, "y": 4 }
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
27
keyboards/rorschach/keymaps/default/config.h
Normal file
27
keyboards/rorschach/keymaps/default/config.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 Danny Nguyen <danny@keeb.io>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* Use I2C or Serial, not both */
|
||||||
|
#define USE_SERIAL
|
||||||
|
// #define USE_I2C
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
#define MASTER_LEFT
|
||||||
|
// #define MASTER_RIGHT
|
||||||
|
// #define EE_HANDS
|
38
keyboards/rorschach/keymaps/default/keymap.c
Normal file
38
keyboards/rorschach/keymaps/default/keymap.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
extern keymap_config_t keymap_config;
|
||||||
|
|
||||||
|
#define _QWERTY 0
|
||||||
|
#define _LOWER 1
|
||||||
|
#define _RAISE 2
|
||||||
|
#define _ADJUST 16
|
||||||
|
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||||
|
KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
|
||||||
|
KC_PGUP, KC_HOME, KC_END , KC_PGDN
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
BL_STEP, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||||
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE,
|
||||||
|
RESET, _______, RGB_HUD, RGB_SAD, RGB_VAD, KC_LCBR, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_SLSH, _______,
|
||||||
|
KC_GRV, _______, _______, _______, _______, KC_DEL, _______, _______, KC_P0, KC_PDOT, _______, _______,
|
||||||
|
_______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||||
|
KC_DEL, KC_MPRV, KC_MNXT, KC_VOLU, _______, KC_UNDS, KC_EQL, KC_F1, KC_F2, KC_F3, KC_F4, KC_BSLS,
|
||||||
|
KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, _______, KC_MINS, KC_PLUS, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_F10, KC_F11, KC_F12, _______,
|
||||||
|
_______, _______, _______, _______
|
||||||
|
),
|
||||||
|
};
|
20
keyboards/rorschach/readme.md
Normal file
20
keyboards/rorschach/readme.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Rorschach
|
||||||
|
=========
|
||||||
|
|
||||||
|
A split ortholinear 4x6 keyboard with 2 additional thumb keys and sold by Keebio. [More info at Keebio](https://keeb.io).
|
||||||
|
|
||||||
|
Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
|
||||||
|
Hardware Supported: Pro Micro
|
||||||
|
Hardware Availability: [Keebio](https://keeb.io)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make rorschach/rev1:default
|
||||||
|
|
||||||
|
Example of flashing this keyboard:
|
||||||
|
|
||||||
|
make rorschach/rev1:default:avrdude
|
||||||
|
|
||||||
|
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
||||||
|
|
||||||
|
A build guide for this keyboard can be found here: [Iris Build Guide](https://docs.keeb.io/iris-build-guide.html)
|
64
keyboards/rorschach/rev1/config.h
Normal file
64
keyboards/rorschach/rev1/config.h
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 Danny Nguyen <danny@keeb.io>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_CONFIG_H
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xCEEB
|
||||||
|
#define PRODUCT_ID 0x1246
|
||||||
|
#define DEVICE_VER 0x0100
|
||||||
|
#define MANUFACTURER Keebio
|
||||||
|
#define PRODUCT Rorschach Keyboard
|
||||||
|
#define DESCRIPTION Split 45 percent ortholinear keyboard
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
// Rows are doubled-up
|
||||||
|
#define MATRIX_ROWS 10
|
||||||
|
#define MATRIX_COLS 6
|
||||||
|
|
||||||
|
// wiring of each half
|
||||||
|
#define MATRIX_ROW_PINS { D7, E6, B4, D2, D4 }
|
||||||
|
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCING_DELAY 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
|
||||||
|
|
||||||
|
/* key combination for command */
|
||||||
|
#define IS_COMMAND() ( \
|
||||||
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
|
)
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B5
|
||||||
|
#define BACKLIGHT_LEVELS 5
|
||||||
|
|
||||||
|
/* WS2812 RGB LED */
|
||||||
|
#define RGB_DI_PIN D3
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLED_NUM 12
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
14
keyboards/rorschach/rev1/rev1.c
Normal file
14
keyboards/rorschach/rev1/rev1.c
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#include "rev1.h"
|
||||||
|
|
||||||
|
void matrix_init_kb(void) {
|
||||||
|
|
||||||
|
// // green led on
|
||||||
|
// DDRD |= (1<<5);
|
||||||
|
// PORTD &= ~(1<<5);
|
||||||
|
|
||||||
|
// // orange led on
|
||||||
|
// DDRB |= (1<<0);
|
||||||
|
// PORTB &= ~(1<<0);
|
||||||
|
|
||||||
|
matrix_init_user();
|
||||||
|
};
|
37
keyboards/rorschach/rev1/rev1.h
Normal file
37
keyboards/rorschach/rev1/rev1.h
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "rorschach.h"
|
||||||
|
|
||||||
|
//void promicro_bootloader_jmp(bool program);
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef USE_I2C
|
||||||
|
#include <stddef.h>
|
||||||
|
#ifdef __AVR__
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//void promicro_bootloader_jmp(bool program);
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
||||||
|
L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
|
||||||
|
LT1, LT2, RT2, RT1 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L00, L01, L02, L03, L04, L05 }, \
|
||||||
|
{ L10, L11, L12, L13, L14, L15 }, \
|
||||||
|
{ L20, L21, L22, L23, L24, L25 }, \
|
||||||
|
{ L30, L31, L32, L33, L34, L35 }, \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, LT1, LT2 }, \
|
||||||
|
{ R05, R04, R03, R02, R01, R00 }, \
|
||||||
|
{ R15, R14, R13, R12, R11, R10 }, \
|
||||||
|
{ R25, R24, R23, R22, R21, R20 }, \
|
||||||
|
{ R35, R34, R33, R32, R31, R30 }, \
|
||||||
|
{ KC_NO, KC_NO, KC_NO, KC_NO, RT1, RT2 } \
|
||||||
|
}
|
1
keyboards/rorschach/rev1/rules.mk
Normal file
1
keyboards/rorschach/rev1/rules.mk
Normal file
@ -0,0 +1 @@
|
|||||||
|
BACKLIGHT_ENABLE = yes
|
1
keyboards/rorschach/rorschach.c
Normal file
1
keyboards/rorschach/rorschach.c
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "rorschach.h"
|
23
keyboards/rorschach/rorschach.h
Normal file
23
keyboards/rorschach/rorschach.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef KEYBOARD_rorschach_rev1
|
||||||
|
#include "rev1.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
// Used to create a keymap using only KC_ prefixed keys
|
||||||
|
#define LAYOUT_kc( \
|
||||||
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
||||||
|
L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
|
||||||
|
LT1, LT2, RT2, RT1 \
|
||||||
|
) \
|
||||||
|
LAYOUT( \
|
||||||
|
KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
|
||||||
|
KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
|
||||||
|
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
|
||||||
|
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, \
|
||||||
|
KC_##LT1, KC_##LT2, KC_##RT2, KC_##RT1 \
|
||||||
|
)
|
26
keyboards/rorschach/rules.mk
Normal file
26
keyboards/rorschach/rules.mk
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
F_CPU = 16000000
|
||||||
|
ARCH = AVR8
|
||||||
|
F_USB = $(F_CPU)
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||||
|
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||||
|
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 = yes # 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. Do not enable this with audio at the same time.
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
|
||||||
|
SPLIT_KEYBOARD = yes
|
||||||
|
|
||||||
|
DEFAULT_FOLDER = rorschach/rev1
|
Loading…
Reference in New Issue
Block a user