diff options
-rw-r--r-- | keyboards/clueboard/clueboard.h | 3 | ||||
-rw-r--r-- | keyboards/clueboard/config.h | 3 | ||||
-rw-r--r-- | keyboards/clueboard/readme.md | 3 | ||||
-rw-r--r-- | keyboards/clueboard/rev3/Makefile | 3 | ||||
-rw-r--r-- | keyboards/clueboard/rev3/config.h | 46 | ||||
-rw-r--r-- | keyboards/clueboard/rev3/rev3.c | 63 | ||||
-rw-r--r-- | keyboards/clueboard/rev3/rev3.h | 52 | ||||
-rw-r--r-- | keyboards/clueboard/rev3/rules.mk | 1 |
8 files changed, 173 insertions, 1 deletions
diff --git a/keyboards/clueboard/clueboard.h b/keyboards/clueboard/clueboard.h index 4f2a3c1df..295a596d5 100644 --- a/keyboards/clueboard/clueboard.h +++ b/keyboards/clueboard/clueboard.h @@ -7,6 +7,9 @@ #ifdef SUBPROJECT_rev2 #include "rev2.h" #endif +#ifdef SUBPROJECT_rev3 + #include "rev3.h" +#endif #include "quantum.h" diff --git a/keyboards/clueboard/config.h b/keyboards/clueboard/config.h index ad6832385..0d4e6a874 100644 --- a/keyboards/clueboard/config.h +++ b/keyboards/clueboard/config.h @@ -67,5 +67,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #ifdef SUBPROJECT_rev2 #include "rev2/config.h" #endif +#ifdef SUBPROJECT_rev3 + #include "rev3/config.h" +#endif #endif diff --git a/keyboards/clueboard/readme.md b/keyboards/clueboard/readme.md index 95b69befc..13859bc24 100644 --- a/keyboards/clueboard/readme.md +++ b/keyboards/clueboard/readme.md @@ -8,10 +8,11 @@ A fully customizable 66% keyboard. * Hardware Supported: Clueboard 66% PCB * rev1 (1.0) * rev2 (2.0, 2.0.1, 2.1, 2.5, 2.5.1, 2.6) + * rev3 (2.7) * Hardware Availability: [clueboard.co](https://clueboard.co/) Make example for this keyboard (after setting up your build environment): - make cluepad-default + make clueboard-rev3-default See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/clueboard/rev3/Makefile b/keyboards/clueboard/rev3/Makefile new file mode 100644 index 000000000..191c6bb66 --- /dev/null +++ b/keyboards/clueboard/rev3/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif
\ No newline at end of file diff --git a/keyboards/clueboard/rev3/config.h b/keyboards/clueboard/rev3/config.h new file mode 100644 index 000000000..cd12db22e --- /dev/null +++ b/keyboards/clueboard/rev3/config.h @@ -0,0 +1,46 @@ +#ifndef REV3_CONFIG_H +#define REV3_CONFIG_H + +#include "../config.h" + +#define PRODUCT_ID 0x2370 +#define DEVICE_VER 0x0001 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +// ROWS: Top to bottom, COLS: Left to right +/* Row pin configuration +* row: 0 1 2 3 4 5 6 7 8 9 +* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2 +*/ +#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } +/* Column pin configuration + * col: 0 1 2 3 4 5 6 7 + * pin: F0 F1 F4 F5 F6 F7 E6 B1 + */ +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } +#define UNUSED_PINS + + /* Backlight configuration + */ +#define BACKLIGHT_LEVELS 1 + +/* Underlight configuration + */ +#define RGB_DI_PIN D7 +#define RGBLED_NUM 18 // Number of LEDs +#define RGBLIGHT_HUE_STEP 32 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 666*2 +#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 // How many LEDs wide to light up +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 // The led to start at +#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up + +#endif diff --git a/keyboards/clueboard/rev3/rev3.c b/keyboards/clueboard/rev3/rev3.c new file mode 100644 index 000000000..8f703d2c9 --- /dev/null +++ b/keyboards/clueboard/rev3/rev3.c @@ -0,0 +1,63 @@ +#include "rev3.h" +#include <avr/io.h> +#include "backlight.h" +#include "print.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + matrix_init_user(); + led_init_ports(); + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1<<JTD); + MCUCR |= (1<<JTD); +} + + +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +void backlight_init_ports(void) { + print("init_backlight_pin()\n"); + // Set our LED pins as output + DDRD |= (1<<6); // Esc + DDRB |= (1<<7); // Page Up + DDRD |= (1<<4); // Arrows + + // Set our LED pins low + PORTD &= ~(1<<6); // Esc + PORTB &= ~(1<<7); // Page Up + PORTD &= ~(1<<4); // Arrows +} + +void backlight_set(uint8_t level) { + if ( level == 0 ) { + // Turn off light + PORTD |= (1<<6); // Esc + PORTB |= (1<<7); // Page Up + PORTD |= (1<<4); // Arrows + } else { + // Turn on light + PORTD &= ~(1<<6); // Esc + PORTB &= ~(1<<7); // Page Up + PORTD &= ~(1<<4); // Arrows + } +} + +void led_init_ports() { + // * Set our LED pins as output + DDRB |= (1<<4); +} + +void led_set_kb(uint8_t usb_led) { + DDRB |= (1<<4); + if (usb_led & (1<<USB_LED_CAPS_LOCK)) { + // Turn capslock on + PORTB |= (1<<4); + } else { + // Turn capslock off + PORTB &= ~(1<<4); + } +} diff --git a/keyboards/clueboard/rev3/rev3.h b/keyboards/clueboard/rev3/rev3.h new file mode 100644 index 000000000..eade14c3b --- /dev/null +++ b/keyboards/clueboard/rev3/rev3.h @@ -0,0 +1,52 @@ +#ifndef REV3_H +#define REV3_H + +#include "../clueboard.h" + +/* Clueboard matrix layout + * ,-----------------------------------------------------------. ,---. + * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 55| 56| | 57| + * |-----------------------------------------------------------| |---| + * | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67| + * |-----------------------------------------------------------| `---' + * | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 74| 75| + * |------------------------------------------------------------. + * | 30| 31| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 84| 85|86| + * |------------------------------------------------------------------. + * | 40| 41| 42| 43| 45| 46| 90| 92| 93| 94| 95| 96| 97| + * `------------------------------------------------------------------' + * ,-----------------------------------------------------------. ,---. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Yen| BS| |Ins| + * |-----------------------------------------------------------| |---| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| + * |-----------------------------------------------------------| `---' + * |Caps | A| S| D| F| G| H| J| k| L| ;| '| # | Ent| + * |--------------------------------------------------------------. + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up| + * |------------------------------------------------------------------. + * |Ctrl|Alt|Gui |MHen| Space| Space|Henk|Gui |Ctrl| Fn|Left|Down|Rgt| + * `------------------------------------------------------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \ + k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ + k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \ + k30, k31, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k84, k85, k86, \ + k40, k41, k42, k43, k45, k46, k90, k92, k93, k94, k95, k96, k97 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ + { k70, k71, k72, k73, k74, k75, KC_NO, KC_NO }, \ + { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ + { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ +} + +#endif diff --git a/keyboards/clueboard/rev3/rules.mk b/keyboards/clueboard/rev3/rules.mk new file mode 100644 index 000000000..54a2685bf --- /dev/null +++ b/keyboards/clueboard/rev3/rules.mk @@ -0,0 +1 @@ +BACKLIGHT_ENABLE = yes
\ No newline at end of file |