]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Add a clueboard rev3 (#1688)
authorskullydazed <skullydazed@users.noreply.github.com>
Wed, 6 Sep 2017 22:27:29 +0000 (15:27 -0700)
committerGitHub <noreply@github.com>
Wed, 6 Sep 2017 22:27:29 +0000 (15:27 -0700)
* Allow the knight animation to be restricted to a portion of the LED strip

* Add keys for jumping directly to particular animation modes

* Remove orphaned break statements

* Tweak the `RGB_MODE` buttons so they cycle through the same mode.

* small indentation fix

* Add a new revision of the clueboard with 18 underlight LEDs

keyboards/clueboard/clueboard.h
keyboards/clueboard/config.h
keyboards/clueboard/readme.md
keyboards/clueboard/rev3/Makefile [new file with mode: 0644]
keyboards/clueboard/rev3/config.h [new file with mode: 0644]
keyboards/clueboard/rev3/rev3.c [new file with mode: 0644]
keyboards/clueboard/rev3/rev3.h [new file with mode: 0644]
keyboards/clueboard/rev3/rules.mk [new file with mode: 0644]

index 4f2a3c1df15f01bbd3f0e90d87b50a91b4ed00ac..295a596d5aa16e43f51b5837cdb161a21b3aec4c 100644 (file)
@@ -7,6 +7,9 @@
 #ifdef SUBPROJECT_rev2
     #include "rev2.h"
 #endif
+#ifdef SUBPROJECT_rev3
+    #include "rev3.h"
+#endif
 
 #include "quantum.h"
 
index ad683238564ad8a7e956142db9cd7ca1ccedb803..0d4e6a8746c84d3825f4e2a143b7fbb7d67e1906 100644 (file)
@@ -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
index 95b69befcfbcedd6c0a674302d684f4d3a0f37d8..13859bc242a297e1ba0aeb947857f5b59f5b176d 100644 (file)
@@ -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 (file)
index 0000000..191c6bb
--- /dev/null
@@ -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 (file)
index 0000000..cd12db2
--- /dev/null
@@ -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 (file)
index 0000000..8f703d2
--- /dev/null
@@ -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 (file)
index 0000000..eade14c
--- /dev/null
@@ -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 (file)
index 0000000..54a2685
--- /dev/null
@@ -0,0 +1 @@
+BACKLIGHT_ENABLE = yes
\ No newline at end of file