[Keyboard] Added a new handwired 2x3,2x4,2x5 keyboard called the Stream_cheap (#9871)
* Added a new handwired 2x3,2x4,2x5 keyboard called the Stream_cheap stream cheap is a diy version of the El Gato Stream deck minus the LCD keys but you can always get relegendable keycaps to change the icon if you want * added missing commas in info.json files * update config to change pin definition * changed keymap.c for 2x4 was trying to add macros and multi key commands to the keymap, i added 2 ctrl commands that have more than one key i.e. ctrl-k-c (visual studio comment hot key) and i added a test string to see how type out a string with the press of a button * testing more changes to the keymap to the 2x5 * Update keyboards/handwired/stream_cheap/2x3/2x3.c * Update keyboards/handwired/stream_cheap/2x3/config.h * Update keyboards/handwired/stream_cheap/2x3/rules.mk * Update keyboards/handwired/stream_cheap/2x5/config.h * Update keyboards/handwired/stream_cheap/2x5/info.json * Update keyboards/handwired/stream_cheap/2x3/config.h * Update keyboards/handwired/stream_cheap/2x3/info.json * Update keyboards/handwired/stream_cheap/2x4/config.h * Update keyboards/handwired/stream_cheap/2x4/info.json * Update keyboards/handwired/stream_cheap/2x4/keymaps/default/keymap.c * Update keyboards/handwired/stream_cheap/2x5/info.json * Update keyboards/handwired/stream_cheap/2x5/config.h * Update keyboards/handwired/stream_cheap/2x5/rules.mk * Update keyboards/handwired/stream_cheap/2x4/2x4.c * Update keyboards/handwired/stream_cheap/2x4/config.h * Update keyboards/handwired/stream_cheap/2x4/info.json * Update keyboards/handwired/stream_cheap/2x5/2x5.c * Update keyboards/handwired/stream_cheap/2x4/rules.mk * removed file as per request of user zvecr * removed line in rules.mk for 2x5 * Update keyboards/handwired/stream_cheap/2x5/keymaps/default/keymap.c * Apply suggestions from code review changes suggested in code review
This commit is contained in:
		
							
								
								
									
										1
									
								
								keyboards/handwired/stream_cheap/2x3/2x3.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/handwired/stream_cheap/2x3/2x3.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					#include "2x3.h"
 | 
				
			||||||
							
								
								
									
										11
									
								
								keyboards/handwired/stream_cheap/2x3/2x3.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								keyboards/handwired/stream_cheap/2x3/2x3.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "quantum.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LAYOUT_ortho_2x3( \
 | 
				
			||||||
 | 
						K00, K01, K02, \
 | 
				
			||||||
 | 
						K03, K04, K05  \
 | 
				
			||||||
 | 
					) { \
 | 
				
			||||||
 | 
						{ K00,   K01,   K02}, \
 | 
				
			||||||
 | 
						{ K03,   K04,   K05}  \
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										27
									
								
								keyboards/handwired/stream_cheap/2x3/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								keyboards/handwired/stream_cheap/2x3/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "config_common.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USB Device descriptor parameter */
 | 
				
			||||||
 | 
					#define VENDOR_ID       0xFEED
 | 
				
			||||||
 | 
					#define PRODUCT_ID      0x1213
 | 
				
			||||||
 | 
					#define DEVICE_VER      0x0001
 | 
				
			||||||
 | 
					#define MANUFACTURER    Kyle Hart
 | 
				
			||||||
 | 
					#define PRODUCT         Stream Cheap 2x3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* key matrix size */
 | 
				
			||||||
 | 
					#define MATRIX_ROWS 2
 | 
				
			||||||
 | 
					#define MATRIX_COLS 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* define direct pins used */
 | 
				
			||||||
 | 
					#define DIRECT_PINS { { D1,C6,B4}, { D0,D4,D7} }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Set 0 if debouncing isn't needed */
 | 
				
			||||||
 | 
					#define DEBOUNCE 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
 | 
				
			||||||
							
								
								
									
										19
									
								
								keyboards/handwired/stream_cheap/2x3/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								keyboards/handwired/stream_cheap/2x3/info.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "keyboard_name": "Stream Cheap 2x3",
 | 
				
			||||||
 | 
					    "url": "https://www.thingiverse.com/thing:4497991",
 | 
				
			||||||
 | 
					    "maintainer": "qmk",
 | 
				
			||||||
 | 
					    "width": 3,
 | 
				
			||||||
 | 
					    "height": 2,
 | 
				
			||||||
 | 
					    "layouts": {
 | 
				
			||||||
 | 
					        "LAYOUT_ortho_2x3": {
 | 
				
			||||||
 | 
					            "layout": [
 | 
				
			||||||
 | 
					                {"label":"K00", "x":0, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K01", "x":1, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K02", "x":2, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K03", "x":0, "y":1},
 | 
				
			||||||
 | 
					                {"label":"K04", "x":1, "y":1},
 | 
				
			||||||
 | 
					                {"label":"K05", "x":2, "y":1}
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum layers {
 | 
				
			||||||
 | 
					  NORMAL_LAYER = 0,
 | 
				
			||||||
 | 
					   SECOND_LAYER
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [NORMAL_LAYER] = LAYOUT_ortho_2x3(
 | 
				
			||||||
 | 
					        KC_1, KC_2, KC_3,
 | 
				
			||||||
 | 
					        KC_4, KC_5, TO(1)
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    [SECOND_LAYER] = LAYOUT_ortho_2x3(
 | 
				
			||||||
 | 
					        KC_A, KC_B, KC_C,
 | 
				
			||||||
 | 
					        KC_D, KC_E, TO(0)
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										22
									
								
								keyboards/handwired/stream_cheap/2x3/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								keyboards/handwired/stream_cheap/2x3/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# MCU name
 | 
				
			||||||
 | 
					MCU = atmega32u4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Bootloader selection
 | 
				
			||||||
 | 
					BOOTLOADER = caterina
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build Options
 | 
				
			||||||
 | 
					#   change yes to no to disable
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
				
			||||||
 | 
					MOUSEKEY_ENABLE = yes       # Mouse keys
 | 
				
			||||||
 | 
					EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
				
			||||||
 | 
					CONSOLE_ENABLE = no         # Console for debug
 | 
				
			||||||
 | 
					COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
				
			||||||
 | 
					# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
				
			||||||
 | 
					# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
				
			||||||
 | 
					NKRO_ENABLE = yes           # USB Nkey Rollover
 | 
				
			||||||
 | 
					BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
				
			||||||
 | 
					RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
				
			||||||
 | 
					BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
				
			||||||
 | 
					AUDIO_ENABLE = no           # Audio output
 | 
				
			||||||
							
								
								
									
										1
									
								
								keyboards/handwired/stream_cheap/2x4/2x4.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/handwired/stream_cheap/2x4/2x4.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					#include "2x4.h"
 | 
				
			||||||
							
								
								
									
										12
									
								
								keyboards/handwired/stream_cheap/2x4/2x4.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								keyboards/handwired/stream_cheap/2x4/2x4.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "quantum.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LAYOUT_ortho_2x4(\
 | 
				
			||||||
 | 
						K00, K01, K02,K03, \
 | 
				
			||||||
 | 
						K04, K05, K06,K07  \
 | 
				
			||||||
 | 
					) \
 | 
				
			||||||
 | 
					  { \
 | 
				
			||||||
 | 
					    { K00,K01,K02,K03}, \
 | 
				
			||||||
 | 
						{ K04,K05,K06,K07}  \
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										27
									
								
								keyboards/handwired/stream_cheap/2x4/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								keyboards/handwired/stream_cheap/2x4/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "config_common.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USB Device descriptor parameter */
 | 
				
			||||||
 | 
					#define VENDOR_ID       0xFEED
 | 
				
			||||||
 | 
					#define PRODUCT_ID      0x1214
 | 
				
			||||||
 | 
					#define DEVICE_VER      0x0001
 | 
				
			||||||
 | 
					#define MANUFACTURER    Kyle Hart
 | 
				
			||||||
 | 
					#define PRODUCT         Stream Cheap 2x4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* key matrix size */
 | 
				
			||||||
 | 
					#define MATRIX_ROWS 2
 | 
				
			||||||
 | 
					#define MATRIX_COLS 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* define direct pins used */
 | 
				
			||||||
 | 
					#define DIRECT_PINS { { B5,D7,C6,D1}, { B4,E6,D4,D0} }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Set 0 if debouncing isn't needed */
 | 
				
			||||||
 | 
					#define DEBOUNCE 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
 | 
				
			||||||
							
								
								
									
										21
									
								
								keyboards/handwired/stream_cheap/2x4/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								keyboards/handwired/stream_cheap/2x4/info.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "keyboard_name": "Stream Cheap 2x4",
 | 
				
			||||||
 | 
					    "url": "https://www.thingiverse.com/thing:4497991",
 | 
				
			||||||
 | 
					    "maintainer": "qmk",
 | 
				
			||||||
 | 
					    "width": 4,
 | 
				
			||||||
 | 
					    "height": 2,
 | 
				
			||||||
 | 
					    "layouts": {
 | 
				
			||||||
 | 
					        "LAYOUT_ortho_2x4": {
 | 
				
			||||||
 | 
					            "layout": [
 | 
				
			||||||
 | 
					                {"label":"K00", "x":0, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K01", "x":1, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K02", "x":2, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K03", "x":3, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K04", "x":0, "y":1},
 | 
				
			||||||
 | 
					                {"label":"K05", "x":1, "y":1},
 | 
				
			||||||
 | 
					                {"label":"K06", "x":2, "y":1},
 | 
				
			||||||
 | 
					                {"label":"K07", "x":3, "y":1}
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum layers {
 | 
				
			||||||
 | 
					  NORMAL_LAYER = 0,
 | 
				
			||||||
 | 
					  SECOND_LAYER
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum custom_keycode {
 | 
				
			||||||
 | 
					    VS_COMMENT = SAFE_RANGE,
 | 
				
			||||||
 | 
					    VS_UNCOMMENT,
 | 
				
			||||||
 | 
					    TST_STRING
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
				
			||||||
 | 
					    switch (keycode) {
 | 
				
			||||||
 | 
					        case VS_COMMENT:
 | 
				
			||||||
 | 
					            if (record->event.pressed) {
 | 
				
			||||||
 | 
					                SEND_STRING(SS_LCTL("kc"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case VS_UNCOMMENT:
 | 
				
			||||||
 | 
					            if (record->event.pressed) {
 | 
				
			||||||
 | 
					                SEND_STRING(SS_LCTL("ku"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case TST_STRING:
 | 
				
			||||||
 | 
					            if (record->event.pressed) {
 | 
				
			||||||
 | 
					                SEND_STRING("12345\n");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					    [NORMAL_LAYER] = LAYOUT_ortho_2x4(
 | 
				
			||||||
 | 
					        VS_COMMENT, VS_UNCOMMENT, TST_STRING, KC_4,
 | 
				
			||||||
 | 
					        KC_5,       KC_6,         KC_7,       TO(1)
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    [SECOND_LAYER] = LAYOUT_ortho_2x4(
 | 
				
			||||||
 | 
					        KC_A, KC_B, KC_C, KC_D,
 | 
				
			||||||
 | 
					        KC_E, KC_F, KC_G, TO(0)
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										22
									
								
								keyboards/handwired/stream_cheap/2x4/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								keyboards/handwired/stream_cheap/2x4/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# MCU name
 | 
				
			||||||
 | 
					MCU = atmega32u4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Bootloader selection
 | 
				
			||||||
 | 
					BOOTLOADER = caterina
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build Options
 | 
				
			||||||
 | 
					#   change yes to no to disable
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
				
			||||||
 | 
					MOUSEKEY_ENABLE = yes       # Mouse keys
 | 
				
			||||||
 | 
					EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
				
			||||||
 | 
					CONSOLE_ENABLE = no         # Console for debug
 | 
				
			||||||
 | 
					COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
				
			||||||
 | 
					# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
				
			||||||
 | 
					# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
				
			||||||
 | 
					NKRO_ENABLE = yes           # USB Nkey Rollover
 | 
				
			||||||
 | 
					BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
				
			||||||
 | 
					RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
				
			||||||
 | 
					BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
				
			||||||
 | 
					AUDIO_ENABLE = no           # Audio output
 | 
				
			||||||
							
								
								
									
										1
									
								
								keyboards/handwired/stream_cheap/2x5/2x5.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/handwired/stream_cheap/2x5/2x5.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					#include "2x5.h"
 | 
				
			||||||
							
								
								
									
										11
									
								
								keyboards/handwired/stream_cheap/2x5/2x5.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								keyboards/handwired/stream_cheap/2x5/2x5.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "quantum.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LAYOUT_ortho_2x5( \
 | 
				
			||||||
 | 
						K00, K01, K02, K03, K04, \
 | 
				
			||||||
 | 
						K10, K11, K12, K13, K14  \
 | 
				
			||||||
 | 
					) { \
 | 
				
			||||||
 | 
						{ K00,   K01,   K02,   K03,   K04 }, \
 | 
				
			||||||
 | 
						{ K10,   K11,   K12,   K13,   K14 }  \
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										26
									
								
								keyboards/handwired/stream_cheap/2x5/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								keyboards/handwired/stream_cheap/2x5/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "config_common.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USB Device descriptor parameter */
 | 
				
			||||||
 | 
					#define VENDOR_ID       0xFEED
 | 
				
			||||||
 | 
					#define PRODUCT_ID      0x1215
 | 
				
			||||||
 | 
					#define DEVICE_VER      0x0001
 | 
				
			||||||
 | 
					#define MANUFACTURER    Kyle Hart
 | 
				
			||||||
 | 
					#define PRODUCT         Stream Cheap 2x5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* key matrix size */
 | 
				
			||||||
 | 
					#define MATRIX_ROWS 2
 | 
				
			||||||
 | 
					#define MATRIX_COLS 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* define direct pins used */
 | 
				
			||||||
 | 
					#define DIRECT_PINS { { D1,C6,B4,B5,B2}, { D0,D4,D7,E6,B6} }
 | 
				
			||||||
 | 
					//#define DIRECT_PINS { { D1, C6, B4, B6, D0}, { D7, D4, B2, B5, E6} }
 | 
				
			||||||
 | 
					/* Set 0 if debouncing isn't needed */
 | 
				
			||||||
 | 
					#define DEBOUNCE 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
 | 
				
			||||||
							
								
								
									
										23
									
								
								keyboards/handwired/stream_cheap/2x5/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/handwired/stream_cheap/2x5/info.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "keyboard_name": "Stream Cheap 2x5",
 | 
				
			||||||
 | 
					    "url": "https://www.thingiverse.com/thing:4497991",
 | 
				
			||||||
 | 
					    "maintainer": "qmk",
 | 
				
			||||||
 | 
					    "width": 5,
 | 
				
			||||||
 | 
					    "height": 2,
 | 
				
			||||||
 | 
					    "layouts": {
 | 
				
			||||||
 | 
					        "LAYOUT_ortho_2x5": {
 | 
				
			||||||
 | 
					            "layout": [
 | 
				
			||||||
 | 
					                {"label":"K00", "x":0, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K01", "x":1, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K02", "x":2, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K03", "x":3, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K04", "x":4, "y":0},
 | 
				
			||||||
 | 
					                {"label":"K10", "x":0, "y":1},
 | 
				
			||||||
 | 
					                {"label":"K11", "x":1, "y":1},
 | 
				
			||||||
 | 
					                {"label":"K12", "x":2, "y":1},
 | 
				
			||||||
 | 
					                {"label":"K13", "x":3, "y":1},
 | 
				
			||||||
 | 
					                {"label":"K14", "x":4, "y":1}
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,60 @@
 | 
				
			|||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum custom_keycode {
 | 
				
			||||||
 | 
					    VS_COMMENT = SAFE_RANGE,
 | 
				
			||||||
 | 
					    VS_UNCOMMENT,
 | 
				
			||||||
 | 
					    TST_STRING
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
				
			||||||
 | 
					    switch (keycode) {
 | 
				
			||||||
 | 
					        case VS_COMMENT:
 | 
				
			||||||
 | 
					            if (record->event.pressed) {
 | 
				
			||||||
 | 
					                SEND_STRING(SS_LCTL("kc"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case VS_UNCOMMENT:
 | 
				
			||||||
 | 
					            if (record->event.pressed) {
 | 
				
			||||||
 | 
					                SEND_STRING(SS_LCTL("ku"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case TST_STRING:
 | 
				
			||||||
 | 
					            if (record->event.pressed) {
 | 
				
			||||||
 | 
					                SEND_STRING("12345\n");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LOCK LGUI(KC_L)
 | 
				
			||||||
 | 
					#define CUT LCTL(KC_X)
 | 
				
			||||||
 | 
					#define COPY LCTL(KC_C)
 | 
				
			||||||
 | 
					#define PASTE LCTL(KC_V)
 | 
				
			||||||
 | 
					#define FIND LCTL(KC_F)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum layers {
 | 
				
			||||||
 | 
					  NORMAL_LAYER = 0,
 | 
				
			||||||
 | 
					  SECOND_LAYER
 | 
				
			||||||
 | 
					  // ,
 | 
				
			||||||
 | 
					  // THIRD_LAYER
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					    [NORMAL_LAYER] = LAYOUT_ortho_2x5(
 | 
				
			||||||
 | 
					        VS_COMMENT, VS_UNCOMMENT, LOCK, TST_STRING, KC_F5,
 | 
				
			||||||
 | 
					        KC_F9, KC_F10, KC_F11, KC_F12, TO(1)
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    [SECOND_LAYER] = LAYOUT_ortho_2x5(
 | 
				
			||||||
 | 
					        KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MSTP,
 | 
				
			||||||
 | 
					        CUT,     COPY,    PASTE,   FIND,    TO(0)
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    // ,
 | 
				
			||||||
 | 
					    // [THIRD_LAYER] = LAYOUT_ortho_2x5(
 | 
				
			||||||
 | 
					    //      KC_Q, KC_W, KC_E, KC_R, KC_T,
 | 
				
			||||||
 | 
					    //      KC_Y, KC_U, KC_L, KC_P, TO(0)
 | 
				
			||||||
 | 
					    // )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										22
									
								
								keyboards/handwired/stream_cheap/2x5/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								keyboards/handwired/stream_cheap/2x5/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# MCU name
 | 
				
			||||||
 | 
					MCU = atmega32u4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Bootloader selection
 | 
				
			||||||
 | 
					BOOTLOADER = caterina
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build Options
 | 
				
			||||||
 | 
					#   change yes to no to disable
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
				
			||||||
 | 
					MOUSEKEY_ENABLE = yes       # Mouse keys
 | 
				
			||||||
 | 
					EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
				
			||||||
 | 
					CONSOLE_ENABLE = no         # Console for debug
 | 
				
			||||||
 | 
					COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
				
			||||||
 | 
					# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
				
			||||||
 | 
					# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
				
			||||||
 | 
					NKRO_ENABLE = yes           # USB Nkey Rollover
 | 
				
			||||||
 | 
					BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
				
			||||||
 | 
					RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
				
			||||||
 | 
					BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
				
			||||||
 | 
					AUDIO_ENABLE = no           # Audio output
 | 
				
			||||||
							
								
								
									
										23
									
								
								keyboards/handwired/stream_cheap/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/handwired/stream_cheap/readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					# Stream Cheap
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					An ortholinear macropad, available in 2x3, 2x4, and 2x5 sizes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Hardware:
 | 
				
			||||||
 | 
					  * 3d printed switch plate
 | 
				
			||||||
 | 
					  * 6-10 key switches
 | 
				
			||||||
 | 
					  * 3d printed case
 | 
				
			||||||
 | 
					  * Handwired in Direct Pins mode (i.e. all switches share a common GND and are wired to their own pin)
 | 
				
			||||||
 | 
					  * Uses a Pro Micro
 | 
				
			||||||
 | 
					  * Includes a reset switch accessible by a hole on the bottom
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Keyboard Maintainer: [hartk1213](https://github.com/hartk1213)
 | 
				
			||||||
 | 
					* Hardware Supported: Pro Micro
 | 
				
			||||||
 | 
					* Hardware Availability: [Thingiverse](https://www.thingiverse.com/thing:4497991)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Make example for this keyboard (after setting up your build environment):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make handwired/stream_cheap/2x3:default
 | 
				
			||||||
 | 
					    make handwired/stream_cheap/2x4:default
 | 
				
			||||||
 | 
					    make handwired/stream_cheap/2x5: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).
 | 
				
			||||||
		Reference in New Issue
	
	Block a user