[Keyboard] Add damapad (#16443) Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com>
9 files changed, 401 insertions(+), 0 deletions(-) A keyboards/bolsa/damapad/config.h A keyboards/bolsa/damapad/damapad.c A keyboards/bolsa/damapad/damapad.h A keyboards/bolsa/damapad/info.json A keyboards/bolsa/damapad/keymaps/default/keymap.c A keyboards/bolsa/damapad/keymaps/via/keymap.c A keyboards/bolsa/damapad/keymaps/via/rules.mk A keyboards/bolsa/damapad/readme.md A keyboards/bolsa/damapad/rules.mk
A keyboards/bolsa/damapad/config.h => keyboards/bolsa/damapad/config.h +59 -0
@@ 0,0 1,59 @@ /* Copyright 2021 Matthew Dias This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #pragma once #include "config_common.h" /* USB Device descriptor parameter */ #define VENDOR_ID 0x6D64 #define PRODUCT_ID 0x6470 #define DEVICE_VER 0x0001 #define MANUFACTURER Bolsa Keyboard Supply #define PRODUCT Damapad /* key matrix size */ #define MATRIX_ROWS 3 #define MATRIX_COLS 6 /* key matrix pins */ #define MATRIX_ROW_PINS { E6, F7, C7 } #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, B7 } #define UNUSED_PINS /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW #define ENCODERS_PAD_A { B2 } #define ENCODERS_PAD_B { B3 } #define ENCODER_RESOLUTION 2 /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 /* * Feature disable options * These options are also useful to firmware size reduction. */ /* disable debug print */ //#define NO_DEBUG /* disable print */ //#define NO_PRINT
A keyboards/bolsa/damapad/damapad.c => keyboards/bolsa/damapad/damapad.c +81 -0
@@ 0,0 1,81 @@ /* Copyright 2021 Matthew Dias This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "damapad.h" #ifdef OLED_ENABLE bool oled_task_kb(void) { if (!oled_task_user()) { return false; } static const char PROGMEM bolsa_logo[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1e, 0x3e, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0x3e, 0x1e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0e, 0x1e, 0x3e, 0x3e, 0xfe, 0xfe, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xfe, 0xfe, 0x3e, 0x3e, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfc, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xff, 0xfe, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3f, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x07, 0x3f, 0x3f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; oled_write_raw_P(bolsa_logo, sizeof(bolsa_logo)); return false; } oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; } #endif #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { if (clockwise) { tap_code_delay(KC_VOLU, 10); } else { tap_code_delay(KC_VOLD, 10); } } return true; } #endif \ No newline at end of file
A keyboards/bolsa/damapad/damapad.h => keyboards/bolsa/damapad/damapad.h +32 -0
@@ 0,0 1,32 @@ /* Copyright 2021 Matthew Dias This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #pragma once #include "quantum.h" #define XXX KC_NO #define LAYOUT_wkl( \ K00, K01, K02, K03, K04, K05, \ K10, K11, K12, K13, K14, K15, \ K20, K21, K23, K25 \ ) { \ { K00, K01, K02, K03, K04, K05 }, \ { K10, K11, K12, K13, K14, K15 }, \ { K20, K21, XXX, K23, XXX, K25 } \ }
A keyboards/bolsa/damapad/info.json => keyboards/bolsa/damapad/info.json +109 -0
@@ 0,0 1,109 @@ { "keyboard_name": "Damapad", "url": "", "maintainer": "matthewdias", "layouts": { "LAYOUT_wkl": { "layout": [{ "x": 5.25, "y": 0 }, { "x": 0, "y": 0.25 }, { "x": 1, "y": 0.25 }, { "x": 2, "y": 0.25 }, { "x": 3, "y": 0.25 }, { "x": 4, "y": 0.25 }, { "x": 0, "y": 1.25 }, { "x": 1, "y": 1.25 }, { "x": 2, "y": 1.25 }, { "x": 3, "y": 1.25 }, { "x": 4, "y": 1.25 }, { "x": 5.25, "y": 1.25 }, { "x": 0, "y": 2.25 }, { "x": 1.75, "y": 2.25 }, { "x": 2.75, "y": 2.25, "w": 2.25 }, { "x": 5.25, "y": 2.25 }] }, "LAYOUT_bar": { "layout": [{ "x": 5.25, "y": 0 }, { "x": 0, "y": 0.25 }, { "x": 1, "y": 0.25 }, { "x": 2, "y": 0.25 }, { "x": 3, "y": 0.25 }, { "x": 4, "y": 0.25 }, { "x": 0, "y": 1.25 }, { "x": 1, "y": 1.25 }, { "x": 2, "y": 1.25 }, { "x": 3, "y": 1.25 }, { "x": 4, "y": 1.25 }, { "x": 5.25, "y": 1.25 }, { "x": 0, "y": 2.25, "w": 2.75 }, { "x": 2.75, "y": 2.25, "w": 2.25 }, { "x": 5.25, "y": 2.25 }] } } }
A keyboards/bolsa/damapad/keymaps/default/keymap.c => keyboards/bolsa/damapad/keymaps/default/keymap.c +29 -0
@@ 0,0 1,29 @@ /* Copyright 2021 Matthew Dias This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_wkl( KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_MSEL, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP, KC_NO, KC_COPY, KC_PASTE, KC_PGDN ) };
A keyboards/bolsa/damapad/keymaps/via/keymap.c => keyboards/bolsa/damapad/keymaps/via/keymap.c +47 -0
@@ 0,0 1,47 @@ /* Copyright 2021 Matthew Dias This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_wkl( KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_MSEL, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP, KC_NO, KC_COPY, KC_PASTE, KC_PGDN ), [1] = LAYOUT_wkl( 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 ), [2] = LAYOUT_wkl( 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 ), [3] = LAYOUT_wkl( 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 ) };
A keyboards/bolsa/damapad/keymaps/via/rules.mk => keyboards/bolsa/damapad/keymaps/via/rules.mk +1 -0
A keyboards/bolsa/damapad/readme.md => keyboards/bolsa/damapad/readme.md +22 -0
@@ 0,0 1,22 @@ # Damapad A Macropad by Bolsa Supply - Keyboard Maintainer: [matthewdias](https://github.com/matthewdias) - Hardware Supported: Damapad PCB Make example for this keyboard (after setting up your build environment): make bolsa/damapad:default Flashing example for this keyboard: make bolsa/damapad:default:flash 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). ## Bootloader Enter the bootloader: - **Physical reset button**: Briefly press the button on the back of the PCB (or short the reset/ground pads, should a tactile button not be installed)
A keyboards/bolsa/damapad/rules.mk => keyboards/bolsa/damapad/rules.mk +21 -0
@@ 0,0 1,21 @@ # MCU name MCU = atmega32u4 # Bootloader selection BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite 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 NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = yes OLED_ENABLE = yes OLED_DRIVER = SSD1306