diff options
Diffstat (limited to 'keyboards/spiderisland/split78')
-rw-r--r-- | keyboards/spiderisland/split78/config.h | 32 | ||||
-rw-r--r-- | keyboards/spiderisland/split78/info.json | 98 | ||||
-rw-r--r-- | keyboards/spiderisland/split78/matrix.c | 167 | ||||
-rw-r--r-- | keyboards/spiderisland/split78/readme.md | 25 | ||||
-rw-r--r-- | keyboards/spiderisland/split78/rules.mk | 23 | ||||
-rw-r--r-- | keyboards/spiderisland/split78/split78.c | 17 | ||||
-rw-r--r-- | keyboards/spiderisland/split78/split78.h | 36 |
7 files changed, 0 insertions, 398 deletions
diff --git a/keyboards/spiderisland/split78/config.h b/keyboards/spiderisland/split78/config.h deleted file mode 100644 index 30c5ec23a8..0000000000 --- a/keyboards/spiderisland/split78/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2020 unrelenting.technology - -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 "config_common.h" - -/* key matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 14 - -#define BACKLIGHT_PIN D4 -#define BACKLIGHT_LEVELS 3 -#define BACKLIGHT_BREATHING - -#define DEBOUNCE 50 - -#define I2C_START_RETRY_COUNT 1 diff --git a/keyboards/spiderisland/split78/info.json b/keyboards/spiderisland/split78/info.json deleted file mode 100644 index b833b0ef44..0000000000 --- a/keyboards/spiderisland/split78/info.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "keyboard_name": "Split 78-key", - "manufacturer": "SpiderIsland", - "url": "", - "maintainer": "qmk", - "usb": { - "vid": "0xFEED", - "pid": "0xF4E4", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"x": 0, "y": 0}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0}, - {"x": 4, "y": 0}, - {"x": 5, "y": 0}, - {"x": 6.5, "y": 0}, - {"x": 8.5, "y": 0}, - {"x": 9.5, "y": 0}, - {"x": 10.5, "y": 0}, - {"x": 12, "y": 0}, - {"x": 13, "y": 0}, - {"x": 14, "y": 0}, - {"x": 15, "y": 0}, - {"x": 0, "y": 1.25}, - {"x": 1, "y": 1.25}, - {"x": 2, "y": 1.25}, - {"x": 3, "y": 1.25}, - {"x": 4, "y": 1.25}, - {"x": 5, "y": 1.25}, - {"x": 6, "y": 1.25}, - {"x": 8, "y": 1.25}, - {"x": 9, "y": 1.25}, - {"x": 10, "y": 1.25}, - {"x": 11, "y": 1.25}, - {"x": 12, "y": 1.25}, - {"x": 13, "y": 1.25}, - {"x": 14, "y": 1.25, "w": 2}, - {"x": 0, "y": 2.25, "w": 1.5}, - {"x": 1.5, "y": 2.25}, - {"x": 2.5, "y": 2.25}, - {"x": 3.5, "y": 2.25}, - {"x": 4.5, "y": 2.25}, - {"x": 5.5, "y": 2.25}, - {"x": 7.5, "y": 2.25}, - {"x": 8.5, "y": 2.25}, - {"x": 9.5, "y": 2.25}, - {"x": 10.5, "y": 2.25}, - {"x": 11.5, "y": 2.25}, - {"x": 12.5, "y": 2.25}, - {"x": 13.5, "y": 2.25}, - {"x": 14.5, "y": 2.25, "w": 1.5}, - - {"x": 0, "y": 3.25, "w": 1.75}, - {"x": 1.75, "y": 3.25}, - {"x": 2.75, "y": 3.25}, - {"x": 3.75, "y": 3.25}, - {"x": 4.75, "y": 3.25}, - {"x": 5.75, "y": 3.25}, - {"x": 7.75, "y": 3.25}, - {"x": 8.75, "y": 3.25}, - {"x": 9.75, "y": 3.25}, - {"x": 10.75, "y": 3.25}, - {"x": 11.75, "y": 3.25}, - {"x": 12.75, "y": 3.25}, - {"x": 13.75, "y": 3.25, "w": 2.25}, - - {"x": 0, "y": 4.25, "w": 2.25}, - {"x": 2.25, "y": 4.25}, - {"x": 3.25, "y": 4.25}, - {"x": 4.25, "y": 4.25}, - {"x": 5.25, "y": 4.25}, - {"x": 6.25, "y": 4.25}, - {"x": 8.25, "y": 4.25}, - {"x": 9.25, "y": 4.25}, - {"x": 10.25, "y": 4.25}, - {"x": 11.25, "y": 4.25}, - {"x": 12.25, "y": 4.25, "w": 1.75}, - {"x": 14, "y": 4.25}, - {"x": 15, "y": 4.25}, - - {"x": 0, "y": 5.25, "w": 1.25}, - {"x": 1.25, "y": 5.25, "w": 1.25}, - {"x": 2.5, "y": 5.25, "w": 1.25}, - {"x": 3.75, "y": 5.25, "w": 1.25}, - {"x": 5, "y": 5.25, "w": 2.25}, - {"x": 8.25, "y": 5.25, "w": 2.25}, - {"x": 10.5, "y": 5.25, "w": 1.25}, - {"x": 11.75, "y": 5.25, "w": 1.25}, - {"x": 13, "y": 5.25}, - {"x": 14, "y": 5.25}, - {"x": 15, "y": 5.25} - ] - } - } -} diff --git a/keyboards/spiderisland/split78/matrix.c b/keyboards/spiderisland/split78/matrix.c deleted file mode 100644 index 71e154e5b7..0000000000 --- a/keyboards/spiderisland/split78/matrix.c +++ /dev/null @@ -1,167 +0,0 @@ -/* -Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com> - -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/>. -*/ - -#include <string.h> -#include <stdio.h> -#include "quantum.h" -#include "i2c_master.h" -#include "split78.h" - -#define RIGHT_HALF - - -void matrix_set_row_status(uint8_t row); - - -#if defined(RIGHT_HALF) -#define I2C_TIMEOUT 10 -#define MCP23018_TWI_ADDRESS 0b0100000 -#define TW_READ 1 -#define TW_WRITE 0 -#define TWI_ADDR_WRITE ( (MCP23018_TWI_ADDRESS<<1) | TW_WRITE ) -#define TWI_ADDR_READ ( (MCP23018_TWI_ADDRESS<<1) | TW_READ ) -#define IODIRA 0x00 // i/o direction register -#define IODIRB 0x01 -#define IODIRA 0x00 // i/o direction register -#define IODIRB 0x01 -#define GPPUA 0x0C // GPIO pull-up resistor register -#define GPPUB 0x0D -#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) -#define GPIOB 0x13 -#define OLATA 0x14 // output latch register -#define OLATB 0x15 -#define MCP_ROWS_START 8 - -static uint8_t mcp23018_init(void) { - uint8_t ret; - uint8_t data[3]; - // set pin direction - // - unused : input : 1 - // - input : input : 1 - // - driving : output : 0 - data[0] = IODIRA; - data[1] = 0b00000000; // IODIRA - data[2] = (0b11111111); // IODIRB - - ret = i2c_transmit(TWI_ADDR_WRITE, (uint8_t *)data, 3, I2C_TIMEOUT); - if (ret) goto out; // make sure we got an ACK - - // set pull-up - // - unused : on : 1 - // - input : on : 1 - // - driving : off : 0 - data[0] = GPPUA; - data[1] = 0b00000000; // IODIRA - data[2] = (0b11111111); // IODIRB - - ret = i2c_transmit(TWI_ADDR_WRITE, (uint8_t *)data, 3, I2C_TIMEOUT); - if (ret) goto out; // make sure we got an ACK - - // set logical value (doesn't matter on inputs) - // - unused : hi-Z : 1 - // - input : hi-Z : 1 - // - driving : hi-Z : 1 - data[0] = OLATA; - data[1] = 0b11111111; // IODIRA - data[2] = (0b11111111); // IODIRB - - ret = i2c_transmit(TWI_ADDR_WRITE, (uint8_t *)data, 3, I2C_TIMEOUT); - -out: - return ret; -} -#endif - -void matrix_init_custom(void) { - // Set rows as output starting high - DDRB = 0xFF; - PORTB = 0xFF; - - // Set columns as inputs with pull-up enabled - DDRA = 0x00; - PORTA = 0xFF; - - // Initialize i2c communication - i2c_init(); - -#if defined(RIGHT_HALF) - // Initialize the chip on the other half - mcp23018_init(); -#endif - -} - -static i2c_status_t mcp23018_status = I2C_STATUS_SUCCESS; - -bool matrix_scan_custom(matrix_row_t current_matrix[]) { - bool matrix_has_changed = false; - -#if defined(RIGHT_HALF) - if (mcp23018_status != I2C_STATUS_SUCCESS) { - mcp23018_status = mcp23018_init(); - } -#endif - - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - // Store last value of row prior to reading - matrix_row_t last_row_value = current_matrix[row]; - - matrix_row_t cols = 0; - // Select the row to scan - matrix_set_row_status(row); - - matrix_io_delay(); - //Set the local row - -#if defined(RIGHT_HALF) - // Initialize to 0x7F in case I2C read fails, - // as 0x75 would be no keys pressed - uint8_t data = 0x7F; - // Receive the columns from right half - if (mcp23018_status == I2C_STATUS_SUCCESS) { - mcp23018_status = i2c_receive(TWI_ADDR_WRITE, &data, 1, I2C_TIMEOUT); - } -#endif - - cols |= ((~(PINA | 0x80)) & 0x7F); -#if defined(RIGHT_HALF) - cols |= (((~(data | 0x80)) & 0x7F) << 7); -#endif - - current_matrix[row] = cols; - matrix_has_changed |= (last_row_value != current_matrix[row]); - } - - return matrix_has_changed; -} - -void matrix_set_row_status(uint8_t row) { -#if defined(RIGHT_HALF) - uint8_t txdata[3]; - - //Set the remote row on port A - txdata[0] = (GPIOA); - txdata[1] = ( 0xFF & ~(1<<row) ); - if (mcp23018_status == I2C_STATUS_SUCCESS) { - mcp23018_status = i2c_transmit(TWI_ADDR_WRITE, (uint8_t *)txdata, 2, I2C_TIMEOUT); - } -#endif - - //Set the local row on port B - DDRB = (1 << row); - PORTB = ~(1 << row); -} diff --git a/keyboards/spiderisland/split78/readme.md b/keyboards/spiderisland/split78/readme.md deleted file mode 100644 index 84db8f0ffa..0000000000 --- a/keyboards/spiderisland/split78/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# SpiderIsland Split 78-key - -![Board Photo](https://i.imgur.com/N3DjdGql.jpg) -[Image Gallery](https://imgur.com/a/0AUY8Ng) - -The 78 key split keyboard from [SpiderIsland on AliExpress](https://a.aliexpress.com/_dVJsSpR). -Out of the box it runs ps2avrGB firmware, like [`split75`](../../wheatfield/split75/README.md). -It is mistakenly called "87 key" on the AliExpress title and "104 key" (?!) in the caption inside the photo. - -This port is based on the `split75` port which was mostly done by [Michael L. Walker](https://github.com/walkerstop). - -* Keyboard Maintainer: [unrelenting.technology](https://github.com/unrelentingtech) -* Hardware Availability: https://a.aliexpress.com/_dVJsSpR - -Make example for this keyboard (after setting up your build environment): - - make spiderisland/split78:default - -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) - - make spiderisland/split78:default:flash - -**Reset Key**: Hold down the key located at the leftmost position in the top row, commonly programmed as Escape while plugging in the keyboard. - -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). diff --git a/keyboards/spiderisland/split78/rules.mk b/keyboards/spiderisland/split78/rules.mk deleted file mode 100644 index c5319e8410..0000000000 --- a/keyboards/spiderisland/split78/rules.mk +++ /dev/null @@ -1,23 +0,0 @@ -# MCU name -MCU = atmega32a - -# Bootloader selection -BOOTLOADER = bootloadhid - -# 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 -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -WS2812_DRIVER = i2c -DEBOUNCE_TYPE = sym_eager_pr - -# custom matrix setup -CUSTOM_MATRIX = lite -SRC += matrix.c -QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/spiderisland/split78/split78.c b/keyboards/spiderisland/split78/split78.c deleted file mode 100644 index 0301012749..0000000000 --- a/keyboards/spiderisland/split78/split78.c +++ /dev/null @@ -1,17 +0,0 @@ -/* Copyright 2020 unrelenting.technology - * - * 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/>. - */ - -#include "split78.h" diff --git a/keyboards/spiderisland/split78/split78.h b/keyboards/spiderisland/split78/split78.h deleted file mode 100644 index 2f6252f0c9..0000000000 --- a/keyboards/spiderisland/split78/split78.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2020 unrelenting.technology - * - * 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 "quantum.h" - -#define LAYOUT( \ - l00, l01, l02, l03, l04, l05, r00, r01, r02, r03, r04, r05, r06, \ - l06, l07, l08, l09, l10, l11, l12, r07, r08, r09, r10, r11, r12, r13, \ - l13, l14, l15, l16, l17, l18, r14, r15, r16, r17, r18, r19, r20, r21, \ - l19, l20, l21, l22, l23, l24, r22, r23, r24, r25, r26, r27, r28, \ - l25, l26, l27, l28, l29, l30, r29, r30, r31, r32, r33, r34, r35, \ - l31, l32, l33, l34, l35, r36, r37, r38, r39, r40, r41 \ -) { \ - { l00, l06, l13, l19, l25, l31, KC_NO, r00, r07, r14, r22, r29, r21 }, \ - { l01, l07, l14, l20, l26, l32, KC_NO, r01, r08, r15, r23, r30, r36 }, \ - { l02, l08, l15, l21, l27, l33, KC_NO, r02, r09, r16, r24, r31, r37 }, \ - { l03, l09, l16, l22, l28, l34, KC_NO, r03, r10, r17, r25, r32, r38 }, \ - { l04, l10, l17, l23, l29, l35, KC_NO, r04, r11, r18, r27, r33, r39 }, \ - { l05, l11, l18, l24, l30, l12, KC_NO, r05, r12, r19, r26, r34, r40 }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, r06, r13, r20, r28, r35, r41 }, \ -} |