diff options
Diffstat (limited to 'keyboards/cu75')
-rw-r--r-- | keyboards/cu75/.noci | 0 | ||||
-rw-r--r-- | keyboards/cu75/config.h | 94 | ||||
-rw-r--r-- | keyboards/cu75/cu75.c | 172 | ||||
-rw-r--r-- | keyboards/cu75/cu75.h | 109 | ||||
-rw-r--r-- | keyboards/cu75/info.json | 18 | ||||
-rw-r--r-- | keyboards/cu75/keymaps/default/keymap.c | 59 | ||||
-rw-r--r-- | keyboards/cu75/keymaps/default/rules.mk | 40 | ||||
-rw-r--r-- | keyboards/cu75/keymaps/iso/keymap.c | 58 | ||||
-rw-r--r-- | keyboards/cu75/keymaps/iso/rules.mk | 40 | ||||
-rw-r--r-- | keyboards/cu75/readme.md | 17 | ||||
-rw-r--r-- | keyboards/cu75/rules.mk | 12 |
11 files changed, 619 insertions, 0 deletions
diff --git a/keyboards/cu75/.noci b/keyboards/cu75/.noci new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/keyboards/cu75/.noci | |||
diff --git a/keyboards/cu75/config.h b/keyboards/cu75/config.h new file mode 100644 index 000000000..cfcb08cce --- /dev/null +++ b/keyboards/cu75/config.h | |||
@@ -0,0 +1,94 @@ | |||
1 | /* | ||
2 | Copyright 2012 Jun Wako <[email protected]> | ||
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 | #define VENDOR_ID 0xFEED | ||
23 | #define PRODUCT_ID 0x6062 | ||
24 | #define DEVICE_VER 0x0001 | ||
25 | #define MANUFACTURER LFKeyboards/CapsUnlocked | ||
26 | #define PRODUCT CU75 | ||
27 | |||
28 | #define DIODE_DIRECTION COL2ROW | ||
29 | #define MATRIX_ROWS 6 | ||
30 | #define MATRIX_COLS 16 | ||
31 | #define MATRIX_ROW_PINS {F1, B7, B3, D2, D3, B2} | ||
32 | #define MATRIX_COL_PINS {F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, B1, B0, F0} | ||
33 | #define UNUSED_PINS {} | ||
34 | |||
35 | #define RGB_DI_PIN C7 // Have to set it to something to get the ws2812 code to compile | ||
36 | #define RGBLED_NUM 24 // Number of LEDs | ||
37 | #define RGBLIGHT_ANIMATIONS | ||
38 | #define RGBLIGHT_HUE_STEP 10 | ||
39 | #define RGBLIGHT_SAT_STEP 17 | ||
40 | #define RGBLIGHT_VAL_STEP 17 | ||
41 | |||
42 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
43 | #define DEBOUNCE 5 | ||
44 | |||
45 | /* define if matrix has ghost (lacks anti-ghosting diodes) */ | ||
46 | //#define MATRIX_HAS_GHOST | ||
47 | |||
48 | /* number of backlight levels */ | ||
49 | #define BACKLIGHT_LEVELS 8 | ||
50 | #define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255} | ||
51 | |||
52 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
53 | #define LOCKING_SUPPORT_ENABLE | ||
54 | /* Locking resynchronize hack */ | ||
55 | #define LOCKING_RESYNC_ENABLE | ||
56 | |||
57 | /* | ||
58 | * Force NKRO | ||
59 | * | ||
60 | * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved | ||
61 | * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the | ||
62 | * makefile for this to work.) | ||
63 | * | ||
64 | * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) | ||
65 | * until the next keyboard reset. | ||
66 | * | ||
67 | * NKRO may prevent your keystrokes from being detected in the BIOS, but it is | ||
68 | * fully operational during normal computer usage. | ||
69 | * | ||
70 | * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) | ||
71 | * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by | ||
72 | * bootmagic, NKRO mode will always be enabled until it is toggled again during a | ||
73 | * power-up. | ||
74 | * | ||
75 | */ | ||
76 | //#define FORCE_NKRO | ||
77 | |||
78 | /* | ||
79 | * Feature disable options | ||
80 | * These options are also useful to firmware size reduction. | ||
81 | */ | ||
82 | |||
83 | /* disable debug print */ | ||
84 | //#define NO_DEBUG | ||
85 | |||
86 | /* disable print */ | ||
87 | //#define NO_PRINT | ||
88 | |||
89 | /* disable action features */ | ||
90 | //#define NO_ACTION_LAYER | ||
91 | //#define NO_ACTION_TAPPING | ||
92 | //#define NO_ACTION_ONESHOT | ||
93 | //#define NO_ACTION_MACRO | ||
94 | //#define NO_ACTION_FUNCTION | ||
diff --git a/keyboards/cu75/cu75.c b/keyboards/cu75/cu75.c new file mode 100644 index 000000000..273dd0927 --- /dev/null +++ b/keyboards/cu75/cu75.c | |||
@@ -0,0 +1,172 @@ | |||
1 | #include <avr/sfr_defs.h> | ||
2 | #include <avr/timer_avr.h> | ||
3 | #include <avr/wdt.h> | ||
4 | #include "cu75.h" | ||
5 | #include "keymap.h" | ||
6 | #include "debug.h" | ||
7 | #include "../lfkeyboards/issi.h" | ||
8 | #include "../lfkeyboards/TWIlib.h" | ||
9 | #include "../lfkeyboards/lighting.h" | ||
10 | |||
11 | #ifdef AUDIO_ENABLE | ||
12 | float test_sound[][2] = SONG(STARTUP_SOUND); | ||
13 | #include "audio.h" | ||
14 | #endif | ||
15 | |||
16 | uint16_t click_hz = CLICK_HZ; | ||
17 | uint16_t click_time = CLICK_MS; | ||
18 | uint8_t click_toggle = CLICK_ENABLED; | ||
19 | |||
20 | |||
21 | void matrix_init_kb(void) | ||
22 | { | ||
23 | // put your keyboard start-up code here | ||
24 | // runs once when the firmware starts up | ||
25 | matrix_init_user(); | ||
26 | |||
27 | #ifdef AUDIO_ENABLE | ||
28 | audio_init(); | ||
29 | PLAY_SONG(test_sound); | ||
30 | // Fix port B5 | ||
31 | setPinInput(B5); | ||
32 | writePinHigh(B5); | ||
33 | #else | ||
34 | // If we're not using the audio pin, drive it low | ||
35 | setPinOutput(C6); | ||
36 | writePinLow(C6); | ||
37 | #endif | ||
38 | #ifdef ISSI_ENABLE | ||
39 | issi_init(); | ||
40 | #endif | ||
41 | } | ||
42 | |||
43 | void matrix_scan_kb(void) | ||
44 | { | ||
45 | #ifdef WATCHDOG_ENABLE | ||
46 | wdt_reset(); | ||
47 | #endif | ||
48 | #ifdef ISSI_ENABLE | ||
49 | // switch/underglow lighting update | ||
50 | static uint32_t issi_device = 0; | ||
51 | static uint32_t twi_last_ready = 0; | ||
52 | if(twi_last_ready > 1000){ | ||
53 | // Its been way too long since the last ISSI update, reset the I2C bus and start again | ||
54 | dprintf("TWI failed to recover, TWI re-init\n"); | ||
55 | twi_last_ready = 0; | ||
56 | TWIInit(); | ||
57 | force_issi_refresh(); | ||
58 | } | ||
59 | if(isTWIReady()){ | ||
60 | twi_last_ready = 0; | ||
61 | // If the i2c bus is available, kick off the issi update, alternate between devices | ||
62 | update_issi(issi_device, issi_device); | ||
63 | if(issi_device){ | ||
64 | issi_device = 0; | ||
65 | }else{ | ||
66 | issi_device = 3; | ||
67 | } | ||
68 | }else{ | ||
69 | twi_last_ready++; | ||
70 | } | ||
71 | #endif | ||
72 | matrix_scan_user(); | ||
73 | } | ||
74 | |||
75 | void click(uint16_t freq, uint16_t duration){ | ||
76 | #ifdef AUDIO_ENABLE | ||
77 | if(freq >= 100 && freq <= 20000 && duration < 100){ | ||
78 | play_note(freq, 10); | ||
79 | for (uint16_t i = 0; i < duration; i++){ | ||
80 | _delay_ms(1); | ||
81 | } | ||
82 | stop_all_notes(); | ||
83 | } | ||
84 | #endif | ||
85 | } | ||
86 | |||
87 | bool process_record_kb(uint16_t keycode, keyrecord_t* record) | ||
88 | { | ||
89 | // Test code that turns on the switch led for the key that is pressed | ||
90 | // set_backlight_by_keymap(record->event.key.col, record->event.key.row); | ||
91 | if (click_toggle && record->event.pressed){ | ||
92 | click(click_hz, click_time); | ||
93 | } | ||
94 | if (keycode == RESET) { | ||
95 | reset_keyboard_kb(); | ||
96 | } else { | ||
97 | } | ||
98 | return process_record_user(keycode, record); | ||
99 | } | ||
100 | |||
101 | void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) | ||
102 | { | ||
103 | #ifdef AUDIO_ENABLE | ||
104 | int8_t sign = 1; | ||
105 | #endif | ||
106 | if(id == LFK_ESC_TILDE){ | ||
107 | // Send ~ on shift-esc | ||
108 | void (*method)(uint8_t) = (event->event.pressed) ? &add_key : &del_key; | ||
109 | uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)); | ||
110 | method(shifted ? KC_GRAVE : KC_ESCAPE); | ||
111 | send_keyboard_report(); | ||
112 | }else if(event->event.pressed){ | ||
113 | switch(id){ | ||
114 | case LFK_SET_DEFAULT_LAYER: | ||
115 | // set/save the current base layer to eeprom, falls through to LFK_CLEAR | ||
116 | eeconfig_update_default_layer(1UL << opt); | ||
117 | default_layer_set(1UL << opt); | ||
118 | case LFK_CLEAR: | ||
119 | // Go back to default layer | ||
120 | layer_clear(); | ||
121 | break; | ||
122 | #ifdef AUDIO_ENABLE | ||
123 | case LFK_CLICK_FREQ_LOWER: | ||
124 | sign = -1; // continue to next statement | ||
125 | case LFK_CLICK_FREQ_HIGHER: | ||
126 | click_hz += sign * 100; | ||
127 | click(click_hz, click_time); | ||
128 | break; | ||
129 | case LFK_CLICK_TOGGLE: | ||
130 | if(click_toggle){ | ||
131 | click_toggle = 0; | ||
132 | click(4000, 100); | ||
133 | click(1000, 100); | ||
134 | }else{ | ||
135 | click_toggle = 1; | ||
136 | click(1000, 100); | ||
137 | click(4000, 100); | ||
138 | } | ||
139 | break; | ||
140 | case LFK_CLICK_TIME_SHORTER: | ||
141 | sign = -1; // continue to next statement | ||
142 | case LFK_CLICK_TIME_LONGER: | ||
143 | click_time += sign; | ||
144 | click(click_hz, click_time); | ||
145 | break; | ||
146 | #endif | ||
147 | case LFK_DEBUG_SETTINGS: | ||
148 | dprintf("Click:\n"); | ||
149 | dprintf(" toggle: %d\n", click_toggle); | ||
150 | dprintf(" freq(hz): %d\n", click_hz); | ||
151 | dprintf(" duration(ms): %d\n", click_time); | ||
152 | break; | ||
153 | } | ||
154 | } | ||
155 | } | ||
156 | |||
157 | void reset_keyboard_kb(){ | ||
158 | #ifdef WATCHDOG_ENABLE | ||
159 | MCUSR = 0; | ||
160 | wdt_disable(); | ||
161 | wdt_reset(); | ||
162 | #endif | ||
163 | reset_keyboard(); | ||
164 | } | ||
165 | |||
166 | // LFK lighting info | ||
167 | const uint8_t switch_matrices[] = {0, 1}; | ||
168 | const uint8_t rgb_matrices[] = {6, 7}; | ||
169 | const uint8_t rgb_sequence[] = { | ||
170 | 24, 23, 22, 21, 20, 19, 18, 17, 1, 2, 3, 4, 5, | ||
171 | 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 9 | ||
172 | }; | ||
diff --git a/keyboards/cu75/cu75.h b/keyboards/cu75/cu75.h new file mode 100644 index 000000000..444c8daae --- /dev/null +++ b/keyboards/cu75/cu75.h | |||
@@ -0,0 +1,109 @@ | |||
1 | #pragma once | ||
2 | |||
3 | #include "quantum.h" | ||
4 | #include "matrix.h" | ||
5 | #include <avr/sfr_defs.h> | ||
6 | |||
7 | typedef struct RGB_Color { | ||
8 | uint16_t red; | ||
9 | uint16_t green; | ||
10 | uint16_t blue; | ||
11 | } RGB_Color; | ||
12 | |||
13 | typedef struct Layer_Info { | ||
14 | uint32_t layer; | ||
15 | uint32_t mask; | ||
16 | RGB_Color color; | ||
17 | } Layer_Info; | ||
18 | |||
19 | extern const uint32_t layer_count; | ||
20 | extern const Layer_Info layer_info[]; | ||
21 | |||
22 | enum action_functions { | ||
23 | LFK_CLEAR = 0, // Resets all layers | ||
24 | LFK_ESC_TILDE, // esc+lshift = ~ | ||
25 | LFK_SET_DEFAULT_LAYER, // changes and saves current base layer to eeprom | ||
26 | LFK_CLICK_TOGGLE, // Adjusts click duration | ||
27 | LFK_CLICK_FREQ_HIGHER, // Adjusts click frequency | ||
28 | LFK_CLICK_FREQ_LOWER, // Adjusts click frequency | ||
29 | LFK_CLICK_TIME_LONGER, // Adjusts click duration | ||
30 | LFK_CLICK_TIME_SHORTER, // Adjusts click duration | ||
31 | LFK_DEBUG_SETTINGS, // prints LED and click settings to HID | ||
32 | LFK_LED_TEST // cycles through switch and RGB LEDs | ||
33 | }; | ||
34 | |||
35 | #define CLICK_HZ 500 | ||
36 | #define CLICK_MS 2 | ||
37 | #define CLICK_ENABLED 0 | ||
38 | |||
39 | void reset_keyboard_kb(void); | ||
40 | void click(uint16_t freq, uint16_t duration); | ||
41 | |||
42 | #define XXX KC_NO | ||
43 | |||
44 | /* Vanilla Keymap */ | ||
45 | // This a shortcut to help you visually see your layout. | ||
46 | /* | ||
47 | * ,-------------------------------------------------------------------------------. | ||
48 | * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | | ||
49 | * |-------------------------------------------------------------------------------| | ||
50 | * | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1F | | ||
51 | * |-------------------------------------------------------------------------------| | ||
52 | * | 20 | 21 |22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | 2C | 2D | 2E | | ||
53 | * |-------------------------------------------------------------------------------| | ||
54 | * | 30 | 31 |32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 3A | 3B | 3C | 3E | | ||
55 | * |-------------------------------------------------------------------------------| | ||
56 | * | 40 | 42 |43 | 44 | 45 | 46 | 47 | 48 | 49 | 4A | 4B | 4C | 4D | 4E | | ||
57 | * |-------------------------------------------------------------------------------| | ||
58 | * | 50 | 51 | 52 | 53 | 56 | 58 | 59 | 5A | 5B | 5C | 5D | 5E | | ||
59 | * `-------------------------------------------------------------------------------' | ||
60 | */ | ||
61 | // The first section contains all of the arguements | ||
62 | // The second converts the arguments into a two-dimensional array | ||
63 | #define LAYOUT( \ | ||
64 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ | ||
65 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ | ||
66 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \ | ||
67 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3E, \ | ||
68 | k40, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, \ | ||
69 | k50, k51, k52, k53, k56, k58, k59, k5A, k5B, k5C, k5D, k5E \ | ||
70 | ) { \ | ||
71 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ | ||
72 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, XXX, k1F }, \ | ||
73 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, XXX }, \ | ||
74 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, XXX, k3E, XXX }, \ | ||
75 | { k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, XXX }, \ | ||
76 | { k50, k51, k52, k53, XXX, XXX, k56, XXX, k58, k59, k5A, k5B, k5C, k5D, k5E, XXX } \ | ||
77 | } | ||
78 | |||
79 | #define LAYOUT_all( \ | ||
80 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ | ||
81 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \ | ||
82 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \ | ||
83 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ | ||
84 | k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, \ | ||
85 | k50, k51, k52, k53, k56, k58, k59, k5A, k5B, k5C, k5D, k5E \ | ||
86 | ) { \ | ||
87 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ | ||
88 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ | ||
89 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, XXX }, \ | ||
90 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX }, \ | ||
91 | { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, XXX }, \ | ||
92 | { k50, k51, k52, k53, XXX, XXX, k56, XXX, k58, k59, k5A, k5B, k5C, k5D, k5E, XXX } \ | ||
93 | } | ||
94 | |||
95 | #define LAYOUT_iso( \ | ||
96 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ | ||
97 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ | ||
98 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \ | ||
99 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3E, \ | ||
100 | k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, \ | ||
101 | k50, k51, k52, k53, k56, k58, k59, k5A, k5B, k5C, k5D, k5E \ | ||
102 | ) { \ | ||
103 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ | ||
104 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, XXX, k1F }, \ | ||
105 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, XXX }, \ | ||
106 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, XXX, k3E, XXX }, \ | ||
107 | { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, XXX }, \ | ||
108 | { k50, k51, k52, k53, XXX, XXX, k56, XXX, k58, k59, k5A, k5B, k5C, k5D, k5E, XXX } \ | ||
109 | } | ||
diff --git a/keyboards/cu75/info.json b/keyboards/cu75/info.json new file mode 100644 index 000000000..07812ddb5 --- /dev/null +++ b/keyboards/cu75/info.json | |||
@@ -0,0 +1,18 @@ | |||
1 | { | ||
2 | "keyboard_name": "cu75", | ||
3 | "url": "", | ||
4 | "maintainer": "qmk", | ||
5 | "layouts": { | ||
6 | "LAYOUT": { | ||
7 | "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.75}, {"x":6.5, "y":5}, {"x":7.5, "y":5, "w":2.5}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] | ||
8 | }, | ||
9 | |||
10 | "LAYOUT_all": { | ||
11 | "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.75}, {"x":6.5, "y":5}, {"x":7.5, "y":5, "w":2.5}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}] | ||
12 | }, | ||
13 | |||
14 | "LAYOUT_iso": { | ||
15 | "layout": [{"label":"k01", "x":0, "y":0}, {"label":"k02", "x":1, "y":0}, {"label":"k03", "x":2, "y":0}, {"label":"k04", "x":3, "y":0}, {"label":"k05", "x":4, "y":0}, {"label":"k06", "x":5, "y":0}, {"label":"k07", "x":6, "y":0}, {"label":"k08", "x":7, "y":0}, {"label":"k09", "x":8, "y":0}, {"label":"k0A", "x":9, "y":0}, {"label":"k0B", "x":10, "y":0}, {"label":"k0C", "x":11, "y":0}, {"label":"k0D", "x":12, "y":0}, {"label":"k0E", "x":13, "y":0}, {"label":"k0F", "x":14, "y":0}, {"label":"k0G", "x":15, "y":0}, {"label":"k11", "x":0, "y":1}, {"label":"k12", "x":1, "y":1}, {"label":"k13", "x":2, "y":1}, {"label":"k14", "x":3, "y":1}, {"label":"k15", "x":4, "y":1}, {"label":"k16", "x":5, "y":1}, {"label":"k17", "x":6, "y":1}, {"label":"k18", "x":7, "y":1}, {"label":"k19", "x":8, "y":1}, {"label":"k1A", "x":9, "y":1}, {"label":"k1B", "x":10, "y":1}, {"label":"k1C", "x":11, "y":1}, {"label":"k1D", "x":12, "y":1}, {"label":"k1E", "x":13, "y":1, "w":2}, {"label":"k1G", "x":15, "y":1}, {"label":"k21", "x":0, "y":2, "w":1.5}, {"label":"k22", "x":1.5, "y":2}, {"label":"k23", "x":2.5, "y":2}, {"label":"k24", "x":3.5, "y":2}, {"label":"k25", "x":4.5, "y":2}, {"label":"k26", "x":5.5, "y":2}, {"label":"k27", "x":6.5, "y":2}, {"label":"k28", "x":7.5, "y":2}, {"label":"k29", "x":8.5, "y":2}, {"label":"k2A", "x":9.5, "y":2}, {"label":"k2B", "x":10.5, "y":2}, {"label":"k2C", "x":11.5, "y":2}, {"label":"k2D", "x":12.5, "y":2}, {"label":"k2E", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"k2F", "x":15, "y":2}, {"label":"k31", "x":0, "y":3, "w":1.75}, {"label":"k32", "x":1.75, "y":3}, {"label":"k33", "x":2.75, "y":3}, {"label":"k34", "x":3.75, "y":3}, {"label":"k35", "x":4.75, "y":3}, {"label":"k36", "x":5.75, "y":3}, {"label":"k37", "x":6.75, "y":3}, {"label":"k38", "x":7.75, "y":3}, {"label":"k39", "x":8.75, "y":3}, {"label":"k3A", "x":9.75, "y":3}, {"label":"k3B", "x":10.75, "y":3}, {"label":"k3C", "x":11.75, "y":3}, {"label":"k3D", "x":12.75, "y":3}, {"label":"k3F", "x":15, "y":3}, {"label":"k41", "x":0, "y":4, "w":1.25}, {"label":"k42", "x":1.25, "y":4}, {"label":"k43", "x":2.25, "y":4}, {"label":"k44", "x":3.25, "y":4}, {"label":"k45", "x":4.25, "y":4}, {"label":"k46", "x":5.25, "y":4}, {"label":"k47", "x":6.25, "y":4}, {"label":"k48", "x":7.25, "y":4}, {"label":"k49", "x":8.25, "y":4}, {"label":"k4A", "x":9.25, "y":4}, {"label":"k4B", "x":10.25, "y":4}, {"label":"k4C", "x":11.25, "y":4}, {"label":"k4D", "x":12.25, "y":4, "w":1.75}, {"label":"k4E", "x":14, "y":4}, {"label":"k4F", "x":15, "y":4}, {"label":"k51", "x":0, "y":5, "w":1.25}, {"label":"k52", "x":1.25, "y":5, "w":1.25}, {"label":"k53", "x":2.5, "y":5, "w":1.25}, {"label":"k54", "x":3.75, "y":5, "w":2.25}, {"label":"k57", "x":6, "y":5, "w":1.25}, {"label":"k59", "x":7.25, "y":5, "w":2.75}, {"label":"k5A", "x":10, "y":5}, {"label":"k5B", "x":11, "y":5}, {"label":"k5C", "x":12, "y":5}, {"label":"k5D", "x":13, "y":5}, {"label":"k5E", "x":14, "y":5}, {"label":"k5F", "x":15, "y":5}] | ||
16 | } | ||
17 | } | ||
18 | } | ||
diff --git a/keyboards/cu75/keymaps/default/keymap.c b/keyboards/cu75/keymaps/default/keymap.c new file mode 100644 index 000000000..b1e3e9f97 --- /dev/null +++ b/keyboards/cu75/keymaps/default/keymap.c | |||
@@ -0,0 +1,59 @@ | |||
1 | #include QMK_KEYBOARD_H | ||
2 | |||
3 | enum keymap_layout { | ||
4 | VANILLA = 0, | ||
5 | FUNC, | ||
6 | SETTINGS, | ||
7 | }; | ||
8 | |||
9 | |||
10 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
11 | /* Keymap VANILLA: (Base Layer) Default Layer | ||
12 | * ,------------------------------------------------------------.----. | ||
13 | * |Esc | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|F13|F14| F15| | ||
14 | * |------------------------------------------------------------|----| | ||
15 | * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| Ins| | ||
16 | * |------------------------------------------------------------|----| | ||
17 | * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| Del| | ||
18 | * |------------------------------------------------------------|----| | ||
19 | * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp| | ||
20 | * |------------------------------------------------------------|----| | ||
21 | * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgDn| | ||
22 | * |-----------------------------------------------------------------| | ||
23 | * |Ctrl|Win |Alt |Space| Space |Space|Alt |Ctrl|Func|Lft| Dn |Rig | | ||
24 | * `-----------------------------------------------------------------' | ||
25 | */ | ||
26 | [VANILLA] = LAYOUT( | ||
27 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, | ||
28 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, | ||
29 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, | ||
30 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, | ||
31 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, | ||
32 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT | ||
33 | |||
34 | ), | ||
35 | |||
36 | /* Keymap VANILLA: Function Layer | ||
37 | * ,-------------------------------------------------------------------. | ||
38 | * | | | | | | | | | | | | | | | | | | ||
39 | * |-------------------------------------------------------------------| | ||
40 | * | | | | | | | | | | | | | | | | | ||
41 | * |-------------------------------------------------------------------| | ||
42 | * | | | | | | | | | | | | | | | RGB_TOG| | ||
43 | * |-------------------------------------------------------------------| | ||
44 | * | | | | | | | | | | | | |RESET |RGB_MODE| | ||
45 | * |-------------------------------------------------------------------| | ||
46 | * | | | | | | | | | |VAD|VAI| |RGB_HUI| | | ||
47 | * |-------------------------------------------------------------------| | ||
48 | * | | | | | | | |RGB_SAD|RGB_HUD|RGB_SAI| | ||
49 | * `-------------------------------------------------------------------' | ||
50 | */ | ||
51 | [FUNC] = LAYOUT( | ||
52 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
53 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
54 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, | ||
55 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MOD, | ||
56 | _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______, | ||
57 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI | ||
58 | ), | ||
59 | }; | ||
diff --git a/keyboards/cu75/keymaps/default/rules.mk b/keyboards/cu75/keymaps/default/rules.mk new file mode 100644 index 000000000..bbd4c8c9f --- /dev/null +++ b/keyboards/cu75/keymaps/default/rules.mk | |||
@@ -0,0 +1,40 @@ | |||
1 | BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | ||
2 | MOUSEKEY_ENABLE = no # Mouse keys | ||
3 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
4 | CONSOLE_ENABLE = no # Console for debug | ||
5 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
6 | NKRO_ENABLE = yes | ||
7 | BACKLIGHT_ENABLE = yes # Disable keyboard backlight functionality | ||
8 | AUDIO_ENABLE = no # Audio output | ||
9 | RGBLIGHT_ENABLE = yes # Disable RGB underlight | ||
10 | RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 | ||
11 | SLEEP_LED_ENABLE = yes | ||
12 | |||
13 | ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled | ||
14 | WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms | ||
15 | |||
16 | |||
17 | ifeq ($(strip $(ISSI_ENABLE)), yes) | ||
18 | TMK_COMMON_DEFS += -DISSI_ENABLE | ||
19 | endif | ||
20 | |||
21 | ifeq ($(strip $(WATCHDOG_ENABLE)), yes) | ||
22 | TMK_COMMON_DEFS += -DWATCHDOG_ENABLE | ||
23 | endif | ||
24 | |||
25 | |||
26 | # # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired | ||
27 | # # | ||
28 | # # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight | ||
29 | # # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB | ||
30 | # # | ||
31 | # # Set to B, C or D | ||
32 | # LFK_REV = D | ||
33 | |||
34 | # ifeq ($(LFK_REV), B) | ||
35 | # MCU = atmega32u4 | ||
36 | # else | ||
37 | # MCU = at90usb1286 | ||
38 | # endif | ||
39 | # OPT_DEFS += -DLFK_REV_$(LFK_REV) | ||
40 | # OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\" | ||
diff --git a/keyboards/cu75/keymaps/iso/keymap.c b/keyboards/cu75/keymaps/iso/keymap.c new file mode 100644 index 000000000..ce7d51eed --- /dev/null +++ b/keyboards/cu75/keymaps/iso/keymap.c | |||
@@ -0,0 +1,58 @@ | |||
1 | #include QMK_KEYBOARD_H | ||
2 | |||
3 | enum keymap_layout { | ||
4 | VANILLA = 0, | ||
5 | FUNC, | ||
6 | SETTINGS, | ||
7 | }; | ||
8 | |||
9 | |||
10 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
11 | /* Keymap VANILLA: (Base Layer) Default Layer | ||
12 | * ,------------------------------------------------------------.----. | ||
13 | * |Esc | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|F13|F14| F15| | ||
14 | * |------------------------------------------------------------|----| | ||
15 | * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| Ins| | ||
16 | * |------------------------------------------------------------|----| | ||
17 | * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ret | Del| | ||
18 | * |--------------------------------------------------------. |----| | ||
19 | * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| # | |PgUp| | ||
20 | * |------------------------------------------------------------|----| | ||
21 | * |Shft| \ | Z| X| C| V| B| N| M| ,| .| /|Shift | Up |PgDn| | ||
22 | * |-----------------------------------------------------------------| | ||
23 | * |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig | | ||
24 | * `-----------------------------------------------------------------' | ||
25 | */ | ||
26 | [VANILLA] = LAYOUT_iso( | ||
27 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, | ||
28 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, | ||
29 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, | ||
30 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGUP, | ||
31 | KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, | ||
32 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT | ||
33 | ), | ||
34 | |||
35 | /* Keymap VANILLA: Function Layer | ||
36 | * ,-----------------------------------------------------------.---. | ||
37 | * | | | | | | | | | | | | | | | | | | ||
38 | * |---------------------------------------------------------------| | ||
39 | * | | | | | | | | | | | | | | | | | ||
40 | * |---------------------------------------------------------------| | ||
41 | * | | | | | | | | | | | | | | |TOG| | ||
42 | * |------------------------------------------------------. |---| | ||
43 | * | | | | | | | | | | | | |RST| |MOD| | ||
44 | * |---------------------------------------------------------------| | ||
45 | * | | | | | | | | | |VAD|VAI| | |HUI| | | ||
46 | * |---------------------------------------------------------------| | ||
47 | * | | | | | | | |SAD|HUD|SAI| | ||
48 | * `---------------------------------------------------------------' | ||
49 | */ | ||
50 | [FUNC] = LAYOUT_iso( | ||
51 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
52 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
53 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, | ||
54 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MOD, | ||
55 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, RGB_HUI, _______, | ||
56 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI | ||
57 | ), | ||
58 | }; | ||
diff --git a/keyboards/cu75/keymaps/iso/rules.mk b/keyboards/cu75/keymaps/iso/rules.mk new file mode 100644 index 000000000..be27fed69 --- /dev/null +++ b/keyboards/cu75/keymaps/iso/rules.mk | |||
@@ -0,0 +1,40 @@ | |||
1 | BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | ||
2 | MOUSEKEY_ENABLE = no # Mouse keys(+4700) | ||
3 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
4 | CONSOLE_ENABLE = yes # Console for debug(+400) | ||
5 | COMMAND_ENABLE = yes # Commands for debug and configuration | ||
6 | NKRO_ENABLE = yes | ||
7 | # BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality | ||
8 | AUDIO_ENABLE = no # Audio output | ||
9 | RGBLIGHT_ENABLE = no # Disable RGB underlight | ||
10 | RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 | ||
11 | SLEEP_LED_ENABLE = yes | ||
12 | |||
13 | ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled | ||
14 | WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms | ||
15 | |||
16 | |||
17 | ifeq ($(strip $(ISSI_ENABLE)), yes) | ||
18 | TMK_COMMON_DEFS += -DISSI_ENABLE | ||
19 | endif | ||
20 | |||
21 | ifeq ($(strip $(WATCHDOG_ENABLE)), yes) | ||
22 | TMK_COMMON_DEFS += -DWATCHDOG_ENABLE | ||
23 | endif | ||
24 | |||
25 | |||
26 | # # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired | ||
27 | # # | ||
28 | # # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight | ||
29 | # # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB | ||
30 | # # | ||
31 | # # Set to B, C or D | ||
32 | # LFK_REV = D | ||
33 | |||
34 | # ifeq ($(LFK_REV), B) | ||
35 | # MCU = atmega32u4 | ||
36 | # else | ||
37 | # MCU = at90usb1286 | ||
38 | # endif | ||
39 | # OPT_DEFS += -DLFK_REV_$(LFK_REV) | ||
40 | # OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\" | ||
diff --git a/keyboards/cu75/readme.md b/keyboards/cu75/readme.md new file mode 100644 index 000000000..43603440f --- /dev/null +++ b/keyboards/cu75/readme.md | |||
@@ -0,0 +1,17 @@ | |||
1 | # CU75 | ||
2 | |||
3 |  | ||
4 | |||
5 | A luxurious 75% keyboard with various layouts. Includes RGB underglow, backlight and an aluminium, brass and nylon case. | ||
6 | |||
7 | Keyboard Maintainer: [Yiancar](https://github.com/yiancar) and [LFKeyboards](https://github.com/lfkeyboards) | ||
8 | Hardware Supported: PCB v1.0 (uses a 32u4) | ||
9 | Hardware Availability: [caps-unlocked.com](http://caps-unlocked.com/) | ||
10 | |||
11 | This PCB uses lighting libraries from LFKeyboards | ||
12 | |||
13 | Make example for this keyboard (after setting up your build environment): | ||
14 | |||
15 | make CU75:default | ||
16 | |||
17 | 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. | ||
diff --git a/keyboards/cu75/rules.mk b/keyboards/cu75/rules.mk new file mode 100644 index 000000000..6274267ab --- /dev/null +++ b/keyboards/cu75/rules.mk | |||
@@ -0,0 +1,12 @@ | |||
1 | # MCU name | ||
2 | MCU = atmega32u4 | ||
3 | |||
4 | # Bootloader selection | ||
5 | BOOTLOADER = atmel-dfu | ||
6 | |||
7 | # Build Options | ||
8 | # change yes to no to disable | ||
9 | # | ||
10 | BACKLIGHT_DRIVER = custom | ||
11 | |||
12 | SRC = ../lfkeyboards/TWIlib.c ../lfkeyboards/issi.c ../lfkeyboards/lighting.c | ||