Skip to content

Commit

Permalink
Added 4by3 keyboard (#6547)
Browse files Browse the repository at this point in the history
* 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 <[email protected]>

* Added comments to 4by3 and changed info.json

* Update keyboards/4by3/4by3.h

Co-Authored-By: fauxpark <[email protected]>
  • Loading branch information
2 people authored and noroadsleft committed Aug 23, 2019
1 parent ae44ec9 commit e0f91f3
Show file tree
Hide file tree
Showing 13 changed files with 227 additions and 0 deletions.
1 change: 1 addition & 0 deletions keyboards/4by3/4by3.c
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "4by3.h"
70 changes: 70 additions & 0 deletions keyboards/4by3/4by3.h
Original file line number Diff line number Diff line change
@@ -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 changes: 26 additions & 0 deletions keyboards/4by3/config.h
Original file line number Diff line number Diff line change
@@ -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 changes: 41 additions & 0 deletions keyboards/4by3/info.json
Original file line number Diff line number Diff line change
@@ -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 changes: 12 additions & 0 deletions keyboards/4by3/keymaps/arrowpad/keymap.c
Original file line number Diff line number Diff line change
@@ -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 changes: 9 additions & 0 deletions keyboards/4by3/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -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 changes: 3 additions & 0 deletions keyboards/4by3/keymaps/default/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# The default 4by3 keymap

![The default 4by3 keymap](https://i.imgur.com/E4OlQAs.png)
9 changes: 9 additions & 0 deletions keyboards/4by3/keymaps/funcpad_horizontal/keymap.c
Original file line number Diff line number Diff line change
@@ -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 changes: 12 additions & 0 deletions keyboards/4by3/keymaps/funcpad_vertical/keymap.c
Original file line number Diff line number Diff line change
@@ -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 changes: 9 additions & 0 deletions keyboards/4by3/keymaps/numpad_horizontal/keymap.c
Original file line number Diff line number Diff line change
@@ -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 changes: 12 additions & 0 deletions keyboards/4by3/keymaps/numpad_vertical/keymap.c
Original file line number Diff line number Diff line change
@@ -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 changes: 15 additions & 0 deletions keyboards/4by3/readme.md
Original file line number Diff line number Diff line change
@@ -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 changes: 8 additions & 0 deletions keyboards/4by3/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
MCU = atmega32u4
BOOTLOADER = caterina

EXTRAKEY_ENABLE = yes
NKRO_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes

0 comments on commit e0f91f3

Please sign in to comment.