diff options
Diffstat (limited to 'keyboards/keebio')
-rw-r--r-- | keyboards/keebio/sinc/info.json | 2 | ||||
-rw-r--r-- | keyboards/keebio/sinc/keymaps/via/keymap.c | 9 | ||||
-rw-r--r-- | keyboards/keebio/sinc/keymaps/via/rules.mk | 1 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev1/config.h (renamed from keyboards/keebio/sinc/config.h) | 1 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev1/info.json | 13 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev2/config.h | 34 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev2/info.json | 13 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev3/config.h | 78 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev3/halconf.h | 21 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev3/info.json | 182 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev3/mcuconf.h | 23 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev3/rev3.h | 227 | ||||
-rw-r--r-- | keyboards/keebio/sinc/rev3/rules.mk | 2 | ||||
-rw-r--r-- | keyboards/keebio/sinc/sinc.c | 4 | ||||
-rw-r--r-- | keyboards/keebio/sinc/sinc.h | 3 |
15 files changed, 609 insertions, 4 deletions
diff --git a/keyboards/keebio/sinc/info.json b/keyboards/keebio/sinc/info.json index ad28aaea6b..d7d7faadd2 100644 --- a/keyboards/keebio/sinc/info.json +++ b/keyboards/keebio/sinc/info.json @@ -5,8 +5,6 @@ "usb": { "vid": "0xCB10" }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", "features": { "audio": false, "bootmagic": true, diff --git a/keyboards/keebio/sinc/keymaps/via/keymap.c b/keyboards/keebio/sinc/keymaps/via/keymap.c index 225e9c07df..946f88ee27 100644 --- a/keyboards/keebio/sinc/keymaps/via/keymap.c +++ b/keyboards/keebio/sinc/keymaps/via/keymap.c @@ -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 diff --git a/keyboards/keebio/sinc/keymaps/via/rules.mk b/keyboards/keebio/sinc/keymaps/via/rules.mk index 36b7ba9cbc..1189f4ad19 100644 --- a/keyboards/keebio/sinc/keymaps/via/rules.mk +++ b/keyboards/keebio/sinc/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebio/sinc/config.h b/keyboards/keebio/sinc/rev1/config.h index 92d2fda644..d00bd12328 100644 --- a/keyboards/keebio/sinc/config.h +++ b/keyboards/keebio/sinc/rev1/config.h @@ -31,3 +31,4 @@ along with this program. If not, see <http://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 diff --git a/keyboards/keebio/sinc/rev1/info.json b/keyboards/keebio/sinc/rev1/info.json index 3c8a90c206..86af86c3b6 100644 --- a/keyboards/keebio/sinc/rev1/info.json +++ b/keyboards/keebio/sinc/rev1/info.json @@ -4,6 +4,8 @@ "pid": "0x1267", "device_version": "1.0.0" }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", "debounce": 5, "diode_direction": "COL2ROW", "features": { @@ -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 } } } diff --git a/keyboards/keebio/sinc/rev2/config.h b/keyboards/keebio/sinc/rev2/config.h new file mode 100644 index 0000000000..d00bd12328 --- /dev/null +++ b/keyboards/keebio/sinc/rev2/config.h @@ -0,0 +1,34 @@ +/* Copyright 2021 Danny Nguyen <danny@keeb.io> + +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://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 diff --git a/keyboards/keebio/sinc/rev2/info.json b/keyboards/keebio/sinc/rev2/info.json index c3dd1d80ed..4588513d2c 100644 --- a/keyboards/keebio/sinc/rev2/info.json +++ b/keyboards/keebio/sinc/rev2/info.json @@ -4,6 +4,8 @@ "pid": "0x2267", "device_version": "2.0.0" }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", "debounce": 5, "diode_direction": "COL2ROW", "features": { @@ -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 } } } diff --git a/keyboards/keebio/sinc/rev3/config.h b/keyboards/keebio/sinc/rev3/config.h new file mode 100644 index 0000000000..5d698b7aec --- /dev/null +++ b/keyboards/keebio/sinc/rev3/config.h @@ -0,0 +1,78 @@ +/* Copyright 2022 Danny Nguyen <danny@keeb.io> + +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://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 diff --git a/keyboards/keebio/sinc/rev3/halconf.h b/keyboards/keebio/sinc/rev3/halconf.h new file mode 100644 index 0000000000..a4c25c090a --- /dev/null +++ b/keyboards/keebio/sinc/rev3/halconf.h @@ -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://www.gnu.org/licenses/>. + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next "halconf.h" diff --git a/keyboards/keebio/sinc/rev3/info.json b/keyboards/keebio/sinc/rev3/info.json new file mode 100644 index 0000000000..37640dbf9b --- /dev/null +++ b/keyboards/keebio/sinc/rev3/info.json @@ -0,0 +1,182 @@ +{ + "keyboard_name": "Sinc Rev. 3", + "usb": { + "pid": "0x3267", + "device_version": "3.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "console": true, + "rgblight": false, + "backlight": false, + "rgb_matrix": true, + }, + "split": { + "enabled": true, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "GP5", "pin_b": "GP6" } + ] + } + }, + "matrix_pins": { + "right":{ + "cols": ["GP29", "GP28", "GP27", "GP7", "GP2", "GP3", "GP11", "GP12", "GP13"], + "rows": ["GP16", "GP19", "GP17", "GP9", "GP8", "GP26"] + }, + }, + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP7", "GP2", "GP3", "GP11", "GP12", "GP13"], + "rows": ["GP25", "GP19", "GP24", "GP17", "GP16", "GP26"] + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "GP21", "pin_b": "GP20" } + ] + }, + "rgblight": { + "pin": "GP18", + "led_count": 113, + "max_brightness": 120, + "sleep": true, + "split": true, + "split_count": [56, 57] + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + { "flags": 4, "matrix": [5, 2], "x": 30, "y": 0 }, + { "flags": 2, "x": 42, "y": 6 }, + { "flags": 4, "matrix": [5, 3], "x": 45, "y": 0 }, + { "flags": 4, "matrix": [5, 4], "x": 58, "y": 0 }, + { "flags": 2, "x": 67, "y": 6 }, + { "flags": 4, "matrix": [5, 5], "x": 70, "y": 0 }, + { "flags": 4, "matrix": [5, 6], "x": 82, "y": 0 }, + { "flags": 4, "matrix": [5, 7], "x": 97, "y": 0 }, + { "flags": 2, "x": 103, "y": 6 }, + { "flags": 4, "matrix": [5, 8], "x": 109, "y": 0 }, + + { "flags": 4, "matrix": [0, 8], "x": 103, "y": 15 }, + { "flags": 4, "matrix": [0, 7], "x": 91, "y": 15 }, + { "flags": 4, "matrix": [0, 6], "x": 79, "y": 15 }, + { "flags": 4, "matrix": [0, 5], "x": 67, "y": 15 }, + { "flags": 4, "matrix": [0, 4], "x": 54, "y": 15 }, + { "flags": 4, "matrix": [0, 3], "x": 42, "y": 15 }, + { "flags": 4, "matrix": [0, 2], "x": 30, "y": 15 }, + + { "flags": 4, "matrix": [1, 2], "x": 33, "y": 27 }, + { "flags": 4, "matrix": [1, 3], "x": 48, "y": 27 }, + { "flags": 4, "matrix": [1, 4], "x": 61, "y": 27 }, + { "flags": 4, "matrix": [1, 5], "x": 73, "y": 27 }, + { "flags": 4, "matrix": [1, 6], "x": 85, "y": 27 }, + { "flags": 4, "matrix": [1, 7], "x": 97, "y": 27 }, + + { "flags": 4, "matrix": [2, 7], "x": 100, "y": 40 }, + { "flags": 4, "matrix": [2, 6], "x": 88, "y": 40 }, + { "flags": 4, "matrix": [2, 5], "x": 76, "y": 40 }, + { "flags": 4, "matrix": [2, 4], "x": 64, "y": 40 }, + { "flags": 4, "matrix": [2, 3], "x": 51, "y": 40 }, + { "flags": 4, "matrix": [2, 2], "x": 35, "y": 40 }, + + { "flags": 4, "matrix": [3, 2], "x": 38, "y": 52 }, + { "flags": 4, "matrix": [3, 4], "x": 58, "y": 52 }, + { "flags": 4, "matrix": [3, 5], "x": 70, "y": 52 }, + { "flags": 4, "matrix": [3, 6], "x": 82, "y": 52 }, + { "flags": 4, "matrix": [3, 7], "x": 94, "y": 52 }, + { "flags": 4, "matrix": [3, 8], "x": 106, "y": 52 }, + + { "flags": 2, "x": 106, "y": 64 }, + { "flags": 4, "matrix": [4, 7], "x": 98, "y": 64 }, + { "flags": 4, "matrix": [4, 5], "x": 77, "y": 64 }, + { "flags": 2, "x": 67, "y": 64 }, + { "flags": 4, "matrix": [4, 4], "x": 62, "y": 64 }, + { "flags": 4, "matrix": [4, 3], "x": 47, "y": 64 }, + { "flags": 2, "x": 39, "y": 64 }, + { "flags": 4, "matrix": [4, 2], "x": 32, "y": 64 }, + + { "flags": 4, "matrix": [4, 1], "x": 12, "y": 64 }, + { "flags": 2, "x": 6, "y": 64 }, + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 64 }, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 52 }, + { "flags": 4, "matrix": [3, 1], "x": 12, "y": 52 }, + { "flags": 4, "matrix": [2, 1], "x": 12, "y": 40 }, + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 40 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 27 }, + { "flags": 4, "matrix": [1, 1], "x": 12, "y": 27 }, + { "flags": 4, "matrix": [0, 1], "x": 12, "y": 15 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 15 }, + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 0 }, + { "flags": 2, "x": 9, "y": 0 }, + + { "flags": 2, "x": 224, "y": 6 }, + { "flags": 4, "matrix": [11, 8], "x": 224, "y": 0 }, + { "flags": 4, "matrix": [11, 7], "x": 212, "y": 0 }, + { "flags": 4, "matrix": [11, 6], "x": 197, "y": 0 }, + { "flags": 2, "x": 191, "y": 6 }, + { "flags": 4, "matrix": [11, 5], "x": 185, "y": 0 }, + { "flags": 4, "matrix": [11, 4], "x": 173, "y": 0 }, + { "flags": 2, "x": 166, "y": 6 }, + { "flags": 4, "matrix": [11, 3], "x": 160, "y": 0 }, + { "flags": 4, "matrix": [11, 2], "x": 145, "y": 0 }, + { "flags": 2, "x": 139, "y": 6 }, + { "flags": 4, "matrix": [11, 1], "x": 133, "y": 0 }, + + { "flags": 4, "matrix": [6, 0], "x": 127, "y": 15 }, + { "flags": 4, "matrix": [6, 1], "x": 139, "y": 15 }, + { "flags": 4, "matrix": [6, 2], "x": 151, "y": 15 }, + { "flags": 4, "matrix": [6, 3], "x": 163, "y": 15 }, + { "flags": 4, "matrix": [6, 4], "x": 176, "y": 15 }, + { "flags": 4, "matrix": [6, 5], "x": 188, "y": 15 }, + { "flags": 4, "matrix": [6, 6], "x": 200, "y": 15 }, + { "flags": 4, "matrix": [6, 7], "x": 212, "y": 15 }, + { "flags": 4, "matrix": [6, 8], "x": 224, "y": 15 }, + + { "flags": 4, "matrix": [7, 8], "x": 224, "y": 27 }, + { "flags": 4, "matrix": [7, 7], "x": 209, "y": 27 }, + { "flags": 4, "matrix": [7, 6], "x": 194, "y": 27 }, + { "flags": 4, "matrix": [7, 5], "x": 182, "y": 27 }, + { "flags": 4, "matrix": [7, 4], "x": 170, "y": 27 }, + { "flags": 4, "matrix": [7, 3], "x": 157, "y": 27 }, + { "flags": 4, "matrix": [7, 2], "x": 145, "y": 27 }, + { "flags": 4, "matrix": [7, 1], "x": 133, "y": 27 }, + { "flags": 4, "matrix": [7, 0], "x": 121, "y": 27 }, + + { "flags": 4, "matrix": [8, 0], "x": 124, "y": 40 }, + { "flags": 4, "matrix": [8, 1], "x": 136, "y": 40 }, + { "flags": 4, "matrix": [8, 2], "x": 148, "y": 40 }, + { "flags": 4, "matrix": [8, 3], "x": 160, "y": 40 }, + { "flags": 4, "matrix": [8, 4], "x": 173, "y": 40 }, + { "flags": 4, "matrix": [8, 5], "x": 185, "y": 40 }, + { "flags": 4, "matrix": [8, 7], "x": 204, "y": 40 }, + { "flags": 4, "matrix": [8, 8], "x": 224, "y": 40 }, + + { "flags": 4, "matrix": [9, 8], "x": 224, "y": 52 }, + { "flags": 4, "matrix": [9, 7], "x": 212, "y": 52 }, + { "flags": 4, "matrix": [9, 6], "x": 195, "y": 52 }, + { "flags": 4, "matrix": [9, 4], "x": 179, "y": 52 }, + { "flags": 4, "matrix": [9, 3], "x": 166, "y": 52 }, + { "flags": 4, "matrix": [9, 2], "x": 154, "y": 52 }, + { "flags": 4, "matrix": [9, 1], "x": 142, "y": 52 }, + { "flags": 4, "matrix": [9, 0], "x": 130, "y": 52 }, + + { "flags": 2, "x": 133, "y": 64 }, + { "flags": 4, "matrix": [10, 1], "x": 141, "y": 64 }, + { "flags": 2, "x": 160, "y": 64 }, + { "flags": 4, "matrix": [10, 2], "x": 163, "y": 64 }, + { "flags": 4, "matrix": [10, 3], "x": 176, "y": 64 }, + { "flags": 4, "matrix": [10, 4], "x": 188, "y": 64 }, + { "flags": 2, "x": 194, "y": 64 }, + { "flags": 4, "matrix": [10, 5], "x": 200, "y": 64 }, + { "flags": 4, "matrix": [10, 6], "x": 212, "y": 64 }, + { "flags": 4, "matrix": [10, 7], "x": 224, "y": 64 }, + { "flags": 2, "x": 224, "y": 55 } + ] + }, +} diff --git a/keyboards/keebio/sinc/rev3/mcuconf.h b/keyboards/keebio/sinc/rev3/mcuconf.h new file mode 100644 index 0000000000..5e47eac54f --- /dev/null +++ b/keyboards/keebio/sinc/rev3/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly) + * + * 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://www.gnu.org/licenses/>. + */ + +#pragma once + +#include_next "mcuconf.h" + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/keebio/sinc/rev3/rev3.h b/keyboards/keebio/sinc/rev3/rev3.h new file mode 100644 index 0000000000..57d072398a --- /dev/null +++ b/keyboards/keebio/sinc/rev3/rev3.h @@ -0,0 +1,227 @@ +/* Copyright 2022 Danny Nguyen <danny@keeb.io> + +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://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "sinc.h" +#include "quantum.h" + +#define LAYOUT_75( \ + LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, \ + LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ + LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \ + LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \ + LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ + LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ + ) \ + { \ + { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO }, \ + { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, KC_NO } \ + } + +#define LAYOUT_80( \ + LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \ + LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ + LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \ + LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \ + { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \ + } + +#define LAYOUT_75_with_macro( \ + LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \ + LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO }, \ + { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, KC_NO } \ + } + +#define LAYOUT_80_with_macro( \ + LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \ + LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \ + { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \ + } + +#define LAYOUT_75_iso( \ + LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, \ + LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ + LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \ + LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \ + LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ + LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ + ) \ + { \ + { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RC8, KC_NO }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, RC7, KC_NO, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO }, \ + { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, KC_NO } \ + } + +#define LAYOUT_80_iso( \ + LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \ + LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \ + LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \ + LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RC8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, RC7, KC_NO, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \ + { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \ + } + +#define LAYOUT_75_iso_with_macro( \ + LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \ + LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RC8, KC_NO }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, RC7, KC_NO, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, KC_NO }, \ + { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, KC_NO } \ + } + +#define LAYOUT_80_iso_with_macro( \ + LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \ + LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RC8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, RC7, KC_NO, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \ + { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \ + } + +#define LAYOUT_all( \ + LF1, LF3, LF4, LF5, LF6, LF7, LF8, LF9, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9, \ + LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \ + LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \ + LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \ + LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE3, RE4, RE5, RE7, RE8, RE9 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ + { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ + { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \ + { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \ + { RE1, RE2, RE3, RE4, RE5, KC_NO, RE7, RE8, RE9 }, \ + { KC_NO, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF9 } \ + } diff --git a/keyboards/keebio/sinc/rev3/rules.mk b/keyboards/keebio/sinc/rev3/rules.mk new file mode 100644 index 0000000000..8fb51ec82d --- /dev/null +++ b/keyboards/keebio/sinc/rev3/rules.mk @@ -0,0 +1,2 @@ +SERIAL_DRIVER = vendor +WS2812_DRIVER = vendor diff --git a/keyboards/keebio/sinc/sinc.c b/keyboards/keebio/sinc/sinc.c index f6dff42ebb..9b2f6da512 100644 --- a/keyboards/keebio/sinc/sinc.c +++ b/keyboards/keebio/sinc/sinc.c @@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "sinc.h" #include "split_util.h" +#ifdef BACKLIGHT_ENABLE bool led_update_kb(led_t led_state) { if (!led_update_user(led_state)) { return false; } // Only update if left half @@ -25,6 +26,7 @@ bool led_update_kb(led_t led_state) { } return true; } +#endif void eeconfig_init_kb(void) { #ifdef BACKLIGHT_ENABLE @@ -35,6 +37,7 @@ void eeconfig_init_kb(void) { eeconfig_init_user(); } +#ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { @@ -52,3 +55,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } +#endif diff --git a/keyboards/keebio/sinc/sinc.h b/keyboards/keebio/sinc/sinc.h index 75f14595bf..4607d8125c 100644 --- a/keyboards/keebio/sinc/sinc.h +++ b/keyboards/keebio/sinc/sinc.h @@ -23,3 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #ifdef KEYBOARD_keebio_sinc_rev2 #include "rev2.h" #endif +#ifdef KEYBOARD_keebio_sinc_rev3 + #include "rev3.h" +#endif |