]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/helix/rev1/rev1.h
Usbasploader bootloader option addition (#6304)
[qmk_firmware.git] / keyboards / helix / rev1 / rev1.h
1 #ifndef REV1_H
2 #define REV1_CONFIG_H
3
4 #include "../helix.h"
5
6 //void promicro_bootloader_jmp(bool program);
7 #include "quantum.h"
8
9
10 #ifdef USE_I2C
11 #include <stddef.h>
12 #ifdef __AVR__
13   #include <avr/io.h>
14   #include <avr/interrupt.h>
15 #endif
16 #endif
17
18 //void promicro_bootloader_jmp(bool program);
19
20
21 #if HELIX_ROWS == 3
22   #ifndef FLIP_HALF
23   // Standard Keymap
24   // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
25   #define LAYOUT( \
26     L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
27     L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
28     L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25  \
29     ) \
30     { \
31       { L00, L01, L02, L03, L04, L05 }, \
32       { L10, L11, L12, L13, L14, L15 }, \
33       { L20, L21, L22, L23, L24, L25 }, \
34       { R05, R04, R03, R02, R01, R00 }, \
35       { R15, R14, R13, R12, R11, R10 }, \
36       { R25, R24, R23, R22, R21, R20 }, \
37     }
38   #else
39   // Keymap with right side flipped
40   // (TRRS jack on both halves are to the right)
41   #define LAYOUT( \
42     L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
43     L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
44     L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25  \
45     ) \
46     { \
47       { L00, L01, L02, L03, L04, L05 }, \
48       { L10, L11, L12, L13, L14, L15 }, \
49       { L20, L21, L22, L23, L24, L25 }, \
50       { R00, R01, R02, R03, R04, R05 }, \
51       { R10, R11, R12, R13, R14, R15 }, \
52       { R20, R21, R22, R23, R24, R25 }, \
53     }
54   #endif
55 #elif HELIX_ROWS == 4
56   #ifndef FLIP_HALF
57   // Standard Keymap
58   // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
59   #define LAYOUT( \
60     L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
61     L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
62     L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
63     L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35  \
64     ) \
65     { \
66       { L00, L01, L02, L03, L04, L05 }, \
67       { L10, L11, L12, L13, L14, L15 }, \
68       { L20, L21, L22, L23, L24, L25 }, \
69       { L30, L31, L32, L33, L34, L35 }, \
70       { R05, R04, R03, R02, R01, R00 }, \
71       { R15, R14, R13, R12, R11, R10 }, \
72       { R25, R24, R23, R22, R21, R20 }, \
73       { R35, R34, R33, R32, R31, R30 } \
74     }
75   #else
76   // Keymap with right side flipped
77   // (TRRS jack on both halves are to the right)
78   #define LAYOUT( \
79     L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
80     L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
81     L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
82     L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35  \
83     ) \
84     { \
85       { L00, L01, L02, L03, L04, L05 }, \
86       { L10, L11, L12, L13, L14, L15 }, \
87       { L20, L21, L22, L23, L24, L25 }, \
88       { L30, L31, L32, L33, L34, L35 }, \
89       { R00, R01, R02, R03, R04, R05 }, \
90       { R10, R11, R12, R13, R14, R15 }, \
91       { R20, R21, R22, R23, R24, R25 }, \
92       { R30, R31, R32, R33, R34, R35 } \
93     }
94   #endif
95 #elif HELIX_ROWS == 5
96   #ifndef FLIP_HALF
97   // Standard Keymap
98   // (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
99   #define LAYOUT( \
100     L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
101     L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
102     L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
103     L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
104     L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45  \
105     ) \
106     { \
107       { L00, L01, L02, L03, L04, L05 }, \
108       { L10, L11, L12, L13, L14, L15 }, \
109       { L20, L21, L22, L23, L24, L25 }, \
110       { L30, L31, L32, L33, L34, L35 }, \
111       { L40, L41, L42, L43, L44, L45 }, \
112       { R05, R04, R03, R02, R01, R00 }, \
113       { R15, R14, R13, R12, R11, R10 }, \
114       { R25, R24, R23, R22, R21, R20 }, \
115       { R35, R34, R33, R32, R31, R30 }, \
116       { R45, R44, R43, R42, R41, R40 } \
117     }
118   #else
119   // Keymap with right side flipped
120   // (TRRS jack on both halves are to the right)
121   #define LAYOUT( \
122     L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
123     L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
124     L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
125     L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
126     L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45  \
127     ) \
128     { \
129       { L00, L01, L02, L03, L04, L05 }, \
130       { L10, L11, L12, L13, L14, L15 }, \
131       { L20, L21, L22, L23, L24, L25 }, \
132       { L30, L31, L32, L33, L34, L35 }, \
133       { L40, L41, L42, L43, L44, L45 }, \
134       { R00, R01, R02, R03, R04, R05 }, \
135       { R10, R11, R12, R13, R14, R15 }, \
136       { R20, R21, R22, R23, R24, R25 }, \
137       { R30, R31, R32, R33, R34, R35 }, \
138       { R40, R41, R42, R43, R44, R45 } \
139     }
140   #endif
141 #else
142   #error "expected HELIX_ROWS 3 or 4 or 5"
143 #endif
144
145 // Used to create a keymap using only KC_ prefixed keys
146 #if HELIX_ROWS == 3
147   #define LAYOUT_kc( \
148     L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
149     L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
150     L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25  \
151     ) \
152     LAYOUT( \
153       KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
154       KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
155       KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25  \
156     )
157 #elif HELIX_ROWS == 4
158   #define LAYOUT_kc( \
159     L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
160     L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
161     L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
162     L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
163     ) \
164     LAYOUT( \
165       KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
166       KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
167       KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
168       KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
169     )
170 #else
171   #define LAYOUT_kc( \
172     L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
173     L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
174     L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
175     L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
176     L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45 \
177     ) \
178     LAYOUT( \
179       KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
180       KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
181       KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
182       KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, \
183       KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45 \
184     )
185 #endif
186
187 #endif