Skip to content

Commit

Permalink
Add Sinc Rev. 3 (qmk#18846)
Browse files Browse the repository at this point in the history
* Initial work on adding Sinc Rev. 3

* Add RGB Matrix support

* Add encoder map support

* Set I2C pins

* Update LED locations for right half

* Move USB definitions to info.json

* Update RGB modes

* Replace pin mappings for right half with correct ones

* Move config.h back to rev1/rev2 due to addition of rev3

* Convert initial Rev. 3 config work to be data-driven

* Convert RGB Matrix config to DD format

* More config cleanup

* Use full-duplex PIO

* Add MCU/bootloader settings for Rev. 2

* Change ISO Enter location since it shares location with Backslash

* Adjust build settings to reduce flash/EEPROM usage
  • Loading branch information
nooges committed Oct 26, 2022
1 parent 8ea8a4e commit 42c240f
Show file tree
Hide file tree
Showing 15 changed files with 609 additions and 4 deletions.
2 changes: 0 additions & 2 deletions keyboards/keebio/sinc/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
"usb": {
"vid": "0xCB10"
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"features": {
"audio": false,
"bootmagic": true,
Expand Down
9 changes: 9 additions & 0 deletions keyboards/keebio/sinc/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
[1] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) },
[2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
[3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
};
#endif
1 change: 1 addition & 0 deletions keyboards/keebio/sinc/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
ENCODER_MAP_ENABLE = yes
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,4 @@ along with this program. If not, see <http:https://www.gnu.org/licenses/>.
// Set right column, left macro, 1.75u shift, split spaces, and 5x1u on by default
#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
13 changes: 12 additions & 1 deletion keyboards/keebio/sinc/rev1/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
"pid": "0x1267",
"device_version": "1.0.0"
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"debounce": 5,
"diode_direction": "COL2ROW",
"features": {
Expand Down Expand Up @@ -51,7 +53,16 @@
"led_count" : 16,
"split_count": [8, 8],
"animations": {
"all": true,
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
}
}
}
34 changes: 34 additions & 0 deletions keyboards/keebio/sinc/rev2/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/* Copyright 2021 Danny Nguyen <[email protected]>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http:https://www.gnu.org/licenses/>.
*/

#pragma once

// wiring of each half
#define SPLIT_HAND_PIN F7

/* 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

/* ws2812 RGB LED */
#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)

// Set right column, left macro, 1.75u shift, split spaces, and 5x1u on by default
#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
13 changes: 12 additions & 1 deletion keyboards/keebio/sinc/rev2/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
"pid": "0x2267",
"device_version": "2.0.0"
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"debounce": 5,
"diode_direction": "COL2ROW",
"features": {
Expand Down Expand Up @@ -51,7 +53,16 @@
"led_count" : 16,
"split_count": [8, 8],
"animations": {
"all": true,
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
}
}
}
78 changes: 78 additions & 0 deletions keyboards/keebio/sinc/rev3/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
/* Copyright 2022 Danny Nguyen <[email protected]>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http:https://www.gnu.org/licenses/>.
*/

#pragma once

#define SPLIT_HAND_PIN GP4
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP0
#define SERIAL_USART_RX_PIN GP1
#define SERIAL_USART_PIN_SWAP
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
#define I2C_DRIVER I2CD2
#define I2C1_SCL_PIN GP22
#define I2C1_SDA_PIN GP23

#define RGBLIGHT_DEFAULT_VAL 120
#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
// RGB Matrix
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_BREATHING
#define ENABLE_RGB_MATRIX_BAND_SAT
#define ENABLE_RGB_MATRIX_BAND_VAL
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
#define ENABLE_RGB_MATRIX_CYCLE_ALL
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
#define ENABLE_RGB_MATRIX_DUAL_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
#define ENABLE_RGB_MATRIX_SPLASH
#define ENABLE_RGB_MATRIX_MULTISPLASH
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
#define DRIVER_LED_TOTAL RGBLED_NUM
#define RGB_MATRIX_SPLIT RGBLED_SPLIT
#define RGB_DISABLE_WHEN_USB_SUSPENDED
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
#define SPLIT_TRANSPORT_MIRROR
21 changes: 21 additions & 0 deletions keyboards/keebio/sinc/rev3/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* Copyright 2022 QMK
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http:https://www.gnu.org/licenses/>.
*/

#pragma once

#define HAL_USE_I2C TRUE

#include_next "halconf.h"
Loading

0 comments on commit 42c240f

Please sign in to comment.