mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-25 01:47:10 +06:00
Added 4by3 keyboard (#6547)
* Added 4by3 keyboard * Added DEVICE_VER and DESCRIPTION * Removed F_CPU, F_USB, ARCH, and OPT_DEFS * Add 3 new LAYOUT macros for orientations and fixes * Apply suggestions from code review Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Added comments to 4by3 and changed info.json * Update keyboards/4by3/4by3.h Co-Authored-By: fauxpark <fauxpark@gmail.com>
This commit is contained in:
parent
ae44ec9820
commit
e0f91f37c4
1
keyboards/4by3/4by3.c
Normal file
1
keyboards/4by3/4by3.c
Normal file
|
@ -0,0 +1 @@
|
|||
#include "4by3.h"
|
70
keyboards/4by3/4by3.h
Normal file
70
keyboards/4by3/4by3.h
Normal file
|
@ -0,0 +1,70 @@
|
|||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* LAYOUT_horizontal
|
||||
* ┌───┐
|
||||
* │USB│
|
||||
* ├───┼───┬───┬───┐
|
||||
* │K00│K01│K02│K03│
|
||||
* ├───┼───┼───┼───┤
|
||||
* │K10│K11│K12│K13│
|
||||
* ├───┼───┼───┼───┤
|
||||
* │K20│K21│K22│K23│
|
||||
* └───┴───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_horizontal( \
|
||||
K00, K01, K02, K03, \
|
||||
K10, K11, K12, K13, \
|
||||
K20, K21, K22, K23 \
|
||||
) { \
|
||||
{ K00, K01, K02, K03 }, \
|
||||
{ K10, K11, K12, K13 }, \
|
||||
{ K20, K21, K22, K23 } \
|
||||
}
|
||||
|
||||
/* LAYOUT_vertical_right
|
||||
* ┌───┬───┬───┬───┐
|
||||
* │K00│K01│K03│USB│
|
||||
* ├───┼───┼───┬───┘
|
||||
* │K04│K05│K06│
|
||||
* ├───┼───┼───┤
|
||||
* │K07│K08│K09│
|
||||
* ├───┼───┼───┤
|
||||
* │K10│K11│K12│
|
||||
* └───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_vertical_right( \
|
||||
K20, K10, K00, \
|
||||
K21, K11, K01, \
|
||||
K22, K12, K02, \
|
||||
K23, K13, K03 \
|
||||
) { \
|
||||
{ K00, K01, K02, K03 }, \
|
||||
{ K10, K11, K12, K13 }, \
|
||||
{ K20, K21, K22, K23 } \
|
||||
}
|
||||
|
||||
/* LAYOUT_vertical_left
|
||||
* ┌───┬───┬───┐
|
||||
* │K00│K01│K03│
|
||||
* ├───┼───┼───┤
|
||||
* │K04│K05│K06│
|
||||
* ├───┼───┼───┤
|
||||
* │K07│K08│K09│
|
||||
* ┌───┼───┼───┼───┤
|
||||
* │USB│K10│K11│K12│
|
||||
* └───┴───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_vertical_left( \
|
||||
K03, K13, K23, \
|
||||
K02, K12, K22, \
|
||||
K01, K11, K21, \
|
||||
K00, K10, K20 \
|
||||
) { \
|
||||
{ K00, K01, K02, K03 }, \
|
||||
{ K10, K11, K12, K13 }, \
|
||||
{ K20, K21, K22, K23 } \
|
||||
}
|
||||
|
||||
#define LAYOUT LAYOUT_horizontal
|
26
keyboards/4by3/config.h
Normal file
26
keyboards/4by3/config.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xEEEE
|
||||
#define PRODUCT_ID 0x2019
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Elias Sjögreen
|
||||
#define PRODUCT 4by3
|
||||
#define DESCRIPTION A small 12 key keypad
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 3
|
||||
#define MATRIX_COLS 4
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { D1, D0, D4 }
|
||||
#define MATRIX_COL_PINS { C6, D7, E6, B4 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
41
keyboards/4by3/info.json
Normal file
41
keyboards/4by3/info.json
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"keyboard_name": "4by3",
|
||||
"url": "https://github.com/eliassjogreen/4by3",
|
||||
"maintainer": "eliassjogreen",
|
||||
"width": 4,
|
||||
"height": 3,
|
||||
"layouts": {
|
||||
"LAYOUT_horizontal": {
|
||||
"key_count": 12,
|
||||
"width": 4,
|
||||
"height": 3,
|
||||
"layout": [
|
||||
{ "x": 0, "y": 0 }, { "x": 1, "y": 0 }, { "x": 2, "y": 0 }, { "x": 3, "y": 0 },
|
||||
{ "x": 0, "y": 1 }, { "x": 1, "y": 1 }, { "x": 2, "y": 1 }, { "x": 3, "y": 1 },
|
||||
{ "x": 0, "y": 2 }, { "x": 1, "y": 2 }, { "x": 2, "y": 2 }, { "x": 3, "y": 2 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_vertical_right": {
|
||||
"key_count": 12,
|
||||
"width": 3,
|
||||
"height": 4,
|
||||
"layout": [
|
||||
{ "x": 0, "y": 0 }, { "x": 1, "y": 0 }, { "x": 2, "y": 0 },
|
||||
{ "x": 0, "y": 1 }, { "x": 1, "y": 1 }, { "x": 2, "y": 1 },
|
||||
{ "x": 0, "y": 2 }, { "x": 1, "y": 2 }, { "x": 2, "y": 2 },
|
||||
{ "x": 0, "y": 3 }, { "x": 1, "y": 3 }, { "x": 2, "y": 3 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_vertical_left": {
|
||||
"key_count": 12,
|
||||
"width": 3,
|
||||
"height": 4,
|
||||
"layout": [
|
||||
{ "x": 0, "y": 0 }, { "x": 1, "y": 0 }, { "x": 2, "y": 0 },
|
||||
{ "x": 0, "y": 1 }, { "x": 1, "y": 1 }, { "x": 2, "y": 1 },
|
||||
{ "x": 0, "y": 2 }, { "x": 1, "y": 2 }, { "x": 2, "y": 2 },
|
||||
{ "x": 0, "y": 3 }, { "x": 1, "y": 3 }, { "x": 2, "y": 3 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
12
keyboards/4by3/keymaps/arrowpad/keymap.c
Normal file
12
keyboards/4by3/keymaps/arrowpad/keymap.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Change 'LAYOUT_vertical_right' to 'LAYOUT_vertical_left'
|
||||
to change the side where the pro micro usb port is. */
|
||||
[0] = LAYOUT_vertical_right(
|
||||
KC_INS , KC_HOME , KC_PGUP ,
|
||||
KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_PSCR , KC_UP , KC_PAUS ,
|
||||
KC_LEFT , KC_DOWN , KC_RGHT
|
||||
)
|
||||
};
|
9
keyboards/4by3/keymaps/default/keymap.c
Normal file
9
keyboards/4by3/keymaps/default/keymap.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_horizontal(
|
||||
KC_VOLU , _______ , _______ , _______ ,
|
||||
KC_MUTE , KC_MPRV , KC_MPLY , KC_MNXT ,
|
||||
KC_VOLD , _______ , _______ , _______
|
||||
)
|
||||
};
|
3
keyboards/4by3/keymaps/default/readme.md
Normal file
3
keyboards/4by3/keymaps/default/readme.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# The default 4by3 keymap
|
||||
|
||||
![The default 4by3 keymap](https://i.imgur.com/E4OlQAs.png)
|
9
keyboards/4by3/keymaps/funcpad_horizontal/keymap.c
Normal file
9
keyboards/4by3/keymaps/funcpad_horizontal/keymap.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_horizontal(
|
||||
KC_F1 , KC_F2 , KC_F3 , KC_F4 ,
|
||||
KC_F5 , KC_F6 , KC_F7 , KC_F8 ,
|
||||
KC_F9 , KC_F10 , KC_F11 , KC_F12
|
||||
)
|
||||
};
|
12
keyboards/4by3/keymaps/funcpad_vertical/keymap.c
Normal file
12
keyboards/4by3/keymaps/funcpad_vertical/keymap.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Change 'LAYOUT_vertical_right' to 'LAYOUT_vertical_left'
|
||||
to change the side where the pro micro usb port is. */
|
||||
[0] = LAYOUT_vertical_right(
|
||||
KC_F1 , KC_F2 , KC_F3 ,
|
||||
KC_F4 , KC_F5 , KC_F6 ,
|
||||
KC_F7 , KC_F8 , KC_F9 ,
|
||||
KC_F10 , KC_F11 , KC_F12
|
||||
)
|
||||
};
|
9
keyboards/4by3/keymaps/numpad_horizontal/keymap.c
Normal file
9
keyboards/4by3/keymaps/numpad_horizontal/keymap.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_horizontal(
|
||||
KC_P1 , KC_P2 , KC_P3 , KC_P4 ,
|
||||
KC_P5 , KC_P6 , KC_P7 , KC_P8 ,
|
||||
KC_P9 , KC_P0 , KC_BSPC , KC_ENT
|
||||
),
|
||||
};
|
12
keyboards/4by3/keymaps/numpad_vertical/keymap.c
Normal file
12
keyboards/4by3/keymaps/numpad_vertical/keymap.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Change 'LAYOUT_vertical_right' to 'LAYOUT_vertical_left'
|
||||
to change the side where the pro micro usb port is. */
|
||||
[0] = LAYOUT_vertical_right(
|
||||
KC_P1 , KC_P2 , KC_P3 ,
|
||||
KC_P4 , KC_P5 , KC_P6 ,
|
||||
KC_P7 , KC_P8 , KC_P9 ,
|
||||
KC_BSPC , KC_P0 , KC_ENT
|
||||
),
|
||||
};
|
15
keyboards/4by3/readme.md
Normal file
15
keyboards/4by3/readme.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
# 4by3
|
||||
|
||||
![4by3](https://i.imgur.com/Ykb7evL.jpg)
|
||||
|
||||
A 12 key mechanical keypad.
|
||||
|
||||
Keyboard Maintainer: [eliassjogreen](https://github.com/eliassjogreen)
|
||||
Hardware Supported: 4by3
|
||||
Hardware Availability: [eliassjogreen/4by3](https://github.com/eliassjogreen/4by3)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 4by3: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).
|
8
keyboards/4by3/rules.mk
Normal file
8
keyboards/4by3/rules.mk
Normal file
|
@ -0,0 +1,8 @@
|
|||
MCU = atmega32u4
|
||||
BOOTLOADER = caterina
|
||||
|
||||
EXTRAKEY_ENABLE = yes
|
||||
NKRO_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
COMMAND_ENABLE = yes
|
||||
|
Loading…
Reference in New Issue
Block a user