mirror of
https://github.com/qmk/qmk_firmware
synced 2024-12-22 16:36:58 +00:00
Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
commit
ed48c0bd8b
@ -41,8 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 16
|
||||
#define LAYER_STATE_16BIT
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
|
@ -44,11 +44,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
|
||||
#define RGBLED_NUM 20
|
||||
#define RGBLED_NUM 52
|
||||
#define RGBLIGHT_SPLIT
|
||||
#define RGBLED_SPLIT \
|
||||
{ 10, 10 }
|
||||
#define RGBLIGHT_LMIT_VAL 80
|
||||
{ 26, 26 }
|
||||
#define RGBLIGHT_LIMIT_VAL 150
|
||||
|
||||
#define DEBUG_LED_PIN C13
|
||||
|
||||
|
@ -1,16 +1,21 @@
|
||||
# Drashna's Blackpill Tractyl Manuform (5x6) with a right side trackball
|
||||
|
||||
* VBUS mod, using PB10
|
||||
* System Timer on TIM5
|
||||
* ~~VBUS mod, using PB10~~ (*doesn't seem to work for me*)
|
||||
* Split Hand Pin, using PC14
|
||||
* Full Duplex Serial/USART using PA3 and PA4 on USART2
|
||||
* Full Duplex Serial/USART using PA2 and PA3 on USART2
|
||||
* PWM Audio using PB1 and TIM3 and GPT on TIM4
|
||||
* PWM RGB using PA1 TIM2
|
||||
* pmw3360 sensor sharing PA5-PA7 on SPI1, with B0 as CS pin
|
||||
* PWM WS2812 RGB using PA1 TIM2
|
||||
* 8KB SPI EEPROM chip sharing PA5-PA7 on SPI1 with PA4 as CS pin
|
||||
* pmw3360 sensor sharing PA5-PA7 on SPI1, with B0 as CS pin
|
||||
* Encoder using PA13 and PA14
|
||||
* SSD1306 OLED display (128x64) using PB8-PB9 on I2C1
|
||||
* Pull-up resistor (22k) on PA10 to fix reset issue.
|
||||
* Pull-up resistor (5.1k) on PA1 for WS2812 LED support, and wire it's VCC to the 5V pin.
|
||||
* Pins PA9, PA11, A12 are not useable because they're used for USB connection, and can't be shared.
|
||||
* Pin PB2 is used by BOOT1, and is unusable
|
||||
|
||||
## Keyboard Info
|
||||
|
||||
* Keyboard Maintainer: [Drashna Jael're](https://github.com/drashna)
|
||||
* 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:
|
||||
make handwired/tractyl_manuform/5x6_right/f411:default:flash
|
||||
|
||||
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).
|
||||
|
||||
## Bootloader
|
||||
|
||||
* **Bootmagic reset**: Hold down the top right key on the right side, or the top left key on the left side while plugging in.
|
||||
* **Physical reset button**: Briefly press the "USER" button on the BlackPill
|
||||
* **Keycode in layout**: Press the key mapped to `RESET`.
|
||||
|
@ -6,8 +6,11 @@ BOOTLOADER = stm32-dfu
|
||||
|
||||
KEYBOARD_SHARED_EP = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
MOUSE_SHARED_EP = no
|
||||
|
||||
EEPROM_DRIVER = spi
|
||||
WS2812_DRIVER = pwm
|
||||
SERIAL_DRIVER = usart
|
||||
AUDIO_DRIVER = pwm_hardware
|
||||
|
||||
DEBOUNCE_TYPE = asym_eager_defer_pk
|
||||
|
@ -16,16 +16,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
// #define USE_I2C
|
||||
// #define SELECT_SOFT_SERIAL_SPEED 1
|
||||
// #define SERIAL_USE_MULTI_TRANSACTION
|
||||
#define SPLIT_MODS_ENABLE
|
||||
#define EE_HANDS
|
||||
|
||||
#define TRACKBALL_DPI_OPTIONS { 1200, 1800, 2600, 3400 }
|
||||
|
||||
#undef DEBOUNCE
|
||||
#define DEBOUNCE 10
|
||||
|
||||
#define SOLENOID_PIN F1
|
||||
#define SOLENOID_DEFAULT_DWELL 8
|
||||
#define DEBOUNCE 15
|
||||
|
@ -348,16 +348,8 @@ void render_kitty(void) {
|
||||
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}};
|
||||
|
||||
// assumes 1 frame prep stage
|
||||
#ifdef SWAP_HANDS_ENABLE
|
||||
extern bool swap_hands;
|
||||
#endif
|
||||
void animation_phase(void) {
|
||||
# ifdef SWAP_HANDS_ENABLE
|
||||
if (swap_hands)
|
||||
#else
|
||||
if (tap_toggling)
|
||||
#endif
|
||||
{
|
||||
if (tap_toggling) {
|
||||
anim_frame_duration = 300;
|
||||
current_rtogi_frame = (current_rtogi_frame + 1) % RTOGI_FRAMES;
|
||||
oled_write_raw_P(rtogi[abs((RTOGI_FRAMES - 1) - current_rtogi_frame)], ANIM_SIZE);
|
||||
|
@ -24,9 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define VENDOR_ID 0x44DD
|
||||
#define MANUFACTURER Drashna
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
/* disable debug print */
|
||||
|
@ -147,6 +147,9 @@
|
||||
// # define OLED_FONT_5X5
|
||||
// # define OLED_FONT_AZTECH
|
||||
// # define OLED_FONT_BMPLAIN
|
||||
// # define OLED_FONT_CRACKERS
|
||||
// # define OLED_FONT_HISKYF21
|
||||
# define OLED_FONT_DEAD_MEAL
|
||||
// # define OLED_FONT_SUPER_DIGG
|
||||
// # define OLED_LOGO_GMK_BAD
|
||||
// # define OLED_LOGO_HUE_MANITEE
|
||||
@ -163,17 +166,12 @@
|
||||
# define ONESHOT_TIMEOUT 3000
|
||||
#endif // !ONESHOT_TIMEOUT
|
||||
|
||||
// this makes it possible to do rolling combos (zx) with keys that
|
||||
// convert to other keys on hold (z becomes ctrl when you hold it,
|
||||
// and when this option isn't enabled, z rapidly followed by x
|
||||
// actually sends Ctrl-x. That's bad.)
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#undef PERMISSIVE_HOLD
|
||||
//#define TAPPING_FORCE_HOLD_PER_KEY
|
||||
//#define RETRO_TAPPING_PER_KEY
|
||||
#if !defined(KEYBOARD_kyria) && !defined(KEYBOARD_splitkb_kyria)
|
||||
# define TAPPING_TERM_PER_KEY
|
||||
#endif
|
||||
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
|
||||
#define PERMISSIVE_HOLD_PER_KEY
|
||||
#define TAPPING_FORCE_HOLD_PER_KEY
|
||||
#define RETRO_TAPPING_PER_KEY
|
||||
#define TAPPING_TERM_PER_KEY
|
||||
|
||||
|
||||
#ifndef TAPPING_TOGGLE
|
||||
# define TAPPING_TOGGLE 1
|
||||
|
@ -259,3 +259,61 @@ void matrix_slave_scan_user(void) {
|
||||
matrix_slave_scan_keymap();
|
||||
}
|
||||
#endif
|
||||
|
||||
__attribute__((weak)) uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
default:
|
||||
return TAPPING_TERM;
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
|
||||
// Immediately select the hold action when another key is tapped:
|
||||
// return true;
|
||||
// Do not select the hold action when another key is tapped.
|
||||
// return false;
|
||||
switch (keycode) {
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
|
||||
// Immediately select the hold action when another key is pressed.
|
||||
// return true;
|
||||
// Do not select the hold action when another key is pressed.
|
||||
// return false;
|
||||
switch (keycode) {
|
||||
case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
|
||||
// Do not force the mod-tap key press to be handled as a modifier
|
||||
// if any other key was pressed while the mod-tap key is held down.
|
||||
// return true;
|
||||
// Force the mod-tap key press to be handled as a modifier if any
|
||||
// other key was pressed while the mod-tap key is held down.
|
||||
// return false;
|
||||
switch (keycode) {
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((weak)) bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -167,13 +167,76 @@ NOTE: These are all the same length. If you do a search/replace
|
||||
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
|
||||
|
||||
|
||||
#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
|
||||
#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
|
||||
#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
|
||||
#define __________________ISRT_L1__________________ KC_W, KC_C, KC_L, KC_M, KC_K
|
||||
#define __________________ISRT_L2__________________ KC_I, KC_S, KC_R, KC_T, KC_G
|
||||
#define __________________ISRT_L3__________________ KC_Q, KC_V, KC_W, KC_D, KC_J
|
||||
|
||||
#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
|
||||
#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
|
||||
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
|
||||
#define __________________ISRT_R1__________________ KC_Z, KC_F, KC_U, KC_COMM, KC_QUOTE
|
||||
#define __________________ISRT_R2__________________ KC_P, KC_N, KC_E, KC_A, KC_O, KC_SCLN
|
||||
#define __________________ISRT_R3__________________ KC_B, KC_H, KC_SLSH, KC_DOT, KC_X
|
||||
|
||||
|
||||
#define __________________SOUL_L1__________________ KC_Q, KC_W, KC_L, KC_D, KC_P
|
||||
#define __________________SOUL_L2__________________ KC_A, KC_S, KC_R, KC_T, KC_G
|
||||
#define __________________SOUL_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_J
|
||||
|
||||
#define __________________SOUL_R1__________________ KC_K, KC_M, KC_U, KC_Y, KC_SCLN
|
||||
#define __________________SOUL_R2__________________ KC_F, KC_N, KC_E, KC_I, KC_O, KC_QUOTE
|
||||
#define __________________SOUL_R3__________________ KC_B, KC_H, KC_COMM, KC_DOT, KC_SLSH
|
||||
|
||||
|
||||
#define __________________NIRO_L1__________________ KC_Q, KC_W, KC_U, KC_D, KC_P
|
||||
#define __________________NIRO_L2__________________ KC_A, KC_S, KC_E, KC_T, KC_G
|
||||
#define __________________NIRO_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define __________________NIRO_R1__________________ KC_J, KC_F, KC_Y, KC_L, KC_SCLN
|
||||
#define __________________NIRO_R2__________________ KC_H, KC_N, KC_I, KC_R, KC_O, KC_QUOTE
|
||||
#define __________________NIRO_R3__________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
|
||||
|
||||
|
||||
#define _________________ASSET_L1__________________ KC_Q, KC_W, KC_J, KC_F, KC_G
|
||||
#define _________________ASSET_L2__________________ KC_A, KC_S, KC_E, KC_T, KC_D
|
||||
#define _________________ASSET_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define _________________ASSET_R1__________________ KC_Y, KC_P, KC_U, KC_L, KC_SCLN
|
||||
#define _________________ASSET_R2__________________ KC_H, KC_N, KC_I, KC_O, KC_R, KC_QUOTE
|
||||
#define _________________ASSET_R3__________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
|
||||
|
||||
|
||||
#define _________________MTGAP_L1__________________ KC_Y, KC_P, KC_O, KC_U, KC_J
|
||||
#define _________________MTGAP_L2__________________ KC_I, KC_N, KC_E, KC_A, KC_COMM
|
||||
#define _________________MTGAP_L3__________________ KC_Q, KC_Z, KC_SLSH, KC_DOT, KC_SCLN
|
||||
|
||||
#define _________________MTGAP_R1__________________ KC_K, KC_D, KC_L, KC_C, KC_W
|
||||
#define _________________MTGAP_R2__________________ KC_M, KC_H, KC_T, KC_S, KC_R, KC_QUOTE
|
||||
#define _________________MTGAP_R3__________________ KC_B, KC_F, KC_G, KC_V, KC_X
|
||||
|
||||
|
||||
#define _________________MINIMAK_L1________________ KC_Q, KC_W, KC_D, KC_R, KC_K
|
||||
#define _________________MINIMAK_L2________________ KC_A, KC_S, KC_T, KC_F, KC_G
|
||||
#define _________________MINIMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define _________________MINIMAK_R1________________ KC_Y, KC_U, KC_I, KC_O, KC_P
|
||||
#define _________________MINIMAK_R2________________ KC_H, KC_J, KC_E, KC_L, KC_SCLN, KC_QUOT
|
||||
#define _________________MINIMAK_R3________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
|
||||
|
||||
|
||||
#define ________________MINIMAK_8_L1_______________ KC_Q, KC_W, KC_D, KC_R, KC_K
|
||||
#define ________________MINIMAK_8_L2_______________ KC_A, KC_S, KC_T, KC_F, KC_G
|
||||
#define ________________MINIMAK_8_L3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define ________________MINIMAK_8_R1_______________ KC_Y, KC_U, KC_I, KC_L, KC_P
|
||||
#define ________________MINIMAK_8_R2_______________ KC_H, KC_N, KC_E, KC_O, KC_SCLN, KC_QUOT
|
||||
#define ________________MINIMAK_8_R3_______________ KC_J, KC_M, KC_COMM, KC_DOT, KC_SLSH
|
||||
|
||||
|
||||
#define _______________MINIMAK_12_L1_______________ KC_Q, KC_W, KC_D, KC_F, KC_K
|
||||
#define _______________MINIMAK_12_L2_______________ KC_A, KC_S, KC_T, KC_R, KC_G
|
||||
#define _______________MINIMAK_12_L3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define _______________MINIMAK_12_R1_______________ KC_Y, KC_U, KC_I, KC_L, KC_SCLN
|
||||
#define _______________MINIMAK_12_R2_______________ KC_H, KC_N, KC_E, KC_O, KC_P, KC_QUOT
|
||||
#define _______________MINIMAK_12_R3_______________ KC_J, KC_M, KC_COMM, KC_DOT, KC_SLSH
|
||||
|
||||
|
||||
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
|
||||
|
Loading…
x
Reference in New Issue
Block a user