diff options
| -rw-r--r-- | keyboards/z150_blackheart/config.h | 52 | ||||
| -rw-r--r-- | keyboards/z150_blackheart/keymaps/default/keymap.c | 69 | ||||
| -rw-r--r-- | keyboards/z150_blackheart/readme.md | 14 | ||||
| -rw-r--r-- | keyboards/z150_blackheart/rules.mk | 58 | ||||
| -rw-r--r-- | keyboards/z150_blackheart/z150_blackheart.c | 1 | ||||
| -rw-r--r-- | keyboards/z150_blackheart/z150_blackheart.h | 34 | 
6 files changed, 228 insertions, 0 deletions
| diff --git a/keyboards/z150_blackheart/config.h b/keyboards/z150_blackheart/config.h new file mode 100644 index 0000000000..d2fce9aeef --- /dev/null +++ b/keyboards/z150_blackheart/config.h @@ -0,0 +1,52 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID       0xFEED +#define PRODUCT_ID      0x6060 +#define DEVICE_VER      0x0001 +#define MANUFACTURER    blindassassin111 +#define PRODUCT         Z-150 PCB +#define DESCRIPTION     Replacement for Zenith Z-150 PCB + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 20 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { C3, C2, C1, C0, E1 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D4, D5, D7, E0, C7, C6, C5, C4, F0, F1, F2, F3, F4, F5, F6, F7 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 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 + +/* force n-key rollover*/ +#define FORCE_NKRO + +/* key combination for command */ +#define IS_COMMAND() ( \ +    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + + +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 0 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif
\ No newline at end of file diff --git a/keyboards/z150_blackheart/keymaps/default/keymap.c b/keyboards/z150_blackheart/keymaps/default/keymap.c new file mode 100644 index 0000000000..e93802052a --- /dev/null +++ b/keyboards/z150_blackheart/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +	LAYOUT( +		KC_F1, 	KC_F2,  	KC_ESC,  KC_1,   KC_2, 	KC_3,    KC_4, 	KC_5, 	KC_6, 	KC_7, 	KC_8, 	KC_9,  KC_0, 	KC_MINS, KC_EQL,  KC_BSPC, 		KC_NLCK, 	KC_SLCK, 	MO(1),  +		KC_F3, 	KC_F4,  	KC_TAB,  KC_Q,   KC_W, 	KC_E,    KC_R, 	KC_T, 	KC_Y, 	KC_U, 	KC_I, 	KC_O,  KC_P, 	KC_LBRC, KC_RBRC, KC_ENT,		KC_P7,   KC_P8,   KC_P9, 	KC_PAST, +		KC_F5, 	KC_F6,  	KC_LCTRL,KC_A,   KC_S, 	KC_D,    KC_F, 	KC_G, 	KC_H, 	KC_J, 	KC_K, 	KC_L,  KC_SCLN, KC_QUOT,   						KC_P4, 	 KC_P5,   KC_P6, 	KC_PMNS, +		KC_F7, 	KC_F8,  	KC_LSFT, KC_Z,   KC_X, 	KC_C,    KC_V, 	KC_B, 	KC_N, 	KC_M, 	KC_COMM,KC_DOT,KC_SLSH, KC_RSFT, KC_BSLS, 				KC_P1,   KC_P2,   KC_P3,    KC_PPLS, +		KC_F9, 	KC_F10, 	KC_LALT, KC_GRV, 							KC_SPC, 					 		 				 KC_CAPS, 					KC_P0,   KC_PDOT +		), + +	LAYOUT( +		_______, _______, 	 RESET,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 		_______, 	_______,  _______,  +		_______, _______, 	_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 		_______, _______, _______, _______, +		_______, _______, 	_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 				 		_______, _______, _______, _______, +		_______, _______, 	_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 		 		_______, _______, _______, _______, +		_______, _______, 	_______, _______, 								_______, 										_______,				 				_______,  	_______ +		), + +	LAYOUT_z150_tkl( +		KC_F1, 	KC_F2, 		KC_ESC,  KC_1, 	  KC_2,   KC_3, 	 KC_4, 	KC_5, 	KC_6, KC_7, KC_8, 	 KC_9, 	 KC_0, 	  KC_MINS, KC_EQL, 	KC_BSPC, 		KC_INS,  KC_HOME, KC_PGUP,  +		KC_F3, 	KC_F4, 		KC_TAB,  KC_Q, 	  KC_W,   KC_E, 	 KC_R, 	KC_T, 	KC_Y, KC_U, KC_I, 	 KC_O, 	 KC_P, 	  KC_LBRC, KC_RBRC, KC_BSLS, 		KC_DEL,  KC_END,  KC_PGDN,  +		KC_F5, 	KC_F6, 		KC_CAPS, KC_A, 	  KC_S,   KC_D, 	 KC_F, 	KC_G, 	KC_H, KC_J, KC_K, 	 KC_L, 	 KC_SCLN, KC_QUOT, KC_ENT, 			 		XXXXXXX, XXXXXXX, XXXXXXX,  +		KC_F7, 	KC_F8, 		KC_LSFT, KC_BSLS, KC_Z,   KC_X,      KC_C, 	KC_V, 	KC_B, KC_N, KC_M,    KC_COMM,KC_DOT,  KC_SLSH, KC_RSFT, MO(1), 			XXXXXXX, KC_UP,   XXXXXXX,  +		KC_F9, 	KC_F10,		KC_LCTL, KC_LGUI, KC_LALT,		 		KC_SPC, 							 KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, 			KC_LEFT, KC_DOWN, KC_RGHT +		), + +	LAYOUT_z150_tkl( +		_______, _______, 	 RESET,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 			_______, _______, _______,  +		_______, _______, 	_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 			_______, _______, _______,  +		_______, _______, 	_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 					_______, _______, _______,  +		_______, _______, 	_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 					_______, _______, _______,  +		_______, _______, 	_______, _______, _______, _______, 		_______,                            		_______, _______, _______, _______, 			_______, _______, _______ +		), +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +	return true; +} + +void led_set_user(uint8_t usb_led) { +  DDRB |= (1 << 0); +  DDRE |= (1 << 6) | (1 << 7); + +  if (usb_led & (1 << USB_LED_NUM_LOCK)) { +    PORTE |= (1 << 7); +  } else { +    PORTE &= ~(1 << 7); +  } + +  if (usb_led & (1 << USB_LED_CAPS_LOCK)) { +    PORTB |= (1 << 0); +  } else { +    PORTB &= ~(1 << 0); +  } + +  if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { +    PORTE |= (1 << 6); +  } else { +    PORTE &= ~(1 << 6); +  } +}
\ No newline at end of file diff --git a/keyboards/z150_blackheart/readme.md b/keyboards/z150_blackheart/readme.md new file mode 100644 index 0000000000..5e87b6c8f3 --- /dev/null +++ b/keyboards/z150_blackheart/readme.md @@ -0,0 +1,14 @@ +Z-150 Blackheart PCB +=== + +A replacement PCB for Zenith Z-150 keyboards. + +Keyboard Maintainer: QMK Community and blindassassin111   +Hardware Supported: Z-150 blackheart PCB   +Hardware Availability: https://deskthority.net/group-buys-f50/programmable-vintage-board-pcbs-omnikey-at101-and-z-150-t19325.html + +Make example for this keyboard (after setting up your build environment): + +    make z150_blackheart: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). diff --git a/keyboards/z150_blackheart/rules.mk b/keyboards/z150_blackheart/rules.mk new file mode 100644 index 0000000000..b258bf35fd --- /dev/null +++ b/keyboards/z150_blackheart/rules.mk @@ -0,0 +1,58 @@ +# MCU name +MCU = at90usb1286 + +# Processor frequency. +#     This will define a symbol, F_CPU, in all source code files equal to the +#     processor frequency in Hz. You can then use this symbol in your source code to +#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done +#     automatically to create a 32-bit value in your source code. +# +#     This will be an integer division of F_USB below, as it is sourced by +#     F_USB after it has run through any CPU prescalers. Note that this value +#     does not *change* the processor frequency - it should merely be updated to +#     reflect the processor speed set externally so that the code can use accurate +#     software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +#     This will define a symbol, F_USB, in all source code files equal to the +#     input clock frequency (before any prescaling is performed) in Hz. This value may +#     differ from F_CPU if prescaling is used on the latter, and is required as the +#     raw input clock is fed directly to the PLL sections of the AVR for high speed +#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +#     at the end, this will be done automatically to create a 32-bit value in your +#     source code. +# +#     If no clock division is performed on the input clock inside the AVR (via the +#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Bootloader selection +BOOTLOADER = halfkay + +# Boot Section Size in *bytes* +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +#   comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes	# Mouse keys(+4700) +EXTRAKEY_ENABLE = yes	# Audio control and System control(+450) +CONSOLE_ENABLE = no	# Console for debug(+400) +COMMAND_ENABLE = no    # Commands for debug and configuration +SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes		# USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no  # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = no
\ No newline at end of file diff --git a/keyboards/z150_blackheart/z150_blackheart.c b/keyboards/z150_blackheart/z150_blackheart.c new file mode 100644 index 0000000000..10f388cf62 --- /dev/null +++ b/keyboards/z150_blackheart/z150_blackheart.c @@ -0,0 +1 @@ +#include "z150_blackheart.h" diff --git a/keyboards/z150_blackheart/z150_blackheart.h b/keyboards/z150_blackheart/z150_blackheart.h new file mode 100644 index 0000000000..baf187fd2d --- /dev/null +++ b/keyboards/z150_blackheart/z150_blackheart.h @@ -0,0 +1,34 @@ +#ifndef z150_blackheart_H +#define z150_blackheart_H + +#include "quantum.h" + +#define LAYOUT( \ +	K000, K001, 	K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, 	K016, 	 K017, K019, \ +	K100, K101, 	K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, 	K116, K117, K118, K119, \ +	K200, K201, 	K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213,       			K215, K216, K217, K218, \ +	K300, K301, 	K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, 			K315, K316, K317, K318, \ +	K400, K401, 	K402, K403, 			      K407,                          			   K414,	   		K415,	   K417 \ +) { \ +	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015,  K016,  K017,  KC_NO, K019 }, \ +	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115,  K116,  K117,  K118,  K119 }, \ +	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  KC_NO, K215,  K216,  K217,  K218,  KC_NO }, \ +	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  K314,  K315,  K316,  K317,  K318,  KC_NO }, \ +	{ K400,  K401,  K402,  K403,  KC_NO, KC_NO, KC_NO, K407,  KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,  K414,  K415, KC_NO, K417,  KC_NO, KC_NO }  \ +} + +#define LAYOUT_z150_tkl( \ +	K000, K001, 	K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015,       K017, K018, K019, \ +	K100, K101, 	K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115,       K117, K118, K119, \ +	K200, K201, 	K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214,       	  K216, K217, K218, \ +	K300, K301, 	K302, K405, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314,       K316, K317, K318, \ +	K400, K401, 	K402, K403, K404, 	          K407,                         K412, K413, K414, K415, 	  K416, K417, K418  \ +) { \ +	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015,  KC_NO, K017,  K018,  K019 }, \ +	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114,  K115,  KC_NO, K117,  K118,  K119 }, \ +	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214,  KC_NO, K216,  K217,  K218,  KC_NO }, \ +	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  K314,  KC_NO, K316,  K317,  K318,  KC_NO }, \ +	{ K400,  K401,  K402,  K403,  K404,  K405,  KC_NO, K407,  KC_NO, KC_NO, KC_NO, KC_NO, K412,  K413,  K414,  K415,  K416,  K417,  K418,  KC_NO }  \ +} + +#endif
\ No newline at end of file | 
