diff options
| author | Jay Greco <jayv.greco@gmail.com> | 2021-02-01 03:05:10 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-01 03:05:10 -0800 |
| commit | 588fd8c2d07d57f2fd706089d8cbb54a3df0a687 (patch) | |
| tree | bc3b57f8827fc46c444948d446532640667c521c /keyboards/nullbitsco | |
| parent | 3f91b2b8f86a5b639688c6941e7f231a7b87300d (diff) | |
| download | qmk_firmware-588fd8c2d07d57f2fd706089d8cbb54a3df0a687.tar.gz qmk_firmware-588fd8c2d07d57f2fd706089d8cbb54a3df0a687.zip | |
[Keyboard] Add nullbitsco SCRAMBLE (#11078)
* Add SCRAMBLE
* Make requested changes to PR
* Add all layers to VIA keymap
Implement drashna's PR feedback in order to avoid random data within the layers in VIA.
* Make requested changes to PR
Implement fauxpark's PR feedback to clean up readme.md and rules.mk.
* Make changes based on PR feedback
-Changed VIA layers to enum
-Added info on how to enter the bootloader to readme
Diffstat (limited to 'keyboards/nullbitsco')
| -rw-r--r-- | keyboards/nullbitsco/scramble/config.h | 42 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/info.json | 39 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/keymaps/default/keymap.c | 41 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/keymaps/oled/config.h | 22 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/keymaps/oled/keymap.c | 85 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/keymaps/oled/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/keymaps/via/keymap.c | 61 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/keymaps/via/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/readme.md | 19 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/rules.mk | 23 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/scramble.c | 40 | ||||
| -rw-r--r-- | keyboards/nullbitsco/scramble/scramble.h | 39 |
12 files changed, 413 insertions, 0 deletions
diff --git a/keyboards/nullbitsco/scramble/config.h b/keyboards/nullbitsco/scramble/config.h new file mode 100644 index 000000000..949c28026 --- /dev/null +++ b/keyboards/nullbitsco/scramble/config.h | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 Jay Greco | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #pragma once | ||
| 19 | |||
| 20 | #include "config_common.h" | ||
| 21 | |||
| 22 | /* USB Device descriptor parameter */ | ||
| 23 | #define VENDOR_ID 0x6E61 | ||
| 24 | #define PRODUCT_ID 0x6062 | ||
| 25 | |||
| 26 | #define DEVICE_VER 0x0001 | ||
| 27 | #define MANUFACTURER nullbits | ||
| 28 | #define PRODUCT SCRAMBLE | ||
| 29 | |||
| 30 | /* key matrix size */ | ||
| 31 | #define MATRIX_ROWS 2 | ||
| 32 | #define MATRIX_COLS 3 | ||
| 33 | |||
| 34 | #define DIRECT_PINS {{D4,D5,B1}, {C3,C2,C1}} | ||
| 35 | |||
| 36 | /* Set 0 if debouncing isn't needed */ | ||
| 37 | #define DEBOUNCE 10 | ||
| 38 | |||
| 39 | /* Optional encoder pins */ | ||
| 40 | #define ENCODERS_PAD_A { D6 } | ||
| 41 | #define ENCODERS_PAD_B { D7 } | ||
| 42 | #define TAP_CODE_DELAY 10 | ||
diff --git a/keyboards/nullbitsco/scramble/info.json b/keyboards/nullbitsco/scramble/info.json new file mode 100644 index 000000000..348db649c --- /dev/null +++ b/keyboards/nullbitsco/scramble/info.json | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "SCRAMBLE switch tester", | ||
| 3 | "keyboard_folder": "nullbitsco/scramble", | ||
| 4 | "url": "https://nullbits.co/scramble", | ||
| 5 | "maintainer": "jaygreco", | ||
| 6 | "width": 3, | ||
| 7 | "height": 2, | ||
| 8 | "layouts": { | ||
| 9 | "LAYOUT": { | ||
| 10 | "layout": [ | ||
| 11 | { | ||
| 12 | "label": "n", | ||
| 13 | "x": 0, | ||
| 14 | "y": 0 | ||
| 15 | }, | ||
| 16 | { | ||
| 17 | "x": 1, | ||
| 18 | "y": 0 | ||
| 19 | }, | ||
| 20 | { | ||
| 21 | "x": 2, | ||
| 22 | "y": 0 | ||
| 23 | }, | ||
| 24 | { | ||
| 25 | "x": 0, | ||
| 26 | "y": 1 | ||
| 27 | }, | ||
| 28 | { | ||
| 29 | "x": 1, | ||
| 30 | "y": 1 | ||
| 31 | }, | ||
| 32 | { | ||
| 33 | "x": 2, | ||
| 34 | "y": 1 | ||
| 35 | } | ||
| 36 | ] | ||
| 37 | } | ||
| 38 | } | ||
| 39 | } | ||
diff --git a/keyboards/nullbitsco/scramble/keymaps/default/keymap.c b/keyboards/nullbitsco/scramble/keymaps/default/keymap.c new file mode 100644 index 000000000..81bd732db --- /dev/null +++ b/keyboards/nullbitsco/scramble/keymaps/default/keymap.c | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 Jay Greco | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | |||
| 20 | #define _BASE 1 | ||
| 21 | |||
| 22 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 23 | |||
| 24 | [_BASE] = LAYOUT( | ||
| 25 | KC_F13, KC_F14, KC_F15, | ||
| 26 | KC_F16, KC_F17, KC_F18 | ||
| 27 | ) | ||
| 28 | |||
| 29 | }; | ||
| 30 | |||
| 31 | void matrix_init_user(void) { | ||
| 32 | set_scramble_LED(LED_OFF); | ||
| 33 | } | ||
| 34 | |||
| 35 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 36 | if (clockwise) { | ||
| 37 | tap_code(KC_VOLU); | ||
| 38 | } else { | ||
| 39 | tap_code(KC_VOLD); | ||
| 40 | } | ||
| 41 | } | ||
diff --git a/keyboards/nullbitsco/scramble/keymaps/oled/config.h b/keyboards/nullbitsco/scramble/keymaps/oled/config.h new file mode 100644 index 000000000..5bfc9cff7 --- /dev/null +++ b/keyboards/nullbitsco/scramble/keymaps/oled/config.h | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 Jay Greco | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #pragma once | ||
| 19 | // Alternate boot pins for accessing the bootloader, | ||
| 20 | // since the boot switch is blocked by the OLED. | ||
| 21 | #define BOOTMAGIC_LITE_ROW 1 | ||
| 22 | #define BOOTMAGIC_LITE_COLUMN 2 | ||
diff --git a/keyboards/nullbitsco/scramble/keymaps/oled/keymap.c b/keyboards/nullbitsco/scramble/keymaps/oled/keymap.c new file mode 100644 index 000000000..eac0a470f --- /dev/null +++ b/keyboards/nullbitsco/scramble/keymaps/oled/keymap.c | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 Jay Greco | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | |||
| 20 | #define _BASE 1 | ||
| 21 | |||
| 22 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 23 | |||
| 24 | [_BASE] = LAYOUT( | ||
| 25 | KC_F13, KC_F14, KC_F15, | ||
| 26 | KC_F16, KC_F17, KC_F18 | ||
| 27 | ) | ||
| 28 | |||
| 29 | }; | ||
| 30 | |||
| 31 | #ifdef OLED_DRIVER_ENABLE | ||
| 32 | static void render_logo(void) { | ||
| 33 | static const char PROGMEM nullbits_logo[] = { | ||
| 34 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 35 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 36 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 37 | 0x00, 0x00, 0xf6, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xe4, 0xfe, 0xff, 0xfe, 0xf4, 0x00, | ||
| 38 | 0x00, 0x00, 0x00, 0xfe, 0xff, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 39 | 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 40 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 41 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 42 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, | ||
| 43 | 0xe0, 0xe0, 0xe0, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, | ||
| 44 | 0x00, 0xc0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, | ||
| 45 | 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
| 46 | 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, | ||
| 47 | 0x00, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xe3, 0xe3, 0xc3, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xfe, 0xfe, | ||
| 48 | 0xff, 0xfe, 0xe0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, | ||
| 49 | 0xc0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 50 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, | ||
| 51 | 0xff, 0xff, 0xff, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, | ||
| 52 | 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, | ||
| 53 | 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
| 54 | 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x03, 0x03, 0x07, 0x0f, 0xff, 0xff, 0xfe, | ||
| 55 | 0xfc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0xff, 0xff, | ||
| 56 | 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x00, 0x1e, 0x3f, 0x7f, 0xff, 0xfb, 0xf3, 0xf1, 0xe1, 0xe1, | ||
| 57 | 0xe1, 0xc1, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 58 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, | ||
| 59 | 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, | ||
| 60 | 0x00, 0x0f, 0x3f, 0x7f, 0xff, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0x7f, 0x3f, 0x1f, 0x00, 0x00, | ||
| 61 | 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x00, | ||
| 62 | 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x7f, 0xf0, 0xf0, 0xf0, 0xf8, 0x78, 0x7e, 0x3f, 0x3f, 0x1f, | ||
| 63 | 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, | ||
| 64 | 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf1, 0xf1, 0xfb, | ||
| 65 | 0x7f, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
| 66 | }; | ||
| 67 | oled_write_raw_P(nullbits_logo, sizeof(nullbits_logo)); | ||
| 68 | } | ||
| 69 | |||
| 70 | void oled_task_user(void) { | ||
| 71 | render_logo(); | ||
| 72 | } | ||
| 73 | #endif | ||
| 74 | |||
| 75 | void matrix_init_user(void) { | ||
| 76 | set_scramble_LED(LED_OFF); | ||
| 77 | } | ||
| 78 | |||
| 79 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 80 | if (clockwise) { | ||
| 81 | tap_code(KC_VOLU); | ||
| 82 | } else { | ||
| 83 | tap_code(KC_VOLD); | ||
| 84 | } | ||
| 85 | } | ||
diff --git a/keyboards/nullbitsco/scramble/keymaps/oled/rules.mk b/keyboards/nullbitsco/scramble/keymaps/oled/rules.mk new file mode 100644 index 000000000..c58266213 --- /dev/null +++ b/keyboards/nullbitsco/scramble/keymaps/oled/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| OLED_DRIVER_ENABLE = yes | |||
diff --git a/keyboards/nullbitsco/scramble/keymaps/via/keymap.c b/keyboards/nullbitsco/scramble/keymaps/via/keymap.c new file mode 100644 index 000000000..91a448cc1 --- /dev/null +++ b/keyboards/nullbitsco/scramble/keymaps/via/keymap.c | |||
| @@ -0,0 +1,61 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 Jay Greco | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | |||
| 20 | enum layer_names { | ||
| 21 | _BASE, | ||
| 22 | _VIA1, | ||
| 23 | _VIA2, | ||
| 24 | _VIA3 | ||
| 25 | }; | ||
| 26 | |||
| 27 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 28 | |||
| 29 | [_BASE] = LAYOUT( | ||
| 30 | KC_F1, KC_F2, KC_F3, | ||
| 31 | KC_F4, KC_F5, KC_F6 | ||
| 32 | ), | ||
| 33 | |||
| 34 | [_VIA1] = LAYOUT( | ||
| 35 | _______, _______, _______, | ||
| 36 | _______, _______, _______ | ||
| 37 | ), | ||
| 38 | |||
| 39 | [_VIA2] = LAYOUT( | ||
| 40 | _______, _______, _______, | ||
| 41 | _______, _______, _______ | ||
| 42 | ), | ||
| 43 | |||
| 44 | [_VIA3] = LAYOUT( | ||
| 45 | _______, _______, _______, | ||
| 46 | _______, _______, _______ | ||
| 47 | ) | ||
| 48 | |||
| 49 | }; | ||
| 50 | |||
| 51 | void matrix_init_user(void) { | ||
| 52 | set_scramble_LED(LED_OFF); | ||
| 53 | } | ||
| 54 | |||
| 55 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 56 | if (clockwise) { | ||
| 57 | tap_code(KC_VOLU); | ||
| 58 | } else { | ||
| 59 | tap_code(KC_VOLD); | ||
| 60 | } | ||
| 61 | } \ No newline at end of file | ||
diff --git a/keyboards/nullbitsco/scramble/keymaps/via/rules.mk b/keyboards/nullbitsco/scramble/keymaps/via/rules.mk new file mode 100644 index 000000000..1e5b99807 --- /dev/null +++ b/keyboards/nullbitsco/scramble/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes | |||
diff --git a/keyboards/nullbitsco/scramble/readme.md b/keyboards/nullbitsco/scramble/readme.md new file mode 100644 index 000000000..6673b807d --- /dev/null +++ b/keyboards/nullbitsco/scramble/readme.md | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | # SCRAMBLE | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | A 6-switch key tester macropad built by nullbits. [More info at nullbits.co](https://nullbits.co/scramble/) | ||
| 6 | |||
| 7 | * Keyboard Maintainer: [Jay Greco](https://github.com/jaygreco) | ||
| 8 | * Hardware Supported: SCRAMBLE Rev1 | ||
| 9 | * Hardware Availability: [nullbits.co](https://nullbits.co/) | ||
| 10 | |||
| 11 | Note: If you are seeing issues with MacOS and keyboard hangs after sleep, make sure `NO_USB_STARTUP_CHECK = yes` is set in your rules.mk. | ||
| 12 | |||
| 13 | In order to enter the bootloader, hold switch #6 while plugging in the USB cable. The LED will stay on to indicate that it's in DFU mode. | ||
| 14 | |||
| 15 | Flashing example for this keyboard: | ||
| 16 | |||
| 17 | make nullbitsco/scramble:default | ||
| 18 | |||
| 19 | 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/keyboards/nullbitsco/scramble/rules.mk b/keyboards/nullbitsco/scramble/rules.mk new file mode 100644 index 000000000..6fc0c4598 --- /dev/null +++ b/keyboards/nullbitsco/scramble/rules.mk | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega328p | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | BOOTLOADER = USBasp | ||
| 6 | |||
| 7 | # Build Options | ||
| 8 | # change yes to no to disable | ||
| 9 | # | ||
| 10 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration | ||
| 11 | MOUSEKEY_ENABLE = yes # Mouse keys | ||
| 12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 13 | CONSOLE_ENABLE = no # Console for debug | ||
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 18 | NKRO_ENABLE = no # USB Nkey Rollover | ||
| 19 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 20 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
| 22 | AUDIO_ENABLE = no # Audio output | ||
| 23 | ENCODER_ENABLE = yes # Use rotary encoder | ||
diff --git a/keyboards/nullbitsco/scramble/scramble.c b/keyboards/nullbitsco/scramble/scramble.c new file mode 100644 index 000000000..3e981cfbb --- /dev/null +++ b/keyboards/nullbitsco/scramble/scramble.c | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2020 Jay Greco | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | |||
| 20 | // place overrides here | ||
| 21 | void set_scramble_LED(uint8_t mode) { | ||
| 22 | switch(mode) { | ||
| 23 | case LED_ON: | ||
| 24 | setPinOutput(PIN_LED); | ||
| 25 | writePin(PIN_LED, GPIO_STATE_HIGH); | ||
| 26 | break; | ||
| 27 | |||
| 28 | case LED_DIM: | ||
| 29 | setPinInput(PIN_LED); | ||
| 30 | break; | ||
| 31 | |||
| 32 | case LED_OFF: | ||
| 33 | setPinOutput(PIN_LED); | ||
| 34 | writePin(PIN_LED, GPIO_STATE_LOW); | ||
| 35 | break; | ||
| 36 | |||
| 37 | default: | ||
| 38 | break; | ||
| 39 | } | ||
| 40 | } | ||
diff --git a/keyboards/nullbitsco/scramble/scramble.h b/keyboards/nullbitsco/scramble/scramble.h new file mode 100644 index 000000000..5d3e1b010 --- /dev/null +++ b/keyboards/nullbitsco/scramble/scramble.h | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | /* Copyright 2020 Jay Greco | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #pragma once | ||
| 18 | |||
| 19 | #include "quantum.h" | ||
| 20 | |||
| 21 | // Indication LED settings | ||
| 22 | #define LED_ON 2 | ||
| 23 | #define LED_DIM 1 | ||
| 24 | #define LED_OFF 0 | ||
| 25 | |||
| 26 | #define GPIO_STATE_LOW 0 | ||
| 27 | #define GPIO_STATE_HIGH 1 | ||
| 28 | |||
| 29 | #define PIN_LED B2 | ||
| 30 | |||
| 31 | void set_scramble_LED(uint8_t mode); | ||
| 32 | |||
| 33 | #define LAYOUT( \ | ||
| 34 | K01, K02, K03, \ | ||
| 35 | K11, K12, K13 \ | ||
| 36 | ) { \ | ||
| 37 | {K01, K02, K03}, \ | ||
| 38 | {K11, K12, K13}, \ | ||
| 39 | } | ||
