Skip to content

Commit

Permalink
handwired macro pad 4x4
Browse files Browse the repository at this point in the history
  • Loading branch information
villeramassana committed Sep 16, 2023
1 parent 3ebafad commit 6d1f06a
Show file tree
Hide file tree
Showing 8 changed files with 403 additions and 0 deletions.
48 changes: 48 additions & 0 deletions keyboards/handwired/illera16/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"manufacturer": "y",
"keyboard_name": "illera16",
"maintainer": "villeramassana",
"bootloader": "caterina",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["D4", "C6", "D7", "E6"],
"rows": ["F4", "F5", "F6", "F7"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [0, 1], "x": 1, "y": 0 },
{ "matrix": [0, 2], "x": 2, "y": 0 },
{ "matrix": [0, 3], "x": 3, "y": 0 },
{ "matrix": [1, 0], "x": 0, "y": 1 },
{ "matrix": [1, 1], "x": 1, "y": 1 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
{ "matrix": [1, 3], "x": 3, "y": 1 },
{ "matrix": [2, 0], "x": 0, "y": 2 },
{ "matrix": [2, 1], "x": 1, "y": 2 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
{ "matrix": [2, 3], "x": 3, "y": 2 },
{ "matrix": [3, 0], "x": 0, "y": 3 },
{ "matrix": [3, 1], "x": 1, "y": 3 },
{ "matrix": [3, 2], "x": 2, "y": 3 },
{ "matrix": [3, 3], "x": 3, "y": 3 }
]
}
}
}
124 changes: 124 additions & 0 deletions keyboards/handwired/illera16/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

#define _BASE 0
#define _CAPA1 1
#define _CAPA2 2
#define _CAPA3 3
#define _CAPA4 4
#define _CAPA5 5

layer_state_t layer_state_set_user(layer_state_t state);

void keyboard_post_init_user(void) {
rgblight_enable_noeeprom();
layer_state_set_user(layer_state);
}

layer_state_t layer_state_set_user(layer_state_t state) {
uint8_t layer = biton32(state);
switch (layer) {
case _CAPA1:
rgblight_sethsv_noeeprom(HSV_YELLOW);
break;

case _CAPA2:
rgblight_sethsv_noeeprom(HSV_RED);
break;

case _CAPA3:
rgblight_sethsv_noeeprom(HSV_WHITE);
break;

case _CAPA4:
rgblight_sethsv_noeeprom(HSV_PURPLE);
break;

case _CAPA5:
rgblight_sethsv_noeeprom(HSV_CORAL);
break;

default:
rgblight_sethsv_noeeprom(HSV_BLUE); // MI COLOR
break;
}

return state;
}


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┐
* │ 7 │ 8 │ 9 │ / │
* ├───┼───┼───┼───┤
* │ 4 │ 5 │ 6 │ * │
* ├───┼───┼───┼───┤
* │ 1 │ 2 │ 3 │ - │
* ├───┼───┼───┼───┤
* │ 0 │ . │Ent│ + │
* └───┴───┴───┴───┘
*/
[0] = LAYOUT_ortho_4x4( /* CAPAS BASE */
LT(1, KC_7), KC_8, KC_9, KC_SLASH,
KC_4, KC_5, KC_6, KC_PAST,
KC_1, KC_2, KC_3, KC_PMNS,
KC_0, KC_PDOT, KC_PENT, KC_PPLS
),
[1] = LAYOUT_ortho_4x4( /* CAPAS */
_______, TG(5), _______, _______,
TG(2), _______, _______, _______,
TG(3), _______, _______, _______,
TG(4), _______, _______, _______
),
[2] = LAYOUT_ortho_4x4( /* CAPA2 */
TG(2), KC_2, KC_2, KC_2,
KC_2, KC_2, KC_2, KC_2,
KC_2, KC_2, KC_2, KC_2,
KC_2, KC_2, KC_2, KC_2
),
[3] = LAYOUT_ortho_4x4( /* CAPA3 */
TG(3), KC_3, KC_3, KC_3,
KC_3, KC_3, KC_3, KC_3,
KC_3, KC_3, KC_3, KC_3,
KC_3, KC_3, KC_3, KC_3
),
/* MOUSE
* ,-------------------------------------------------.
* | | | SCROLL UP | X |
* |-----------+-----------+------------+------------|
* | BUTTON 5 |LEFT CLICK | UP |RIGHT CLICK |
* |-----------+-----------+------------+------------|
* | BUTTON 4 | LEFT | DOWN | RIGHT |
* |-----------+-----------+------------+------=-----|
* | BUTTON 3 |SCROLL LEFT|SCROLL DOWN |SCROLL RIGHT|
* `-------------------------------------------------'
*/
[4] = LAYOUT_ortho_4x4(
TG(4), _______, KC_WH_U, _______,
KC_BTN5, KC_BTN1, KC_MS_U, KC_BTN2,
KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R,
KC_BTN3, KC_WH_L, KC_WH_D, KC_WH_R
),
/* NAV
* ,-----------------------.
* | INS |PGUP | TAB |PRSCR|
* |-----+-----+-----+-----|
* | DEL |PGDN |VOLD |VOLU |
* |-----+-----+-----+-----|
* |HOME | UP | END | |
* |-----+-----+-----+-----|
* |LEFT |DOWN |RIGHT|ENTER|
* `---------------------- '
*/
[5] = LAYOUT_ortho_4x4( /* NAV CLUSTER */
TG(5), KC_PGUP, KC_TAB, KC_PSCR,
KC_DEL, KC_PGDN, KC_VOLD, KC_VOLU,
KC_HOME, KC_UP, KC_END, _______,
KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT
),

};

