diff options
Diffstat (limited to 'keyboards/ergodox_stm32')
-rw-r--r-- | keyboards/ergodox_stm32/board.h | 37 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/chconf.h | 61 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/config.h | 32 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/ergodox_stm32.c | 74 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/ergodox_stm32.h | 114 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/halconf.h | 27 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/info.json | 107 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/keymaps/default/keymap.c | 52 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/ld/stm32f103_bootloader.ld | 85 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/matrix.c | 185 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/mcuconf.h | 209 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/readme.md | 9 | ||||
-rw-r--r-- | keyboards/ergodox_stm32/rules.mk | 22 |
13 files changed, 0 insertions, 1014 deletions
diff --git a/keyboards/ergodox_stm32/board.h b/keyboards/ergodox_stm32/board.h deleted file mode 100644 index 23f9495789..0000000000 --- a/keyboards/ergodox_stm32/board.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -Copyright 2021 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/>. -*/ - -#include_next <board.h> - -#ifdef STM32_LSECLK -#undef STM32_LSECLK -#endif // STM32_LSECLK -#define STM32_LSECLK 32768 - -#ifdef STM32_HSECLK -#undef STM32_HSECLK -#endif // STM32_HSECLK -#define STM32_HSECLK 8000000 - -#undef VAL_GPIOACRL -#define VAL_GPIOACRL 0x88888888 - -#undef VAL_GPIOAODR -#define VAL_GPIOAODR 0xFFFFFFFF - -#undef VAL_GPIOCCRH -#define VAL_GPIOCCRH 0x88888888 diff --git a/keyboards/ergodox_stm32/chconf.h b/keyboards/ergodox_stm32/chconf.h deleted file mode 100644 index bc3672f6f7..0000000000 --- a/keyboards/ergodox_stm32/chconf.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright 2020 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/>. - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/ergodox_stm32/chconf.h -r platforms/chibios/common/configs/chconf.h` - */ - -#pragma once - -#define CH_CFG_ST_TIMEDELTA 0 - -#define CH_CFG_TIME_QUANTUM 20 - -#define CH_CFG_USE_REGISTRY TRUE - -#define CH_CFG_USE_WAITEXIT TRUE - -#define CH_CFG_USE_CONDVARS TRUE - -#define CH_CFG_USE_MESSAGES TRUE - -#define CH_CFG_USE_MAILBOXES TRUE - -#define CH_CFG_USE_HEAP TRUE - -#define CH_CFG_USE_MEMPOOLS TRUE - -#define CH_CFG_USE_OBJ_FIFOS TRUE - -#define CH_CFG_USE_PIPES TRUE - -#define CH_CFG_USE_DYNAMIC TRUE - -#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE - -#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE - -#define CH_CFG_FACTORY_SEMAPHORES TRUE - -#define CH_CFG_FACTORY_MAILBOXES TRUE - -#define CH_CFG_FACTORY_OBJ_FIFOS TRUE - -#define CH_CFG_FACTORY_PIPES TRUE - -#include_next <chconf.h> - diff --git a/keyboards/ergodox_stm32/config.h b/keyboards/ergodox_stm32/config.h deleted file mode 100644 index 46514eaeb7..0000000000 --- a/keyboards/ergodox_stm32/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2019 Yaotian Feng(Codetector) <codetector@codetector.cn> - -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" - -#define MATRIX_ROWS 14 -#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) -#define MATRIX_COLS 6 -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ - keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ -) - -// i2c_master driver config -#define I2C1_CLOCK_SPEED 400000 -#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 diff --git a/keyboards/ergodox_stm32/ergodox_stm32.c b/keyboards/ergodox_stm32/ergodox_stm32.c deleted file mode 100644 index 8419b40f41..0000000000 --- a/keyboards/ergodox_stm32/ergodox_stm32.c +++ /dev/null @@ -1,74 +0,0 @@ -#include "i2c_master.h" -#include QMK_KEYBOARD_H - -extern inline void ergodox_board_led_1_on(void); -extern inline void ergodox_board_led_2_on(void); -extern inline void ergodox_board_led_3_on(void); -extern inline void ergodox_board_led_1_off(void); -extern inline void ergodox_board_led_2_off(void); -extern inline void ergodox_board_led_3_off(void); -extern inline void ergodox_led_all_off(void); - -volatile int mcp23017_status = 0x20; -uint8_t i2c_initializied = 0; - -void board_init(void) { - AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE; -} - -void bootloader_jump(void) { - // This board doesn't use the "standard" stm32duino bootloader, and is resident in memory at the base location. All we can do here is reset. - NVIC_SystemReset(); -} - -void matrix_init_kb(void) -{ - // Init LED Ports - palSetPadMode(GPIOA, 10, PAL_MODE_OUTPUT_PUSHPULL); // LED 1 - palSetPadMode(GPIOA, 9, PAL_MODE_OUTPUT_PUSHPULL); // LED 2 - palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL); // LED 3 - - ergodox_blink_all_leds(); - - matrix_init_user(); -} - -void ergodox_blink_all_leds(void) -{ - ergodox_led_all_off(); - // ergodox_led_all_set(LED_BRIGHTNESS_DEFAULT); - ergodox_board_led_1_on(); - wait_ms(50); - ergodox_board_led_2_on(); - wait_ms(50); - ergodox_board_led_3_on(); - wait_ms(50); - ergodox_board_led_1_off(); - wait_ms(50); - ergodox_board_led_2_off(); - wait_ms(50); - ergodox_board_led_3_off(); -} - -uint8_t init_mcp23017(void) { - if (!i2c_initializied) { - i2c_init(); - i2c_initializied = 1; - } - - uint8_t data[2]; - data[0] = 0x0; - data[1] = 0b00111111; - mcp23017_status = i2c_writeReg(I2C_ADDR, I2C_IODIRA, data, 2, 50000); - if (mcp23017_status) goto out; - data[0] = 0xFFU; - mcp23017_status = i2c_writeReg(I2C_ADDR, I2C_GPIOA, data, 1, 5000); - if (mcp23017_status) goto out; - mcp23017_status = i2c_writeReg(I2C_ADDR, I2C_GPPUB, data+1, 1, 2); - if (mcp23017_status) goto out; - - out: - return mcp23017_status; - // i2c_readReg(I2C_ADDR, ); -} - diff --git a/keyboards/ergodox_stm32/ergodox_stm32.h b/keyboards/ergodox_stm32/ergodox_stm32.h deleted file mode 100644 index b84b101f38..0000000000 --- a/keyboards/ergodox_stm32/ergodox_stm32.h +++ /dev/null @@ -1,114 +0,0 @@ -#pragma once - -#include "quantum.h" -#include "action_layer.h" -#include <stdint.h> -#include <stdbool.h> -#include <hal.h> - -// #define I2C_ADDR 0b01000000 -#define I2C_ADDR 0b01000000 -#define I2C_IODIRA 0x0 -#define I2C_IODIRB 0x1 -#define I2C_GPIOA 0x12 -#define I2C_GPIOB 0x13 -#define I2C_OLATA 0x14 -#define I2C_OLATB 0x15 -#define I2C_GPPUA 0x0C -#define I2C_GPPUB 0x0D - -inline void ergodox_board_led_1_on(void) { palSetPad(GPIOA, 10); } -inline void ergodox_board_led_2_on(void) { palSetPad(GPIOA, 9); } -inline void ergodox_board_led_3_on(void) { palSetPad(GPIOA, 8); } -inline void ergodox_board_led_1_off(void) { palClearPad(GPIOA, 10); } -inline void ergodox_board_led_2_off(void) { palClearPad(GPIOA, 9); } -inline void ergodox_board_led_3_off(void) { palClearPad(GPIOA, 8); } -inline void ergodox_led_all_off(void) -{ - palClearPad(GPIOA, 10); - palClearPad(GPIOA, 9); - palClearPad(GPIOA, 8); -} - -extern volatile int mcp23017_status; - -uint8_t init_mcp23017(void); - -void ergodox_blink_all_leds(void); - -/* - * LEFT HAND: LINES 115-122 - * RIGHT HAND: LINES 124-131 - */ -#define LAYOUT_ergodox( \ - \ - k00, k01, k02, k03, k04, k05, k06, \ - k10, k11, k12, k13, k14, k15, k16, \ - k20, k21, k22, k23, k24, k25, \ - k30, k31, k32, k33, k34, k35, k36, \ - k40, k41, k42, k43, k44, \ - k55, k56, \ - k54, \ - k53, k52, k51, \ - \ - k07, k08, k09, k0A, k0B, k0C, k0D, \ - k17, k18, k19, k1A, k1B, k1C, k1D, \ - k28, k29, k2A, k2B, k2C, k2D, \ - k37, k38, k39, k3A, k3B, k3C, k3D, \ - k49, k4A, k4B, k4C, k4D, \ - k57, k58, \ - k59, \ - k5C, k5B, k5A) \ - \ - /* matrix positions */ \ - { \ - {k00, k10, k20, k30, k40, KC_NO}, \ - {k01, k11, k21, k31, k41, k51}, \ - {k02, k12, k22, k32, k42, k52}, \ - {k03, k13, k23, k33, k43, k53}, \ - {k04, k14, k24, k34, k44, k54}, \ - {k05, k15, k25, k35, KC_NO, k55}, \ - {k06, k16, KC_NO, k36, KC_NO, k56}, \ - \ - {k07, k17, KC_NO, k37, KC_NO, k57}, \ - {k08, k18, k28, k38, KC_NO, k58}, \ - {k09, k19, k29, k39, k49, k59}, \ - {k0A, k1A, k2A, k3A, k4A, k5A}, \ - {k0B, k1B, k2B, k3B, k4B, k5B}, \ - {k0C, k1C, k2C, k3C, k4C, k5C}, \ - { \ - k0D, k1D, k2D, k3D, k4D, KC_NO \ - } \ - } - -/* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */ -#define LAYOUT_ergodox_pretty( \ - L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ - L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ - L20, L21, L22, L23, L24, L25, R21, R22, R23, R24, R25, R26, \ - L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ - L40, L41, L42, L43, L44, R42, R43, R44, R45, R46, \ - L55, L56, R50, R51, \ - L54, R52, \ - L53, L52, L51, R55, R54, R53) \ - \ - /* matrix positions */ \ - { \ - {L00, L10, L20, L30, L40, KC_NO}, \ - {L01, L11, L21, L31, L41, L51}, \ - {L02, L12, L22, L32, L42, L52}, \ - {L03, L13, L23, L33, L43, L53}, \ - {L04, L14, L24, L34, L44, L54}, \ - {L05, L15, L25, L35, KC_NO, L55}, \ - {L06, L16, KC_NO, L36, KC_NO, L56}, \ - \ - {R00, R10, KC_NO, R30, KC_NO, R50}, \ - {R01, R11, R21, R31, KC_NO, R51}, \ - {R02, R12, R22, R32, R42, R52}, \ - {R03, R13, R23, R33, R43, R53}, \ - {R04, R14, R24, R34, R44, R54}, \ - {R05, R15, R25, R35, R45, R55}, \ - { \ - R06, R16, R26, R36, R46, KC_NO \ - } \ - } diff --git a/keyboards/ergodox_stm32/halconf.h b/keyboards/ergodox_stm32/halconf.h deleted file mode 100644 index 71a1596c47..0000000000 --- a/keyboards/ergodox_stm32/halconf.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2020 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/>. - */ - -/* - * This file was auto-generated by: - * `qmk chibios-confmigrate -i keyboards/ergodox_stm32/halconf.h -r platforms/chibios/common/configs/halconf.h` - */ - -#pragma once - -#define HAL_USE_I2C TRUE - -#include_next <halconf.h> - diff --git a/keyboards/ergodox_stm32/info.json b/keyboards/ergodox_stm32/info.json deleted file mode 100644 index e93c71e29c..0000000000 --- a/keyboards/ergodox_stm32/info.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "keyboard_name": "ErgoDox STM32", - "manufacturer": "ErgoDox", - "url": "github.com/codetector1374", - "maintainer": "codetector1374", - "usb": { - "vid": "0xFEED", - "pid": "0x1308", - "device_version": "1.0.1" - }, - "layouts": { - "LAYOUT_ergodox": { - "layout": [ - {"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, - {"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, - {"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25}, - {"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5}, - {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125}, - - {"x":6, "y":5}, {"x":7, "y":5}, - {"x":7, "y":6}, - {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7}, - - - {"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5}, - {"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5}, - {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5}, - {"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5}, - {"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375}, - - - {"x":9, "y":5}, {"x":10, "y":5}, - {"x":9, "y":6}, - {"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2} - ] - }, - "LAYOUT_ergodox_pretty": { - "layout": [ - {"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, - {"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5}, - - {"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, - {"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5}, - - {"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25}, - {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5}, - - {"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5}, - {"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5}, - - {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125}, - {"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375}, - - {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, - {"x":7, "y":6}, {"x":9, "y":6}, - {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2} - ] - }, - "LAYOUT_ergodox_80": { - "layout": [ - {"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, - {"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, - {"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25}, - {"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5}, - {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125}, - - {"x":6, "y":5}, {"x":7, "y":5}, - {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, - {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, - - - {"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5}, - {"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5}, - {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5}, - {"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5}, - {"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375}, - - - {"x":9, "y":5}, {"x":10, "y":5}, - {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, - {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7} - ] - }, - "LAYOUT_ergodox_pretty_80": { - "layout": [ - {"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, - {"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5}, - - {"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, - {"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5}, - - {"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25}, - {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5}, - - {"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5}, - {"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5}, - - {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125}, - {"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375}, - - {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, - {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, - {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7} - ] - } - } -} diff --git a/keyboards/ergodox_stm32/keymaps/default/keymap.c b/keyboards/ergodox_stm32/keymaps/default/keymap.c deleted file mode 100644 index 04a12962e3..0000000000 --- a/keyboards/ergodox_stm32/keymaps/default/keymap.c +++ /dev/null @@ -1,52 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ergodox(KC_GRAVE,KC_1,KC_2,KC_3,KC_4,KC_5,KC_MINUS,KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_LPRN,KC_ESCAPE,KC_A,KC_S,KC_D,KC_F,KC_G,KC_LSHIFT,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_RPRN,KC_LCTRL,KC_LGUI,KC_LALT,KC_LGUI,KC_LALT,KC_INSERT,MO(1),KC_HOME,KC_SPACE,KC_DELETE,KC_END,KC_EQUAL,KC_6,KC_7,KC_8,KC_9,KC_0,KC_BSPACE,KC_LBRACKET,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLASH,KC_H,KC_J,KC_K,KC_L,KC_SCOLON,KC_QUOTE,KC_RBRACKET,KC_N,KC_M,KC_COMMA,KC_DOT,KC_SLASH,KC_RSHIFT,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,KC_RCTRL,MO(1),TG(2),KC_PGUP,KC_PGDOWN,KC_BSPACE,KC_ENTER), - - [1] = LAYOUT_ergodox(KC_TILD,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F6,KC_GRAVE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_CAPSLOCK,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PLAY_PAUSE,KC_TRANSPARENT,KC_TRANSPARENT,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_F12,KC_BSPACE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,LCTL(LGUI(KC_Q)),KC_MEDIA_PREV_TRACK,KC_MEDIA_NEXT_TRACK,KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP), - - [2] = LAYOUT_ergodox(KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_NUMLOCK,KC_KP_SLASH,KC_KP_ASTERISK,KC_KP_MINUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_KP_7,KC_KP_8,KC_KP_9,KC_KP_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_KP_4,KC_KP_5,KC_KP_6,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_KP_1,KC_KP_2,KC_KP_3,KC_ENTER,KC_TRANSPARENT,KC_KP_DOT,KC_KP_0,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT), - -}; - -layer_state_t layer_state_set_user(layer_state_t state) { - - uint8_t layer = get_highest_layer(state); - - ergodox_led_all_off(); - ergodox_board_led_1_off(); - ergodox_board_led_2_off(); - ergodox_board_led_3_off(); - switch (layer) { - case 1: - ergodox_board_led_1_on(); - break; - case 2: - ergodox_board_led_2_on(); - break; - case 3: - ergodox_board_led_2_on(); - break; - case 4: - ergodox_board_led_1_on(); - ergodox_board_led_2_on(); - break; - case 5: - ergodox_board_led_1_on(); - ergodox_board_led_3_on(); - break; - case 6: - ergodox_board_led_2_on(); - ergodox_board_led_3_on(); - break; - case 7: - ergodox_board_led_1_on(); - ergodox_board_led_2_on(); - ergodox_board_led_3_on(); - break; - default: - break; - } - return state; - -}; diff --git a/keyboards/ergodox_stm32/ld/stm32f103_bootloader.ld b/keyboards/ergodox_stm32/ld/stm32f103_bootloader.ld deleted file mode 100644 index 77100fce38..0000000000 --- a/keyboards/ergodox_stm32/ld/stm32f103_bootloader.ld +++ /dev/null @@ -1,85 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * ST32F103xB memory setup for use with the originaljm60 bootloader. - */ -MEMORY -{ - flash0 : org = 0x08000000, len = 64k /* TODO */ - flash1 : org = 0x00000000, len = 0 - flash2 : org = 0x00000000, len = 0 - flash3 : org = 0x00000000, len = 0 - flash4 : org = 0x00000000, len = 0 - flash5 : org = 0x00000000, len = 0 - flash6 : org = 0x00000000, len = 0 - flash7 : org = 0x00000000, len = 0 - ram0 : org = 0x20000000, len = 20k - ram1 : org = 0x00000000, len = 0 - ram2 : org = 0x00000000, len = 0 - ram3 : org = 0x00000000, len = 0 - ram4 : org = 0x00000000, len = 0 - ram5 : org = 0x00000000, len = 0 - ram6 : org = 0x00000000, len = 0 - ram7 : org = 0x00000000, len = 0 -} - -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ - -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash0); -REGION_ALIAS("XTORS_FLASH_LMA", flash0); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash0); -REGION_ALIAS("TEXT_FLASH_LMA", flash0); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash0); -REGION_ALIAS("RODATA_FLASH_LMA", flash0); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash0); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash0); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -/* Generic rules inclusion.*/ -INCLUDE rules.ld diff --git a/keyboards/ergodox_stm32/matrix.c b/keyboards/ergodox_stm32/matrix.c deleted file mode 100644 index 094d4a9e0f..0000000000 --- a/keyboards/ergodox_stm32/matrix.c +++ /dev/null @@ -1,185 +0,0 @@ -#include <stdint.h> -#include <stdbool.h> -#include <string.h> -#include <hal.h> -#include "timer.h" -#include "wait.h" -#include "print.h" -#include "matrix.h" -#include "i2c_master.h" -#include QMK_KEYBOARD_H - -#ifndef DEBOUNCE -#define DEBOUNCE 10 -#endif - -static uint8_t mcp23017_reset_loop = 0; - -volatile matrix_row_t matrix[MATRIX_ROWS]; -volatile matrix_row_t raw_matrix[MATRIX_ROWS]; -volatile uint8_t debounce_matrix[MATRIX_ROWS * MATRIX_COLS]; - -static matrix_row_t read_cols(uint8_t row); - -static void init_cols(void); - -static void unselect_rows(void); - -static void select_row(uint8_t row); - -static void init_rows(void); - -__attribute__((weak)) void matrix_init_user(void) {} - -__attribute__((weak)) void matrix_scan_user(void) {} - -__attribute__((weak)) void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__((weak)) void matrix_scan_kb(void) { - matrix_scan_user(); -} - -void matrix_init(void) { - mcp23017_status = init_mcp23017(); - (void) mcp23017_reset_loop; - init_rows(); - unselect_rows(); - init_cols(); - - - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - raw_matrix[i] = 0; - for (uint8_t j = 0; j < MATRIX_COLS; ++j) { - debounce_matrix[i * MATRIX_COLS + j] = 0; - } - } - matrix_init_quantum(); -} - -void matrix_power_up(void) { - mcp23017_status = init_mcp23017(); - - init_rows(); - unselect_rows(); - init_cols(); - - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - } -} - -matrix_row_t debounce_mask(matrix_row_t rawcols, uint8_t row) { - matrix_row_t result = 0; - matrix_row_t change = rawcols ^raw_matrix[row]; - raw_matrix[row] = rawcols; - for (uint8_t i = 0; i < MATRIX_COLS; ++i) { - if (debounce_matrix[row * MATRIX_COLS + i]) { - --debounce_matrix[row * MATRIX_COLS + i]; - } else { - result |= (1 << i); - } - if (change & (1 << i)) { - debounce_matrix[row * MATRIX_COLS + i] = DEBOUNCE; - } - } - return result; -} - -matrix_row_t debounce_read_cols(uint8_t row) { - // Read the row without debouncing filtering and store it for later usage. - matrix_row_t cols = read_cols(row); - // Get the Debounce mask. - matrix_row_t mask = debounce_mask(cols, row); - // debounce the row and return the result. - return (cols & mask) | (matrix[row] & ~mask);; -} - -uint8_t matrix_scan(void) { - if (mcp23017_status) { - if (++mcp23017_reset_loop == 0) { - mcp23017_status = init_mcp23017(); - if (!mcp23017_status) { - ergodox_blink_all_leds(); - } - } - } - for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { - select_row(i); - select_row(i + MATRIX_ROWS_PER_SIDE); - - matrix[i] = debounce_read_cols(i); - matrix[i + MATRIX_ROWS_PER_SIDE] = debounce_read_cols(i + MATRIX_ROWS_PER_SIDE); - - unselect_rows(); - } - matrix_scan_quantum(); - return 0; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) { - return (matrix[row] & (1 << col)); -} - -inline -matrix_row_t matrix_get_row(uint8_t row) { - return matrix[row]; -} - -void matrix_print(void) { -} - -static matrix_row_t read_cols(uint8_t row) { - if (row < MATRIX_ROWS_PER_SIDE) { - uint8_t data = 0xFF; - if (!mcp23017_status) { - uint8_t regAddr = I2C_GPIOB; - mcp23017_status = i2c_readReg(I2C_ADDR, regAddr, &data, 1, 10); - } - if (mcp23017_status) { - return 0; - } - return (~data) & 0x3F; - } else { - uint8_t data_p = (GPIOB -> IDR); - uint8_t data = data_p; - return ((~data) & 0x3f); - } -} - -static void init_cols(void) { - palSetPadMode(GPIOB, 0, PAL_MODE_INPUT_PULLUP); - palSetPadMode(GPIOB, 1, PAL_MODE_INPUT_PULLUP); - palSetPadMode(GPIOB, 2, PAL_MODE_INPUT_PULLUP); - palSetPadMode(GPIOB, 3, PAL_MODE_INPUT_PULLUP); - palSetPadMode(GPIOB, 4, PAL_MODE_INPUT_PULLUP); - palSetPadMode(GPIOB, 5, PAL_MODE_INPUT_PULLUP); -} - -static void init_rows(void) { - palSetPadMode(GPIOB, 8, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 9, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 10, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 11, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 12, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 13, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 14, PAL_MODE_OUTPUT_PUSHPULL); -} - -static void unselect_rows(void) { - GPIOB->BSRR = 0b1111111 << 8; -} - -static void select_row(uint8_t row) { - if (row < MATRIX_ROWS_PER_SIDE) { - if (!mcp23017_status) { - uint8_t data = (0xFF & ~(1 << row)); - mcp23017_status = i2c_writeReg(I2C_ADDR, I2C_GPIOA, &data, 1, 10); - } - } else { - GPIOB->BRR = 0x1 << (row+1); - } -} diff --git a/keyboards/ergodox_stm32/mcuconf.h b/keyboards/ergodox_stm32/mcuconf.h deleted file mode 100644 index 0494526e5e..0000000000 --- a/keyboards/ergodox_stm32/mcuconf.h +++ /dev/null @@ -1,209 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language govern |