forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* base acr60 keyboard folder created * mitch acr60 keymap updates, documentation * latest keymap updates * slight modifications to layer switching
- Loading branch information
1 parent
eef94b0
commit 716ff76
Showing
7 changed files
with
533 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#include "acr60.h" | ||
#include "led.h" | ||
|
||
void matrix_init_kb(void) { | ||
// Keyboard start-up code goes here | ||
// Runs once when the firmware starts up | ||
matrix_init_user(); | ||
led_init_ports(); | ||
}; | ||
|
||
void matrix_scan_kb(void) { | ||
// Looping keyboard code goes here | ||
// This runs every cycle (a lot) | ||
matrix_scan_user(); | ||
}; | ||
|
||
void led_init_ports(void) { | ||
// Set caps lock LED pin as output | ||
DDRB |= (1 << 2); | ||
// Default to off | ||
PORTB |= (1 << 2); | ||
} | ||
|
||
void led_set_kb(uint8_t usb_led) { | ||
// Code for caps lock LED as reported by the OS | ||
// Set this per keymap, instead of globally | ||
led_set_user(usb_led); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
#ifndef ARC60_H | ||
#define ARC60_H | ||
|
||
#include "quantum.h" | ||
|
||
#define KEYMAP( \ | ||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ | ||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ | ||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ | ||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ | ||
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ | ||
) { \ | ||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ | ||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ | ||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ | ||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ | ||
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ | ||
} | ||
|
||
#define KEYMAP_HHKB( \ | ||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ | ||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ | ||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ | ||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ | ||
K401, K403, K406, K411, K413 \ | ||
) { \ | ||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ | ||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ | ||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ | ||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ | ||
{ KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, KC_NO, K411, KC_NO, K413, KC_NO } \ | ||
} | ||
|
||
#define KEYMAP_TRUE_HHKB( \ | ||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ | ||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ | ||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ | ||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ | ||
K401, K403, K406, K410, K411 \ | ||
) { \ | ||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ | ||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ | ||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ | ||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ | ||
{ KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, KC_NO, KC_NO } \ | ||
} | ||
|
||
#define KEYMAP_2_SHIFTS( \ | ||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ | ||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ | ||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ | ||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ | ||
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ | ||
) { \ | ||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ | ||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ | ||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ | ||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ | ||
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ | ||
} | ||
|
||
#define KEYMAP_DIRECTIONAL( \ | ||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ | ||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ | ||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ | ||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ | ||
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ | ||
) { \ | ||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ | ||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ | ||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ | ||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \ | ||
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ | ||
} | ||
|
||
/* Mitch's keymap, "MitchSplit": | ||
* Standard 60% base, split right shift, 3-split space, standard modifier row. | ||
* Split shift is 2.75u + 1.25u + 2.25u (total of 6.25u). Might not work with other orientations. | ||
*/ | ||
/* | ||
* ,-----------------------------------------------------------------------------------------. | ||
* |K000 |K001 |K002 |K003 |K004 |K005 |K006 |K007 |K008 |K009 |K010 |K011 |K012 | K014 | | ||
* |-----------------------------------------------------------------------------------------+ | ||
* | K100 |K102 |K103 |K104 |K105 |K106 |K107 |K108 |K109 |K110 |K111 |K112 |K113 | K114 | | ||
* |-----------------------------------------------------------------------------------------+ | ||
* | K200 |K202 |K203 |K204 |K205 |K206 |K207 |K208 |K209 |K210 |K211 |K212 | K213 | | ||
* |-----------------------------------------------------------------------------------------+ | ||
* | K300 |K302 |K303 |K304 |K305 |K306 |K307 |K308 |K309 |K310 |K311 | K313 |K314 | | ||
* |-----------------------------------------------------------------------------------------+ | ||
* | K400 | K401 | K403 | K404 | K406 | K408 | K410 | K411 | K413 | K414 | | ||
* `-----------------------------------------------------------------------------------------' | ||
*/ | ||
#define MITCHSPLIT( \ | ||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ | ||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ | ||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ | ||
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ | ||
K400, K401, K403, K404, K406, K408, K410, K411, K413, K414 \ | ||
) { \ | ||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \ | ||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ | ||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ | ||
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ | ||
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, KC_NO, K413, K414 } \ | ||
} | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
#ifndef CONFIG_H | ||
#define CONFIG_H | ||
|
||
#include "config_common.h" | ||
|
||
/* USB Device descriptor parameter */ | ||
#define VENDOR_ID 0xFEED | ||
#define PRODUCT_ID 0x2260 | ||
#define DEVICE_VER 0x0001 | ||
#define MANUFACTURER MechKeysCa | ||
#define PRODUCT ACR60 | ||
#define DESCRIPTION ACR60 Keyboard | ||
|
||
/* key matrix size */ | ||
#define MATRIX_ROWS 5 | ||
#define MATRIX_COLS 15 | ||
|
||
/* key matrix pins */ | ||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } | ||
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 } | ||
#define UNUSED_PINS | ||
|
||
/* COL2ROW or ROW2COL */ | ||
#define DIODE_DIRECTION COL2ROW | ||
|
||
/* number of backlight levels */ | ||
#define BACKLIGHT_PIN B6 | ||
#define BACKLIGHT_LEVELS 5 | ||
|
||
/* 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 | ||
|
||
/* 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 | ||
|
||
#define RGB_DI_PIN E2 | ||
#define RGBLIGHT_ANIMATIONS | ||
#define RGBLED_NUM 20 | ||
#define RGBLIGHT_HUE_STEP 8 | ||
#define RGBLIGHT_SAT_STEP 8 | ||
#define RGBLIGHT_VAL_STEP 8 | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
#include "acr60.h" | ||
|
||
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
|
||
/* | ||
* Default keymap with standard 60% layout. Split space possible but entirely optional with this layout, as this | ||
* layout covers all three split space keys as space keycodes. This also has alt right next to the space bar | ||
* on both sides (Windows keyboard layout), no right-side system/GUI key, and momentary layer switching on | ||
* the right modifiers into the 3rd (macro) and 2nd (function/sfx) layers, respectively. This also has the grave | ||
* accent key set up on the 2nd layer, although on the first layer it includes grave key (tilde) when shift is held down, | ||
* via the function actions code at the bottom. | ||
*/ | ||
KEYMAP( | ||
F(0), 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_NO, KC_BSPC, | ||
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_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, | ||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, | ||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), KC_NO, MO(1), KC_RCTL), | ||
|
||
KEYMAP( | ||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, | ||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
|
||
KEYMAP( | ||
KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
}; | ||
|
||
enum function_id { | ||
SHIFT_ESC, | ||
}; | ||
|
||
const uint16_t PROGMEM fn_actions[] = { | ||
[0] = ACTION_FUNCTION(SHIFT_ESC), | ||
}; | ||
|
||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
static uint8_t shift_esc_shift_mask; | ||
switch (id) { | ||
case SHIFT_ESC: | ||
shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; | ||
if (record->event.pressed) { | ||
if (shift_esc_shift_mask) { | ||
add_key(KC_GRV); | ||
send_keyboard_report(); | ||
} else { | ||
add_key(KC_ESC); | ||
send_keyboard_report(); | ||
} | ||
} else { | ||
if (shift_esc_shift_mask) { | ||
del_key(KC_GRV); | ||
send_keyboard_report(); | ||
} else { | ||
del_key(KC_ESC); | ||
send_keyboard_report(); | ||
} | ||
} | ||
break; | ||
} | ||
} |
Oops, something went wrong.