40 changes: 40 additions & 0 deletions keyboards/handwired/illera16/keymaps/vial/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// Copyright 2023 y (@villeramassana)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/

/* disable debug print */
//#define NO_DEBUG

/* disable print */
//#define NO_PRINT

/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//Vial

#define VIAL_KEYBOARD_UID {0xFD, 0XC4, 0xE0, 0x12, 0x93, 0x1C, 0x2B, 0x9A}
#define VIAL_UNLOCK_COMBO_ROWS { 0,0 }
#define VIAL_UNLOCK_COMBO_COLS { 0,1 }


#define RGB_DI_PIN D0
#define RGBLED_NUM 6
#define RGBLIGHT_LAYERS

/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5

#define ENCODERS_PAD_A { B5, B4}
#define ENCODERS_PAD_B { B6, B2}
#define ENCODER_RESOLUTION 2

#define MIDI_BASIC

131 changes: 131 additions & 0 deletions keyboards/handwired/illera16/keymaps/vial/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

#define _BASE 0
#define _CAPA1 1
#define _CAPA2 2
#define _CAPA3 3
#define _CAPA4 4


layer_state_t layer_state_set_user(layer_state_t state);

void keyboard_post_init_user(void) {
rgblight_enable_noeeprom();
layer_state_set_user(layer_state);
}

