aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/handwired/riblee_f411/config.h41
-rw-r--r--keyboards/handwired/riblee_f411/keymaps/default/keymap.c206
-rw-r--r--keyboards/handwired/riblee_f411/readme.md16
-rw-r--r--keyboards/handwired/riblee_f411/riblee_f411.c17
-rw-r--r--keyboards/handwired/riblee_f411/riblee_f411.h34
-rw-r--r--keyboards/handwired/riblee_f411/rules.mk26
6 files changed, 340 insertions, 0 deletions
diff --git a/keyboards/handwired/riblee_f411/config.h b/keyboards/handwired/riblee_f411/config.h
new file mode 100644
index 000000000..a1aa122e7
--- /dev/null
+++ b/keyboards/handwired/riblee_f411/config.h
@@ -0,0 +1,41 @@
1/* Copyright 2020 Daniel Reibl <janos.daniel.reibl@protonmail.com>
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#pragma once
18
19#include "config_common.h"
20
21#define VENDOR_ID 0xFEED
22#define PRODUCT_ID 0x002B
23#define DEVICE_VER 0x0001
24#define MANUFACTURER Riblee
25#define PRODUCT Handwired F411
26
27#define MATRIX_ROWS 5
28#define MATRIX_COLS 12
29
30#define MATRIX_ROW_PINS { A6, A5, A4, A3, A2 }
31#define MATRIX_COL_PINS { B10, B1, B0, B15, A8, B3, B4, B5, B6, B7, B8, B9 }
32#define UNUSED_PINS
33
34#define DIODE_DIRECTION COL2ROW
35
36#define BACKLIGHT_PIN A1
37#define BACKLIGHT_LEVELS 5
38
39#define MOUSEKEY_INTERVAL 32
40
41#define TAPPING_TERM 175 \ No newline at end of file
diff --git a/keyboards/handwired/riblee_f411/keymaps/default/keymap.c b/keyboards/handwired/riblee_f411/keymaps/default/keymap.c
new file mode 100644
index 000000000..61b04fe6a
--- /dev/null
+++ b/keyboards/handwired/riblee_f411/keymaps/default/keymap.c
@@ -0,0 +1,206 @@
1/* Copyright 2015-2017 Jack Humbert
2 * Copyright 2020 Daniel Reibl <janos.daniel.reibl@protonmail.com>
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
20enum layer_names {
21 _QWERTY,
22 _COLEMAK,
23 _DVORAK,
24 _LOWER,
25 _RAISE,
26 _ADJUST
27};
28
29enum custom_keycodes {
30 QWERTY = SAFE_RANGE,
31 COLEMAK,
32 DVORAK,
33 BACKLIT
34};
35
36#define LOWER MO(_LOWER)
37#define RAISE MO(_RAISE)
38
39const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
40
41/* Qwerty
42 * ,-----------------------------------------------------------------------------------.
43 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
44 * |------+------+------+------+------+------+------+------+------+------+------+------|
45 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
46 * |------+------+------+------+------+-------------+------+------+------+------+------|
47 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
48 * |------+------+------+------+------+------|------+------+------+------+------+------|
49 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
50 * |------+------+------+------+------+------+------+------+------+------+------+------|
51 * | Brite| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
52 * `-----------------------------------------------------------------------------------'
53 */
54[_QWERTY] = LAYOUT_ortho_5x12(
55 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
56 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
57 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
58 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
59 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
60),
61
62/* Colemak
63 * ,-----------------------------------------------------------------------------------.
64 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
65 * |------+------+------+------+------+------+------+------+------+------+------+------|
66 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
67 * |------+------+------+------+------+-------------+------+------+------+------+------|
68 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
69 * |------+------+------+------+------+------|------+------+------+------+------+------|
70 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
71 * |------+------+------+------+------+------+------+------+------+------+------+------|
72 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
73 * `-----------------------------------------------------------------------------------'
74 */
75[_COLEMAK] = LAYOUT_ortho_5x12(
76 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
77 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
78 KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
79 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
80 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
81),
82
83/* Dvorak
84 * ,-----------------------------------------------------------------------------------.
85 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
86 * |------+------+------+------+------+------+------+------+------+------+------+------|
87 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
88 * |------+------+------+------+------+-------------+------+------+------+------+------|
89 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
90 * |------+------+------+------+------+------|------+------+------+------+------+------|
91 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
92 * |------+------+------+------+------+------+------+------+------+------+------+------|
93 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
94 * `-----------------------------------------------------------------------------------'
95 */
96[_DVORAK] = LAYOUT_ortho_5x12(
97 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
98 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL,
99 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
100 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT,
101 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
102),
103
104/* Lower
105 * ,-----------------------------------------------------------------------------------.
106 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
107 * |------+------+------+------+------+-------------+------+------+------+------+------|
108 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
109 * |------+------+------+------+------+-------------+------+------+------+------+------|
110 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
111 * |------+------+------+------+------+------|------+------+------+------+------+------|
112 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
113 * |------+------+------+------+------+------+------+------+------+------+------+------|
114 * | | | | | | BTN1 | BTN2 | | MS_L | MS_D | MS_U | MS_R |
115 * `-----------------------------------------------------------------------------------'
116 */
117[_LOWER] = LAYOUT_ortho_5x12(
118 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
119 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
120 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
121 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
122 _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R
123),
124
125/* Raise
126 * ,-----------------------------------------------------------------------------------.
127 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
128 * |------+------+------+------+------+------+------+------+------+------+------+------|
129 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
130 * |------+------+------+------+------+-------------+------+------+------+------+------|
131 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
132 * |------+------+------+------+------+------|------+------+------+------+------+------|
133 * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
134 * |------+------+------+------+------+------+------+------+------+------+------+------|
135 * | | | | | | | | Next | Vol- | Vol+ | Play |
136 * `-----------------------------------------------------------------------------------'
137 */
138[_RAISE] = LAYOUT_ortho_5x12(
139 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
140 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
141 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
142 KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
143 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
144),
145
146/* Adjust (Lower + Raise)
147 * ,-----------------------------------------------------------------------------------.
148 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
149 * |------+------+------+------+------+------+------+------+------+------+------+------|
150 * | |Reset |Debug | | | | | | | | | Del |
151 * |------+------+------+------+------+-------------+------+------+------+------+------|
152 * | | |Mu mod|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
153 * |------+------+------+------+------+------|------+------+------+------+------+------|
154 * | | | | | | | NKRO | Swap |Un swp| | | |
155 * |------+------+------+------+------+------+------+------+------+------+------+------|
156 * | | | | | | | | | | | |
157 * `-----------------------------------------------------------------------------------'
158 */
159[_ADJUST] = LAYOUT_ortho_5x12(
160 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
161 _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL,
162 _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
163 _______, _______, _______, _______, _______, _______, NK_TOGG, LCG_SWP, LCG_NRM, _______, _______, _______,
164 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
165)
166
167};
168
169layer_state_t layer_state_set_user(layer_state_t state) {
170 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
171}
172
173bool process_record_user(uint16_t keycode, keyrecord_t *record) {
174 switch (keycode) {
175 case QWERTY:
176 if (record->event.pressed) {
177 set_single_persistent_default_layer(_QWERTY);
178 }
179 return false;
180 break;
181 case COLEMAK:
182 if (record->event.pressed) {
183 set_single_persistent_default_layer(_COLEMAK);
184 }
185 return false;
186 break;
187 case DVORAK:
188 if (record->event.pressed) {
189 set_single_persistent_default_layer(_DVORAK);
190 }
191 return false;
192 break;
193 case BACKLIT:
194 if (record->event.pressed) {
195 register_code(keycode_config(KC_LGUI));
196 #ifdef BACKLIGHT_ENABLE
197 backlight_step();
198 #endif
199 } else {
200 unregister_code(keycode_config(KC_LGUI));
201 }
202 return false;
203 break;
204 }
205 return true;
206};
diff --git a/keyboards/handwired/riblee_f411/readme.md b/keyboards/handwired/riblee_f411/readme.md
new file mode 100644
index 000000000..e59a307fe
--- /dev/null
+++ b/keyboards/handwired/riblee_f411/readme.md
@@ -0,0 +1,16 @@
1# Handwired Preonic
2
3A compact 50% (12x5) ortholinear keyboard.
4
5* Keyboard Maintainer: [Daniel Reibl](https://github.com/riblee)
6* Hardware Supported: Blackpill F411
7
8Make example for this keyboard (after setting up your build environment):
9
10 make handwired/riblee_f411:default
11
12Flashing example for this keyboard:
13
14 make handwired/riblee_f411:default:flash
15
16See 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). \ No newline at end of file
diff --git a/keyboards/handwired/riblee_f411/riblee_f411.c b/keyboards/handwired/riblee_f411/riblee_f411.c
new file mode 100644
index 000000000..20d3735e8
--- /dev/null
+++ b/keyboards/handwired/riblee_f411/riblee_f411.c
@@ -0,0 +1,17 @@
1/* Copyright 2020 Janos Daniel Reibl <janos.daniel.reibl@protonmail.com> @riblee
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 "riblee_f411.h" \ No newline at end of file
diff --git a/keyboards/handwired/riblee_f411/riblee_f411.h b/keyboards/handwired/riblee_f411/riblee_f411.h
new file mode 100644
index 000000000..b06173aaf
--- /dev/null
+++ b/keyboards/handwired/riblee_f411/riblee_f411.h
@@ -0,0 +1,34 @@
1/*
2Copyright 2020 QMK Community, Janos Daniel Reibl <janos.daniel.reibl@protonmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19#include "quantum.h"
20
21#define LAYOUT_ortho_5x12( \
22 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
23 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
24 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
25 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
26 k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \
27) \
28{ \
29 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
30 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
31 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
32 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
33 { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \
34}
diff --git a/keyboards/handwired/riblee_f411/rules.mk b/keyboards/handwired/riblee_f411/rules.mk
new file mode 100644
index 000000000..40a72bdcd
--- /dev/null
+++ b/keyboards/handwired/riblee_f411/rules.mk
@@ -0,0 +1,26 @@
1# MCU name
2MCU = STM32F411
3
4# Address of the bootloader in system memory
5STM32_BOOTLOADER_ADDRESS = 0x1FFF0000
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13KEYBOARD_SHARED_EP = yes
14CONSOLE_ENABLE = no # Console for debug
15COMMAND_ENABLE = no # Commands for debug and configuration
16# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
17SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
18# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
19NKRO_ENABLE = yes # USB Nkey Rollover
20BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
21BACKLIGHT_DRIVER = software
22RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
23BLUETOOTH_ENABLE = no # Enable Bluetooth
24AUDIO_ENABLE = no # Audio output
25
26LAYOUTS = ortho_5x12