From 98c1f7a9ef569802ab3606eac098e388109f4025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20A=2E=20Volpato?= Date: Sat, 23 Jul 2022 21:09:52 -0300 Subject: [Keyboard] Apollo87H PCB support (#16817) * Initial Apollo87H support * Define RGB animations and default animation * Add proper per-key RGB support * Adjust LED positions * Separate delta-gamma * Fine-tune LED positions * fix up GAMMA revision * fix up tabs indentation to spaces indentation * Fixed positioning and CS-SW defs for some LEDs * Fix INS RGB position * Fine-tune LED positions, fix default RGB * Update readme's * Rename LAYOUT_87H to lowercase 87h * Formatting gamma's rules.mk * Formatting delta's rules.mk * Use smaller readme image * Use smaller README image * First support for 87H-T-SC and 88H-T-SC * Update README * Fix layout naming * Remove * Remove EEPROM definitions, fix missing RGB LED mod/alpha definer * Add suggestions from noroadsleft --- keyboards/acheron/apollo/87h/gamma/config.h | 113 +++++++++++++++ keyboards/acheron/apollo/87h/gamma/gamma.c | 152 +++++++++++++++++++++ keyboards/acheron/apollo/87h/gamma/gamma.h | 38 ++++++ keyboards/acheron/apollo/87h/gamma/halconf.h | 24 ++++ .../apollo/87h/gamma/keymaps/default/keymap.c | 53 +++++++ .../acheron/apollo/87h/gamma/keymaps/via/keymap.c | 53 +++++++ .../acheron/apollo/87h/gamma/keymaps/via/rules.mk | 1 + keyboards/acheron/apollo/87h/gamma/mcuconf.h | 41 ++++++ keyboards/acheron/apollo/87h/gamma/rules.mk | 25 ++++ 9 files changed, 500 insertions(+) create mode 100644 keyboards/acheron/apollo/87h/gamma/config.h create mode 100644 keyboards/acheron/apollo/87h/gamma/gamma.c create mode 100644 keyboards/acheron/apollo/87h/gamma/gamma.h create mode 100644 keyboards/acheron/apollo/87h/gamma/halconf.h create mode 100755 keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c create mode 100755 keyboards/acheron/apollo/87h/gamma/keymaps/via/keymap.c create mode 100644 keyboards/acheron/apollo/87h/gamma/keymaps/via/rules.mk create mode 100644 keyboards/acheron/apollo/87h/gamma/mcuconf.h create mode 100644 keyboards/acheron/apollo/87h/gamma/rules.mk (limited to 'keyboards/acheron/apollo/87h/gamma') diff --git a/keyboards/acheron/apollo/87h/gamma/config.h b/keyboards/acheron/apollo/87h/gamma/config.h new file mode 100644 index 0000000000..a28e498dcc --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/config.h @@ -0,0 +1,113 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4150 // AP for AcheronProject +#define PRODUCT_ID 0x8774 // For 87H + 2 (revision Gamma) +#define DEVICE_VER 0x0003 // Revision Gamma +#define MANUFACTURER AcheronProject +#define PRODUCT Apollo87H rev. Gamma + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +// C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 , C10, C11, C12, C13, C14, C15 } +#define MATRIX_COL_PINS { B3 , A15, A10, A8 , B14, B12, B10, B1 , B0 , A7 , A4 , A5 , A6 , C15, A0 , A1 } +// R0 , R1 , R2 , R3 , R4 , R5 +#define MATRIX_ROW_PINS { C14, C13, B9 , B4 , A3 , A2 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* 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 EEPROM_I2C_24LC256 +//#define I2C1_CLOCK_SPEED 400000 +//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 + +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +#define STM32_HSECLK 8000000 + +// RGB Matrix defines +#define DRIVER_ADDR_1 0b0110000 + +#define DRIVER_COUNT 1 +#define DRIVER_1_LED_TOTAL 87 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL + +#define RGB_MATRIX_STARTUP_VAL 80 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_HUE_WAVE + +#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 +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN + +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +#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 diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.c b/keyboards/acheron/apollo/87h/gamma/gamma.c new file mode 100644 index 0000000000..72182d4f2a --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/gamma.c @@ -0,0 +1,152 @@ +/* + Copyright 2022 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#include "gamma.h" + +void board_init(void) { + setPinInput(B9); + setPinInput(B10); +} + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ +// First row + {0, CS7_SW9 , CS9_SW9 , CS8_SW9 }, //ESC 0 + {0, CS7_SW8 , CS9_SW8 , CS8_SW8 }, //F1 1 + {0, CS7_SW7 , CS9_SW7 , CS8_SW7 }, //F2 2 + {0, CS7_SW6 , CS9_SW6 , CS8_SW6 }, //F3 3 + {0, CS7_SW5 , CS9_SW5 , CS8_SW5 }, //F4 4 + {0, CS7_SW4 , CS9_SW4 , CS8_SW4 }, //F5 5 + {0, CS7_SW3 , CS9_SW3 , CS8_SW3 }, //F6 6 + {0, CS7_SW2 , CS9_SW2 , CS8_SW2 }, //F7 7 + {0, CS7_SW1 , CS9_SW1 , CS8_SW1 }, //F8 8 + {0, CS18_SW2, CS16_SW2, CS17_SW2 }, //F9 9 + {0, CS18_SW3, CS16_SW3, CS17_SW3 }, //F10 10 + {0, CS18_SW4, CS16_SW4, CS17_SW4 }, //F11 11 + {0, CS18_SW6, CS16_SW6, CS17_SW6 }, //F12 12 + {0, CS18_SW7, CS16_SW7, CS17_SW7 }, //PRI 13 + {0, CS18_SW8, CS16_SW8, CS17_SW8 }, //SCR 14 + {0, CS18_SW9, CS16_SW9, CS17_SW9 }, //PAUS 15 +//Second row + {0, CS12_SW9, CS11_SW9, CS10_SW9 }, //GRAVE 16 + {0, CS12_SW8, CS11_SW8, CS10_SW8 }, //1 17 + {0, CS12_SW7, CS11_SW7, CS10_SW7 }, //2 18 + {0, CS12_SW6, CS11_SW6, CS10_SW6 }, //3 19 + {0, CS12_SW5, CS11_SW5, CS10_SW5 }, //4 20 + {0, CS12_SW4, CS11_SW4, CS10_SW4 }, //5 21 + {0, CS12_SW3, CS11_SW3, CS10_SW3 }, //6 22 + {0, CS12_SW2, CS11_SW2, CS10_SW2 }, //7 23 + {0, CS12_SW1, CS11_SW1, CS10_SW1 }, //8 24 + {0, CS15_SW1, CS13_SW1, CS14_SW1 }, //9 25 + {0, CS15_SW2, CS13_SW2, CS14_SW2 }, //0 26 + {0, CS15_SW3, CS13_SW3, CS14_SW3 }, //MINUS 27 + {0, CS15_SW4, CS13_SW4, CS14_SW4 }, //PLUS 28 + {0, CS15_SW5, CS13_SW5, CS14_SW5 }, //BKSP 29 + {0, CS15_SW7, CS13_SW7, CS14_SW7 }, //INS 30 + {0, CS15_SW8, CS13_SW8, CS14_SW8 }, //HOME 31 + {0, CS15_SW9, CS13_SW9, CS14_SW9 }, //PGUP 32 +//Third row + {0, CS4_SW9 , CS6_SW9 , CS5_SW9 }, //TAB 33 + {0, CS4_SW8 , CS6_SW8 , CS5_SW8 }, //Q 34 + {0, CS4_SW7 , CS6_SW7 , CS5_SW7 }, //W 35 + {0, CS4_SW6 , CS6_SW6 , CS5_SW6 }, //E 36 + {0, CS4_SW5 , CS6_SW5 , CS5_SW5 }, //R 37 + {0, CS4_SW4 , CS6_SW4 , CS5_SW4 }, //T 38 + {0, CS4_SW3 , CS6_SW3 , CS5_SW3 }, //Y 39 + {0, CS4_SW2 , CS6_SW2 , CS5_SW2 }, //U 40 + {0, CS4_SW1 , CS6_SW1 , CS5_SW1 }, //I 41 + {0, CS3_SW2 , CS1_SW2 , CS2_SW2 }, //O 42 + {0, CS3_SW3 , CS1_SW3 , CS2_SW3 }, //P 43 + {0, CS3_SW4 , CS1_SW4 , CS2_SW4 }, //LBRKT 44 + {0, CS3_SW5 , CS1_SW5 , CS2_SW5 }, //RBRKT 45 + {0, CS3_SW6 , CS1_SW6 , CS2_SW6 }, //BSLS 46 + {0, CS3_SW7 , CS1_SW7 , CS2_SW7 }, //DEL 47 + {0, CS3_SW8 , CS1_SW8 , CS2_SW8 }, //END 48 + {0, CS3_SW9 , CS1_SW9 , CS2_SW9 }, //PGDN 49 +//Fourth row + {0, CS33_SW9, CS32_SW9, CS31_SW9 }, //CAPS 50 + {0, CS33_SW8, CS32_SW8, CS31_SW8 }, //A 51 + {0, CS33_SW7, CS32_SW7, CS31_SW7 }, //S 52 + {0, CS33_SW6, CS32_SW6, CS31_SW6 }, //D 53 + {0, CS33_SW5, CS32_SW5, CS31_SW5 }, //F 54 + {0, CS33_SW4, CS32_SW4, CS31_SW4 }, //G 55 + {0, CS33_SW3, CS32_SW3, CS31_SW3 }, //H 56 + {0, CS33_SW2, CS32_SW2, CS31_SW2 }, //J 57 + {0, CS33_SW1, CS32_SW1, CS31_SW1 }, //K 58 + {0, CS39_SW2, CS38_SW2, CS37_SW2 }, //L 59 + {0, CS39_SW3, CS38_SW3, CS37_SW3 }, //COLON 60 + {0, CS39_SW4, CS38_SW4, CS37_SW4 }, //QUOTE 61 + {0, CS39_SW6, CS38_SW6, CS37_SW6 }, //ENTER 62 +//Fifth row + {0, CS30_SW9, CS28_SW9, CS29_SW9 }, //LSFT 63 + {0, CS30_SW7, CS28_SW7, CS29_SW7 }, //Z 64 + {0, CS30_SW6, CS28_SW6, CS29_SW6 }, //X 65 + {0, CS30_SW5, CS28_SW5, CS29_SW5 }, //C 66 + {0, CS30_SW4, CS28_SW4, CS29_SW4 }, //V 67 + {0, CS30_SW3, CS28_SW3, CS29_SW3 }, //B 68 + {0, CS30_SW2, CS28_SW2, CS29_SW2 }, //N 69 + {0, CS30_SW1, CS28_SW1, CS29_SW1 }, //M 70 + {0, CS36_SW1, CS35_SW1, CS34_SW1 }, //COMMA 71 + {0, CS36_SW3, CS35_SW3, CS34_SW3 }, //DOT 72 + {0, CS36_SW4, CS35_SW4, CS34_SW4 }, //SLASH 73 + {0, CS36_SW6, CS35_SW6, CS34_SW6 }, //RSFT 74 + {0, CS36_SW7, CS35_SW7, CS34_SW7 }, //UP 75 +//Sixth row + {0, CS27_SW9, CS25_SW9, CS26_SW9 }, //LCTRL 76 + {0, CS27_SW7, CS25_SW7, CS26_SW7 }, //LWIN 77 + {0, CS27_SW6, CS25_SW6, CS26_SW6 }, //LALT 78 + {0, CS27_SW5, CS25_SW5, CS26_SW5 }, //SPACE 79 + {0, CS27_SW3, CS25_SW3, CS26_SW3 }, //RALT 80 + {0, CS24_SW4, CS23_SW4, CS22_SW4 }, //RGUI 81 + {0, CS24_SW5, CS23_SW5, CS22_SW5 }, //MENU 82 + {0, CS24_SW6, CS23_SW6, CS22_SW6 }, //RCTRL 83 + {0, CS24_SW1, CS23_SW1, CS22_SW1 }, //LEFT 84 + {0, CS24_SW2, CS23_SW2, CS22_SW2 }, //DOWN 85 + {0, CS24_SW3, CS23_SW3, CS22_SW3 }, //RIGHT 86 + +}; + + +led_config_t g_led_config = { { + { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 }, + { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 }, + { 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 41 , 43 , 44 , 45 , 46 , 47 , 48 }, + { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED }, + { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 49 , 32 }, + { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , 84 , 85 , 86 } +},{ + { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, { 105, 0}, { 120, 0}, { 135, 0}, { 150, 0}, { 165, 0}, { 180, 0}, { 210, 0}, { 210, 0}, { 225, 0}, + { 0, 45}, { 15, 45}, { 30, 45}, { 45, 45}, { 60, 45}, { 75, 45}, { 90, 45}, { 105, 45}, { 120, 45}, { 135, 45}, { 150, 45}, { 165, 45}, { 180, 45}, { 210, 45}, { 210, 45}, { 215, 45}, + { 0, 90}, { 15, 90}, { 30, 90}, { 45, 90}, { 60, 90}, { 75, 90}, { 90, 90}, { 105, 90}, { 120, 90}, { 135, 90}, { 150, 90}, { 165, 90}, { 180, 90}, { 195, 90}, { 210, 90}, { 215, 90}, + { 0, 135}, { 15, 135}, { 30, 135}, { 45, 135}, { 60, 135}, { 75, 135}, { 90, 135}, { 105, 135}, { 120, 135}, { 135, 135}, { 150, 135}, { 165, 135}, { 180, 135}, + { 0, 180}, { 30, 180}, { 45, 180}, { 60, 180}, { 75, 180}, { 90, 180}, { 105, 180}, { 120, 180}, { 135, 180}, { 150, 180}, { 165, 180}, { 180, 180}, { 210, 180}, { 225, 45}, { 225, 0}, + { 0, 225}, { 15, 225}, { 30, 225}, { 90, 225}, { 135, 225}, { 150, 225}, { 165, 225}, { 180, 225}, { 195, 225}, { 210, 225}, { 225, 225} +}, { + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , + 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , + 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , 1 , 1 , + 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 +} }; +#endif diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.h b/keyboards/acheron/apollo/87h/gamma/gamma.h new file mode 100644 index 0000000000..97342016f2 --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/gamma.h @@ -0,0 +1,38 @@ +/* +Copyright 2022 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_tkl_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K4F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K4E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K56, K59, K5A, K5B, K5C, K5D, K5E, K5F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, ___, ___ }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D, K5E, K5F } \ +} diff --git a/keyboards/acheron/apollo/87h/gamma/halconf.h b/keyboards/acheron/apollo/87h/gamma/halconf.h new file mode 100644 index 0000000000..957fe10f42 --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/halconf.h @@ -0,0 +1,24 @@ +/* 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 . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +// #define HAL_USE_PWM TRUE +// #define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c new file mode 100755 index 0000000000..2302aca4db --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi( + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS , + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN , + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/acheron/apollo/87h/gamma/keymaps/via/keymap.c b/keyboards/acheron/apollo/87h/gamma/keymaps/via/keymap.c new file mode 100755 index 0000000000..bb6b33219c --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* +Copyright 2020 Álvaro "Gondolindrim" Volpato + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi( + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS , + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN , + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_tkl_ansi( + RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/acheron/apollo/87h/gamma/keymaps/via/rules.mk b/keyboards/acheron/apollo/87h/gamma/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/apollo/87h/gamma/mcuconf.h b/keyboards/acheron/apollo/87h/gamma/mcuconf.h new file mode 100644 index 0000000000..5983bdde90 --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/mcuconf.h @@ -0,0 +1,41 @@ +/* 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 . + */ + +#pragma once + +#include_next +#undef STM32_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +#define STM32_PLLM_VALUE 4 +#define STM32_PLLN_VALUE 96 +#define STM32_PLLP_VALUE 2 +#define STM32_PLLQ_VALUE 4 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +// #undef STM32_PWM_USE_ADVANCED +// #define STM32_PWM_USE_ADVANCED TRUE + +// #undef STM32_PWM_USE_TIM1 +// #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/apollo/87h/gamma/rules.mk b/keyboards/acheron/apollo/87h/gamma/rules.mk new file mode 100644 index 0000000000..fde739dac7 --- /dev/null +++ b/keyboards/acheron/apollo/87h/gamma/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3741 +KEYBOARD_SHARED_EP = yes +EEPROM_DRIVER = i2c + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE -- cgit v1.2.3