* 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>pull/6601/head
@ -0,0 +1 @@ | |||||
#include "4by3.h" |
@ -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 |
@ -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 |
@ -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 } | |||||
] | |||||
} | |||||
} | |||||
} |
@ -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 | |||||
) | |||||
}; |
@ -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 , _______ , _______ , _______ | |||||
) | |||||
}; |
@ -0,0 +1,3 @@ | |||||
# The default 4by3 keymap | |||||
![The default 4by3 keymap](https://i.imgur.com/E4OlQAs.png) |
@ -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 | |||||
) | |||||
}; |
@ -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 | |||||
) | |||||
}; |
@ -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 | |||||
), | |||||
}; |
@ -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 | |||||
), | |||||
}; |
@ -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). |
@ -0,0 +1,8 @@ | |||||
MCU = atmega32u4 | |||||
BOOTLOADER = caterina | |||||
EXTRAKEY_ENABLE = yes | |||||
NKRO_ENABLE = yes | |||||
CONSOLE_ENABLE = yes | |||||
COMMAND_ENABLE = yes | |||||