Skip to content

Commit bbd17de

Browse files
authored
[Keyboard] Rebound rev3 (qmk#9101)
* more stoof * readme update * reverting keymap * re-adding userspace * new userspace needed * no want 0 under thumb * gettin fancier with my knob * macro fix * had pins for oled ver * wait, these are the right pins * reduntant line * image fix * get highest layer every day * whoops * correct rev name in json * a few good catches * what I had planned
1 parent d89e552 commit bbd17de

File tree

12 files changed

+514
-6
lines changed

12 files changed

+514
-6
lines changed
+5-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
# Rebound
22

3-
![Rebound](https://imgur.com/zMPhNmm.jpg)
3+
![Rebound](https://i.imgur.com/IoV64hC.jpg)
44

5-
A conjoined-split 40% 4x12 ortholinear keyboard made and sold by Montsinger. [More info on Montsinger.net](https://montsinger.net).
5+
A conjoined-split 40% ortholinear keyboard made and sold by Montsinger. [More info on Montsinger.net](https://montsinger.net).
66

77
* Keyboard Maintainer: [Rossman360](https://github.com/rossman360)
8-
* Hardware Supported: Rebound rev1 or rev2; Pro Micro or Elite-C
8+
* Hardware Supported: Rebound rev1 rev2 or rev3; Pro Micro or Elite-C
99
* Hardware Availability: [Montsinger.net](https://montsinger.net)
1010

1111
Make example for this keyboard (after setting up your build environment):
1212

1313
make montsinger/rebound/rev1:default # for rev1
1414
make montsinger/rebound/rev2:default # for rev2
15+
make montsinger/rebound/rev3:default # for rev3
1516

16-
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)
17+
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)

keyboards/montsinger/rebound/rebound.h

+2
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@
2222
#include "rev1.h"
2323
#elif defined(KEYBOARD_montsinger_rebound_rev2)
2424
#include "rev2.h"
25+
#elif defined(KEYBOARD_montsinger_rebound_rev3)
26+
#include "rev3.h"
2527
#endif

keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4949
),
5050

5151
[_NUM] = LAYOUT_all(
52-
_______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
52+
_______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
5353
KC_CAPS, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
54-
_______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
54+
_______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
5555
_______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_Y , _______, _______, KC_0 , _______, _______, _______
5656
)
5757
};
+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*
2+
Copyright 2020 Ross Montsinger
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+
This program is distributed in the hope that it will be useful,
8+
but WITHOUT ANY WARRANTY; without even the implied warranty of
9+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10+
GNU General Public License for more details.
11+
You should have received a copy of the GNU General Public License
12+
along with this program. If not, see <http://www.gnu.org/licenses/>.
13+
*/
14+
15+
#pragma once
16+
17+
#include "config_common.h"
18+
19+
/* USB Device descriptor parameter */
20+
21+
#define VENDOR_ID 0xFEED
22+
#define PRODUCT_ID 0x552F
23+
#define DEVICE_VER 0x0002
24+
#define MANUFACTURER Montsinger
25+
#define PRODUCT Rebound
26+
#define DESCRIPTION "A conjoined Let's Split"
27+
28+
/* key matrix size */
29+
30+
#define MATRIX_ROWS 5
31+
#define MATRIX_COLS 12
32+
33+
/*
34+
* Keyboard Matrix Assignments
35+
*
36+
* Change this to how you wired your keyboard
37+
* COLS: AVR pins used for columns, left to right
38+
* ROWS: AVR pins used for rows, top to bottom
39+
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on
40+
diode)
41+
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
42+
*
43+
*/
44+
45+
#define MATRIX_ROW_PINS { F4, F5, D1, D0, B0 }
46+
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, B6, B2, B3, B1, F7, F6 }
47+
#define UNUSED_PINS { }
48+
49+
#define ENCODERS_PAD_A { D3 }
50+
#define ENCODERS_PAD_B { D2 }
51+
52+
/* COL2ROW, ROW2COL*/
53+
#define DIODE_DIRECTION ROW2COL
54+
55+
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
56+
#define DEBOUNCE 5
57+
58+
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
59+
#define LOCKING_SUPPORT_ENABLE
60+
/* Locking resynchronize hack */
61+
#define LOCKING_RESYNC_ENABLE
62+
63+
/* Bootmagic Lite key configuration */
64+
// #define BOOTMAGIC_LITE_ROW 0
65+
// #define BOOTMAGIC_LITE_COLUMN 0
+128
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
{
2+
"keyboard":"montsinger/rebound/rev3",
3+
"url": "https://montsinger.net",
4+
"maintainer": "rossman360",
5+
"width": 13,
6+
"height": 4,
7+
"layouts": {
8+
"LAYOUT_all": {
9+
"layout": [
10+
{"x":0, "y":0},
11+
{"x":1, "y":0},
12+
{"x":2, "y":0},
13+
{"x":3, "y":0},
14+
{"x":4, "y":0},
15+
{"x":5, "y":0},
16+
17+
{"x":7, "y":0},
18+
{"x":8, "y":0},
19+
{"x":9, "y":0},
20+
{"x":10, "y":0},
21+
{"x":11, "y":0},
22+
{"x":12, "y":0},
23+
24+
{"x":0, "y":1},
25+
{"x":1, "y":1},
26+
{"x":2, "y":1},
27+
{"x":3, "y":1},
28+
{"x":4, "y":1},
29+
{"x":5, "y":1},
30+
{"x":6, "y":1},
31+
{"x":7, "y":1},
32+
{"x":8, "y":1},
33+
{"x":9, "y":1},
34+
{"x":10, "y":1},
35+
{"x":11, "y":1},
36+
{"x":12, "y":1},
37+
38+
{"x":0, "y":2},
39+
{"x":1, "y":2},
40+
{"x":2, "y":2},
41+
{"x":3, "y":2},
42+
{"x":4, "y":2},
43+
{"x":5, "y":2},
44+
{"x":6, "y":2},
45+
{"x":7, "y":2},
46+
{"x":8, "y":2},
47+
{"x":9, "y":2},
48+
{"x":10, "y":2},
49+
{"x":11, "y":2},
50+
{"x":12, "y":2},
51+
52+
{"x":0, "y":3},
53+
{"x":1, "y":3},
54+
{"x":2, "y":3},
55+
{"x":3, "y":3},
56+
{"x":4, "y":3},
57+
{"x":5, "y":3},
58+
{"x":6, "y":3},
59+
{"x":7, "y":3},
60+
{"x":8, "y":3},
61+
{"x":9, "y":3},
62+
{"x":10, "y":3},
63+
{"x":11, "y":3},
64+
{"x":12, "y":3}
65+
]
66+
},
67+
"LAYOUT_ortho_4x12": {
68+
"layout": [
69+
70+
{"x":0, "y":0},
71+
{"x":1, "y":0},
72+
{"x":2, "y":0},
73+
{"x":3, "y":0},
74+
{"x":4, "y":0},
75+
{"x":5, "y":0},
76+
77+
{"x":7, "y":0},
78+
{"x":8, "y":0},
79+
{"x":9, "y":0},
80+
{"x":10, "y":0},
81+
{"x":11, "y":0},
82+
{"x":12, "y":0},
83+
84+
{"x":0, "y":1},
85+
{"x":1, "y":1},
86+
{"x":2, "y":1},
87+
{"x":3, "y":1},
88+
{"x":4, "y":1},
89+
{"x":5, "y":1},
90+
91+
{"x":7, "y":1},
92+
{"x":8, "y":1},
93+
{"x":9, "y":1},
94+
{"x":10, "y":1},
95+
{"x":11, "y":1},
96+
{"x":12, "y":1},
97+
98+
{"x":0, "y":2},
99+
{"x":1, "y":2},
100+
{"x":2, "y":2},
101+
{"x":3, "y":2},
102+
{"x":4, "y":2},
103+
{"x":5, "y":2},
104+
105+
{"x":7, "y":2},
106+
{"x":8, "y":2},
107+
{"x":9, "y":2},
108+
{"x":10, "y":2},
109+
{"x":11, "y":2},
110+
{"x":12, "y":2},
111+
112+
{"x":0, "y":3},
113+
{"x":1, "y":3},
114+
{"x":2, "y":3},
115+
{"x":3, "y":3},
116+
{"x":4, "y":3},
117+
{"x":5, "y":3},
118+
119+
{"x":7, "y":3},
120+
{"x":8, "y":3},
121+
{"x":9, "y":3},
122+
{"x":10, "y":3},
123+
{"x":11, "y":3},
124+
{"x":12, "y":3}
125+
]
126+
}
127+
}
128+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
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.
7+
8+
enum layer_names {
9+
_QWERTY,
10+
_COLEMAK,
11+
_DVORAK,
12+
_LOWER,
13+
_RAISE,
14+
_ADJUST
15+
};
16+
17+
enum custom_keycodes {
18+
QWERTY = SAFE_RANGE,
19+
COLEMAK,
20+
DVORAK
21+
};
22+
23+
#define LOWER MO(_LOWER)
24+
#define RAISE MO(_RAISE)
25+
#define ADJUST MO(_ADJUST)
26+
27+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28+
29+
[_QWERTY] = LAYOUT_all(
30+
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
31+
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
32+
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
33+
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
34+
),
35+
36+
[_COLEMAK] = LAYOUT_all(
37+
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
38+
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
39+
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
40+
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
41+
),
42+
43+
[_DVORAK] = LAYOUT_all(
44+
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
45+
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
46+
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
47+
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
48+
),
49+
50+
[_LOWER] = LAYOUT_all(
51+
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
52+
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
53+
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,
54+
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
55+
),
56+
57+
[_RAISE] = LAYOUT_all(
58+
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
59+
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
60+
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
61+
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
62+
),
63+
64+
[_ADJUST] = LAYOUT_all(
65+
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
66+
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
67+
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
68+
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
69+
)
70+
};
71+
72+
layer_state_t layer_state_set_user(layer_state_t state) {
73+
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
74+
}
75+
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
76+
switch (keycode) {
77+
case QWERTY:
78+
if (record->event.pressed) {
79+
set_single_persistent_default_layer(_QWERTY);
80+
}
81+
break;
82+
case COLEMAK:
83+
if (record->event.pressed) {
84+
set_single_persistent_default_layer(_COLEMAK);
85+
}
86+
break;
87+
case DVORAK:
88+
if (record->event.pressed) {
89+
set_single_persistent_default_layer(_DVORAK);
90+
}
91+
break;
92+
}
93+
return true;
94+
}
95+
96+
void encoder_update_user(uint8_t index, bool clockwise) {
97+
if (clockwise) {
98+
tap_code16(S(KC_VOLD));
99+
} else {
100+
tap_code16(KC_VOLU);
101+
}
102+
}

0 commit comments

Comments
 (0)