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>pull/6461/merge
							parent
							
								
									ae44ec9820
								
							
						
					
					
						commit
						e0f91f37c4
					
				| @ -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 | ||||
| 
 | ||||
|  | ||||
| @ -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 | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
					Loading…
					
					
				
		Reference in new issue
	
	 Elias
						Elias