Skip to content

Commit 83ab7d4

Browse files
authored
Updates to drashna keymap and minor updates to tractyl manuform (#15101)
1 parent 8df90c6 commit 83ab7d4

File tree

11 files changed

+693
-62
lines changed

11 files changed

+693
-62
lines changed

keyboards/handwired/tractyl_manuform/5x6_right/config.h

-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
4141
#define DYNAMIC_KEYMAP_LAYER_COUNT 16
4242
#define LAYER_STATE_16BIT
4343

44-
/* Set 0 if debouncing isn't needed */
45-
#define DEBOUNCE 5
4644

4745
/* disable action features */
4846
//#define NO_ACTION_LAYER

keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
4444
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
4545
#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
4646

47-
#define RGBLED_NUM 20
47+
#define RGBLED_NUM 52
4848
#define RGBLIGHT_SPLIT
4949
#define RGBLED_SPLIT \
50-
{ 10, 10 }
51-
#define RGBLIGHT_LMIT_VAL 80
50+
{ 26, 26 }
51+
#define RGBLIGHT_LIMIT_VAL 150
5252

5353
#define DEBUG_LED_PIN C13
5454

keyboards/handwired/tractyl_manuform/5x6_right/f411/readme.md

+15-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
# Drashna's Blackpill Tractyl Manuform (5x6) with a right side trackball
22

3-
* VBUS mod, using PB10
3+
* System Timer on TIM5
4+
* ~~VBUS mod, using PB10~~ (*doesn't seem to work for me*)
45
* Split Hand Pin, using PC14
5-
* Full Duplex Serial/USART using PA3 and PA4 on USART2
6+
* Full Duplex Serial/USART using PA2 and PA3 on USART2
67
* PWM Audio using PB1 and TIM3 and GPT on TIM4
7-
* PWM RGB using PA1 TIM2
8-
* pmw3360 sensor sharing PA5-PA7 on SPI1, with B0 as CS pin
8+
* PWM WS2812 RGB using PA1 TIM2
99
* 8KB SPI EEPROM chip sharing PA5-PA7 on SPI1 with PA4 as CS pin
10+
* pmw3360 sensor sharing PA5-PA7 on SPI1, with B0 as CS pin
1011
* Encoder using PA13 and PA14
1112
* SSD1306 OLED display (128x64) using PB8-PB9 on I2C1
1213
* Pull-up resistor (22k) on PA10 to fix reset issue.
1314
* Pull-up resistor (5.1k) on PA1 for WS2812 LED support, and wire it's VCC to the 5V pin.
15+
* Pins PA9, PA11, A12 are not useable because they're used for USB connection, and can't be shared.
16+
* Pin PB2 is used by BOOT1, and is unusable
17+
18+
## Keyboard Info
1419

1520
* Keyboard Maintainer: [Drashna Jael're](https://github.com/drashna)
1621
* Hardware Supported: [Design files](https://gitlab.com/keyboards1/dm_r_track/-/tree/master/boolean), [WeAct BlackPill (F411)](https://github.com/WeActTC/MiniSTM32F4x1), [PMW3360 Optical Sensor](https://www.tindie.com/products/jkicklighter/pmw3360-motion-sensor/)
@@ -24,3 +29,9 @@ Flashing example for this keyboard:
2429
make handwired/tractyl_manuform/5x6_right/f411:default:flash
2530

2631
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).
32+
33+
## Bootloader
34+
35+
* **Bootmagic reset**: Hold down the top right key on the right side, or the top left key on the left side while plugging in.
36+
* **Physical reset button**: Briefly press the "USER" button on the BlackPill
37+
* **Keycode in layout**: Press the key mapped to `RESET`.

keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk

+3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ BOOTLOADER = stm32-dfu
66

77
KEYBOARD_SHARED_EP = yes
88
CONSOLE_ENABLE = yes
9+
MOUSE_SHARED_EP = no
910

1011
EEPROM_DRIVER = spi
1112
WS2812_DRIVER = pwm
1213
SERIAL_DRIVER = usart
1314
AUDIO_DRIVER = pwm_hardware
15+
16+
DEBOUNCE_TYPE = asym_eager_defer_pk

keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h

+1-10
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,7 @@
1616

1717
#pragma once
1818

19-
// #define USE_I2C
20-
// #define SELECT_SOFT_SERIAL_SPEED 1
21-
// #define SERIAL_USE_MULTI_TRANSACTION
22-
#define SPLIT_MODS_ENABLE
23-
#define EE_HANDS
24-
2519
#define TRACKBALL_DPI_OPTIONS { 1200, 1800, 2600, 3400 }
2620

2721
#undef DEBOUNCE
28-
#define DEBOUNCE 10
29-
30-
#define SOLENOID_PIN F1
31-
#define SOLENOID_DEFAULT_DWELL 8
22+
#define DEBOUNCE 15

keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c

+1-9
Original file line numberDiff line numberDiff line change
@@ -348,16 +348,8 @@ void render_kitty(void) {
348348
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
349349

350350
// assumes 1 frame prep stage
351-
#ifdef SWAP_HANDS_ENABLE
352-
extern bool swap_hands;
353-
#endif
354351
void animation_phase(void) {
355-
# ifdef SWAP_HANDS_ENABLE
356-
if (swap_hands)
357-
#else
358-
if (tap_toggling)
359-
#endif
360-
{
352+
if (tap_toggling) {
361353
anim_frame_duration = 300;
362354
current_rtogi_frame = (current_rtogi_frame + 1) % RTOGI_FRAMES;
363355
oled_write_raw_P(rtogi[abs((RTOGI_FRAMES - 1) - current_rtogi_frame)], ANIM_SIZE);

keyboards/handwired/tractyl_manuform/config.h

-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
2424
#define VENDOR_ID 0x44DD
2525
#define MANUFACTURER Drashna
2626

27-
/* Set 0 if debouncing isn't needed */
28-
#define DEBOUNCE 5
29-
3027
#define USB_POLLING_INTERVAL_MS 1
3128

3229
/* disable debug print */

users/drashna/config.h

+9-11
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@
147147
// # define OLED_FONT_5X5
148148
// # define OLED_FONT_AZTECH
149149
// # define OLED_FONT_BMPLAIN
150+
// # define OLED_FONT_CRACKERS
151+
// # define OLED_FONT_HISKYF21
152+
# define OLED_FONT_DEAD_MEAL
150153
// # define OLED_FONT_SUPER_DIGG
151154
// # define OLED_LOGO_GMK_BAD
152155
// # define OLED_LOGO_HUE_MANITEE
@@ -163,17 +166,12 @@
163166
# define ONESHOT_TIMEOUT 3000
164167
#endif // !ONESHOT_TIMEOUT
165168

166-
// this makes it possible to do rolling combos (zx) with keys that
167-
// convert to other keys on hold (z becomes ctrl when you hold it,
168-
// and when this option isn't enabled, z rapidly followed by x
169-
// actually sends Ctrl-x. That's bad.)
170-
#define IGNORE_MOD_TAP_INTERRUPT
171-
#undef PERMISSIVE_HOLD
172-
//#define TAPPING_FORCE_HOLD_PER_KEY
173-
//#define RETRO_TAPPING_PER_KEY
174-
#if !defined(KEYBOARD_kyria) && !defined(KEYBOARD_splitkb_kyria)
175-
# define TAPPING_TERM_PER_KEY
176-
#endif
169+
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
170+
#define PERMISSIVE_HOLD_PER_KEY
171+
#define TAPPING_FORCE_HOLD_PER_KEY
172+
#define RETRO_TAPPING_PER_KEY
173+
#define TAPPING_TERM_PER_KEY
174+
177175

178176
#ifndef TAPPING_TOGGLE
179177
# define TAPPING_TOGGLE 1

users/drashna/drashna.c

+58
Original file line numberDiff line numberDiff line change
@@ -259,3 +259,61 @@ void matrix_slave_scan_user(void) {
259259
matrix_slave_scan_keymap();
260260
}
261261
#endif
262+
263+
__attribute__((weak)) uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
264+
switch (keycode) {
265+
default:
266+
return TAPPING_TERM;
267+
}
268+
}
269+
270+
__attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
271+
// Immediately select the hold action when another key is tapped:
272+
// return true;
273+
// Do not select the hold action when another key is tapped.
274+
// return false;
275+
switch (keycode) {
276+
default:
277+
return false;
278+
}
279+
}
280+
281+
__attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
282+
// Immediately select the hold action when another key is pressed.
283+
// return true;
284+
// Do not select the hold action when another key is pressed.
285+
// return false;
286+
switch (keycode) {
287+
case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
288+
return true;
289+
default:
290+
return false;
291+
}
292+
}
293+
294+
__attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
295+
// Do not force the mod-tap key press to be handled as a modifier
296+
// if any other key was pressed while the mod-tap key is held down.
297+
// return true;
298+
// Force the mod-tap key press to be handled as a modifier if any
299+
// other key was pressed while the mod-tap key is held down.
300+
// return false;
301+
switch (keycode) {
302+
default:
303+
return true;
304+
}
305+
}
306+
307+
__attribute__((weak)) bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
308+
switch (keycode) {
309+
default:
310+
return false;
311+
}
312+
}
313+
314+
__attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
315+
switch (keycode) {
316+
default:
317+
return false;
318+
}
319+
}

0 commit comments

Comments
 (0)