Merge remote-tracking branch 'origin/master' into develop
15 files changed, 456 insertions(+), 0 deletions(-) A keyboards/tempo_turtle/bradpad/bradpad.c A keyboards/tempo_turtle/bradpad/bradpad.h A keyboards/tempo_turtle/bradpad/config.h A keyboards/tempo_turtle/bradpad/info.json A keyboards/tempo_turtle/bradpad/keymaps/4brad/config.h A keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c A keyboards/tempo_turtle/bradpad/keymaps/4brad/rules.mk A keyboards/tempo_turtle/bradpad/keymaps/default/keymap.c A keyboards/tempo_turtle/bradpad/keymaps/midi_demo/config.h A keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c A keyboards/tempo_turtle/bradpad/keymaps/midi_demo/rules.mk A keyboards/tempo_turtle/bradpad/keymaps/via/keymap.c A keyboards/tempo_turtle/bradpad/keymaps/via/rules.mk A keyboards/tempo_turtle/bradpad/readme.md A keyboards/tempo_turtle/bradpad/rules.mk
A keyboards/tempo_turtle/bradpad/bradpad.c => keyboards/tempo_turtle/bradpad/bradpad.c +15 -0
@@ 0,0 1,15 @@ /* Copyright 2021 v3ritas <v3ritas@tempoturtle.com> 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 "bradpad.h"
A keyboards/tempo_turtle/bradpad/bradpad.h => keyboards/tempo_turtle/bradpad/bradpad.h +32 -0
@@ 0,0 1,32 @@ /* Copyright 2021 v3ritas <v3ritas@tempoturtle.com> 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" // clang-format off #define LAYOUT( \ k00, k01, k02, k03, \ k10, k11, k12, k13, \ k20, k21, k22, k23, \ k30, k31, k32, k33, \ k41, k42\ ) { \ { k00, k01, k02, k03, }, \ { k10, k11, k12, k13, }, \ { k20, k21, k22, k23, }, \ { k30, k31, k32, k33, }, \ { KC_NO, k41, k42, KC_NO } \ } // clang-format on
A keyboards/tempo_turtle/bradpad/config.h => keyboards/tempo_turtle/bradpad/config.h +19 -0
@@ 0,0 1,19 @@ /* Copyright 2021 v3ritas <v3ritas@tempoturtle.com> 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 descriptor setup and keyboard setup (rows and cols) are located in info.json*/
A keyboards/tempo_turtle/bradpad/info.json => keyboards/tempo_turtle/bradpad/info.json +28 -0
@@ 0,0 1,28 @@ { "keyboard_name": "bradpad", "url": "https://tempoturtle.com", "maintainer": "wxyangf", "width": 4, "height": 5, "diode_direction": "ROW2COL", "matrix_pins":{ "rows":["B7", "D5", "C7", "D2", "D3"], "cols":["D7", "E6", "B4", "F1"] }, "usb":{ "vid":"0x7474", "pid":"0x6270", "device_ver":"0x0001" }, "layouts": { "LAYOUT": { "layout":[ {"x": 0, "y":0},{"x": 1, "y":0},{"x": 2, "y":0},{"x": 3, "y":0}, {"x": 0, "y":1},{"x": 1, "y":1},{"x": 2, "y":1},{"x": 3, "y":1}, {"x": 0, "y":2},{"x": 1, "y":2},{"x": 2, "y":2},{"x": 3, "y":2}, {"x": 0, "y":3},{"x": 1, "y":3},{"x": 2, "y":3},{"x": 3, "y":3}, {"x": 0, "y":4, "w":2},{"x": 2, "y":4,"w":2} ] } } }
A keyboards/tempo_turtle/bradpad/keymaps/4brad/config.h => keyboards/tempo_turtle/bradpad/keymaps/4brad/config.h +20 -0
@@ 0,0 1,20 @@ /* Copyright 2021 v3ritas <v3ritas@tempoturtle.com> 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 #undef TAPPING_TERM #define TAPPING_TERM 190 #define MUSIC_MASK (keycode != KC_NO) #define MIDI_ADVANCED
A keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c => keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c +148 -0
@@ 0,0 1,148 @@ /* Copyright 2021 v3ritas <v3ritas@tempoturtle.com> 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 extern MidiDevice midi_device; enum layers { _NATURAL, _SHARP, _FLAT, }; /* MIDI CC codes for generic ON/OFF swiches 80,81,82,83 values off = 0-63 */ #define OFF 0 /*values on = 64-127*/ #define ON 127 /*implementation inspo taken from here: https://github.com/luantty2/pheromone_keyboard/blob/master/keyboards/pheromone/keymaps/default/keymap.c */ enum custom_keycodes { MIDI_CC80 = SAFE_RANGE, MIDI_CC81, MIDI_CC82, MIDI_CC83 }; static bool toggled_MIDI_CC80 = 0, toggled_MIDI_CC81 = 0, toggled_MIDI_CC82 = 0, toggled_MIDI_CC83 = 0; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case MIDI_CC80: if (!IS_LAYER_ON(_NATURAL)) { toggled_MIDI_CC80 = false; if (record->event.pressed) { midi_send_cc(&midi_device, midi_config.channel, 80, ON); } else { midi_send_cc(&midi_device, midi_config.channel, 80, OFF); } return true; } else { if (record->event.pressed) { if (!toggled_MIDI_CC80) { midi_send_cc(&midi_device, midi_config.channel, 80, ON); } else { midi_send_cc(&midi_device, midi_config.channel, 80, OFF); } toggled_MIDI_CC80 = !toggled_MIDI_CC80; } return false; } case MIDI_CC81: if (!IS_LAYER_ON(_NATURAL)) { toggled_MIDI_CC81 = false; if (record->event.pressed) { midi_send_cc(&midi_device, midi_config.channel, 81, ON); } else { midi_send_cc(&midi_device, midi_config.channel, 81, OFF); } return true; } else { if (record->event.pressed) { if (!toggled_MIDI_CC81) { midi_send_cc(&midi_device, midi_config.channel, 81, ON); } else { midi_send_cc(&midi_device, midi_config.channel, 81, OFF); } toggled_MIDI_CC81 = !toggled_MIDI_CC81; } return false; } case MIDI_CC82: if (!IS_LAYER_ON(_NATURAL)) { toggled_MIDI_CC82 = false; if (record->event.pressed) { midi_send_cc(&midi_device, midi_config.channel, 82, ON); } else { midi_send_cc(&midi_device, midi_config.channel, 82, OFF); } return true; } else { if (record->event.pressed) { if (!toggled_MIDI_CC82) { midi_send_cc(&midi_device, midi_config.channel, 82, ON); } else { midi_send_cc(&midi_device, midi_config.channel, 82, OFF); } toggled_MIDI_CC82 = !toggled_MIDI_CC82; } return false; } case MIDI_CC83: if (!IS_LAYER_ON(_NATURAL)) { toggled_MIDI_CC83 = false; if (record->event.pressed) { midi_send_cc(&midi_device, midi_config.channel, 83, ON); } else { midi_send_cc(&midi_device, midi_config.channel, 83, OFF); } return true; } else { if (record->event.pressed) { if (!toggled_MIDI_CC83) { midi_send_cc(&midi_device, midi_config.channel, 83, ON); } else { midi_send_cc(&midi_device, midi_config.channel, 83, OFF); } toggled_MIDI_CC83 = !toggled_MIDI_CC83; } return false; } } return true; } const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NATURAL] = LAYOUT( MI_C, MI_BENDD, MI_BENDU, MI_G, MI_D, MIDI_CC80, MIDI_CC81, MI_A, MI_E, MIDI_CC82, MIDI_CC83, MI_B, MI_F, MI_OCTD, MI_OCTU, MI_C, MO(_SHARP), MO(_FLAT)), [_SHARP] = LAYOUT( MI_Cs, KC_TRNS, KC_TRNS, MI_Gs, MI_Ds, KC_TRNS, KC_TRNS, MI_As, MI_F , KC_TRNS, KC_TRNS, MI_C , MI_Fs, MI_TRNSD, MI_TRNSU, MI_Cs, KC_TRNS, KC_TRNS), [_FLAT] = LAYOUT( MI_B , KC_TRNS, KC_TRNS, MI_Gb, MI_Db, KC_TRNS, KC_TRNS, MI_Ab, MI_Eb, KC_TRNS, KC_TRNS, MI_Bb, MI_E , MI_TRNSD, MI_TRNSU, MI_B, KC_TRNS, KC_TRNS), };
A keyboards/tempo_turtle/bradpad/keymaps/4brad/rules.mk => keyboards/tempo_turtle/bradpad/keymaps/4brad/rules.mk +1 -0
A keyboards/tempo_turtle/bradpad/keymaps/default/keymap.c => keyboards/tempo_turtle/bradpad/keymaps/default/keymap.c +24 -0
@@ 0,0 1,24 @@ /* Copyright 2021 v3ritas <v3ritas@tempoturtle.com> 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( KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, KC_NUMLOCK, KC_KP_0, KC_KP_DOT, KC_KP_ASTERISK, KC_KP_ENTER, KC_EQUAL) };
A keyboards/tempo_turtle/bradpad/keymaps/midi_demo/config.h => keyboards/tempo_turtle/bradpad/keymaps/midi_demo/config.h +20 -0
@@ 0,0 1,20 @@ /* Copyright 2021 v3ritas <v3ritas@tempoturtle.com> 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 #undef TAPPING_TERM #define TAPPING_TERM 190 #define MUSIC_MASK (keycode != KC_NO) #define MIDI_ADVANCED
A keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c => keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c +42 -0
@@ 0,0 1,42 @@ /* Copyright 2021 v3ritas <v3ritas@tempoturtle.com> 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 enum layers { _NATURAL, _SHARP, _FLAT }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NATURAL] = LAYOUT( MI_C, MI_BENDD, MI_BENDU, MI_G, MI_D, MI_VELD, MI_VELU, MI_A, MI_E, MI_TRNSD, MI_TRNSU, MI_B, MI_F, MI_OCTD, MI_OCTU, MI_C, MO(_SHARP), MO(_FLAT)), [_SHARP] = LAYOUT( MI_Cs, KC_TRNS, KC_TRNS, MI_Gs, MI_Ds, KC_TRNS, KC_TRNS, MI_As, MI_F , KC_TRNS, KC_TRNS, MI_C , MI_Fs, KC_TRNS, KC_TRNS, MI_Cs, KC_TRNS, KC_TRNS), [_FLAT] = LAYOUT( MI_B , KC_TRNS, KC_TRNS, MI_Gb, MI_Db, KC_TRNS, KC_TRNS, MI_Ab, MI_Eb, KC_TRNS, KC_TRNS, MI_Bb, MI_E , KC_TRNS, KC_TRNS, MI_B, KC_TRNS, KC_TRNS), };
A keyboards/tempo_turtle/bradpad/keymaps/midi_demo/rules.mk => keyboards/tempo_turtle/bradpad/keymaps/midi_demo/rules.mk +1 -0
A keyboards/tempo_turtle/bradpad/keymaps/via/keymap.c => keyboards/tempo_turtle/bradpad/keymaps/via/keymap.c +50 -0
@@ 0,0 1,50 @@ /* Copyright 2021 v3ritas <v3ritas@tempoturtle.com> 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 enum layers { _LAYER0, _LAYER1, _LAYER2, _LAYER3, }; // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER0] = LAYOUT( KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, \ KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, \ KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, \ KC_NUMLOCK, KC_KP_0, KC_KP_DOT, KC_KP_ASTERISK, \ KC_KP_ENTER, KC_EQUAL), [_LAYER1] = LAYOUT( 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), [_LAYER2] = LAYOUT( 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), [_LAYER3] = LAYOUT( 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) }; // clang-format on
A keyboards/tempo_turtle/bradpad/keymaps/via/rules.mk => keyboards/tempo_turtle/bradpad/keymaps/via/rules.mk +1 -0
A keyboards/tempo_turtle/bradpad/readme.md => keyboards/tempo_turtle/bradpad/readme.md +32 -0
@@ 0,0 1,32 @@ # bradpad  The QMK firmware for the bradpad a music production inspired macropad. * Keyboard Maintainer: [wxyangf](https://github.com/wxyangf) * Hardware Supported: bradpad pcbs * Hardware Availability: [1UP Keyboards](https://1upkeyboards.com/) [Album of Prototype of Production Version(v1.5.x)](https://imgur.com/a/kH5ttny) [Album of Elite-C Version (v1)](https://imgur.com/a/xjocnNo) How to reset production version into bootloader mode: [Video Tutorial](https://youtu.be/Bk429i4Y0E4) 1. Locate the reset button on the underside of the pcb. 2. Press the reset button for a few seconds using a paperclip, fingertip(if bare pcb), other similar object. 3. Release the reset button. 4. Your bradpad should now be in bootloader mode. How to reset Elite-C version into bootloader mode: 1. Located Elite-C 2. Reset Elite-C Make example for this keyboard (after setting up your build environment): make tempo_turtle/bradpad:default See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A keyboards/tempo_turtle/bradpad/rules.mk => keyboards/tempo_turtle/bradpad/rules.mk +23 -0
@@ 0,0 1,23 @@ # MCU name MCU = atmega32u4 # Bootloader selection BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration 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 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes