diff --git a/README.md b/README.md index 8ce59a7..71c50c6 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ A simple handmade macropad with arduino pro micro and VIAL or QMK. - [Case](#case-1) - [Connection diagram](#connection-diagram) - [QMK/VIAL](#qmkvial-1) +- [Referencias / References](#referencias--references) # ES Hacer un macropad con un arduino pro micro es fácil, ya que podemos hacerlo con VIAL o QMK. @@ -71,3 +72,6 @@ We write in QMK MSYS, `qmk compile -kb void16 -km default` to compile it in QMK. Type in QMK MSYS, `qmk compile -kb void16 -km default` to compile with VIAL. Then [load the firmware](https://github.com/brockar/redox-handwired-3dp#cargar-firmware) and that's it, we have our macropad. + +# Referencias / References +Macropad vial: [void16](https://github.com/victorlucachi/void16). \ No newline at end of file diff --git a/vial/void16/config.h b/vial/void16/config.h new file mode 100644 index 0000000..e1e98b4 --- /dev/null +++ b/vial/void16/config.h @@ -0,0 +1,26 @@ +// Copyright 2022 Victor Lucachi (@victorlucachi) +// 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 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +// #define ENCODERS_PAD_A { F5, B2 } +// #define ENCODERS_PAD_B { F4, B3 } diff --git a/vial/void16/info.json b/vial/void16/info.json new file mode 100644 index 0000000..e1a2095 --- /dev/null +++ b/vial/void16/info.json @@ -0,0 +1,48 @@ +{ + "manufacturer": "brockar", + "keyboard_name": "VOID16", + "maintainer": "brockar", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": false + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6"], + "rows": ["D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "https://github.com/victorlucachi/void16", + "usb": { + "device_version": "1.0.0", + "pid": "0x3533", + "vid": "0xF055" + }, + "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 } + ] + } + } +} diff --git a/vial/void16/keymaps/default/keymap.c b/vial/void16/keymaps/default/keymap.c new file mode 100644 index 0000000..9a7fa0f --- /dev/null +++ b/vial/void16/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┐ + * │ 7 │ 8 │ 9 │ BS│ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ESC│ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │TAB│ + * ├───┼───┼───┼───┤ + * │FN │ 0 │ . │RET│ + * └───┴───┴───┴───┘ + */ + [_BASE] = LAYOUT_ortho_4x4( + DF(_BASE),DF(_FN1),DF(_FN2),DF(_FN3), + KC_F13, KC_F14, KC_F15, KC_F16, + KC_F17, KC_F18, KC_F19, KC_F20, + KC_F21, KC_F22, KC_F23, KC_F24 + ), + + [_FN1] = LAYOUT_ortho_4x4( + _______, _______, _______, _______, + LSFT(KC_F13), LSFT(KC_F14), LSFT(KC_F15), LSFT(KC_F16), + LSFT(KC_F17), LSFT(KC_F18), LSFT(KC_F19), LSFT(KC_F20), + LSFT(KC_F21), LSFT(KC_F22), LSFT(KC_F23), LSFT(KC_F24) + ), + + [_FN2] = LAYOUT_ortho_4x4( + _______, _______, _______, _______, + LCTL(KC_F13), LCTL(KC_F14), LCTL(KC_F15), LCTL(KC_F16), + LCTL(KC_F17), LCTL(KC_F18), LCTL(KC_F19), LCTL(KC_F20), + LCTL(KC_F21), LCTL(KC_F22), LCTL(KC_F23), LCTL(KC_F24) + ), + + [_FN3] = LAYOUT_ortho_4x4( + _______, _______, _______, _______, + LALT(KC_F13), LALT(KC_F14), LALT(KC_F15), LALT(KC_F16), + LALT(KC_F17), LALT(KC_F18), LALT(KC_F19), LALT(KC_F20), + LALT(KC_F21), LALT(KC_F22), LALT(KC_F23), LALT(KC_F24) + ) +}; + +/* + * ROTARY ENCODER + */ + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)}, + [_FN1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)}, + [_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}, +}; +#endif diff --git a/vial/void16/keymaps/vial/config.h b/vial/void16/keymaps/vial/config.h new file mode 100644 index 0000000..9cfca54 --- /dev/null +++ b/vial/void16/keymaps/vial/config.h @@ -0,0 +1,6 @@ +// Copyright 2022 Victor Lucachi (@victorlucachi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define VIAL_KEYBOARD_UID {0x4D, 0x2A, 0x00, 0xFF, 0xEA, 0x60, 0x95, 0xC7} diff --git a/vial/void16/keymaps/vial/keymap.c b/vial/void16/keymaps/vial/keymap.c new file mode 100644 index 0000000..ca82627 --- /dev/null +++ b/vial/void16/keymaps/vial/keymap.c @@ -0,0 +1,62 @@ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┐ + * │ 7 │ 8 │ 9 │ BS│ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ESC│ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │TAB│ + * ├───┼───┼───┼───┤ + * │FN │ 0 │ . │RET│ + * └───┴───┴───┴───┘ + */ + [_BASE] = LAYOUT_ortho_4x4( + DF(_BASE),DF(_FN1),DF(_FN2),DF(_FN3), + KC_F13, KC_F14, KC_F15, KC_F16, + KC_F17, KC_F18, KC_F19, KC_F20, + KC_F21, KC_F22, KC_F23, KC_F24 + ), + + [_FN1] = LAYOUT_ortho_4x4( + _______, _______, _______, _______, + LSFT(KC_F13), LSFT(KC_F14), LSFT(KC_F15), LSFT(KC_F16), + LSFT(KC_F17), LSFT(KC_F18), LSFT(KC_F19), LSFT(KC_F20), + LSFT(KC_F21), LSFT(KC_F22), LSFT(KC_F23), LSFT(KC_F24) + ), + + [_FN2] = LAYOUT_ortho_4x4( + _______, _______, _______, _______, + LCTL(KC_F13), LCTL(KC_F14), LCTL(KC_F15), LCTL(KC_F16), + LCTL(KC_F17), LCTL(KC_F18), LCTL(KC_F19), LCTL(KC_F20), + LCTL(KC_F21), LCTL(KC_F22), LCTL(KC_F23), LCTL(KC_F24) + ), + + [_FN3] = LAYOUT_ortho_4x4( + _______, _______, _______, _______, + LALT(KC_F13), LALT(KC_F14), LALT(KC_F15), LALT(KC_F16), + LALT(KC_F17), LALT(KC_F18), LALT(KC_F19), LALT(KC_F20), + LALT(KC_F21), LALT(KC_F22), LALT(KC_F23), LALT(KC_F24) + ) +}; + +/* + * ROTARY ENCODER + */ +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)}, + [_FN1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)}, + [_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FN3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}, +}; +#endif diff --git a/vial/void16/keymaps/vial/rules.mk b/vial/void16/keymaps/vial/rules.mk new file mode 100644 index 0000000..fd20aef --- /dev/null +++ b/vial/void16/keymaps/vial/rules.mk @@ -0,0 +1,19 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LT0_ENABLE = yes + +QMK_SETTINGS = no +TAP_DANCE_ENABLE = no +COMBO_ENABLE = no +KEY_OVERRIDE_ENABLE = no + +CONSOLE_ENABLE = no +COMMAND_ENABLE = no + +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = yes + +VIAL_ENCODERS_ENABLE = no + +VIAL_INSECURE = yes diff --git a/vial/void16/keymaps/vial/vial.json b/vial/void16/keymaps/vial/vial.json new file mode 100644 index 0000000..36665dd --- /dev/null +++ b/vial/void16/keymaps/vial/vial.json @@ -0,0 +1,67 @@ +{ + "name":"VOID16", + "vendorId":"0xF055", + "productId":"0x3533", + "lighting":"none", + "matrix":{ + "rows":4, + "cols":4 + }, + "layouts":{ + "labels":[ + [ + "Encoder", + "None", + "Upper Left" + ] + ], + "keymap":[ + [ + "0,0\n\n\n0,1\n\n\n\n\n\ne", + "0,1\n\n\n0,1\n\n\n\n\n\ne" + ], + [ + { + "y": 0.25, + "w": 2, + "d": true + }, + "\n\n\n0,0", + { + "x": 0.25 + }, + "0,0", + "0,1", + "0,2", + "0,3" + ], + [ + { + "x": 2.25 + }, + "1,0", + "1,1", + "1,2", + "1,3" + ], + [ + { + "x": 2.25 + }, + "2,0", + "2,1", + "2,2", + "2,3" + ], + [ + { + "x": 2.25 + }, + "3,0", + "3,1", + "3,2", + "3,3" + ] + ] + } +} diff --git a/vial/void16/readme.md b/vial/void16/readme.md new file mode 100644 index 0000000..ea2e253 --- /dev/null +++ b/vial/void16/readme.md @@ -0,0 +1,16 @@ +# VOID16 + +![VOID16](https://i.imgur.com/ExFBLPU.jpg) + +A handwired 4x4 macropad with (or without, it's up to you) a rotary encoder. + +Vial layout option for an encoder in place of the upper left key. + +* Keyboard Maintainer: [Victor Lucachi](https://github.com/victorlucachi) +* Hardware Supported: Pro Micro + +Make example for this keyboard (after setting up your build environment): + + make handwired/void16:vial + +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/vial/void16/rules.mk b/vial/void16/rules.mk new file mode 100644 index 0000000..191516a --- /dev/null +++ b/vial/void16/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +ENCODER_ENABLE = no +ENCODER_MAP_ENABLE = no