aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCalciumNitride <46911478+CalciumNitride@users.noreply.github.com>2020-05-18 18:28:00 +0800
committerGitHub <noreply@github.com>2020-05-18 03:28:00 -0700
commitad014c2539fefec0313fc936f41e50f841e42501 (patch)
tree2fff62250e68a67008eb2669fc7e258a19c9a657
parent81698df0560376abfbd57c150cf571d0543e5fdb (diff)
downloadqmk_firmware-ad014c2539fefec0313fc936f41e50f841e42501.tar.gz
qmk_firmware-ad014c2539fefec0313fc936f41e50f841e42501.zip
[Keyboard] Arabica37 (#8471)
* adding arabica37 * jp_keymap * update * try refactor to use split_common * fix and update to use split_common * update and adjust * clean up * update * update * fix keymap.c * update * oled logo * fix info.json * remove pro_micro.h * remove KC_ macro * move font file
-rw-r--r--keyboards/arabica37/arabica37.c1
-rw-r--r--keyboards/arabica37/arabica37.h5
-rw-r--r--keyboards/arabica37/config.h21
-rw-r--r--keyboards/arabica37/info.json65
-rw-r--r--keyboards/arabica37/keymaps/default/config.h42
-rw-r--r--keyboards/arabica37/keymaps/default/keymap.c199
-rw-r--r--keyboards/arabica37/keymaps/default/rules.mk1
-rw-r--r--keyboards/arabica37/lib/glcdfont.c232
-rw-r--r--keyboards/arabica37/readme.md15
-rw-r--r--keyboards/arabica37/rev1/config.h82
-rw-r--r--keyboards/arabica37/rev1/rev1.c1
-rw-r--r--keyboards/arabica37/rev1/rev1.h23
-rw-r--r--keyboards/arabica37/rev1/rules.mk33
13 files changed, 720 insertions, 0 deletions
diff --git a/keyboards/arabica37/arabica37.c b/keyboards/arabica37/arabica37.c
new file mode 100644
index 000000000..22fc63b0e
--- /dev/null
+++ b/keyboards/arabica37/arabica37.c
@@ -0,0 +1 @@
#include "arabica37.h"
diff --git a/keyboards/arabica37/arabica37.h b/keyboards/arabica37/arabica37.h
new file mode 100644
index 000000000..3255e71d1
--- /dev/null
+++ b/keyboards/arabica37/arabica37.h
@@ -0,0 +1,5 @@
1#pragma once
2
3#ifdef KEYBOARD_arabica37_rev1
4 #include "rev1.h"
5#endif
diff --git a/keyboards/arabica37/config.h b/keyboards/arabica37/config.h
new file mode 100644
index 000000000..cfb6bf4ff
--- /dev/null
+++ b/keyboards/arabica37/config.h
@@ -0,0 +1,21 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Jack Humbert
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21#include "config_common.h"
diff --git a/keyboards/arabica37/info.json b/keyboards/arabica37/info.json
new file mode 100644
index 000000000..656433707
--- /dev/null
+++ b/keyboards/arabica37/info.json
@@ -0,0 +1,65 @@
1{
2 "keyboard_name": "arabica37 rev. 1",
3 "url": "",
4 "maintainer": "qmk",
5 "width": 15.25,
6 "height": 5.75,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"Esc", "x":0.25, "y":0.75},
11 {"label":"Q", "x":1.25, "y":0.75},
12 {"label":"W", "x":2.25, "y":0.25},
13 {"label":"E", "x":3.25, "y":0},
14 {"label":"R", "x":4.25, "y":0.25},
15 {"label":"T", "x":5.25, "y":0.5},
16
17 {"label":"Y", "x":9, "y":0.5},
18 {"label":"U", "x":10, "y":0.25},
19 {"label":"I", "x":11, "y":0},
20 {"label":"O", "x":12, "y":0.25},
21 {"label":"P", "x":13, "y":0.75},
22 {"label":"Backspace", "x":14, "y":0.75},
23
24 {"label":"Ctrl", "x":0.25, "y":1.75},
25 {"label":"A", "x":1.25, "y":1.75},
26 {"label":"S", "x":2.25, "y":1.25},
27 {"label":"D", "x":3.25, "y":1},
28 {"label":"F", "x":4.25, "y":1.25},
29 {"label":"G", "x":5.25, "y":1.5},
30
31 {"label":"H", "x":9, "y":1.5},
32 {"label":"J", "x":10, "y":1.25},
33 {"label":"K", "x":11, "y":1},
34 {"label":"L", "x":12, "y":1.25},
35 {"label":";", "x":13, "y":1.75},
36 {"label":"'", "x":14, "y":1.75},
37
38 {"label":"Adjust", "x":0.25, "y":2.75},
39 {"label":"Z", "x":1.25, "y":2.75},
40 {"label":"X", "x":2.25, "y":2.25},
41 {"label":"C", "x":3.25, "y":2},
42 {"label":"V", "x":4.25, "y":2.25},
43 {"label":"B", "x":5.25, "y":2.5},
44
45 {"label":"N", "x":9, "y":2.5},
46 {"label":"M", "x":10, "y":2.25},
47 {"label":",", "x":11, "y":2},
48 {"label":".", "x":12, "y":2.25},
49 {"label":"/", "x":13, "y":2.75},
50 {"label":"\\", "x":14, "y":2.75},
51
52 {"label":"Shift", "x":0, "y":3.75, "w":2.25},
53 {"label":"Lower", "x":4.375, "y":3.75, "w":1.5},
54 {"label":"GUI", "x":5.875, "y":3.75, "w":1.25},
55
56 {"label":"Alt", "x":8.125, "y":3.75, "w":1.25},
57 {"label":"Raise", "x":9.375, "y":3.75, "w":1.5},
58 {"label":"Shift", "x":13, "y":3.75, "w":2.25},
59
60 {"label":"Space", "x":5.125, "y":4.75, "w":1.25},
61 {"label":"Enter", "x":8.875, "y":4.75, "w":1.25}
62 ]
63 }
64 }
65}
diff --git a/keyboards/arabica37/keymaps/default/config.h b/keyboards/arabica37/keymaps/default/config.h
new file mode 100644
index 000000000..f12534c90
--- /dev/null
+++ b/keyboards/arabica37/keymaps/default/config.h
@@ -0,0 +1,42 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23//#define USE_MATRIX_I2C
24
25/* Select hand configuration */
26
27#define MASTER_LEFT
28// #define MASTER_RIGHT
29// #define EE_HANDS
30
31#define TAPPING_FORCE_HOLD
32#define TAPPING_TERM 170
33
34#undef RGBLED_NUM
35#define RGBLIGHT_ANIMATIONS
36#define RGBLED_NUM 27
37#define RGBLIGHT_LIMIT_VAL 120
38#define RGBLIGHT_HUE_STEP 10
39#define RGBLIGHT_SAT_STEP 17
40#define RGBLIGHT_VAL_STEP 17
41
42#define OLED_FONT_H "keyboards/arabica37/lib/glcdfont.c"
diff --git a/keyboards/arabica37/keymaps/default/keymap.c b/keyboards/arabica37/keymaps/default/keymap.c
new file mode 100644
index 000000000..877fb7347
--- /dev/null
+++ b/keyboards/arabica37/keymaps/default/keymap.c
@@ -0,0 +1,199 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7enum layers {
8 _QWERTY,
9 _LOWER,
10 _RAISE,
11 _ADJUST,
12};
13
14enum custom_keycodes {
15 LOWER = SAFE_RANGE,
16 RAISE,
17 ADJUST,
18 RGBRST
19};
20
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23 [_QWERTY] = LAYOUT( \
24 //,-----------------------------------------------. ,-----------------------------------------------.
25 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC,\
26 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
27 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT,\
28 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
29 ADJUST, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH,KC_BSLS,\
30 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
31 KC_LSFT, LOWER,KC_LGUI, KC_LALT, RAISE, KC_RSFT,\
32 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
33 KC_SPC, KC_ENT
34 //`-----------------------------------------------' `-----------------------------------------------'
35 ),
36 [_LOWER] = LAYOUT( \
37 //,-----------------------------------------------. ,-----------------------------------------------.
38 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_TRNS,\
39 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
40 KC_TRNS,KC_HOME,KC_LEFT, KC_UP,KC_RGHT,KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,\
41 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
42 KC_TRNS, KC_END,KC_PSCR,KC_DOWN, KC_INS,KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,\
43 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
44 KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,\
45 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
46 KC_TRNS, KC_TRNS
47 //`-----------------------------------------------' `-----------------------------------------------'
48 ),
49 [_RAISE] = LAYOUT( \
50 //,-----------------------------------------------. ,-----------------------------------------------.
51 KC_TRNS,KC_EXLM, KC_AT,KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_PSLS,KC_PAST,KC_PMNS,KC_PPLS,KC_TRNS,\
52 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
53 KC_TRNS,KC_RBRC,KC_LABK,KC_ASTR,KC_SCLN,KC_LBRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL,\
54 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
55 KC_TRNS,KC_BSLS,KC_RABK,KC_LPRN,KC_JYEN,KC_UNDS, KC_6, KC_7, KC_8, KC_9, KC_0,KC_PENT,\
56 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+--- ---+-------+-------|
57 KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,\
58 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+--- ---+-------+-------|
59 KC_TRNS, KC_TRNS
60 //`-----------------------------------------------' `-----------------------------------------------'
61 ),
62 [_ADJUST] = LAYOUT( \
63 //,-----------------------------------------------. ,-----------------------------------------------.
64 KC_TRNS, RGBRST,RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
65 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
66 KC_TRNS,RGB_HUI,RGB_SAI,RGB_VAI,AG_SWAP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
67 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
68 KC_TRNS,RGB_HUD,RGB_SAD,RGB_VAD,AG_NORM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
69 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
70 KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,\
71 //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
72 KC_TRNS, KC_TRNS
73 //`-----------------------------------------------' `-----------------------------------------------'
74 )
75};
76
77int RGB_current_mode;
78
79void keyboard_post_init_user(void) {
80 #ifdef RGBLIGHT_ENABLE
81 RGB_current_mode = rgblight_get_mode();
82 #endif
83}
84
85bool process_record_user(uint16_t keycode, keyrecord_t *record) {
86 if (record->event.pressed) {
87 // set_timelog();
88 }
89
90 switch (keycode) {
91 case LOWER:
92 if (record->event.pressed) {
93 layer_on(_LOWER);
94 update_tri_layer(_LOWER, _RAISE, _ADJUST);
95 } else {
96 layer_off(_LOWER);
97 update_tri_layer(_LOWER, _RAISE, _ADJUST);
98 }
99 return false;
100 break;
101 case RAISE:
102 if (record->event.pressed) {
103 layer_on(_RAISE);
104 update_tri_layer(_LOWER, _RAISE, _ADJUST);
105 } else {
106 layer_off(_RAISE);
107 update_tri_layer(_LOWER, _RAISE, _ADJUST);
108 }
109 return false;
110 break;
111 case ADJUST:
112 if (record->event.pressed) {
113 layer_on(_ADJUST);
114 } else {
115 layer_off(_ADJUST);
116 }
117 return false;
118 break;
119 case RGB_MOD:
120 #ifdef RGBLIGHT_ENABLE
121 if (record->event.pressed) {
122 rgblight_mode(RGB_current_mode);
123 rgblight_step();
124 RGB_current_mode = rgblight_get_mode();
125 }
126 #endif
127 return false;
128 break;
129 case RGBRST:
130 #ifdef RGBLIGHT_ENABLE
131 if (record->event.pressed) {
132 eeconfig_update_rgblight_default();
133 rgblight_enable();
134 RGB_current_mode = rgblight_get_mode();
135 }
136 #endif
137 break;
138 }
139 return true;
140}
141
142#ifdef OLED_DRIVER_ENABLE
143
144oled_rotation_t oled_init_user(oled_rotation_t rotation) {
145 if (!is_keyboard_master()) {
146 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
147 }
148
149 return rotation;
150}
151
152void oled_task_user(void) {
153 void render_status(void) {
154 // Host Keyboard Layer Status
155 oled_write_P(PSTR("Layer: "), false);
156
157 switch (get_highest_layer(layer_state)) {
158 case _QWERTY:
159 oled_write_P(PSTR("Default\n"), false);
160 break;
161 case _LOWER:
162 oled_write_P(PSTR("LOWER\n"), false);
163 break;
164 case _RAISE:
165 oled_write_P(PSTR("RAISE\n"), false);
166 break;
167 case _ADJUST:
168 oled_write_P(PSTR("ADJUST\n"), false);
169 break;
170 default:
171 // Or use the write_ln shortcut over adding '\n' to the end of your string
172 oled_write_ln_P(PSTR("Undefined"), false);
173 }
174
175 // Host Keyboard LED Status
176 led_t led_state = host_keyboard_led_state();
177 oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
178 oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
179 oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
180 }
181
182
183 void render_logo(void) {
184 static const char PROGMEM qmk_logo[] = {
185 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
186 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
187 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
188 };
189
190 oled_write_P(qmk_logo, false);
191 }
192
193 if (is_keyboard_master()) {
194 render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
195 } else {
196 render_logo(); // Renders a static logo
197 }
198}
199#endif
diff --git a/keyboards/arabica37/keymaps/default/rules.mk b/keyboards/arabica37/keymaps/default/rules.mk
new file mode 100644
index 000000000..c58266213
--- /dev/null
+++ b/keyboards/arabica37/keymaps/default/rules.mk
@@ -0,0 +1 @@
OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/arabica37/lib/glcdfont.c b/keyboards/arabica37/lib/glcdfont.c
new file mode 100644
index 000000000..a4ed2be82
--- /dev/null
+++ b/keyboards/arabica37/lib/glcdfont.c
@@ -0,0 +1,232 @@
1// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
2// See gfxfont.h for newer custom bitmap font info.
3
4#include "progmem.h"
5
6// Standard ASCII 5x7 font
7const unsigned char font[] PROGMEM = {
8 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
9 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
10 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
11 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
12 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
13 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
14 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
15 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
16 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
17 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
18 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
19 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
20 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
21 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
22 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
23 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
24 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
25 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
26 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
27 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
28 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
29 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
30 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
31 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
32 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
33 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
34 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
35 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
36 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
37 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
38 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
39 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
41 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
42 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
43 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
44 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
45 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
46 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
47 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
48 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
49 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
50 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
51 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
52 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
53 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
54 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
55 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
56 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
57 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
58 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
59 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
60 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
61 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
62 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
63 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
64 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
65 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
66 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
67 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
68 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
69 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
70 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
71 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
72 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
73 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
74 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
75 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
76 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
77 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
78 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
79 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
80 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
81 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
82 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
83 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
84 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
85 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
86 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
87 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
88 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
89 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
90 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
91 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
92 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
93 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
94 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
95 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
96 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
97 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
98 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
99 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
100 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
101 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
102 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
103 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
104 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
105 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
106 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
107 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
108 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
109 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
110 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
111 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
112 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
113 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
114 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
115 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
116 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
117 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
118 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
119 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
120 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
121 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
122 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
123 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
124 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
125 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
126 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
127 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
128 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
129 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
130 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
131 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
132 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
133 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
134 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
135 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
136 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0,
137 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0xF0,
138 0xE0, 0x00, 0x00, 0x80, 0x80, 0x80,
139 0x80, 0x00, 0x00, 0x80, 0x80, 0x00,
140 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
141 0x00, 0x80, 0x80, 0x00, 0x00, 0x00,
142 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
143 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
144 0x9C, 0x9F, 0x9F, 0x9C, 0x00, 0x00,
145 0x00, 0x00, 0x80, 0x80, 0x00, 0x80,
146 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
147 0x80, 0x80, 0x80, 0x00, 0x80, 0x80,
148 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
149 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
150 0x00, 0x00, 0x80, 0x80, 0x00, 0x00,
151 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
152 0x00, 0x00, 0x00, 0x80, 0x60, 0x18,
153 0x07, 0x00, 0x80, 0x80, 0x80, 0x80,
154 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
155 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
156 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
158 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
159 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
160 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
161 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
162 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
163 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
164 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
165 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
166 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
168 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
169 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xFF,
170 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
171 0xFF, 0x00, 0x1F, 0x1F, 0x1F, 0x1F,
172 0x00, 0x00, 0xC6, 0xE7, 0xF7, 0xF7,
173 0x00, 0xFF, 0xFF, 0xFF, 0xFE, 0x00,
174 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
175 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
176 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
177 0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x9F,
178 0x9F, 0x9F, 0x9E, 0x00, 0x00, 0xE7,
179 0xF7, 0xF7, 0xF7, 0x00, 0xFF, 0xFF,
180 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00,
181 0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
182 0x03, 0x00, 0x7F, 0x7F, 0x3F, 0x1E,
183 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
184 0x30, 0x0C, 0x02, 0x01, 0x00, 0x00,
185 0x00, 0x00, 0x07, 0x07, 0x07, 0x07,
186 0x07, 0xF7, 0xF3, 0xF3, 0x00, 0x00,
187 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
189 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
190 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
191 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
192 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
193 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
194 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
195 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
196 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
199 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
200 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F,
201 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x1F,
202 0x1F, 0x00, 0x00, 0x1F, 0x1F, 0x1F,
203 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
204 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x1F,
205 0x00, 0x1F, 0x1F, 0x0F, 0x07, 0x00,
206 0x00, 0x07, 0x0F, 0x0F, 0x1F, 0x00,
207 0x1F, 0x1F, 0x0F, 0x07, 0x00, 0x00,
208 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00,
209 0x07, 0x0F, 0x1F, 0x1F, 0x00, 0x1F,
210 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x07,
211 0x0F, 0x1F, 0x1F, 0x00, 0x1F, 0x0F,
212 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00,
213 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF0,
214 0xE0, 0x00, 0xFF, 0xFE, 0xFE, 0x38,
215 0x00, 0x60, 0x10, 0x0C, 0x03, 0x00,
216 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
217 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
218 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00,
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
222 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
223 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
225 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
228 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
229 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
230 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
231 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
232};
diff --git a/keyboards/arabica37/readme.md b/keyboards/arabica37/readme.md
new file mode 100644
index 000000000..6cbe98c18
--- /dev/null
+++ b/keyboards/arabica37/readme.md
@@ -0,0 +1,15 @@
1# Arabica3/7
2
3![arabica3/7](https://user-images.githubusercontent.com/46911478/76915532-9c333080-68f8-11ea-863a-8a7899d1d9c4.jpg)
4
5A split keyboard with 3x6 column staggered keys, 1 pinkey and 3 thumb keys.
6
7* Keyboard Maintainer: [CalciumNitride](https://github.com/CalciumNitride)
8* Hardware Supported: Arabica3/7 PCB, Pro Micro
9* Hardware Availability: [PCB & Case Data](https://github.com/calciumnitride/arabica37)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make arabica37/rev1:default
14
15See 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).
diff --git a/keyboards/arabica37/rev1/config.h b/keyboards/arabica37/rev1/config.h
new file mode 100644
index 000000000..5db7e32fc
--- /dev/null
+++ b/keyboards/arabica37/rev1/config.h
@@ -0,0 +1,82 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Jack Humbert
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0xFEED
23#define PRODUCT_ID 0x3060
24#define DEVICE_VER 0x0001
25#define MANUFACTURER CalciumNitride
26#define PRODUCT Arabica3/7
27#define DESCRIPTION A split keyboard with 3x6 column staggered keys, 1 pinkie key and 3 thumb keys
28
29#define USE_SERIAL
30#define SOFT_SERIAL_PIN D2
31
32/* key matrix size */
33// Rows are doubled-up
34#define MATRIX_ROWS 8
35#define MATRIX_COLS 7
36#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
37
38// wiring of each half
39#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
40// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
41
42#define DIODE_DIRECTION COL2ROW
43
44/* define if matrix has ghost */
45//#define MATRIX_HAS_GHOST
46
47/* number of backlight levels */
48// #define BACKLIGHT_LEVELS 3
49
50/* Set 0 if debouncing isn't needed */
51#define DEBOUNCE 5
52
53/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
54//#define LOCKING_SUPPORT_ENABLE
55/* Locking resynchronize hack */
56//#define LOCKING_RESYNC_ENABLE
57
58/* key combination for command */
59
60
61/* ws2812 RGB LED */
62#define RGB_DI_PIN D3
63
64#define RGBLED_NUM 50 // Number of LEDs
65#define RGBLED_SPLIT {25, 25}
66/*
67 * Feature disable options
68 * These options are also useful to firmware size reduction.
69 */
70
71/* disable debug print */
72// #define NO_DEBUG
73
74/* disable print */
75// #define NO_PRINT
76
77/* disable action features */
78//#define NO_ACTION_LAYER
79//#define NO_ACTION_TAPPING
80//#define NO_ACTION_ONESHOT
81//#define NO_ACTION_MACRO
82//#define NO_ACTION_FUNCTION
diff --git a/keyboards/arabica37/rev1/rev1.c b/keyboards/arabica37/rev1/rev1.c
new file mode 100644
index 000000000..22fc63b0e
--- /dev/null
+++ b/keyboards/arabica37/rev1/rev1.c
@@ -0,0 +1 @@
#include "arabica37.h"
diff --git a/keyboards/arabica37/rev1/rev1.h b/keyboards/arabica37/rev1/rev1.h
new file mode 100644
index 000000000..316de77f1
--- /dev/null
+++ b/keyboards/arabica37/rev1/rev1.h
@@ -0,0 +1,23 @@
1#pragma once
2
3#include "arabica37.h"
4
5#include "quantum.h"
6
7#define LAYOUT( \
8 L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
9 L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
10 L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
11 L26, L31, L32, R26, R30, R32, \
12 L30, R31 \
13 ) \
14 { \
15 { L00, L01, L02, L03, L04, L05 }, \
16 { L10, L11, L12, L13, L14, L15 }, \
17 { L20, L21, L22, L23, L24, L25 }, \
18 { L26, KC_NO, KC_NO, L30, L31, L32 }, \
19 { R05, R04, R03, R02, R01, R00 }, \
20 { R15, R14, R13, R12, R11, R10 }, \
21 { R25, R24, R23, R22, R21, R20 }, \
22 { R32, KC_NO, KC_NO, R31, R30, R26 } \
23 }
diff --git a/keyboards/arabica37/rev1/rules.mk b/keyboards/arabica37/rev1/rules.mk
new file mode 100644
index 000000000..10c5ab28b
--- /dev/null
+++ b/keyboards/arabica37/rev1/rules.mk
@@ -0,0 +1,33 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = caterina
13
14# Build Options
15# change yes to no to disable
16BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
17MOUSEKEY_ENABLE = no # Mouse keys
18EXTRAKEY_ENABLE = no # Audio control and System control
19CONSOLE_ENABLE = no # Console for debug
20COMMAND_ENABLE = no # Commands for debug and configuration
21# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
22SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
23# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
24NKRO_ENABLE = no # USB Nkey Rollover
25BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
26RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
27MIDI_ENABLE = no # MIDI support
28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
29AUDIO_ENABLE = no # Audio output on port C6
30FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
31HD44780_ENABLE = no # Enable support for HD44780 based LCDs
32
33SPLIT_KEYBOARD = yes