-
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Leo Lou <[email protected]>
- Loading branch information
Showing
7 changed files
with
316 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
// Copyright 2022 grooovebob (@grooovebob) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#define MATRIX_ROWS 8 | ||
#define MATRIX_COLS 5 | ||
|
||
#define DIRECT_PINS { \ | ||
{ GP13, GP28, GP12, GP29, GP0 }, \ | ||
{ GP22, GP14, GP26, GP4, GP27}, \ | ||
{ GP21, GP23, GP7, GP20, GP6 }, \ | ||
{ GP16, GP9, GP8, NO_PIN, NO_PIN } \ | ||
} | ||
|
||
#define DIRECT_PINS_RIGHT { \ | ||
{ GP0, GP29, GP12, GP28, GP13 }, \ | ||
{ GP27, GP4, GP26, GP14, GP22}, \ | ||
{ GP6, GP20, GP7, GP23, GP21 }, \ | ||
{ GP8, GP9, GP16, NO_PIN, NO_PIN } \ | ||
} | ||
|
||
|
||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
#define DEBOUNCE 5 | ||
|
||
/* Serial Config */ | ||
#define USE_SERIAL | ||
#define SERIAL_USART_TX_PIN GP1 | ||
#define MASTER_LEFT | ||
|
||
/* I2C Pin mapping */ | ||
//#define I2C1_SDA_PIN GP7 | ||
//#define I2C1_SCL_PIN GP6 | ||
//#define I2C1_CLOCK_SPEED 400000 | ||
//#define I2C_DRIVER I2CD2 | ||
|
||
// Set the mouse settings to a comfortable speed/accuracy trade-off, | ||
// assuming a screen refresh rate of 60 Htz or higher | ||
// The default is 50. This makes the mouse ~3 times faster and more accurate | ||
#define MOUSEKEY_INTERVAL 16 | ||
// The default is 20. Since we made the mouse about 3 times faster with the previous setting, | ||
// give it more time to accelerate to max speed to retain precise control over short distances. | ||
#define MOUSEKEY_TIME_TO_MAX 40 | ||
// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive | ||
#define MOUSEKEY_DELAY 100 | ||
// It makes sense to use the same delay for the mouseweel | ||
#define MOUSEKEY_WHEEL_DELAY 100 | ||
// The default is 100 | ||
#define MOUSEKEY_WHEEL_INTERVAL 50 | ||
// The default is 40 | ||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 100 | ||
|
||
// Pick good defaults for enabling homerow modifiers | ||
#define TAPPING_TERM 200 | ||
#define PERMISSIVE_HOLD | ||
#define USB_VBUS_PIN 19 | ||
#define AUDIO_PWM_DRIVER PWMD2 | ||
#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B | ||
#define AUDIO_STATE_TIMER GPTD4 | ||
#define AUDIO_PIN GP5 | ||
#ifdef AUDIO_ENABLE | ||
#define AUDIO_INIT_DELAY | ||
#define AUDIO_CLICKY | ||
#define AUDIO_CLICKY_FREQ_RANDOMNESS 1.0f | ||
#define STARTUP_SONG SONG(STARTUP_SOUND) | ||
#endif | ||
|
||
#define STARTUP_SOUND E__NOTE(_E6), E__NOTE(_A6), ED_NOTE(_E7), |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#pragma once | ||
|
||
#undef HAL_USE_SIO | ||
#define HAL_USE_SIO TRUE | ||
|
||
#define HAL_USE_I2C TRUE | ||
|
||
#define HAL_USE_PWM TRUE | ||
#define HAL_USE_PAL TRUE | ||
|
||
#include_next <halconf.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
{ | ||
"manufacturer": "grooovebob", | ||
"keyboard_name": "dasbob", | ||
"maintainer": "grooovebob", | ||
"processor": "RP2040", | ||
"bootloader": "rp2040", | ||
"url": "", | ||
"usb": { | ||
"device_version": "1.0.0", | ||
"pid": "0x0000", | ||
"vid": "0xFEED" | ||
}, | ||
"community_layouts": ["split_3x5_3"], | ||
"layouts": { | ||
"LAYOUT_split_3x5_3": { | ||
"layout": [ | ||
{ "matrix": [0, 0], "x": 0, "y": 0.25 }, | ||
{ "matrix": [0, 1], "x": 1, "y": 0.25 }, | ||
{ "matrix": [0, 2], "x": 2, "y": 0.125 }, | ||
{ "matrix": [0, 3], "x": 3, "y": 0 }, | ||
{ "matrix": [0, 4], "x": 4, "y": 0.125 }, | ||
{ "matrix": [4, 0], "x": 8, "y": 0.25 }, | ||
{ "matrix": [4, 1], "x": 9, "y": 0.125 }, | ||
{ "matrix": [4, 2], "x": 10, "y": 0 }, | ||
{ "matrix": [4, 3], "x": 11, "y": 0.125 }, | ||
{ "matrix": [4, 4], "x": 12, "y": 0.25 }, | ||
{ "matrix": [1, 0], "x": 0, "y": 1.25 }, | ||
{ "matrix": [1, 1], "x": 1, "y": 1.25 }, | ||
{ "matrix": [1, 2], "x": 2, "y": 1.125 }, | ||
{ "matrix": [1, 3], "x": 3, "y": 1 }, | ||
{ "matrix": [1, 4], "x": 4, "y": 1.125 }, | ||
{ "matrix": [5, 0], "x": 8, "y": 1.25 }, | ||
{ "matrix": [5, 1], "x": 9, "y": 1.125 }, | ||
{ "matrix": [5, 2], "x": 10, "y": 1 }, | ||
{ "matrix": [5, 3], "x": 11, "y": 1.125 }, | ||
{ "matrix": [5, 4], "x": 12, "y": 1.25 }, | ||
{ "matrix": [2, 0], "x": 0, "y": 2.25 }, | ||
{ "matrix": [2, 1], "x": 1, "y": 2.25 }, | ||
{ "matrix": [2, 2], "x": 2, "y": 2.125 }, | ||
{ "matrix": [2, 3], "x": 3, "y": 2 }, | ||
{ "matrix": [2, 4], "x": 4, "y": 2.125 }, | ||
{ "matrix": [6, 0], "x": 8, "y": 2.25 }, | ||
{ "matrix": [6, 1], "x": 9, "y": 2.125 }, | ||
{ "matrix": [6, 2], "x": 10, "y": 2 }, | ||
{ "matrix": [6, 3], "x": 11, "y": 2.125 }, | ||
{ "matrix": [6, 4], "x": 12, "y": 2.25 }, | ||
{ "matrix": [3, 0], "x": 3.5, "y": 3.25 }, | ||
{ "matrix": [3, 1], "x": 4.5, "y": 3.5 }, | ||
{ "matrix": [3, 2], "x": 5.5, "y": 3.75 }, | ||
{ "matrix": [7, 0], "x": 7.5, "y": 3.75 }, | ||
{ "matrix": [7, 1], "x": 8.5, "y": 3.5 }, | ||
{ "matrix": [7, 2], "x": 9.5, "y": 3.25 } | ||
] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
#include QMK_KEYBOARD_H | ||
|
||
enum dasbob_layers { | ||
_QWERTY, | ||
_LOWER, | ||
_RAISE | ||
}; | ||
|
||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
/* | ||
* ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ | ||
* │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ | ||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ | ||
* │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ | ||
* ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ | ||
* │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │ | ||
* └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ | ||
* ┌───┐ ┌───┐ | ||
* │DEL├───┐ ┌───┤ESC│ | ||
* └───┤SPC├───┐ ┌───┤BSP├───┘ | ||
* └───│LOW│ │RSE├───┘ | ||
* └───┘ └───┘ | ||
*/ | ||
|
||
|
||
[_QWERTY] = LAYOUT_split_3x5_3( | ||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, | ||
KC_A, RALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), RALT_T(KC_L), KC_SCLN, | ||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, | ||
KC_DEL, KC_SPC, MO(1), MO(2), KC_BSPC, KC_ESC | ||
), | ||
|
||
[_LOWER] = LAYOUT_split_3x5_3( | ||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, | ||
CK_RST, RALT_T(XXXXXXX), LCTL_T(XXXXXXX), LSFT_T(XXXXXXX), KC_PSCR, KC_MINS, LSFT_T(KC_EQL), LCTL_T(KC_GRV), RALT_T(KC_QUOT), KC_BSLS, | ||
CK_TOGG, CK_UP, CK_DOWN, LCTL(KC_C), LCTL(KC_V), KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
KC_TRNS, KC_TRNS, KC_TAB, KC_ENT, KC_TRNS, KC_TRNS | ||
), | ||
|
||
[_RAISE] = LAYOUT_split_3x5_3( | ||
KC_ESC, KC_UP, XXXXXXX, XXXXXXX, CK_TOGG, KC_NUM_LOCK, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, | ||
KC_LEFT, RALT_T(KC_DOWN), LCTL_T(KC_RGHT), LSFT_T(XXXXXXX), KC_LGUI, XXXXXXX, LSFT_T(KC_KP_4), LCTL_T(KC_KP_5), RALT_T(KC_KP_6), KC_KP_PLUS, | ||
KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_PSCR, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0, | ||
KC_TRNS, KC_TRNS, KC_TAB, KC_ENT, KC_TRNS, KC_TRNS | ||
), | ||
|
||
|
||
}; | ||
#ifdef OLED_ENABLE | ||
|
||
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_0; } | ||
bool oled_task_user(void) { | ||
if (is_keyboard_master()) { | ||
static const char PROGMEM runqmk_logo[] = {0,0,0,0,152,152,152,152,152,152,24,24,24, | ||
152,152,24,24,24,152,152,24,24,152,152,24,24,24,152,152,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,127,127,13,13,29,63,103,64,0,63,127,96,96,96,127,63,0,0,127,127,7,12,56, | ||
127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,252,134,198,198,252,120,0,0,254,254, | ||
60,224,224,60,254,254,0,254,254,16,24,124,230,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,24,24,25,25,25,25,27,24,24,25,25,24,25,25,24,25,25,24,25,25,24,24,24,24,25,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0}; | ||
|
||
|
||
oled_write_raw_P(runqmk_logo, sizeof(runqmk_logo)); | ||
|
||
led_t led_usb_state = host_keyboard_led_state(); | ||
oled_set_cursor(6, 3); | ||
oled_write_P(led_usb_state.num_lock ? PSTR("NUM") : PSTR(""), false); | ||
oled_set_cursor(6, 2); | ||
oled_write_P(PSTR("WPM: "), false); | ||
oled_write(get_u8_str(get_current_wpm(), '0'), false); | ||
oled_set_cursor(6, 0); | ||
oled_write_P(PSTR("by GroooveBob"), false); | ||
oled_set_cursor(6, 1); | ||
oled_write_P(PSTR("Layer: "), false); | ||
|
||
switch (get_highest_layer(layer_state)) { | ||
case _QWERTY: | ||
oled_set_cursor(12, 1); | ||
oled_write_P(PSTR("Default\n"), false); | ||
break; | ||
case _LOWER: | ||
oled_set_cursor(12, 1); | ||
oled_write_P(PSTR("Lower\n"), false); | ||
break; | ||
case _RAISE: | ||
oled_set_cursor(12, 1); | ||
oled_write_P(PSTR("Raise\n"), false); | ||
break; | ||
default: | ||
// Or use the write_ln shortcut over adding '\n' to the end of your string | ||
oled_set_cursor(6, 1); | ||
oled_write_ln_P(PSTR("Undefined"), false); | ||
} | ||
} else { | ||
static const char PROGMEM dasbob_logo[] = { | ||
0, 0, 0, 0, 0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, 0, 0, 0, 0, 0,128,128,128,192,192,192,192,192,192,192,192,192,192,192,128,128, 0, 0, 0, 0, 0, 0, 0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, 0, 0, 0, 0, 0,128,128,128,128,128,128,128,128,128,128,128,128,128, 0, 0, 0,128,128,128,128,128,192,192,192,192,192, 0, 0, 0,128,128,128,128,128,128,128,128,128, 0, 0, 0, 0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, 0, 0, | ||
0, 0,126,127,255,255,255,255,255,255,255,199,247,255,255,255,255,255,255,255,255,127,252,255,255,255,255,255,255,255,255,255, 15,127,255,255,255,255,255,255,255,255,254,248, 0,126,127,255,255,255,255,255,255,255,199,247,255,255,255,255,255,255,255,255,127,126,255,255,255,255,255,255,255,255,239,239,239,239,207,223,223,223,159, 63, 0, 7, 63,255,255,255,255,255,255,255,254, 14,254,255,255,255,255,255,255,255, 63,241,252,254,255,255,255,255,255,255,255, 31,255,255,255,255,255,255,255,255,255,255,128, 0, | ||
0, 0,126,255,255,255,255,255,255,255,255,227,255,255,255,255,255,255,255,255,255, 0, 15, 63,127,255,255,255,255,255,255,255,248,255,255,255,255,255,255,255,255,127, 63, 7, 0,126,255,255,255,255,255,255,255,255,227,255,255,255,255,255,255,255,255,255,128,252,253,249,249,251,251,251,251,251,255,255,255,255,255,255,255,255,127, 30, 0, 0, 0, 3, 31,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 7, 0, 63,255,255,255,255,255,255,255,255,255,248,255,255,255,255,255,255,255,255,255,255,255, 0, | ||
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, | ||
}; | ||
oled_write_raw_P(dasbob_logo, sizeof(dasbob_logo)); | ||
} | ||
return false; | ||
} | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#pragma once | ||
|
||
#include_next <mcuconf.h> | ||
|
||
#undef RP_SIO_USE_UART0 | ||
#define RP_SIO_USE_UART0 TRUE | ||
|
||
#undef RP_I2C_USE_I2C1 | ||
#define RP_I2C_USE_I2C1 TRUE | ||
|
||
#undef RP_PWM_USE_PWM2 | ||
#define RP_PWM_USE_PWM2 TRUE | ||
|
||
#undef RP_PWM_USE_TIM1 //hier bin ich gerade nicht mehr sicher ob das auch für Audio gebraucht wird | ||
#define RP_PWM_USE_TIM1 TRUE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# dasbob | ||
|
||
![alt text](https://github.com/GroooveBob/DASBOB/blob/main/pic/dasbob.png) | ||
|
||
DASBOB is a 36-key diodeless split with splay and buzzer. | ||
|
||
* Keyboard Maintainer: [grooovebob](https://github.com/grooovebob) | ||
* Hardware Supported: elite c | ||
* Hardware Availability: https://github.com/GroooveBob/DASBOB | ||
|
||
Make example for this keyboard (after setting up your build environment): | ||
|
||
make dasbob:default | ||
|
||
Flashing example for this keyboard: | ||
|
||
make dasbob: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 | ||
|
||
Enter the bootloader in 3 ways: | ||
|
||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard | ||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead | ||
* **Keycode in layout**: Press the key mapped to `RESET` if it is available |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
|
||
|
||
# Bootloader selection | ||
BOOTLOADER = rp2040 | ||
|
||
# Build Options | ||
# change yes to no to disable | ||
# | ||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite | ||
MOUSEKEY_ENABLE = no # Mouse keys | ||
EXTRAKEY_ENABLE = yes # Audio control and System control | ||
CONSOLE_ENABLE = no # Console for debug | ||
COMMAND_ENABLE = no # Commands for debug and configuration | ||
NKRO_ENABLE = no # Enable N-Key Rollover | ||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
UNICODE_ENABLE = yes # Unicode | ||
AUDIO_ENABLE = yes # Audio output | ||
SPLIT_KEYBOARD = yes # Use shared split_common code | ||
OLED_ENABLE = yes | ||
WPM_ENABLE = yes | ||
LTO_ENABLE = yes | ||
SERIAL_DRIVER = vendor | ||
AUDIO_DRIVER = pwm_hardware |