added audio, haptic feedback, fixed I2C, and tested cirque

This commit is contained in:
Sadek Baroudi 2022-09-12 16:46:28 -07:00
parent 9989e9f4ce
commit 29e8185e6f
3 changed files with 70 additions and 18 deletions

View File

@ -47,27 +47,69 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DI_PIN GP26
#ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_SPLIT
#define RGBLED_SPLIT { 21, 21 }
#define RGBLED_NUM 42
#define RGBLIGHT_HUE_STEP 16
#define RGBLIGHT_SAT_STEP 16
#define RGBLIGHT_VAL_STEP 16
#define RGBLIGHT_LIMIT_VAL 120 /* The maximum brightness level for RGBLIGHT_ENABLE */
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
# define RGBLIGHT_SPLIT
# define RGBLED_SPLIT { 21, 21 }
# define RGBLED_NUM 42
# define RGBLIGHT_HUE_STEP 16
# define RGBLIGHT_SAT_STEP 16
# define RGBLIGHT_VAL_STEP 16
# define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level for RGBLIGHT_ENABLE */
# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#endif
#ifdef RGB_MATRIX_ENABLE
# define SPLIT_TRANSPORT_MIRROR
# define DRIVER_LED_TOTAL 42 // Number of LEDs
# define RGB_MATRIX_SPLIT { 21, 21 }
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180
# define RGB_MATRIX_STARTUP_HUE 35
# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
# define RGB_DISABLE_WHEN_USB_SUSPENDED
# define RGB_MATRIX_KEYPRESSES
#endif
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* audio support */
#define AUDIO_VOICES
#define AUDIO_PIN GP4
#ifdef AUDIO_ENABLE
# define NO_MUSIC_MODE
# define STARTUP_SONG SONG(PREONIC_SOUND)
# define DEFAULT_LAYER_SONGS \
{ SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND) }
#endif
#ifdef HAPTIC_ENABLE
# define FB_ERM_LRA 1
# define FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7
# define FB_LOOPGAIN 1 // For Low:0, Medium:1, High:2, Very High:3
# define RATED_VOLTAGE 2
# define V_PEAK 2.8
# define V_RMS 2.0
# define F_LRA 150 // resonance freq
# define DRV_GREETING alert_750ms
# define NO_HAPTIC_ALPHA
# define NO_HAPTIC_PUNCTUATION
# define NO_HAPTIC_NAV
# define NO_HAPTIC_NUMERIC
#endif
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
#define I2C_DRIVER I2CD2
#define I2C1_SDA_PIN GP6
#define I2C1_SCL_PIN GP7
// cirque trackpad config
#define CIRQUE_PINNACLE_ADDR 0x2A
#define POINTING_DEVICE_TASK_THROTTLE_MS 5
#define POINTING_DEVICE_ROTATION_90 // move to cirque specific config
#define I2C1_CLOCK_SPEED 400000
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
@ -76,7 +118,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define PMW33XX_CS_PIN GP26
#define PMW33XX_CPI 800
#define PMW33XX_CS_DIVISOR 8 // needs to be the same as the SHIFTREG_DIVISOR above
#define POINTING_DEVICE_INVERT_Y
// #define POINTING_DEVICE_INVERT_Y // move to trackball specific config
#define SPI_SCK_PIN GP2
#define SPI_MOSI_PIN GP3

View File

@ -2,11 +2,11 @@
#include_next "mcuconf.h"
#undef RP_SPI_USE_SPI0
#undef RP_SPI_USE_SPI1
#define RP_SPI_USE_SPI1 TRUE
// #undef RP_SPI_USE_SPI1
// #define RP_SPI_USE_SPI1 TRUE
#undef RP_I2C_USE_I2C0
#define RP_I2C_USE_I2C0 TRUE
#undef RP_I2C_USE_I2C1
#define RP_I2C_USE_I2C1 TRUE

View File

@ -19,6 +19,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = no
RGB_MATRIX_DRIVER = WS2812
WS2812_DRIVER = vendor
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
@ -33,13 +34,22 @@ MOUSEKEY_ENABLE = yes
SPLIT_KEYBOARD = yes
SERIAL_DRIVER = vendor
# CIRQUE_ENABLE = no
# PMW3360_ENABLE = no
# ifeq ($(strip $(CIRQUE_ENABLE)), yes)
# POINTING_DEVICE_ENABLE = yes
# POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c
# endif
#HAPTIC FEEDBACK
HAPTIC_DRIVER = DRV2605L
HAPTIC_ENABLE = yes
# Audio doesn't work with RP2040 yet :(
AUDIO_ENABLE = no
CIRQUE_ENABLE = yes
ifeq ($(strip $(CIRQUE_ENABLE)), yes)
POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c
endif
# PMW3360_ENABLE = no
# ifeq ($(strip $(PMW3360_ENABLE)), yes)
# POINTING_DEVICE_ENABLE := yes