diff options
Diffstat (limited to 'keyboards/bpiphany/pegasushoof')
26 files changed, 1613 insertions, 0 deletions
diff --git a/keyboards/bpiphany/pegasushoof/.noci b/keyboards/bpiphany/pegasushoof/.noci new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/.noci | |||
diff --git a/keyboards/bpiphany/pegasushoof/2013/.noci b/keyboards/bpiphany/pegasushoof/2013/.noci new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2013/.noci | |||
diff --git a/keyboards/bpiphany/pegasushoof/2013/2013.c b/keyboards/bpiphany/pegasushoof/2013/2013.c new file mode 100644 index 000000000..c9bd01a99 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2013/2013.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | Copyright 2016 Daniel Svensson <[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 | #include "2013.h" | ||
19 | |||
20 | |||
21 | extern inline void ph_caps_led_on(void); | ||
22 | extern inline void ph_caps_led_off(void); | ||
23 | |||
24 | extern inline void ph_sclk_led_on(void); | ||
25 | extern inline void ph_sclk_led_off(void); | ||
diff --git a/keyboards/bpiphany/pegasushoof/2013/2013.h b/keyboards/bpiphany/pegasushoof/2013/2013.h new file mode 100644 index 000000000..7a4d7f0b5 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2013/2013.h | |||
@@ -0,0 +1,82 @@ | |||
1 | /* | ||
2 | Copyright 2016 Daniel Svensson <[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 "matrix.h" | ||
21 | #include "quantum.h" | ||
22 | |||
23 | #define LAYOUT( \ | ||
24 | KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ | ||
25 | KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ | ||
26 | KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ | ||
27 | KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ | ||
28 | KB2, KH6, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ | ||
29 | KP4, KD2, KN6, KQ6, KN0, KA3, KM0, KP1, KC0, KQ0, KR0 \ | ||
30 | ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ | ||
31 | /* 0 */ { KC_NO , KC_NO , KC0 , KC_NO , KC_NO , KF0 , KC_NO , KC_NO , KC_NO , KJ0 , KK0 , KC_NO , KM0 , KN0 , KO0 , KC_NO , KQ0 , KR0 }, \ | ||
32 | /* 1 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KG1 , KH1 , KI1 , KJ1 , KK1 , KL1 , KM1 , KC_NO , KO1 , KP1 , KC_NO , KC_NO }, \ | ||
33 | /* 2 */ { KC_NO , KB2 , KC_NO , KD2 , KC_NO , KF2 , KG2 , KH2 , KI2 , KJ2 , KK2 , KL2 , KM2 , KC_NO , KO2 , KC_NO , KC_NO , KC_NO }, \ | ||
34 | /* 3 */ { KA3 , KB3 , KC_NO , KC_NO , KC_NO , KF3 , KG3 , KH3 , KI3 , KJ3 , KK3 , KL3 , KM3 , KC_NO , KO3 , KC_NO , KC_NO , KC_NO }, \ | ||
35 | /* 4 */ { KC_NO , KC_NO , KC4 , KC_NO , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , KM4 , KC_NO , KO4 , KP4 , KQ4 , KR4 }, \ | ||
36 | /* 5 */ { KC_NO , KC_NO , KC5 , KC_NO , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , KK5 , KL5 , KM5 , KN5 , KO5 , KP5 , KC_NO , KC_NO }, \ | ||
37 | /* 6 */ { KC_NO , KC_NO , KC6 , KC_NO , KC_NO , KF6 , KG6 , KH6 , KI6 , KJ6 , KK6 , KL6 , KC_NO , KN6 , KO6 , KC_NO , KQ6 , KC_NO }, \ | ||
38 | /* 7 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KF7 , KG7 , KH7 , KI7 , KJ7 , KK7 , KL7 , KM7 , KN7 , KC_NO , KP7 , KC_NO , KC_NO } \ | ||
39 | } | ||
40 | |||
41 | #define LAYOUT_tkl_ansi( \ | ||
42 | KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ | ||
43 | KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO2, KR4, KC4, KE4, \ | ||
44 | KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KO3, KQ4, KC5, KE5, \ | ||
45 | KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO1, \ | ||
46 | KB2, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KB3, KC6, \ | ||
47 | KP4, KD2, KN6, KQ6, KN0, KA3, KM0, KP1, KC0, KQ0, KR0 \ | ||
48 | ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ | ||
49 | /* 0 */ { KC_NO , KC_NO , KC0 , KC_NO , KC_NO , KF0 , KC_NO , KC_NO , KC_NO , KJ0 , KK0 , KC_NO , KM0 , KN0 , KO0 , KC_NO , KQ0 , KR0 }, \ | ||
50 | /* 1 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KG1 , KH1 , KI1 , KJ1 , KK1 , KL1 , KM1 , KC_NO , KO1 , KP1 , KC_NO , KC_NO }, \ | ||
51 | /* 2 */ { KC_NO , KB2 , KC_NO , KD2 , KC_NO , KF2 , KG2 , KH2 , KI2 , KJ2 , KK2 , KL2 , KM2 , KC_NO , KO2 , KC_NO , KC_NO , KC_NO }, \ | ||
52 | /* 3 */ { KA3 , KB3 , KC_NO , KC_NO , KC_NO , KF3 , KG3 , KH3 , KI3 , KJ3 , KK3 , KL3 , KM3 , KC_NO , KO3 , KC_NO , KC_NO , KC_NO }, \ | ||
53 | /* 4 */ { KC_NO , KC_NO , KC4 , KC_NO , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , KM4 , KC_NO , KO4 , KP4 , KQ4 , KR4 }, \ | ||
54 | /* 5 */ { KC_NO , KC_NO , KC5 , KC_NO , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , KK5 , KL5 , KM5 , KN5 , KO5 , KP5 , KC_NO , KC_NO }, \ | ||
55 | /* 6 */ { KC_NO , KC_NO , KC6 , KC_NO , KC_NO , KF6 , KG6 , KC_NO , KI6 , KJ6 , KK6 , KL6 , KC_NO , KN6 , KO6 , KC_NO , KQ6 , KC_NO }, \ | ||
56 | /* 7 */ { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KF7 , KG7 , KH7 , KI7 , KJ7 , KK7 , KL7 , KM7 , KN7 , KC_NO , KP7 , KC_NO , KC_NO } \ | ||
57 | } | ||
58 | |||
59 | #define LAYOUT_tkl_jis( \ | ||
60 | KG6, KH4, KI4, KI2, KI6, KP5, KL6, KM2, KM4, KO4, KO5, KO6, KO0, KN5, KN7, KP7, \ | ||
61 | KG4, KG5, KH5, KI5, KJ5, KJ4, KK4, KK5, KL5, KM5, KF5, KF4, KL4, KO7, KO2, KR4, KC4, KE4, \ | ||
62 | KG2, KG7, KH7, KI7, KJ7, KJ2, KK2, KK7, KL7, KM7, KF7, KF2, KL2, KQ4, KC5, KE5, \ | ||
63 | KH2, KG3, KH3, KI3, KJ3, KJ6, KK6, KK3, KL3, KM3, KF3, KF6, KO3, KO1, \ | ||
64 | KB2, KG1, KH1, KI1, KJ1, KJ0, KK0, KK1, KL1, KM1, KF0, KL0, KB3, KC6, \ | ||
65 | KP4, KD2, KN6, KG0, KQ6, KH0, KI0, KN0, KM0, KP1, KC0, KQ0, KR0 \ | ||
66 | ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ | ||
67 | /* 0 */ { KC_NO, KC_NO, KC0, KC_NO, KC_NO, KF0, KG0, KH0, KI0, KJ0, KK0, KL0, KM0, KN0, KO0, KC_NO, KQ0, KR0 }, \ | ||
68 | /* 1 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KG1, KH1, KI1, KJ1, KK1, KL1, KM1, KC_NO, KO1, KP1, KC_NO, KC_NO }, \ | ||
69 | /* 2 */ { KC_NO, KB2, KC_NO, KD2, KC_NO, KF2, KG2, KH2, KI2, KJ2, KK2, KL2, KM2, KC_NO, KO2, KC_NO, KC_NO, KC_NO }, \ | ||
70 | /* 3 */ { KC_NO, KB3, KC_NO, KC_NO, KC_NO, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KC_NO, KO3, KC_NO, KC_NO, KC_NO }, \ | ||
71 | /* 4 */ { KC_NO, KC_NO, KC4, KC_NO, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KM4, KC_NO, KO4, KP4, KQ4, KR4 }, \ | ||
72 | /* 5 */ { KC_NO, KC_NO, KC5, KC_NO, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5, KM5, KN5, KO5, KP5, KC_NO, KC_NO }, \ | ||
73 | /* 6 */ { KC_NO, KC_NO, KC6, KC_NO, KC_NO, KF6, KG6, KC_NO, KI6, KJ6, KK6, KL6, KC_NO, KN6, KO6, KC_NO, KQ6, KC_NO }, \ | ||
74 | /* 7 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KF7, KG7, KH7, KI7, KJ7, KK7, KL7, KK7, KL7, KO7, KP7, KC_NO, KC_NO } \ | ||
75 | } | ||
76 | |||
77 | inline void ph_caps_led_on(void) { DDRC |= (1<<6); PORTC &= ~(1<<6); } | ||
78 | inline void ph_caps_led_off(void) { DDRC &= ~(1<<6); PORTC &= ~(1<<6); } | ||
79 | |||
80 | inline void ph_sclk_led_on(void) { DDRC |= (1<<5); PORTC &= ~(1<<5); } | ||
81 | inline void ph_sclk_led_off(void) { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } | ||
82 | |||
diff --git a/keyboards/bpiphany/pegasushoof/2013/config.h b/keyboards/bpiphany/pegasushoof/2013/config.h new file mode 100644 index 000000000..2573cecfc --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2013/config.h | |||
@@ -0,0 +1,36 @@ | |||
1 | /* | ||
2 | Copyright 2016 Daniel Svensson <[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 | |||
21 | /* USB Device descriptor parameter */ | ||
22 | #define VENDOR_ID 0xFEED | ||
23 | #define PRODUCT_ID 0x6050 | ||
24 | #define DEVICE_VER 0x0104 | ||
25 | #define MANUFACTURER Filco | ||
26 | #define PRODUCT Majestouch TKL \\w The Pegasus Hoof 2013 | ||
27 | |||
28 | /* key matrix size */ | ||
29 | #define MATRIX_ROWS 8 | ||
30 | #define MATRIX_COLS 18 | ||
31 | |||
32 | /* COL2ROW or ROW2COL */ | ||
33 | #define DIODE_DIRECTION COL2ROW | ||
34 | |||
35 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
36 | #define DEBOUNCE 5 | ||
diff --git a/keyboards/bpiphany/pegasushoof/2013/matrix.c b/keyboards/bpiphany/pegasushoof/2013/matrix.c new file mode 100644 index 000000000..037f323c0 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2013/matrix.c | |||
@@ -0,0 +1,222 @@ | |||
1 | /* | ||
2 | Copyright 2014 Ralf Schmitt <[email protected]> | ||
3 | Copyright 2016 Daniel Svensson <[email protected]> | ||
4 | |||
5 | This program is free software: you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published by | ||
7 | the Free Software Foundation, either version 2 of the License, or | ||
8 | (at your option) any later version. | ||
9 | |||
10 | This program is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | GNU General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | #include <stdint.h> | ||
20 | #include <stdbool.h> | ||
21 | #include <avr/io.h> | ||
22 | #include <util/delay.h> | ||
23 | #include "wait.h" | ||
24 | #include "print.h" | ||
25 | #include "debug.h" | ||
26 | #include "util.h" | ||
27 | #include "matrix.h" | ||
28 | |||
29 | static uint8_t debouncing = DEBOUNCE; | ||
30 | static matrix_row_t matrix[MATRIX_ROWS]; | ||
31 | static matrix_row_t matrix_debouncing[MATRIX_ROWS]; | ||
32 | |||
33 | static matrix_row_t read_cols(void); | ||
34 | static void select_row(uint8_t col); | ||
35 | |||
36 | __attribute__ ((weak)) | ||
37 | void matrix_init_kb(void) { | ||
38 | matrix_init_user(); | ||
39 | } | ||
40 | |||
41 | __attribute__ ((weak)) | ||
42 | void matrix_scan_kb(void) { | ||
43 | matrix_scan_user(); | ||
44 | } | ||
45 | |||
46 | __attribute__ ((weak)) | ||
47 | void matrix_init_user(void) { | ||
48 | } | ||
49 | |||
50 | __attribute__ ((weak)) | ||
51 | void matrix_scan_user(void) { | ||
52 | } | ||
53 | |||
54 | inline uint8_t matrix_rows(void) | ||
55 | { | ||
56 | return MATRIX_ROWS; | ||
57 | } | ||
58 | |||
59 | inline uint8_t matrix_cols(void) | ||
60 | { | ||
61 | return MATRIX_COLS; | ||
62 | } | ||
63 | |||
64 | void matrix_init(void) | ||
65 | { | ||
66 | /* Column output pins */ | ||
67 | DDRD |= 0b01111011; | ||
68 | /* Row input pins */ | ||
69 | DDRC &= ~0b10000000; | ||
70 | DDRB &= ~0b01111111; | ||
71 | PORTC |= 0b10000000; | ||
72 | PORTB |= 0b01111111; | ||
73 | |||
74 | for (uint8_t i=0; i < MATRIX_ROWS; i++) { | ||
75 | matrix[i] = 0; | ||
76 | matrix_debouncing[i] = 0; | ||
77 | } | ||
78 | |||
79 | matrix_init_quantum(); | ||
80 | } | ||
81 | |||
82 | uint8_t matrix_scan(void) | ||
83 | { | ||
84 | for (uint8_t col = 0; col < MATRIX_COLS; col++) { | ||
85 | select_row(col); | ||
86 | wait_us(30); | ||
87 | matrix_row_t rows = read_cols(); | ||
88 | for (uint8_t row = 0; row < MATRIX_ROWS; row++) { | ||
89 | bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<<col); | ||
90 | bool curr_bit = rows & (1<<row); | ||
91 | if (prev_bit != curr_bit) { | ||
92 | matrix_debouncing[row] ^= (matrix_row_t) 1 << col; | ||
93 | debouncing = DEBOUNCE; | ||
94 | } | ||
95 | } | ||
96 | } | ||
97 | |||
98 | if (debouncing) { | ||
99 | if (--debouncing) { | ||
100 | wait_ms(1); | ||
101 | } else { | ||
102 | for (uint8_t i = 0; i < MATRIX_ROWS; i++) { | ||
103 | matrix[i] = matrix_debouncing[i]; | ||
104 | } | ||
105 | } | ||
106 | } | ||
107 | |||
108 | matrix_scan_quantum(); | ||
109 | |||
110 | return 1; | ||
111 | } | ||
112 | |||
113 | bool matrix_is_modified(void) | ||
114 | { | ||
115 | if (debouncing) | ||
116 | return false; | ||
117 | return true; | ||
118 | } | ||
119 | |||
120 | inline | ||
121 | bool matrix_is_on(uint8_t row, uint8_t col) | ||
122 | { | ||
123 | return matrix[row] & 1 << col; | ||
124 | } | ||
125 | |||
126 | inline | ||
127 | matrix_row_t matrix_get_row(uint8_t row) | ||
128 | { | ||
129 | return matrix[row]; | ||
130 | } | ||
131 | |||
132 | void matrix_print(void) | ||
133 | { | ||
134 | print("\nr/c 0123456789ABCDEF\n"); | ||
135 | for (uint8_t row = 0; row < MATRIX_ROWS; row++) { | ||
136 | print_hex8(row); print(": "); | ||
137 | print_bin_reverse16(matrix_get_row(row)); | ||
138 | print("\n"); | ||
139 | } | ||
140 | } | ||
141 | |||
142 | uint8_t matrix_key_count(void) | ||
143 | { | ||
144 | uint8_t count = 0; | ||
145 | for (uint8_t i = 0; i < MATRIX_ROWS; i++) { | ||
146 | count += bitpop16(matrix[i]); | ||
147 | } | ||
148 | return count; | ||
149 | } | ||
150 | |||
151 | static matrix_row_t read_cols(void) | ||
152 | { | ||
153 | return | ||
154 | (PINB & (1 << 5) ? 0 : 1 << 0) | | ||
155 | (PINC & (1 << 7) ? 0 : 1 << 1) | | ||
156 | (PINB & (1 << 4) ? 0 : 1 << 2) | | ||
157 | (PINB & (1 << 6) ? 0 : 1 << 3) | | ||
158 | (PINB & (1 << 1) ? 0 : 1 << 4) | | ||
159 | (PINB & (1 << 0) ? 0 : 1 << 5) | | ||
160 | (PINB & (1 << 3) ? 0 : 1 << 6) | | ||
161 | (PINB & (1 << 2) ? 0 : 1 << 7); | ||
162 | } | ||
163 | |||
164 | static void select_row(uint8_t col) | ||
165 | { | ||
166 | switch (col) { | ||
167 | case 0: | ||
168 | PORTD = (PORTD & ~0b01111011) | 0b00110011; | ||
169 | break; | ||
170 | case 1: | ||
171 | PORTD = (PORTD & ~0b01111011) | 0b01110000; | ||
172 | break; | ||
173 | case 2: | ||
174 | PORTD = (PORTD & ~0b01111011) | 0b00010011; | ||
175 | break; | ||
176 | case 3: | ||
177 | PORTD = (PORTD & ~0b01111011) | 0b01101000; | ||
178 | break; | ||
179 | case 4: | ||
180 | PORTD = (PORTD & ~0b01111011) | 0b00001011; | ||
181 | break; | ||
182 | case 5: | ||
183 | PORTD = (PORTD & ~0b01111011) | 0b00111011; | ||
184 | break; | ||
185 | case 6: | ||
186 | PORTD = (PORTD & ~0b01111011) | 0b01111000; | ||
187 | break; | ||
188 | case 7: | ||
189 | PORTD = (PORTD & ~0b01111011) | 0b01100001; | ||
190 | break; | ||
191 | case 8: | ||
192 | PORTD = (PORTD & ~0b01111011) | 0b01101001; | ||
193 | break; | ||
194 | case 9: | ||
195 | PORTD = (PORTD & ~0b01111011) | 0b01110001; | ||
196 | break; | ||
197 | case 10: | ||
198 | PORTD = (PORTD & ~0b01111011) | 0b01101010; | ||
199 | break; | ||
200 | case 11: | ||
201 | PORTD = (PORTD & ~0b01111011) | 0b01100010; | ||
202 | break; | ||
203 | case 12: | ||
204 | PORTD = (PORTD & ~0b01111011) | 0b01111001; | ||
205 | break; | ||
206 | case 13: | ||
207 | PORTD = (PORTD & ~0b01111011) | 0b01100000; | ||
208 | break; | ||
209 | case 14: | ||
210 | PORTD = (PORTD & ~0b01111011) | 0b01000011; | ||
211 | break; | ||
212 | case 15: | ||
213 | PORTD = (PORTD & ~0b01111011) | 0b00011011; | ||
214 | break; | ||
215 | case 16: | ||
216 | PORTD = (PORTD & ~0b01111011) | 0b00100011; | ||
217 | break; | ||
218 | case 17: | ||
219 | PORTD = (PORTD & ~0b01111011) | 0b00101011; | ||
220 | break; | ||
221 | } | ||
222 | } | ||
diff --git a/keyboards/bpiphany/pegasushoof/2013/rules.mk b/keyboards/bpiphany/pegasushoof/2013/rules.mk new file mode 100644 index 000000000..3215e3588 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2013/rules.mk | |||
@@ -0,0 +1,2 @@ | |||
1 | CUSTOM_MATRIX = yes | ||
2 | SRC = matrix.c | ||
diff --git a/keyboards/bpiphany/pegasushoof/2015/2015.c b/keyboards/bpiphany/pegasushoof/2015/2015.c new file mode 100644 index 000000000..401dc2633 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2015/2015.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | Copyright 2016 Daniel Svensson <[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 | #include "2015.h" | ||
19 | |||
20 | |||
21 | extern inline void ph_caps_led_on(void); | ||
22 | extern inline void ph_caps_led_off(void); | ||
23 | |||
24 | extern inline void ph_sclk_led_on(void); | ||
25 | extern inline void ph_sclk_led_off(void); | ||
diff --git a/keyboards/bpiphany/pegasushoof/2015/2015.h b/keyboards/bpiphany/pegasushoof/2015/2015.h new file mode 100644 index 000000000..418772aa2 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2015/2015.h | |||
@@ -0,0 +1,102 @@ | |||
1 | /* | ||
2 | Copyright 2016 Daniel Svensson <[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 "matrix.h" | ||
21 | #include "quantum.h" | ||
22 | |||
23 | #define ___ XXXXXXX | ||
24 | |||
25 | #define LAYOUT( \ | ||
26 | KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ | ||
27 | KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \ | ||
28 | KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \ | ||
29 | KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \ | ||
30 | KN2, KI6, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \ | ||
31 | KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \ | ||
32 | ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ | ||
33 | /* 0 */ { ___ , KB0 , KC0 , KD0 , ___ , KF0 , KG0 , ___ , ___ , ___ , KK0 , KL0 , ___ , ___ , KO0 , ___ , ___ , KR0 }, \ | ||
34 | /* 1 */ { KA1 , KB1 , ___ , KD1 , KE1 , KF1 , KG1 , KH1 , KI1 , KJ1 , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ }, \ | ||
35 | /* 2 */ { ___ , KB2 , ___ , KD2 , KE2 , KF2 , KG2 , KH2 , KI2 , KJ2 , ___ , ___ , ___ , KN2 , ___ , KP2 , ___ , KR2 }, \ | ||
36 | /* 3 */ { ___ , KB3 , ___ , KD3 , KE3 , KF3 , KG3 , KH3 , KI3 , KJ3 , ___ , ___ , KM3 , KN3 , ___ , ___ , ___ , KR3 }, \ | ||
37 | /* 4 */ { KA4 , KB4 , ___ , KD4 , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , ___ , ___ , KO4 , ___ , KQ4 , KR4 }, \ | ||
38 | /* 5 */ { KA5 , ___ , KC5 , KD5 , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , ___ , ___ , ___ , ___ , ___ , ___ , ___ , KR5 }, \ | ||
39 | /* 6 */ { ___ , KB6 , KC6 , ___ , KE6 , KF6 , KG6 , KH6 , KI6 , KJ6 , KK6 , ___ , ___ , ___ , KO6 , ___ , ___ , KR6 }, \ | ||
40 | /* 7 */ { KA7 , KB7 , KC7 , KD7 , KE7 , KF7 , KG7 , KH7 , KI7 , KJ7 , ___ , ___ , ___ , ___ , KO7 , ___ , KQ7 , KR7 } \ | ||
41 | } | ||
42 | |||
43 | #define LAYOUT_tkl_ansi( \ | ||
44 | KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ | ||
45 | KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \ | ||
46 | KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \ | ||
47 | KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \ | ||
48 | KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \ | ||
49 | KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \ | ||
50 | ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ | ||
51 | /* 0 */ { ___ , KB0 , KC0 , KD0 , ___ , KF0 , KG0 , ___ , ___ , ___ , KK0 , KL0 , ___ , ___ , KO0 , ___ , ___ , KR0 }, \ | ||
52 | /* 1 */ { KA1 , KB1 , ___ , KD1 , KE1 , KF1 , KG1 , KH1 , KI1 , KJ1 , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ }, \ | ||
53 | /* 2 */ { ___ , KB2 , ___ , KD2 , KE2 , KF2 , KG2 , KH2 , KI2 , KJ2 , ___ , ___ , ___ , KN2 , ___ , KP2 , ___ , KR2 }, \ | ||
54 | /* 3 */ { ___ , KB3 , ___ , KD3 , KE3 , KF3 , KG3 , KH3 , KI3 , KJ3 , ___ , ___ , KM3 , KN3 , ___ , ___ , ___ , KR3 }, \ | ||
55 | /* 4 */ { KA4 , KB4 , ___ , KD4 , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , ___ , ___ , KO4 , ___ , KQ4 , KR4 }, \ | ||
56 | /* 5 */ { KA5 , ___ , KC5 , KD5 , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , ___ , ___ , ___ , ___ , ___ , ___ , ___ , KR5 }, \ | ||
57 | /* 6 */ { ___ , KB6 , KC6 , ___ , KE6 , KF6 , KG6 , KH6 , ___ , KJ6 , KK6 , ___ , ___ , ___ , KO6 , ___ , ___ , KR6 }, \ | ||
58 | /* 7 */ { KA7 , KB7 , KC7 , KD7 , KE7 , KF7 , KG7 , KH7 , KI7 , KJ7 , ___ , ___ , ___ , ___ , KO7 , ___ , KQ7 , KR7 } \ | ||
59 | } | ||
60 | |||
61 | #define LAYOUT_tkl_iso( \ | ||
62 | KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ | ||
63 | KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \ | ||
64 | KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KK4, KO7, KQ7, \ | ||
65 | KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB3, KB1, \ | ||
66 | KN2, KI6, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \ | ||
67 | KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \ | ||
68 | ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ | ||
69 | /* 0 */ { ___ , KB0 , KC0 , KD0 , ___ , KF0 , KG0 , ___ , ___ , ___ , KK0 , KL0 , ___ , ___ , KO0 , ___ , ___ , KR0 }, \ | ||
70 | /* 1 */ { KA1 , KB1 , ___ , KD1 , KE1 , KF1 , KG1 , KH1 , KI1 , KJ1 , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ }, \ | ||
71 | /* 2 */ { ___ , KB2 , ___ , KD2 , KE2 , KF2 , KG2 , KH2 , KI2 , KJ2 , ___ , ___ , ___ , KN2 , ___ , KP2 , ___ , KR2 }, \ | ||
72 | /* 3 */ { ___ , KB3 , ___ , KD3 , KE3 , KF3 , KG3 , KH3 , KI3 , KJ3 , ___ , ___ , KM3 , KN3 , ___ , ___ , ___ , KR3 }, \ | ||
73 | /* 4 */ { KA4 , KB4 , ___ , KD4 , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , ___ , ___ , KO4 , ___ , KQ4 , KR4 }, \ | ||
74 | /* 5 */ { KA5 , ___ , KC5 , KD5 , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , ___ , ___ , ___ , ___ , ___ , ___ , ___ , KR5 }, \ | ||
75 | /* 6 */ { ___ , KB6 , KC6 , ___ , KE6 , KF6 , KG6 , KH6 , KI6 , KJ6 , KK6 , ___ , ___ , ___ , KO6 , ___ , ___ , KR6 }, \ | ||
76 | /* 7 */ { KA7 , KB7 , KC7 , KD7 , KE7 , KF7 , KG7 , KH7 , KI7 , KJ7 , ___ , ___ , ___ , ___ , KO7 , ___ , KQ7 , KR7 } \ | ||
77 | } | ||
78 | |||
79 | #define LAYOUT_tkl_jis( \ | ||
80 | KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ | ||
81 | KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB5, KB2, KL4, KO4, KQ4, \ | ||
82 | KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KK4, KO7, KQ7, \ | ||
83 | KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB3, KB1, \ | ||
84 | KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KE0, KN3, KO6, \ | ||
85 | KA4, KP2, KC6, KJ0, KK6, KI0, KH0, KC0, KD0, KA1, KO0, KK0, KL0 \ | ||
86 | ) { /* 00-A 01-B 02-C 03-D 04-E 05-F 06-G 07-H 08-I 09-J 10-K 11-L 12-M 13-N 14-O 15-P 16-Q 17-R */ \ | ||
87 | /* 0 */ { ___ , KB0 , KC0 , KD0 , KE0 , KF0 , KG0 , KH0 , KI0 , KJ0 , KK0 , KL0 , ___ , ___ , KO0 , ___ , ___ , KR0 }, \ | ||
88 | /* 1 */ { KA1 , KB1 , ___ , KD1 , KE1 , KF1 , KG1 , KH1 , KI1 , KJ1 , ___ , ___ , ___ , ___ , ___ , ___ , ___ , }, \ | ||
89 | /* 2 */ { ___ , KB2 , ___ , KD2 , KE2 , KF2 , KG2 , KH2 , KI2 , KJ2 , ___ , ___ , ___ , KN2 , ___ , KP2 , ___ , KR2 }, \ | ||
90 | /* 3 */ { ___ , KB3 , ___ , KD3 , KE3 , KF3 , KG3 , KH3 , KI3 , KJ3 , ___ , ___ , ___ , KN3 , ___ , ___ , ___ , KR3 }, \ | ||
91 | /* 4 */ { KA4 , KB4 , ___ , KD4 , KE4 , KF4 , KG4 , KH4 , KI4 , KJ4 , KK4 , KL4 , ___ , ___ , KO4 , ___ , KQ4 , KR4 }, \ | ||
92 | /* 5 */ { KA5 , KB5 , KC5 , KD5 , KE5 , KF5 , KG5 , KH5 , KI5 , KJ5 , ___ , ___ , ___ , ___ , ___ , ___ , ___ , KR5 }, \ | ||
93 | /* 6 */ { ___ , KB6 , KC6 , ___ , KE6 , KF6 , KG6 , KH6 , ___ , KJ6 , KK6 , ___ , ___ , ___ , KO6 , ___ , ___ , KR6 }, \ | ||
94 | /* 7 */ { KA7 , KB7 , KC7 , KD7 , KE7 , KF7 , KG7 , KH7 , KI7 , KJ7 , ___ , ___ , ___ , ___ , KO7 , ___ , KQ7 , KR7 } \ | ||
95 | } | ||
96 | |||
97 | inline void ph_caps_led_on(void) { DDRC |= (1<<6); PORTC &= ~(1<<6); } | ||
98 | inline void ph_caps_led_off(void) { DDRC &= ~(1<<6); PORTC &= ~(1<<6); } | ||
99 | |||
100 | inline void ph_sclk_led_on(void) { DDRC |= (1<<5); PORTC &= ~(1<<5); } | ||
101 | inline void ph_sclk_led_off(void) { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } | ||
102 | |||
diff --git a/keyboards/bpiphany/pegasushoof/2015/config.h b/keyboards/bpiphany/pegasushoof/2015/config.h new file mode 100644 index 000000000..479175c47 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2015/config.h | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | Copyright 2016 Daniel Svensson <[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 | |||
21 | /* USB Device descriptor parameter */ | ||
22 | #define VENDOR_ID 0xFEED | ||
23 | #define PRODUCT_ID 0x6050 | ||
24 | #define DEVICE_VER 0x0104 | ||
25 | #define MANUFACTURER Filco | ||
26 | #define PRODUCT Majestouch TKL \\w The Pegasus Hoof 2015 | ||
27 | |||
28 | /* key matrix size */ | ||
29 | #define MATRIX_ROWS 8 | ||
30 | #define MATRIX_COLS 18 | ||
31 | |||
32 | /* COL2ROW or ROW2COL */ | ||
33 | #define DIODE_DIRECTION COL2ROW | ||
34 | |||
35 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
36 | #define DEBOUNCE 5 | ||
37 | |||
diff --git a/keyboards/bpiphany/pegasushoof/2015/matrix.c b/keyboards/bpiphany/pegasushoof/2015/matrix.c new file mode 100644 index 000000000..b05869fed --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2015/matrix.c | |||
@@ -0,0 +1,158 @@ | |||
1 | /* | ||
2 | Copyright 2014 Ralf Schmitt <[email protected]> | ||
3 | Copyright 2016 Daniel Svensson <[email protected]> | ||
4 | |||
5 | This program is free software: you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published by | ||
7 | the Free Software Foundation, either version 2 of the License, or | ||
8 | (at your option) any later version. | ||
9 | |||
10 | This program is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | GNU General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | #include <stdint.h> | ||
20 | #include <stdbool.h> | ||
21 | #include <avr/io.h> | ||
22 | #include <util/delay.h> | ||
23 | #include "wait.h" | ||
24 | #include "print.h" | ||
25 | #include "debug.h" | ||
26 | #include "util.h" | ||
27 | #include "matrix.h" | ||
28 | #include "debounce.h" | ||
29 | |||
30 | static matrix_row_t matrix[MATRIX_ROWS]; | ||
31 | static matrix_row_t matrix_debouncing[MATRIX_ROWS]; | ||
32 | |||
33 | static matrix_row_t read_cols(void); | ||
34 | static void select_row(uint8_t col); | ||
35 | |||
36 | // user-defined overridable functions | ||
37 | |||
38 | __attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } | ||
39 | |||
40 | __attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } | ||
41 | |||
42 | __attribute__((weak)) void matrix_init_user(void) {} | ||
43 | |||
44 | __attribute__((weak)) void matrix_scan_user(void) {} | ||
45 | |||
46 | // helper functions | ||
47 | |||
48 | inline uint8_t matrix_rows(void) | ||
49 | { | ||
50 | return MATRIX_ROWS; | ||
51 | } | ||
52 | |||
53 | inline uint8_t matrix_cols(void) | ||
54 | { | ||
55 | return MATRIX_COLS; | ||
56 | } | ||
57 | |||
58 | void matrix_init(void) | ||
59 | { | ||
60 | /* Column output pins */ | ||
61 | DDRD |= 0b01111011; | ||
62 | /* Row input pins */ | ||
63 | DDRC &= ~0b10000000; | ||
64 | DDRB &= ~0b01111111; | ||
65 | PORTC |= 0b10000000; | ||
66 | PORTB |= 0b01111111; | ||
67 | |||
68 | for (uint8_t i=0; i < matrix_rows(); i++) { | ||
69 | matrix[i] = 0; | ||
70 | matrix_debouncing[i] = 0; | ||
71 | } | ||
72 | |||
73 | matrix_init_quantum(); | ||
74 | } | ||
75 | |||
76 | uint8_t matrix_scan(void) | ||
77 | { | ||
78 | bool changed = false; | ||
79 | for (uint8_t col = 0; col < MATRIX_COLS; col++) { | ||
80 | select_row(col); | ||
81 | wait_us(30); | ||
82 | matrix_row_t rows = read_cols(); | ||
83 | for (uint8_t row = 0; row < matrix_rows(); row++) { | ||
84 | bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<<col); | ||
85 | bool curr_bit = rows & (1<<row); | ||
86 | if ((changed |= prev_bit != curr_bit)) { | ||
87 | matrix_debouncing[row] ^= (matrix_row_t) 1 << col; | ||
88 | } | ||
89 | } | ||
90 | } | ||
91 | |||
92 | debounce(matrix_debouncing, matrix, matrix_rows(), changed); | ||
93 | matrix_scan_quantum(); | ||
94 | |||
95 | return (uint8_t)changed; | ||
96 | } | ||
97 | |||
98 | inline | ||
99 | matrix_row_t matrix_get_row(uint8_t row) | ||
100 | { | ||
101 | return matrix[row]; | ||
102 | } | ||
103 | |||
104 | void matrix_print(void) | ||
105 | { | ||
106 | print("\nr/c 0123456789ABCDEF\n"); | ||
107 | for (uint8_t row = 0; row < matrix_rows(); row++) { | ||
108 | print_hex8(row); print(": "); | ||
109 | print_bin_reverse16(matrix_get_row(row)); | ||
110 | print("\n"); | ||
111 | } | ||
112 | } | ||
113 | |||
114 | uint8_t matrix_key_count(void) | ||
115 | { | ||
116 | uint8_t count = 0; | ||
117 | for (uint8_t i = 0; i < matrix_rows(); i++) { | ||
118 | count += bitpop16(matrix_get_row(i)); | ||
119 | } | ||
120 | return count; | ||
121 | } | ||
122 | |||
123 | static matrix_row_t read_cols(void) | ||
124 | { | ||
125 | return | ||
126 | (PINB&(1<<5) ? 0 : ((matrix_row_t)1<<0)) | | ||
127 | (PINC&(1<<7) ? 0 : ((matrix_row_t)1<<1)) | | ||
128 | (PINB&(1<<4) ? 0 : ((matrix_row_t)1<<2)) | | ||
129 | (PINB&(1<<6) ? 0 : ((matrix_row_t)1<<3)) | | ||
130 | (PINB&(1<<1) ? 0 : ((matrix_row_t)1<<4)) | | ||
131 | (PINB&(1<<2) ? 0 : ((matrix_row_t)1<<5)) | | ||
132 | (PINB&(1<<3) ? 0 : ((matrix_row_t)1<<6)) | | ||
133 | (PINB&(1<<0) ? 0 : ((matrix_row_t)1<<7)); | ||
134 | } | ||
135 | |||
136 | static void select_row(uint8_t col) | ||
137 | { | ||
138 | switch (col) { | ||
139 | case 0: PORTD = (PORTD & ~0b01111011) | 0b00011011; break; | ||
140 | case 1: PORTD = (PORTD & ~0b01111011) | 0b01000011; break; | ||
141 | case 2: PORTD = (PORTD & ~0b01111011) | 0b01100000; break; | ||
142 | case 3: PORTD = (PORTD & ~0b01111011) | 0b01111001; break; | ||
143 | case 4: PORTD = (PORTD & ~0b01111011) | 0b01100010; break; | ||
144 | case 5: PORTD = (PORTD & ~0b01111011) | 0b01101010; break; | ||
145 | case 6: PORTD = (PORTD & ~0b01111011) | 0b01110001; break; | ||
146 | case 7: PORTD = (PORTD & ~0b01111011) | 0b01101001; break; | ||
147 | case 8: PORTD = (PORTD & ~0b01111011) | 0b01100001; break; | ||
148 | case 9: PORTD = (PORTD & ~0b01111011) | 0b01111000; break; | ||
149 | case 10: PORTD = (PORTD & ~0b01111011) | 0b00100011; break; | ||
150 | case 11: PORTD = (PORTD & ~0b01111011) | 0b00101011; break; | ||
151 | case 12: PORTD = (PORTD & ~0b01111011) | 0b00110011; break; | ||
152 | case 13: PORTD = (PORTD & ~0b01111011) | 0b01110000; break; | ||
153 | case 14: PORTD = (PORTD & ~0b01111011) | 0b00010011; break; | ||
154 | case 15: PORTD = (PORTD & ~0b01111011) | 0b01101000; break; | ||
155 | case 16: PORTD = (PORTD & ~0b01111011) | 0b00001011; break; | ||
156 | case 17: PORTD = (PORTD & ~0b01111011) | 0b00111011; break; | ||
157 | } | ||
158 | } | ||
diff --git a/keyboards/bpiphany/pegasushoof/2015/rules.mk b/keyboards/bpiphany/pegasushoof/2015/rules.mk new file mode 100644 index 000000000..3215e3588 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/2015/rules.mk | |||
@@ -0,0 +1,2 @@ | |||
1 | CUSTOM_MATRIX = yes | ||
2 | SRC = matrix.c | ||
diff --git a/keyboards/bpiphany/pegasushoof/config.h b/keyboards/bpiphany/pegasushoof/config.h new file mode 100644 index 000000000..6868dc135 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/config.h | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | Copyright 2017 Danny Nguyen <[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" | ||
diff --git a/keyboards/bpiphany/pegasushoof/info.json b/keyboards/bpiphany/pegasushoof/info.json new file mode 100644 index 000000000..fb4d2479a --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/info.json | |||
@@ -0,0 +1,377 @@ | |||
1 | { | ||
2 | "keyboard_name": "Pegasus Hoof", | ||
3 | "url": "", | ||
4 | "maintainer": "qmk", | ||
5 | "layouts": { | ||
6 | "LAYOUT": { | ||
7 | "layout": [ | ||
8 | {"label":"Esc", "x":0, "y":0}, | ||
9 | {"label":"F1", "x":2, "y":0}, | ||
10 | {"label":"F2", "x":3, "y":0}, | ||
11 | {"label":"F3", "x":4, "y":0}, | ||
12 | {"label":"F4", "x":5, "y":0}, | ||
13 | {"label":"F5", "x":6.5, "y":0}, | ||
14 | {"label":"F6", "x":7.5, "y":0}, | ||
15 | {"label":"F7", "x":8.5, "y":0}, | ||
16 | {"label":"F8", "x":9.5, "y":0}, | ||
17 | {"label":"F9", "x":11, "y":0}, | ||
18 | {"label":"F10", "x":12, "y":0}, | ||
19 | {"label":"F11", "x":13, "y":0}, | ||
20 | {"label":"F12", "x":14, "y":0}, | ||
21 | {"label":"Print Screen", "x":15.25, "y":0}, | ||
22 | {"label":"Scroll Lock", "x":16.25, "y":0}, | ||
23 | {"label":"Pause", "x":17.25, "y":0}, | ||
24 | {"label":"`", "x":0, "y":1.5}, | ||
25 | {"label":"1", "x":1, "y":1.5}, | ||
26 | {"label":"2", "x":2, "y":1.5}, | ||
27 | {"label":"3", "x":3, "y":1.5}, | ||
28 | {"label":"4", "x":4, "y":1.5}, | ||
29 | {"label":"5", "x":5, "y":1.5}, | ||
30 | {"label":"6", "x":6, "y":1.5}, | ||
31 | {"label":"7", "x":7, "y":1.5}, | ||
32 | {"label":"8", "x":8, "y":1.5}, | ||
33 | {"label":"9", "x":9, "y":1.5}, | ||
34 | {"label":"0", "x":10, "y":1.5}, | ||
35 | {"label":"-", "x":11, "y":1.5}, | ||
36 | {"label":"=", "x":12, "y":1.5}, | ||
37 | {"label":"Backspace", "x":13, "y":1.5, "w":2}, | ||
38 | {"label":"Insert", "x":15.25, "y":1.5}, | ||
39 | {"label":"Home", "x":16.25, "y":1.5}, | ||
40 | {"label":"Page Up", "x":17.25, "y":1.5}, | ||
41 | {"label":"Tab", "x":0, "y":2.5, "w":1.5}, | ||
42 | {"label":"Q", "x":1.5, "y":2.5}, | ||
43 | {"label":"W", "x":2.5, "y":2.5}, | ||
44 | {"label":"E", "x":3.5, "y":2.5}, | ||
45 | {"label":"R", "x":4.5, "y":2.5}, | ||
46 | {"label":"T", "x":5.5, "y":2.5}, | ||
47 | {"label":"Y", "x":6.5, "y":2.5}, | ||
48 | {"label":"U", "x":7.5, "y":2.5}, | ||
49 | {"label":"I", "x":8.5, "y":2.5}, | ||
50 | {"label":"O", "x":9.5, "y":2.5}, | ||
51 | {"label":"P", "x":10.5, "y":2.5}, | ||
52 | {"label":"[", "x":11.5, "y":2.5}, | ||
53 | {"label":"]", "x":12.5, "y":2.5}, | ||
54 | {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, | ||
55 | {"label":"Delete", "x":15.25, "y":2.5}, | ||
56 | {"label":"End", "x":16.25, "y":2.5}, | ||
57 | {"label":"Page Down", "x":17.25, "y":2.5}, | ||
58 | {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, | ||
59 | {"label":"A", "x":1.75, "y":3.5}, | ||
60 | {"label":"S", "x":2.75, "y":3.5}, | ||
61 | {"label":"D", "x":3.75, "y":3.5}, | ||
62 | {"label":"F", "x":4.75, "y":3.5}, | ||
63 | {"label":"G", "x":5.75, "y":3.5}, | ||
64 | {"label":"H", "x":6.75, "y":3.5}, | ||
65 | {"label":"J", "x":7.75, "y":3.5}, | ||
66 | {"label":"K", "x":8.75, "y":3.5}, | ||
67 | {"label":"L", "x":9.75, "y":3.5}, | ||
68 | {"label":";", "x":10.75, "y":3.5}, | ||
69 | {"label":"'", "x":11.75, "y":3.5}, | ||
70 | {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, | ||
71 | {"label":"Shift", "x":0, "y":4.5, "w":1.25}, | ||
72 | {"label":"ISO \\", "x":1.25, "y":4.5}, | ||
73 | {"label":"Z", "x":2.25, "y":4.5}, | ||
74 | {"label":"X", "x":3.25, "y":4.5}, | ||
75 | {"label":"C", "x":4.25, "y":4.5}, | ||
76 | {"label":"V", "x":5.25, "y":4.5}, | ||
77 | {"label":"B", "x":6.25, "y":4.5}, | ||
78 | {"label":"N", "x":7.25, "y":4.5}, | ||
79 | {"label":"M", "x":8.25, "y":4.5}, | ||
80 | {"label":",", "x":9.25, "y":4.5}, | ||
81 | {"label":".", "x":10.25, "y":4.5}, | ||
82 | {"label":"/", "x":11.25, "y":4.5}, | ||
83 | {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, | ||
84 | {"label":"Up", "x":16.25, "y":4.5}, | ||
85 | {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, | ||
86 | {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, | ||
87 | {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, | ||
88 | {"x":3.75, "y":5.5, "w":6.25}, | ||
89 | {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, | ||
90 | {"label":"GUI", "x":11.25, "y":5.5, "w":1.25}, | ||
91 | {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, | ||
92 | {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, | ||
93 | {"label":"Left", "x":15.25, "y":5.5}, | ||
94 | {"label":"Down", "x":16.25, "y":5.5}, | ||
95 | {"label":"Right", "x":17.25, "y":5.5} | ||
96 | ] | ||
97 | }, | ||
98 | "LAYOUT_tkl_ansi": { | ||
99 | "layout": [ | ||
100 | {"label":"Esc", "x":0, "y":0}, | ||
101 | {"label":"F1", "x":2, "y":0}, | ||
102 | {"label":"F2", "x":3, "y":0}, | ||
103 | {"label":"F3", "x":4, "y":0}, | ||
104 | {"label":"F4", "x":5, "y":0}, | ||
105 | {"label":"F5", "x":6.5, "y":0}, | ||
106 | {"label":"F6", "x":7.5, "y":0}, | ||
107 | {"label":"F7", "x":8.5, "y":0}, | ||
108 | {"label":"F8", "x":9.5, "y":0}, | ||
109 | {"label":"F9", "x":11, "y":0}, | ||
110 | {"label":"F10", "x":12, "y":0}, | ||
111 | {"label":"F11", "x":13, "y":0}, | ||
112 | {"label":"F12", "x":14, "y":0}, | ||
113 | {"label":"Print Screen", "x":15.25, "y":0}, | ||
114 | {"label":"Scroll Lock", "x":16.25, "y":0}, | ||
115 | {"label":"Pause", "x":17.25, "y":0}, | ||
116 | {"label":"`", "x":0, "y":1.5}, | ||
117 | {"label":"1", "x":1, "y":1.5}, | ||
118 | {"label":"2", "x":2, "y":1.5}, | ||
119 | {"label":"3", "x":3, "y":1.5}, | ||
120 | {"label":"4", "x":4, "y":1.5}, | ||
121 | {"label":"5", "x":5, "y":1.5}, | ||
122 | {"label":"6", "x":6, "y":1.5}, | ||
123 | {"label":"7", "x":7, "y":1.5}, | ||
124 | {"label":"8", "x":8, "y":1.5}, | ||
125 | {"label":"9", "x":9, "y":1.5}, | ||
126 | {"label":"0", "x":10, "y":1.5}, | ||
127 | {"label":"-", "x":11, "y":1.5}, | ||
128 | {"label":"=", "x":12, "y":1.5}, | ||
129 | {"label":"Backspace", "x":13, "y":1.5, "w":2}, | ||
130 | {"label":"Insert", "x":15.25, "y":1.5}, | ||
131 | {"label":"Home", "x":16.25, "y":1.5}, | ||
132 | {"label":"Page Up", "x":17.25, "y":1.5}, | ||
133 | {"label":"Tab", "x":0, "y":2.5, "w":1.5}, | ||
134 | {"label":"Q", "x":1.5, "y":2.5}, | ||
135 | {"label":"W", "x":2.5, "y":2.5}, | ||
136 | {"label":"E", "x":3.5, "y":2.5}, | ||
137 | {"label":"R", "x":4.5, "y":2.5}, | ||
138 | {"label":"T", "x":5.5, "y":2.5}, | ||
139 | {"label":"Y", "x":6.5, "y":2.5}, | ||
140 | {"label":"U", "x":7.5, "y":2.5}, | ||
141 | {"label":"I", "x":8.5, "y":2.5}, | ||
142 | {"label":"O", "x":9.5, "y":2.5}, | ||
143 | {"label":"P", "x":10.5, "y":2.5}, | ||
144 | {"label":"[", "x":11.5, "y":2.5}, | ||
145 | {"label":"]", "x":12.5, "y":2.5}, | ||
146 | {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, | ||
147 | {"label":"Delete", "x":15.25, "y":2.5}, | ||
148 | {"label":"End", "x":16.25, "y":2.5}, | ||
149 | {"label":"Page Down", "x":17.25, "y":2.5}, | ||
150 | {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, | ||
151 | {"label":"A", "x":1.75, "y":3.5}, | ||
152 | {"label":"S", "x":2.75, "y":3.5}, | ||
153 | {"label":"D", "x":3.75, "y":3.5}, | ||
154 | {"label":"F", "x":4.75, "y":3.5}, | ||
155 | {"label":"G", "x":5.75, "y":3.5}, | ||
156 | {"label":"H", "x":6.75, "y":3.5}, | ||
157 | {"label":"J", "x":7.75, "y":3.5}, | ||
158 | {"label":"K", "x":8.75, "y":3.5}, | ||
159 | {"label":"L", "x":9.75, "y":3.5}, | ||
160 | {"label":";", "x":10.75, "y":3.5}, | ||
161 | {"label":"'", "x":11.75, "y":3.5}, | ||
162 | {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, | ||
163 | {"label":"Shift", "x":0, "y":4.5, "w":2.25}, | ||
164 | {"label":"Z", "x":2.25, "y":4.5}, | ||
165 | {"label":"X", "x":3.25, "y":4.5}, | ||
166 | {"label":"C", "x":4.25, "y":4.5}, | ||
167 | {"label":"V", "x":5.25, "y":4.5}, | ||
168 | {"label":"B", "x":6.25, "y":4.5}, | ||
169 | {"label":"N", "x":7.25, "y":4.5}, | ||
170 | {"label":"M", "x":8.25, "y":4.5}, | ||
171 | {"label":",", "x":9.25, "y":4.5}, | ||
172 | {"label":".", "x":10.25, "y":4.5}, | ||
173 | {"label":"/", "x":11.25, "y":4.5}, | ||
174 | {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, | ||
175 | {"label":"Up", "x":16.25, "y":4.5}, | ||
176 | {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, | ||
177 | {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, | ||
178 | {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, | ||
179 | {"x":3.75, "y":5.5, "w":6.25}, | ||
180 | {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, | ||
181 | {"label":"GUI", "x":11.25, "y":5.5, "w":1.25}, | ||
182 | {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, | ||
183 | {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, | ||
184 | {"label":"Left", "x":15.25, "y":5.5}, | ||
185 | {"label":"Down", "x":16.25, "y":5.5}, | ||
186 | {"label":"Right", "x":17.25, "y":5.5} | ||
187 | ] | ||
188 | }, | ||
189 | "LAYOUT_tkl_iso": { | ||
190 | "layout": [ | ||
191 | {"label":"Esc", "x":0, "y":0}, | ||
192 | {"label":"F1", "x":2, "y":0}, | ||
193 | {"label":"F2", "x":3, "y":0}, | ||
194 | {"label":"F3", "x":4, "y":0}, | ||
195 | {"label":"F4", "x":5, "y":0}, | ||
196 | {"label":"F5", "x":6.5, "y":0}, | ||
197 | {"label":"F6", "x":7.5, "y":0}, | ||
198 | {"label":"F7", "x":8.5, "y":0}, | ||
199 | {"label":"F8", "x":9.5, "y":0}, | ||
200 | {"label":"F9", "x":11, "y":0}, | ||
201 | {"label":"F10", "x":12, "y":0}, | ||
202 | {"label":"F11", "x":13, "y":0}, | ||
203 | {"label":"F12", "x":14, "y":0}, | ||
204 | {"label":"Print Screen", "x":15.25, "y":0}, | ||
205 | {"label":"Scroll Lock", "x":16.25, "y":0}, | ||
206 | {"label":"Pause", "x":17.25, "y":0}, | ||
207 | {"label":"`", "x":0, "y":1.5}, | ||
208 | {"label":"1", "x":1, "y":1.5}, | ||
209 | {"label":"2", "x":2, "y":1.5}, | ||
210 | {"label":"3", "x":3, "y":1.5}, | ||
211 | {"label":"4", "x":4, "y":1.5}, | ||
212 | {"label":"5", "x":5, "y":1.5}, | ||
213 | {"label":"6", "x":6, "y":1.5}, | ||
214 | {"label":"7", "x":7, "y":1.5}, | ||
215 | {"label":"8", "x":8, "y":1.5}, | ||
216 | {"label":"9", "x":9, "y":1.5}, | ||
217 | {"label":"0", "x":10, "y":1.5}, | ||
218 | {"label":"-", "x":11, "y":1.5}, | ||
219 | {"label":"=", "x":12, "y":1.5}, | ||
220 | {"label":"Backspace", "x":13, "y":1.5, "w":2}, | ||
221 | {"label":"Insert", "x":15.25, "y":1.5}, | ||
222 | {"label":"Home", "x":16.25, "y":1.5}, | ||
223 | {"label":"Page Up", "x":17.25, "y":1.5}, | ||
224 | {"label":"Tab", "x":0, "y":2.5, "w":1.5}, | ||
225 | {"label":"Q", "x":1.5, "y":2.5}, | ||
226 | {"label":"W", "x":2.5, "y":2.5}, | ||
227 | {"label":"E", "x":3.5, "y":2.5}, | ||
228 | {"label":"R", "x":4.5, "y":2.5}, | ||
229 | {"label":"T", "x":5.5, "y":2.5}, | ||
230 | {"label":"Y", "x":6.5, "y":2.5}, | ||
231 | {"label":"U", "x":7.5, "y":2.5}, | ||
232 | {"label":"I", "x":8.5, "y":2.5}, | ||
233 | {"label":"O", "x":9.5, "y":2.5}, | ||
234 | {"label":"P", "x":10.5, "y":2.5}, | ||
235 | {"label":"[", "x":11.5, "y":2.5}, | ||
236 | {"label":"]", "x":12.5, "y":2.5}, | ||
237 | {"label":"Delete", "x":15.25, "y":2.5}, | ||
238 | {"label":"End", "x":16.25, "y":2.5}, | ||
239 | {"label":"Page Down", "x":17.25, "y":2.5}, | ||
240 | {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, | ||
241 | {"label":"A", "x":1.75, "y":3.5}, | ||
242 | {"label":"S", "x":2.75, "y":3.5}, | ||
243 | {"label":"D", "x":3.75, "y":3.5}, | ||
244 | {"label":"F", "x":4.75, "y":3.5}, | ||
245 | {"label":"G", "x":5.75, "y":3.5}, | ||
246 | {"label":"H", "x":6.75, "y":3.5}, | ||
247 | {"label":"J", "x":7.75, "y":3.5}, | ||
248 | {"label":"K", "x":8.75, "y":3.5}, | ||
249 | {"label":"L", "x":9.75, "y":3.5}, | ||
250 | {"label":";", "x":10.75, "y":3.5}, | ||
251 | {"label":"'", "x":11.75, "y":3.5}, | ||
252 | {"label":"#", "x":12.75, "y":3.5}, | ||
253 | {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, | ||
254 | {"label":"Shift", "x":0, "y":4.5, "w":1.25}, | ||
255 | {"label":"\\", "x":1.25, "y":4.5}, | ||
256 | {"label":"Z", "x":2.25, "y":4.5}, | ||
257 | {"label":"X", "x":3.25, "y":4.5}, | ||
258 | {"label":"C", "x":4.25, "y":4.5}, | ||
259 | {"label":"V", "x":5.25, "y":4.5}, | ||
260 | {"label":"B", "x":6.25, "y":4.5}, | ||
261 | {"label":"N", "x":7.25, "y":4.5}, | ||
262 | {"label":"M", "x":8.25, "y":4.5}, | ||
263 | {"label":",", "x":9.25, "y":4.5}, | ||
264 | {"label":".", "x":10.25, "y":4.5}, | ||
265 | {"label":"/", "x":11.25, "y":4.5}, | ||
266 | {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, | ||
267 | {"label":"↑", "x":16.25, "y":4.5}, | ||
268 | {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, | ||
269 | {"label":"GUI", "x":1.25, "y":5.5, "w":1.25}, | ||
270 | {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, | ||
271 | {"x":3.75, "y":5.5, "w":6.25}, | ||
272 | {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, | ||
273 | {"label":"GUI", "x":11.25, "y":5.5, "w":1.25}, | ||
274 | {"label":"App", "x":12.5, "y":5.5, "w":1.25}, | ||
275 | {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, | ||
276 | {"label":"←", "x":15.25, "y":5.5}, | ||
277 | {"label":"↓", "x":16.25, "y":5.5}, | ||
278 | {"label":"→", "x":17.25, "y":5.5} | ||
279 | ] | ||
280 | }, | ||
281 | "LAYOUT_tkl_jis": { | ||
282 | "layout": [ | ||
283 | {"label":"Esc", "x":0, "y":0}, | ||
284 | {"label":"F1", "x":2, "y":0}, | ||
285 | {"label":"F2", "x":3, "y":0}, | ||
286 | {"label":"F3", "x":4, "y":0}, | ||
287 | {"label":"F4", "x":5, "y":0}, | ||
288 | {"label":"F5", "x":6.5, "y":0}, | ||
289 | {"label":"F6", "x":7.5, "y":0}, | ||
290 | {"label":"F7", "x":8.5, "y":0}, | ||
291 | {"label":"F8", "x":9.5, "y":0}, | ||
292 | {"label":"F9", "x":11, "y":0}, | ||
293 | {"label":"F10", "x":12, "y":0}, | ||
294 | {"label":"F11", "x":13, "y":0}, | ||
295 | {"label":"F12", "x":14, "y":0}, | ||
296 | {"label":"Print Screen", "x":15.25, "y":0}, | ||
297 | {"label":"Scroll Lock", "x":16.25, "y":0}, | ||
298 | {"label":"Pause", "x":17.25, "y":0}, | ||
299 | {"label":"Half-width/Full-width", "x":0, "y":1.5}, | ||
300 | {"label":"1", "x":1, "y":1.5}, | ||
301 | {"label":"2", "x":2, "y":1.5}, | ||
302 | {"label":"3", "x":3, "y":1.5}, | ||
303 | {"label":"4", "x":4, "y":1.5}, | ||
304 | {"label":"5", "x":5, "y":1.5}, | ||
305 | {"label":"6", "x":6, "y":1.5}, | ||
306 | {"label":"7", "x":7, "y":1.5}, | ||
307 | {"label":"8", "x":8, "y":1.5}, | ||
308 | {"label":"9", "x":9, "y":1.5}, | ||
309 | {"label":"0", "x":10, "y":1.5}, | ||
310 | {"label":"-", "x":11, "y":1.5}, | ||
311 | {"label":"^", "x":12, "y":1.5}, | ||
312 | {"label":"Yen", "x":13, "y":1.5}, | ||
313 | {"label":"Backspace", "x":14, "y":1.5}, | ||
314 | {"label":"Insert", "x":15.25, "y":1.5}, | ||
315 | {"label":"Home", "x":16.25, "y":1.5}, | ||
316 | {"label":"Page Up", "x":17.25, "y":1.5}, | ||
317 | {"label":"Tab", "x":0, "y":2.5, "w":1.5}, | ||
318 | {"label":"Q", "x":1.5, "y":2.5}, | ||
319 | {"label":"W", "x":2.5, "y":2.5}, | ||
320 | {"label":"E", "x":3.5, "y":2.5}, | ||
321 | {"label":"R", "x":4.5, "y":2.5}, | ||
322 | {"label":"T", "x":5.5, "y":2.5}, | ||
323 | {"label":"Y", "x":6.5, "y":2.5}, | ||
324 | {"label":"U", "x":7.5, "y":2.5}, | ||
325 | {"label":"I", "x":8.5, "y":2.5}, | ||
326 | {"label":"O", "x":9.5, "y":2.5}, | ||
327 | {"label":"P", "x":10.5, "y":2.5}, | ||
328 | {"label":"@", "x":11.5, "y":2.5}, | ||
329 | {"label":"[", "x":12.5, "y":2.5}, | ||
330 | {"label":"Del", "x":15.25, "y":2.5}, | ||
331 | {"label":"End", "x":16.25, "y":2.5}, | ||
332 | {"label":"Page Down", "x":17.25, "y":2.5}, | ||
333 | {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, | ||
334 | {"label":"A", "x":1.75, "y":3.5}, | ||
335 | {"label":"S", "x":2.75, "y":3.5}, | ||
336 | {"label":"D", "x":3.75, "y":3.5}, | ||
337 | {"label":"F", "x":4.75, "y":3.5}, | ||
338 | {"label":"G", "x":5.75, "y":3.5}, | ||
339 | {"label":"H", "x":6.75, "y":3.5}, | ||
340 | {"label":"J", "x":7.75, "y":3.5}, | ||
341 | {"label":"K", "x":8.75, "y":3.5}, | ||
342 | {"label":"L", "x":9.75, "y":3.5}, | ||
343 | {"label":";", "x":10.75, "y":3.5}, | ||
344 | {"label":":", "x":11.75, "y":3.5}, | ||
345 | {"label":"]", "x":12.75, "y":3.5}, | ||
346 | {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, | ||
347 | {"label":"Shift", "x":0, "y":4.5, "w":2.25}, | ||
348 | {"label":"Z", "x":2.25, "y":4.5}, | ||
349 | {"label":"X", "x":3.25, "y":4.5}, | ||
350 | {"label":"C", "x":4.25, "y":4.5}, | ||
351 | {"label":"V", "x":5.25, "y":4.5}, | ||
352 | {"label":"B", "x":6.25, "y":4.5}, | ||
353 | {"label":"N", "x":7.25, "y":4.5}, | ||
354 | {"label":"M", "x":8.25, "y":4.5}, | ||
355 | {"label":",", "x":9.25, "y":4.5}, | ||
356 | {"label":".", "x":10.25, "y":4.5}, | ||
357 | {"label":"/", "x":11.25, "y":4.5}, | ||
358 | {"label":"\\", "x":12.25, "y":4.5}, | ||
359 | {"label":"Shift", "x":13.25, "y":4.5, "w":1.75}, | ||
360 | {"label":"Up", "x":16.25, "y":4.5}, | ||
361 | {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, | ||
362 | {"label":"GUI", "x":1.25, "y":5.5}, | ||
363 | {"label":"Alt", "x":2.25, "y":5.5, "w":1.25}, | ||
364 | {"label":"Muhenkan", "x":3.5, "y":5.5}, | ||
365 | {"label":"Space", "x":4.5, "y":5.5, "w":4.5}, | ||
366 | {"label":"Henkan", "x":9, "y":5.5, "w":1.25}, | ||
367 | {"label":"Kana", "x":10.25, "y":5.5, "w":1.25}, | ||
368 | {"label":"Alt", "x":11.5, "y":5.5, "w":1.25}, | ||
369 | {"label":"Fn", "x":12.75, "y":5.5}, | ||
370 | {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, | ||
371 | {"label":"Left", "x":15.25, "y":5.5}, | ||
372 | {"label":"Down", "x":16.25, "y":5.5}, | ||
373 | {"label":"Right", "x":17.25, "y":5.5} | ||
374 | ] | ||
375 | } | ||
376 | } | ||
377 | } | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c new file mode 100644 index 000000000..788446202 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c | |||
@@ -0,0 +1,105 @@ | |||
1 | /* | ||
2 | Copyright 2016 Daniel Svensson <[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 | #include QMK_KEYBOARD_H | ||
19 | |||
20 | /* Swedish keys */ | ||
21 | #define SE_HALF KC_GRV | ||
22 | #define SE_PLUS KC_MINS | ||
23 | #define SE_ACUT KC_EQL | ||
24 | #define SE_AO KC_LBRC | ||
25 | #define SE_CIRC KC_RBRC | ||
26 | #define SE_QUOT KC_BSLS | ||
27 | #define SE_ODIA KC_SCLN | ||
28 | #define SE_ADIA KC_QUOT | ||
29 | #define SE_MINS KC_SLSH | ||
30 | #define SE_LTGT KC_NUBS | ||
31 | #define SE_LCBR RALT(KC_7) | ||
32 | #define SE_LBRC RALT(KC_8) | ||
33 | #define SE_RBRC RALT(KC_9) | ||
34 | #define SE_RCBR RALT(KC_0) | ||
35 | #define SE_PIPE RALT(SE_LTGT) | ||
36 | #define SE_BSLS RALT(SE_PLUS) | ||
37 | |||
38 | #define KM_BLOWRAK 0 | ||
39 | #define KM_QWERTY 1 | ||
40 | #define KM_MEDIA 2 | ||
41 | #define KM_HAXHAX 3 | ||
42 | |||
43 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
44 | /* Layer 0: Blowrak ISO layer, a Swedish take on Dvorak */ | ||
45 | [KM_BLOWRAK] = LAYOUT( \ | ||
46 | 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_PSCR,KC_SLCK,KC_PAUS, \ | ||
47 | SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,SE_ACUT,KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \ | ||
48 | KC_TAB, SE_AO, SE_ADIA,SE_ODIA,KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_COMM,SE_CIRC,SE_QUOT, KC_DEL, KC_END, KC_PGDN, \ | ||
49 | KC_LCTRL,KC_A, KC_O, KC_E, KC_U, KC_I, KC_H, KC_D, KC_T, KC_N, KC_S, SE_MINS, KC_ENT, \ | ||
50 | KC_LSFT, SE_LTGT,KC_DOT, KC_Q, KC_J, KC_K, KC_B, KC_X, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, \ | ||
51 | MO(KM_MEDIA),KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,TG(KM_QWERTY), KC_LEFT,KC_DOWN,KC_RGHT), | ||
52 | /* Layer 1: Standard ISO layer */ | ||
53 | [KM_QWERTY] = LAYOUT( \ | ||
54 | 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_PSCR,KC_SLCK,KC_PAUS, \ | ||
55 | SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,SE_ACUT,KC_BSPC, KC_INS, KC_HOME,KC_PGUP, \ | ||
56 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_AO, SE_CIRC,SE_QUOT, KC_DEL, KC_END, KC_PGDN, \ | ||
57 | KC_LCTRL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_ODIA,SE_ADIA, KC_ENT, \ | ||
58 | KC_LSFT, SE_LTGT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, SE_MINS, KC_RSFT, KC_UP, \ | ||
59 | MO(KM_MEDIA),KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_MENU,TG(KM_QWERTY), KC_LEFT,KC_DOWN,KC_RGHT), | ||
60 | /* Layer 2: Media layer */ | ||
61 | [KM_MEDIA] = LAYOUT( \ | ||
62 | _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_WAKE,KC_PWR, KC_SLEP, \ | ||
63 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLU, \ | ||
64 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_MUTE,_______,KC_VOLD, \ | ||
65 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ | ||
66 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_MPLY, \ | ||
67 | _______,_______,_______, _______, _______,_______,RESET ,_______, KC_MPRV,KC_MSTP,KC_MNXT), | ||
68 | /* Layer 3: Programming layer */ | ||
69 | [KM_HAXHAX] = LAYOUT( \ | ||
70 | _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ | ||
71 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ | ||
72 | _______,SE_LCBR,SE_PIPE,SE_RCBR,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ | ||
73 | _______,SE_LBRC,SE_BSLS,SE_RBRC,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ | ||
74 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \ | ||
75 | _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______), | ||
76 | }; | ||
77 | |||
78 | void matrix_scan_user(void) | ||
79 | { | ||
80 | uint8_t layer = biton32(layer_state); | ||
81 | switch (layer) { | ||
82 | case KM_BLOWRAK: | ||
83 | ph_caps_led_on(); | ||
84 | ph_sclk_led_off(); | ||
85 | break; | ||
86 | case KM_QWERTY: | ||
87 | ph_sclk_led_on(); | ||
88 | ph_caps_led_off(); | ||
89 | break; | ||
90 | } | ||
91 | } | ||
92 | |||
93 | /* Mixes in KM_HAXHAX via RALT modifier without shadowing the RALT key combinations. */ | ||
94 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
95 | uint8_t modifiers = get_mods(); | ||
96 | if (modifiers & MOD_BIT(KC_RALT) && record->event.pressed) { | ||
97 | uint16_t kc = keymap_key_to_keycode(KM_HAXHAX, record->event.key); | ||
98 | if (kc != KC_TRNS) { | ||
99 | register_code(kc); | ||
100 | unregister_code(kc); | ||
101 | return false; | ||
102 | } | ||
103 | } | ||
104 | return true; | ||
105 | } | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk new file mode 100644 index 000000000..737451b39 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk | |||
@@ -0,0 +1,17 @@ | |||
1 | # Build Options | ||
2 | # change to "no" to disable the options, or define them in the Makefile in | ||
3 | # the appropriate keymap folder that will get included automatically | ||
4 | # | ||
5 | BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite | ||
6 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | ||
7 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
8 | CONSOLE_ENABLE = yes # Console for debug(+400) | ||
9 | COMMAND_ENABLE = yes # Commands for debug and configuration | ||
10 | CUSTOM_MATRIX = yes # Custom matrix file for the Pegasus Hoof due to the 2x74HC42 | ||
11 | NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
12 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
13 | MIDI_ENABLE = no # MIDI controls | ||
14 | AUDIO_ENABLE = no # Audio output on port C6 | ||
15 | UNICODE_ENABLE = no # Unicode | ||
16 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
17 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h b/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h new file mode 100644 index 000000000..122627e88 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/citadel/config.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #pragma once | ||
2 | |||
3 | /* overridden settings: */ | ||
4 | |||
5 | #undef PRODUCT | ||
6 | #define PRODUCT Pegasus Hoof Citadel | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/citadel/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/citadel/keymap.c new file mode 100644 index 000000000..5036bcb3f --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/citadel/keymap.c | |||
@@ -0,0 +1,132 @@ | |||
1 | /* Copyright 2018 Daniel Rose <[email protected]> | ||
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 | #include QMK_KEYBOARD_H | ||
18 | |||
19 | /* Allow shortcuts for combos like RALT(KC_RBRC) that don't take up more than 7 characters: */ | ||
20 | /* Original shortcuts (quantum_keycodes.h) take full-sized keycodes: too long! */ | ||
21 | #undef C | ||
22 | #undef S | ||
23 | #undef A | ||
24 | #undef G | ||
25 | #define C(kc) LCTL(KC_##kc) | ||
26 | #define S(kc) LSFT(KC_##kc) | ||
27 | #define A(kc) LALT(KC_##kc) | ||
28 | #define G(kc) RALT(KC_##kc) | ||
29 | #define CTALDEL LCTL(LALT(KC_DEL)) | ||
30 | |||
31 | enum layers { | ||
32 | DEF, | ||
33 | FUN, | ||
34 | RES, | ||
35 | }; | ||
36 | |||
37 | enum tap_dance { | ||
38 | AF4, | ||
39 | }; | ||
40 | |||
41 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
42 | /* Layer 0: default layer (ISO-DE) | ||
43 | * .----. .-------------------. .-------------------. .-------------------. .--------------. | ||
44 | * |Esc | |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10 |F11 |F12 | |PrSc|SLck|2Tp:| | ||
45 | * | | | | | | | | | | | | | | | | | |SyRq| |A+F4| | ||
46 | * '----' '-------------------' '-------------------' '-------------------' '--------------' | ||
47 | * .------------------------------------------------------------------------. .--------------. | ||
48 | * |° |! |" |§ |$ |% |& |/ |( |) |= |? |` |Backspa| |Ins |Home|PgUp| | ||
49 | * |^ |1 |2 ²|3 ³|4 |5 |6 |7 {|8 [|9 ]|0 }|ß \|´ | | | | | | | ||
50 | * |------------------------------------------------------------------------| |--------------| | ||
51 | * |Tab |Q |W |E |R |T |Z |U |I |O |P |Ü |* | E | |Del |End |PgDn| | ||
52 | * | | | | €| | | | | | | | |+ ~| n | | | | | | ||
53 | * |------------------------------------------------------------------\ t | '--------------' | ||
54 | * |Fn: |A |S |D |F |G |H |J |K |L |Ö |Ä |' | e | | ||
55 | * |Layer 2| | | | | | | | | | | |# | r | | ||
56 | * |------------------------------------------------------------------------| .----. | ||
57 | * |Shift|> |Y |X |C |V |B |N |M |; |: |_ |Shift | |Up | | ||
58 | * | |< ¦| | | | | | | µ|, |. |- | | | | | ||
59 | * |------------------------------------------------------------------------| .--------------. | ||
60 | * |Ctrl |Super|Alt | |AltGr|Alt |Fn: |Ctrl | |Left|Down|Righ| | ||
61 | * | | | | | | |Lay 2| | | | | | | ||
62 | * '------------------------------------------------------------------------' '--------------' | ||
63 | * NUHS = true position of KC_NUHS | ||
64 | */ | ||
65 | [DEF] = LAYOUT( \ | ||
66 | 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_PSCR,KC_SLCK,TD(AF4), \ | ||
67 | 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, KC_HOME,KC_PGUP, \ | ||
68 | 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_NUHS, KC_DEL, KC_END, KC_PGDN, \ | ||
69 | MO(FUN),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,/*NUHS*/KC_ENT, \ | ||
70 | 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, \ | ||
71 | KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_LALT,MO(FUN),KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT), | ||
72 | |||
73 | /* Layer 1: function layer | ||
74 | * .----. .-------------------. .-------------------. .-------------------. .--------------. | ||
75 | * |Ctl+| |My |WWW:|Calc|Medi| |Mus:|Mus:|Mus:|Mus:| |Vol:|Vol:|Vol:|See:| | | |Paus| | ||
76 | * |A+De| |Comp|Home| |Play| |Prev|Next|Paus|Stop| |Mute|Down|Up |[3] | | | |Brea| | ||
77 | * '----' '-------------------' '-------------------' '-------------------' '--------------' | ||
78 | * .------------------------------------------------------------------------. .--------------. | ||
79 | * | | | | | | | | | | | | | | | | | |Mou:| | ||
80 | * | | | | | | | |{ |[ |] |} |\ | | | | | |WhUp| | ||
81 | * |------------------------------------------------------------------------| |--------------| | ||
82 | * | | | | | | | | | | | | |~ | | | | |Mou:| | ||
83 | * | | | | | | | | | | | | | | | | | |WhDn| | ||
84 | * |------------------------------------------------------------------\ | '--------------' | ||
85 | * |CapsLck|Mou:|Mou:| | | | | | | | | | | | | ||
86 | * | |Fast|Slow| | | | | | | | | | | | | ||
87 | * |------------------------------------------------------------------------| .----. | ||
88 | * | | | | | | | | |µ | | | | | |Mou:| | ||
89 | * | | | | | | | | | | | | | | |Up | | ||
90 | * |------------------------------------------------------------------------| .--------------. | ||
91 | * |Mous:|Mous:| | | |Super|App | | |Mou:|Mou:|Mou:| | ||
92 | * |Bttn2|Bttn1| | | | | | | |Left|Down|Righ| | ||
93 | * '------------------------------------------------------------------------' '--------------' | ||
94 | * | ||
95 | */ | ||
96 | [FUN] = LAYOUT( \ | ||
97 | CTALDEL, KC_MYCM,KC_WHOM,KC_CALC,KC_MSEL,KC_MPRV,KC_MNXT,KC_MPLY,KC_MSTP,KC_MUTE,KC_VOLD,KC_VOLU,MO(RES), _______,KC_SLCK,KC_PAUS, \ | ||
98 | _______,_______,_______,_______,_______,_______,_______,G(7), G(8), G(9), G(0), G(MINS),_______,_______, _______,_______,KC_WH_U, \ | ||
99 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,G(RBRC),_______, _______,_______,KC_WH_D, \ | ||
100 | KC_CAPS,KC_ACL2,KC_ACL0,_______,_______,_______,_______,_______,_______,_______,_______,_______,/*NUHS*/_______, \ | ||
101 | _______,_______,_______,_______,_______,_______,_______,_______,G(M), _______,_______,_______, _______, KC_MS_U, \ | ||
102 | KC_BTN2,KC_BTN1,_______, _______, _______,KC_RGUI,KC_APP ,_______, KC_MS_L,KC_MS_D,KC_MS_R), | ||
103 | |||
104 | |||
105 | /* Layer 3: Reset layer (prevents accidental resets) */ | ||
106 | [RES] = LAYOUT( \ | ||
107 | _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ | ||
108 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ | ||
109 | _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ | ||
110 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,/*NUHS*/_______, \ | ||
111 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \ | ||
112 | _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______), | ||
113 | }; | ||
114 | |||
115 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
116 | /* Tap once: nothing. Tap twice: Alt+F4 */ | ||
117 | [AF4] = ACTION_TAP_DANCE_DOUBLE(XXXXXXX,A(F4)), | ||
118 | }; | ||
119 | |||
120 | void led_set_user(uint8_t usb_led) { | ||
121 | if (usb_led & (1 << USB_LED_CAPS_LOCK)) { | ||
122 | ph_caps_led_on(); | ||
123 | } else { | ||
124 | ph_caps_led_off(); | ||
125 | } | ||
126 | |||
127 | if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { | ||
128 | ph_sclk_led_on(); | ||
129 | } else { | ||
130 | ph_sclk_led_off(); | ||
131 | } | ||
132 | } | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/citadel/readme.md b/keyboards/bpiphany/pegasushoof/keymaps/citadel/readme.md new file mode 100644 index 000000000..3618bae86 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/citadel/readme.md | |||
@@ -0,0 +1,75 @@ | |||
1 | # Citadel keymap for pegasushoof | ||
2 | |||
3 | Designed for ISO-DE and similar ISO layouts. | ||
4 | |||
5 | The central idea of this keymap is to avoid unergonomic key combos that force the user to either press | ||
6 | multiple keys with one hand or to use the left hand for right-sided keys. For instance, ISO-DE users | ||
7 | have to press `AltGr`+`7` to type _{_. The keymap allows ergonomic access to the right-sided keys of the | ||
8 | German AltGr-layer by turning `Caps Lock` into a hybrid Fn/AltGr-key. It can easily be adapted for other | ||
9 | ISO layouts. | ||
10 | |||
11 | The _Function_ layer also offers mouse emulation and function/media keys in the F-Row. | ||
12 | |||
13 | `Pause/Break` is used as a safe _close key_: A _single tap_ does nothing, a _double tap_ executes ALT+F4. | ||
14 | |||
15 | Named after the homonymous space station from _Mass Effect_. Made by [Daniel Rose](https://github.com/droseger/). | ||
16 | |||
17 | ## [1] Layers | ||
18 | |||
19 | ### Layer 1 (Default) | ||
20 | .----. .-------------------. .-------------------. .-------------------. .--------------. | ||
21 | |Esc | |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10 |F11 |F12 | |PrSc|SLck|2Tp:| | ||
22 | | | | | | | | | | | | | | | | | | |SyRq| |A+F4| | ||
23 | '----' '-------------------' '-------------------' '-------------------' '--------------' | ||
24 | .------------------------------------------------------------------------. .--------------. | ||
25 | |° |! |" |§ |$ |% |& |/ |( |) |= |? |` |Backspa| |Ins |Home|PgUp| | ||
26 | |^ |1 |2 ²|3 ³|4 |5 |6 |7 {|8 [|9 ]|0 }|ß \|´ | | | | | | | ||
27 | |------------------------------------------------------------------------| |--------------| | ||
28 | |Tab |Q |W |E |R |T |Z |U |I |O |P |Ü |* | E | |Del |End |PgDn| | ||
29 | | | | | €| | | | | | | | |+ ~| n | | | | | | ||
30 | |------------------------------------------------------------------\ t | '--------------' | ||
31 | |Fn: |A |S |D |F |G |H |J |K |L |Ö |Ä |' | e | | ||
32 | |Layer 2| | | | | | | | | | | |# | r | | ||
33 | |------------------------------------------------------------------------| .----. | ||
34 | |Shift|> |Y |X |C |V |B |N |M |; |: |_ |Shift | |Up | | ||
35 | | |< ¦| | | | | | | µ|, |. |- | | | | | ||
36 | |------------------------------------------------------------------------| .--------------. | ||
37 | |Ctrl |Super|Alt | |AltGr|Alt |Fn: |Ctrl | |Left|Down|Righ| | ||
38 | | | | | | | |Lay 2| | | | | | | ||
39 | '------------------------------------------------------------------------' '--------------' | ||
40 | |||
41 | ### Layer 2 (Function) | ||
42 | .----. .-------------------. .-------------------. .-------------------. .--------------. | ||
43 | |Ctl+| |My |WWW:|Calc|Medi| |Mus:|Mus:|Mus:|Mus:| |Vol:|Vol:|Vol:|See:| | | |Paus| | ||
44 | |A+De| |Comp|Home| |Play| |Prev|Next|Paus|Stop| |Mute|Down|Up |[3] | | | |Brea| | ||
45 | '----' '-------------------' '-------------------' '-------------------' '--------------' | ||
46 | .------------------------------------------------------------------------. .--------------. | ||
47 | | | | | | | | | | | | | | | | | | |Mou:| | ||
48 | | | | | | | | |{ |[ |] |} |\ | | | | | |WhUp| | ||
49 | |------------------------------------------------------------------------| |--------------| | ||
50 | | | | | | | | | | | | | |~ | | | | |Mou:| | ||
51 | | | | | | | | | | | | | | | | | | |WhDn| | ||
52 | |------------------------------------------------------------------\ | '--------------' | ||
53 | |CapsLck|Mou:|Mou:| | | | | | | | | | | | | ||
54 | | |Fast|Slow| | | | | | | | | | | | | ||
55 | |------------------------------------------------------------------------| .----. | ||
56 | | | | | | | | | |µ | | | | | |Mou:| | ||
57 | | | | | | | | | | | | | | | |Up | | ||
58 | |------------------------------------------------------------------------| .--------------. | ||
59 | |Mous:|Mous:| | | |Super|App | | |Mou:|Mou:|Mou:| | ||
60 | |Bttn2|Bttn1| | | | | | | |Left|Down|Righ| | ||
61 | '------------------------------------------------------------------------' '--------------' | ||
62 | |||
63 | Layer 3 exists solely to prevent users from accidentally activating boot mode: `R` is redefined | ||
64 | as `RESET` key [3]. | ||
65 | |||
66 | ## [2] How to build and install | ||
67 | 1) Prerequisite: install the necessary [build tools](https://docs.qmk.fm/#/getting_started_build_tools) | ||
68 | such as [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer). | ||
69 | - You might need to [add udev rules](https://docs.qmk.fm/#/faq_build?id=can39t-program-on-linux) under Linux. | ||
70 | 2) To test if the keymap compiles, simply run `make pegasushoof:citadel` | ||
71 | 3) Enter the `qmk_firmware` root directory and run `make pegasushoof:citadel:dfu` | ||
72 | 4) Reset controller to _Boot mode_ by pressing the `RESET` key or by using a magnet. | ||
73 | |||
74 | ## [3] How to access Boot mode after install | ||
75 | Press `Fn+F12+R` | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/citadel/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/citadel/rules.mk new file mode 100644 index 000000000..294a245aa --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/citadel/rules.mk | |||
@@ -0,0 +1,17 @@ | |||
1 | # Build Options | ||
2 | # change to "no" to disable the options | ||
3 | # | ||
4 | BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite | ||
5 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | ||
6 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
7 | CONSOLE_ENABLE = no # Console for debug(+400) | ||
8 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
9 | CUSTOM_MATRIX = yes # Custom matrix file for the Pegasus Hoof due to the 2x74HC42 | ||
10 | NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
11 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
12 | MIDI_ENABLE = no # MIDI controls | ||
13 | AUDIO_ENABLE = no # Audio output on port C6 | ||
14 | UNICODE_ENABLE = no # Unicode | ||
15 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
16 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | ||
17 | TAP_DANCE_ENABLE = yes # see https://docs.qmk.fm/#/feature_tap_dance (+1000) | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c new file mode 100644 index 000000000..4a9b1f3f0 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | Copyright 2016 Daniel Svensson <[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 | #include QMK_KEYBOARD_H | ||
19 | |||
20 | #define KM_QWERTY 0 | ||
21 | #define KM_MEDIA 1 | ||
22 | |||
23 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
24 | /* Layer 0: Standard ISO layer */ | ||
25 | [KM_QWERTY] = LAYOUT( | ||
26 | 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_PSCR, KC_SLCK, KC_PAUS, | ||
27 | 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, KC_HOME, KC_PGUP, | ||
28 | 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, KC_END, KC_PGDN, | ||
29 | KC_CLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, | ||
30 | 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, | ||
31 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, MO(1), KC_LEFT, KC_DOWN, KC_RGHT | ||
32 | ), | ||
33 | /* Layer 1: Function layer */ | ||
34 | [KM_MEDIA] = LAYOUT( | ||
35 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WAKE, KC_PWR, KC_SLEP, | ||
36 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, | ||
37 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, | ||
38 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
39 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, | ||
40 | _______, _______, _______, _______, _______, _______, RESET, _______, KC_MPRV, KC_MSTP, KC_MNXT | ||
41 | ) | ||
42 | }; | ||
43 | |||
44 | void led_set_user(uint8_t usb_led) { | ||
45 | if (usb_led & (1 << USB_LED_CAPS_LOCK)) { | ||
46 | ph_caps_led_on(); | ||
47 | } else { | ||
48 | ph_caps_led_off(); | ||
49 | } | ||
50 | |||
51 | if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { | ||
52 | ph_sclk_led_on(); | ||
53 | } else { | ||
54 | ph_sclk_led_off(); | ||
55 | } | ||
56 | } | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk new file mode 100644 index 000000000..0f9291c88 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk | |||
@@ -0,0 +1,10 @@ | |||
1 | BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite | ||
2 | MOUSEKEY_ENABLE = yes # Mouse keys | ||
3 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
4 | CONSOLE_ENABLE = yes # Console for debug | ||
5 | COMMAND_ENABLE = yes # Commands for debug and configuration | ||
6 | CUSTOM_MATRIX = yes # Custom matrix file for the Pegasus Hoof due to the 2x74HC42 | ||
7 | NKRO_ENABLE = no | ||
8 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
9 | AUDIO_ENABLE = no # Audio output | ||
10 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default_jis/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/default_jis/keymap.c new file mode 100644 index 000000000..46b660124 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/default_jis/keymap.c | |||
@@ -0,0 +1,54 @@ | |||
1 | /* | ||
2 | Copyright 2016 Daniel Svensson <[email protected]> | ||
3 | 2018 Charlie McMackin <[email protected]> | ||
4 | |||
5 | This program is free software: you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published by | ||
7 | the Free Software Foundation, either version 2 of the License, or | ||
8 | (at your option) any later version. | ||
9 | |||
10 | This program is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | GNU General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | #include QMK_KEYBOARD_H | ||
20 | |||
21 | #define KM_JIS 0 | ||
22 | #define KM_MEDIA 1 | ||
23 | |||
24 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = | ||
25 | { | ||
26 | /* Layer 0: Standard JIS layer */ | ||
27 | [KM_JIS] = LAYOUT_tkl_jis(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_PSCR,KC_SLCK,KC_PAUS, | ||
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_JYEN, KC_BSPC, KC_INS, KC_HOME,KC_PGUP, | ||
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_DEL, KC_END, KC_PGDN, | ||
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_BSLS,KC_ENT, | ||
31 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RO, KC_RSFT, KC_UP, | ||
32 | KC_LCTL, KC_LGUI,KC_LALT,KC_MHEN, KC_SPC, KC_HENK,KC_KANA,KC_RALT,MO(1), KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT), | ||
33 | /* Layer 1: Function layer */ | ||
34 | [KM_MEDIA] = LAYOUT_tkl_jis(_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_WAKE,KC_PWR, KC_SLEP, | ||
35 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLU, | ||
36 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,KC_VOLD, | ||
37 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, | ||
38 | _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_MPLY, | ||
39 | _______,_______,_______,_______, _______, _______,_______,_______,_______,RESET , KC_MPRV,KC_MSTP,KC_MNXT) | ||
40 | }; | ||
41 | |||
42 | void led_set_user(uint8_t usb_led) { | ||
43 | if (usb_led & (1 << USB_LED_CAPS_LOCK)) { | ||
44 | ph_caps_led_on(); | ||
45 | } else { | ||
46 | ph_caps_led_off(); | ||
47 | } | ||
48 | |||
49 | if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { | ||
50 | ph_sclk_led_on(); | ||
51 | } else { | ||
52 | ph_sclk_led_off(); | ||
53 | } | ||
54 | } | ||
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default_jis/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/default_jis/rules.mk new file mode 100644 index 000000000..cec4b4e46 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/keymaps/default_jis/rules.mk | |||
@@ -0,0 +1,10 @@ | |||
1 | BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite | ||
2 | MOUSEKEY_ENABLE = yes # 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 | CUSTOM_MATRIX = yes # Custom matrix file for the Pegasus Hoof due to the 2x74HC42 | ||
7 | NKRO_ENABLE = no | ||
8 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
9 | AUDIO_ENABLE = no # Audio output | ||
10 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | ||
diff --git a/keyboards/bpiphany/pegasushoof/readme.md b/keyboards/bpiphany/pegasushoof/readme.md new file mode 100644 index 000000000..ab49db03c --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/readme.md | |||
@@ -0,0 +1,21 @@ | |||
1 | # Pegasus Hoof Controller | ||
2 | |||
3 | A replacement controller that turns your Filco Majestouch 87/88 mechanical keyboard into a fully programmable keyboard. | ||
4 | |||
5 | Keyboard Maintainer: QMK Community | ||
6 | Hardware Supported: Pegasus Hoof, revisions [20131001](2013/) and [20150108](2015/) | ||
7 | Hardware Availability: [1upkeyboards](https://www.1upkeyboards.com/shop/controllers/filco-pegasus-hoof-controller/) | ||
8 | |||
9 | Make example for this keyboard (after setting up your build environment): | ||
10 | |||
11 | make bpiphany/pegasus_hoof:default | ||
12 | |||
13 | 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). | ||
14 | |||
15 | ### Additional Resources | ||
16 | |||
17 | With many thanks to Bathroom Epiphanies for all the kind advice and help. | ||
18 | |||
19 | * [Schematic](https://deskthority.net/wiki/Costar_replacement_controllers#Schematic) | ||
20 | * [bpiphany TMK source](https://github.com/BathroomEpiphanies/epiphanies_tmk_keyboard) | ||
21 | * [bpiphany QMK source](https://github.com/BathroomEpiphanies/epiphanies_qmk_keyboard) | ||
diff --git a/keyboards/bpiphany/pegasushoof/rules.mk b/keyboards/bpiphany/pegasushoof/rules.mk new file mode 100644 index 000000000..af447c337 --- /dev/null +++ b/keyboards/bpiphany/pegasushoof/rules.mk | |||
@@ -0,0 +1,22 @@ | |||
1 | # MCU name | ||
2 | MCU = atmega32u2 | ||
3 | |||
4 | # Bootloader selection | ||
5 | BOOTLOADER = atmel-dfu | ||
6 | |||
7 | # Build Options | ||
8 | # change yes to no to disable | ||
9 | # | ||
10 | BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite | ||
11 | MOUSEKEY_ENABLE = yes # Mouse keys | ||
12 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
13 | CONSOLE_ENABLE = yes # Console for debug | ||
14 | COMMAND_ENABLE = yes # Commands for debug and configuration | ||
15 | NKRO_ENABLE = no # Enable N-Key Rollover | ||
16 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
17 | AUDIO_ENABLE = no # Audio output | ||
18 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. | ||
19 | |||
20 | LAYOUTS = tkl_ansi | ||
21 | |||
22 | DEFAULT_FOLDER=bpiphany/pegasushoof/2013 | ||