This commit is contained in:
Marco "Bob 2023-02-05 12:52:36 +01:00
parent 48f0639453
commit ccc0dbe3a2
7 changed files with 102 additions and 142 deletions

View File

@ -7,27 +7,34 @@
#define MATRIX_COLS 5
#define DIRECT_PINS { \
{ D5, F5, B7, F4, D3 }, \
{ B1, C6, F7, D4, F6}, \
{ B6, B2, E6, B3, D7 }, \
{ F0, B5, B4, NO_PIN, NO_PIN } \
{ 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 { \
{ D3, F4, B7, F5, D5 }, \
{ F6, D4, F7, C6, B1}, \
{ D7, B3, E6, B2, B6 }, \
{ B4, B5, F0, NO_PIN, NO_PIN } \
{ 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 SOFT_SERIAL_PIN D2
#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
@ -49,3 +56,16 @@
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
#define TAPPING_FORCE_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),

11
halconf.h Normal file
View File

@ -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>

View File

@ -2,8 +2,8 @@
"manufacturer": "grooovebob",
"keyboard_name": "dasbob",
"maintainer": "grooovebob",
"bootloader": "atmel-dfu",
"processor": "atmega32u4",
"processor": "RP2040",
"bootloader": "rp2040",
"url": "",
"usb": {
"device_version": "1.0.0",

View File

@ -1,70 +0,0 @@
// Copyright 2022 grooovebob (@grooovebob)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
#define MATRIX_ROWS 8
#define MATRIX_COLS 5
#define DIRECT_PINS { \
{ D0, F5, D1, F4, D3 }, \
{ B1, C6, F7, D4, F6}, \
{ B6, B2, E6, B3, D7 }, \
{ F0, B5, B4, NO_PIN, NO_PIN } \
}
#define DIRECT_PINS_RIGHT { \
{ D3, F4, D1, F5, D0 }, \
{ F6, D4, F7, C6, B1}, \
{ D7, B3, E6, B2, B6 }, \
{ B4, B5, F0, NO_PIN, NO_PIN } \
}
#define UNUSED_PINS
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
#define USE_SERIAL
#define SOFT_SERIAL_PIN D2
#define MASTER_LEFT
// 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 IGNORE_MOD_TAP_INTERRUPT
#define TAPPING_FORCE_HOLD

View File

@ -33,15 +33,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_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,
XXXXXXX, RALT_T(XXXXXXX), LCTL_T(XXXXXXX), LSFT_T(XXXXXXX), XXXXXXX, KC_MINS, LSFT_T(KC_EQL), LCTL_T(KC_GRV), RALT_T(KC_QUOT), KC_BSLS,
XXXXXXX, XXXXXXX, XXXXXXX, LCTL(KC_C), LCTL(KC_V), KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
CK_RST, RALT_T(XXXXXXX), LCTL_T(XXXXXXX), LSFT_T(XXXXXXX), XXXXXXX, 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, KC_RALT, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0,
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
),
@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
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,
@ -102,28 +102,10 @@ bool oled_task_user(void) {
}
} else {
static const char PROGMEM dasbob_logo[] = {
0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
0,0,0,0,0,0,128,128,128,128,128,128,128,128,128,128,128,128,128,0,0,0,0,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,128,128,128,128,128,128,128,128,128,128,128,0,0,0,0,0,0,0,0,0,128,128,128,
128,128,128,128,128,128,128,128,128,0,0,0,0,0,0,128,128,128,128,128,128,128,
128,128,128,128,128,128,128,128,128,0,0,0,0,0,0,255,255,255,255,255,255,255,
255,255,255,255,31,255,255,255,255,255,255,255,255,255,252,0,224,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,248,192,0,0,0,120,254,255,255,255,
255,255,255,255,255,223,223,223,223,223,159,159,191,63,1,255,255,255,255,255,
255,255,255,255,199,255,255,255,255,255,255,255,255,126,0,224,252,254,255,255,
255,255,255,255,255,255,31,255,255,255,255,255,255,255,254,252,240,0,255,255,
255,255,255,255,255,255,255,199,255,255,255,255,255,255,255,255,126,0,0,0,1,
255,255,255,255,255,255,255,255,255,255,248,255,255,255,255,255,255,255,127,63,
143,252,255,255,255,255,255,255,255,127,112,127,255,255,255,255,255,255,255,252,
224,0,252,249,251,251,251,243,247,247,247,247,255,255,255,255,255,255,255,255,
126,254,255,255,255,255,255,255,255,255,239,227,255,255,255,255,255,255,255,254,
126,0,31,127,255,255,255,255,255,255,255,255,254,240,255,255,255,255,255,255,
255,255,255,63,254,255,255,255,255,255,255,255,255,239,227,255,255,255,255,255,
255,255,254,126,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,
1,1,0,0,0,3,3,3,3,3,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,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,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,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));
}

15
mcuconf.h Normal file
View File

@ -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

View File

@ -1,14 +1,13 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = caterina
BOOTLOADER = rp2040
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
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
@ -16,8 +15,11 @@ 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 = no # Audio output
AUDIO_ENABLE = yes # Audio output
SPLIT_KEYBOARD = yes # Use shared split_common code
OLED_ENABLE = yes
OLED_DRIVER = SSD1306
WPM_ENABLE = yes
LTO_ENABLE = yes
SERIAL_DRIVER = vendor
AUDIO_DRIVER = pwm_hardware