/* Copyright 2021 18438880 * * 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 */ #include "config_common.h" #define VENDOR_ID 0x7C88 // "hw" = haierwangwei2005 #define PRODUCT_ID 0x7C97 // "lp" = latin17RGB #define DEVICE_VER 0x0001 #define MANUFACTURER 18438880 #define PRODUCT Latin17RGB /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 4 /* * Keyboard Matrix Assignments * * Change this to how you wired your keyboard * COLS: AVR pins used for columns, left to right * ROWS: AVR pins used for rows, top to bottom * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ #define MATRIX_ROW_PINS {C7, C6, B6, B5, B4 } #define MATRIX_COL_PINS {F7, F6, F5, F4} #define UNUSED_PINS /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 /* disable these deprecated features by default */ //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION #ifdef RGB_MATRIX_ENABLE # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects # 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_PIXEL_RAIN # define ENABLE_RGB_MATRIX_PIXEL_FLOW # define ENABLE_RGB_MATRIX_PIXEL_FRACTAL // 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 // This is a 7-bit address, that gets left-shifted and bit 0 // set to 0 for write, 1 for read (as per I2C protocol) // The address will vary depending on your wiring: // 0b1110100 AD <-> GND // 0b1110111 AD <-> VCC // 0b1110101 AD <-> SCL // 0b1110110 AD <-> SDA # define DRIVER_ADDR_1 0b1110100 # define DRIVER_ADDR_2 0b1110110 # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 25 # define DRIVER_2_LED_TOTAL 24 # define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif #define RGB_DI_PIN B7 #ifdef RGB_DI_PIN #define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 8 #define RGBLIGHT_HUE_STEP 5 #define RGBLIGHT_SAT_STEP 5 #define RGBLIGHT_VAL_STEP 5 #define RGBLIGHT_SLEEP #endif