Add a clueboard rev3 (#1688)
* 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
This commit is contained in:
		
							parent
							
								
									2b3803eb5e
								
							
						
					
					
						commit
						af14e672c9
					
				@ -7,6 +7,9 @@
 | 
			
		||||
#ifdef SUBPROJECT_rev2
 | 
			
		||||
    #include "rev2.h"
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef SUBPROJECT_rev3
 | 
			
		||||
    #include "rev3.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "quantum.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
 | 
			
		||||
 | 
			
		||||
@ -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.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								keyboards/clueboard/rev3/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/clueboard/rev3/Makefile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
ifndef MAKEFILE_INCLUDED
 | 
			
		||||
	include ../../../Makefile
 | 
			
		||||
endif
 | 
			
		||||
							
								
								
									
										46
									
								
								keyboards/clueboard/rev3/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								keyboards/clueboard/rev3/config.h
									
									
									
									
									
										Normal file
									
								
							@ -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
 | 
			
		||||
							
								
								
									
										63
									
								
								keyboards/clueboard/rev3/rev3.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								keyboards/clueboard/rev3/rev3.c
									
									
									
									
									
										Normal file
									
								
							@ -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);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										52
									
								
								keyboards/clueboard/rev3/rev3.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								keyboards/clueboard/rev3/rev3.h
									
									
									
									
									
										Normal file
									
								
							@ -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
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/clueboard/rev3/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/clueboard/rev3/rules.mk
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
BACKLIGHT_ENABLE = yes
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user