layer_state_t layer_state_set_user(layer_state_t state) {
uint8_t layer = biton32(state);
switch (layer) {
case _CAPA1:
rgblight_sethsv_noeeprom(HSV_PURPLE);
break;

case _CAPA2:
rgblight_sethsv_noeeprom(HSV_RED);
break;

case _CAPA3:
rgblight_sethsv_noeeprom(HSV_GREEN);
break;

case _CAPA4:
rgblight_sethsv_noeeprom(HSV_YELLOW);
break;

default:
rgblight_sethsv_noeeprom(HSV_BLUE); // MI COLOR
break;
}

return state;
}


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┐
* │ 7 │ 8 │ 9 │ / │
* ├───┼───┼───┼───┤
* │ 4 │ 5 │ 6 │ * │
* ├───┼───┼───┼───┤
* │ 1 │ 2 │ 3 │ - │
* ├───┼───┼───┼───┤
* │ 0 │ . │Ent│ + │
* └───┴───┴───┴───┘
*/
[0] = LAYOUT_ortho_4x4( /* CAPAS BASE */
LT(1, KC_7), KC_8, KC_9, KC_SLASH,
KC_4, KC_5, KC_6, KC_PAST,
KC_1, KC_2, KC_3, KC_PMNS,
KC_0, KC_PDOT, KC_PENT, KC_PPLS
),
[1] = LAYOUT_ortho_4x4( /* CAPAS */
_______, TG(5), _______, _______,
TG(2), _______, _______, _______,
TG(3), _______, _______, _______,
TG(4), _______, _______, _______
),
[2] = LAYOUT_ortho_4x4( /* CAPA2 */
TG(2), KC_2, KC_2, KC_2,
KC_2, KC_2, KC_2, KC_2,
KC_2, KC_2, KC_2, KC_2,
KC_2, KC_2, KC_2, KC_2
),
[3] = LAYOUT_ortho_4x4( /* CAPA3 */
TG(3), KC_3, KC_3, KC_3,
KC_3, KC_3, KC_3, KC_3,
KC_3, KC_3, KC_3, KC_3,
KC_3, KC_3, KC_3, KC_3
),
/* MOUSE
* ,-------------------------------------------------.
* | | | SCROLL UP | X |
* |-----------+-----------+------------+------------|
* | BUTTON 5 |LEFT CLICK | UP |RIGHT CLICK |
* |-----------+-----------+------------+------------|
* | BUTTON 4 | LEFT | DOWN | RIGHT |
* |-----------+-----------+------------+------=-----|
* | BUTTON 3 |SCROLL LEFT|SCROLL DOWN |SCROLL RIGHT|
* `-------------------------------------------------'
*/
[4] = LAYOUT_ortho_4x4(
TG(4), _______, KC_WH_U, _______,
KC_BTN5, KC_BTN1, KC_MS_U, KC_BTN2,
KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R,
KC_BTN3, KC_WH_L, KC_WH_D, KC_WH_R
),

};
/*
* ROTARY ENCODER
*/

#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_BASE] = {
ENCODER_CCW_CW(KC_VOLD, KC_VOLU),
ENCODER_CCW_CW(KC_MS_DOWN, KC_MS_UP)
},
[1] = {
ENCODER_CCW_CW(KC_WH_D, KC_WH_U),
ENCODER_CCW_CW(KC_MS_DOWN, KC_MS_UP)
},
[2] = {
ENCODER_CCW_CW(RGB_VAD, RGB_VAI),
ENCODER_CCW_CW(KC_MS_DOWN, KC_MS_UP)
},
[3] = {
ENCODER_CCW_CW(KC_VOLD, KC_VOLU),
ENCODER_CCW_CW(KC_MS_DOWN, KC_MS_UP)
},
[4] = {
ENCODER_CCW_CW(KC_VOLD, KC_VOLU),
ENCODER_CCW_CW(KC_MS_DOWN, KC_MS_UP)
},
};
#endif

10 changes: 10 additions & 0 deletions keyboards/handwired/illera16/keymaps/vial/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
LTO_ENABLE = yes
VIA_ENABLE = yes
VIAL_ENABLE = yes
TAP_DANCE_ENABLE = yes
KEY_OVERRIDE_ENABLE = no
COMBO_ENABLE = no
QMK_SETTINGS = no
ENCODER_ENABLE = yes
ENCODER_MAP_ENABLE = yes
MIDI_ENABLE = yes
20 changes: 20 additions & 0 deletions keyboards/handwired/illera16/keymaps/vial/vial.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"matrix": {
"rows": 4,
"cols": 4
},
"layouts": {
"labels": [
["Encoders", "None", "Upper Left"]
],
"keymap": [
["0,0\n\n\n\n\n\n\n\n\ne","0,0","0,1","0,2","0,3","1,0\n\n\n\n\n\n\n\n\ne"],
["0,1\n\n\n\n\n\n\n\n\ne","1,0","1,1","1,2","1,3","1,1\n\n\n\n\n\n\n\n\ne"],
["","2,0","2,1","2,2","2,3"],
["","3,0","3,1","3,2","3,3"]
]
},
"vial": {
"midi": "basic"
}
}
Loading

0 comments on commit 6d1f06a

Please sign in to comment.