Skip to content

Commit

Permalink
Add m2 keyboard
Browse files Browse the repository at this point in the history
  • Loading branch information
jonylee1986 committed Feb 15, 2023
1 parent e4c41b4 commit 55c34ae
Show file tree
Hide file tree
Showing 11 changed files with 1,266 additions and 0 deletions.
134 changes: 134 additions & 0 deletions keyboards/hfdkb/m2/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/* Copyright (C) 2022 jonylee@hfd
*
* 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"

/* Use 5 dynamic keymap layers */
#define DYNAMIC_KEYMAP_LAYER_COUNT 6

#define RGB_TRIGGER_ON_KEYDOWN
/* Force NKRO on boot up regardless of the setting saved in the EEPROM (uncomment to enable it) */
#define FORCE_NKRO

/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 21

/* key matrix pins */
#define MATRIX_ROW_PINS {B15, C6, C7, C8, C9, A8}
#define MATRIX_COL_PINS { C1, C2, C3, A0, A1, A2, A3, A4, A5, A6, A7, C4, C5, B0, B1, B2,B10,B11,B12,B13,B14}

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL

/* encoder resolution */
#define ENCODER_RESOLUTION 2
#define TAP_CODE_DELAY 20

/* 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

/* SPI Config for spi flash*/
#define SPI_DRIVER SPIDQ
#define SPI_SCK_PIN B3
#define SPI_MOSI_PIN B5
#define SPI_MISO_PIN B4
#define SPI_MOSI_PAL_MODE 5

#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)

/* I2C Config for LED Driver */
#define DRIVER_COUNT 2
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110111
#define I2C1_SDA_PIN B7
#define I2C1_SCL_PIN B6
#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */

#define DRIVER_1_LED_TOTAL 60
#define DRIVER_2_LED_TOTAL 38
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_CENTER {112,32}

#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_KEYRELEASES

// 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_SOLID_COLOR // Static single hue, no speed support
#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

#define RGB_MATRIX_HUE_STEP 62
#define RGB_MATRIX_SAT_STEP 62
#define RGB_MATRIX_VAL_STEP 50
#define RGB_MATRIX_SPD_STEP 62
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 /* The maximum brightness level */

23 changes: 23 additions & 0 deletions keyboards/hfdkb/m2/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/* Copyright (C) 2022 jonylee@hfd
*
* 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
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD

#include_next <halconf.h>
122 changes: 122 additions & 0 deletions keyboards/hfdkb/m2/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{
"keyboard_name": "MonsGeek Keyboard",
"manufacturer": "www.hfd.cn",
"maintainer": "hfd",
"usb": {
"vid": "0xFFFE",
"pid": "0x0008",
"device_version": "1.1.0"
},
"processor": "WB32FQ95",
"bootloader": "wb32-dfu",
"layouts": {
"LAYOUT": {
"layout": [
{ "label": "Esc", "x": 0, "y": 0 },
{ "label": "F1", "x": 2, "y": 0 },
{ "label": "F2", "x": 3, "y": 0 },
{ "label": "F3", "x": 4, "y": 0 },
{ "label": "F4", "x": 5, "y": 0 },
{ "label": "F5", "x": 6.5, "y": 0 },
{ "label": "F6", "x": 7.5, "y": 0 },
{ "label": "F7", "x": 8.5, "y": 0 },
{ "label": "F8", "x": 9.5, "y": 0 },
{ "label": "F9", "x": 11, "y": 0 },
{ "label": "F10", "x": 12, "y": 0 },
{ "label": "F11", "x": 13, "y": 0 },
{ "label": "F12", "x": 14, "y": 0 },
{ "label": "Delete", "x": 15, "y": 0 },
{ "label": "PrtSc", "x": 16, "y": 0 },
{ "label": "Home", "x": 17, "y": 0 },
{ "label": "Pgup", "x": 18, "y": 0 },
{ "label": "Pgdn", "x": 19, "y": 0 },

{ "label": "~", "x": 0, "y": 1.25 },
{ "label": "!", "x": 1, "y": 1.25 },
{ "label": "@", "x": 2, "y": 1.25 },
{ "label": "#", "x": 3, "y": 1.25 },
{ "label": "$", "x": 4, "y": 1.25 },
{ "label": "%", "x": 5, "y": 1.25 },
{ "label": "^", "x": 6, "y": 1.25 },
{ "label": "&", "x": 7, "y": 1.25 },
{ "label": "*", "x": 8, "y": 1.25 },
{ "label": "(", "x": 9, "y": 1.25 },
{ "label": ")", "x": 10, "y": 1.25 },
{ "label": "_", "x": 11, "y": 1.25 },
{ "label": "+", "x": 12, "y": 1.25 },
{ "label": "Bksp", "x": 14, "y": 1.25 },
{ "label": "Numlock", "x": 16, "y": 1.25 },
{ "label": "/", "x": 17, "y": 1.25 },
{ "label": "*", "x": 18, "y": 1.25 },
{ "label": "-", "x": 19, "y": 1.25 },

{ "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 },
{ "label": "Q", "x": 1.5, "y": 2.25 },
{ "label": "W", "x": 2.5, "y": 2.25 },
{ "label": "E", "x": 3.5, "y": 2.25 },
{ "label": "R", "x": 4.5, "y": 2.25 },
{ "label": "T", "x": 5.5, "y": 2.25 },
{ "label": "Y", "x": 6.5, "y": 2.25 },
{ "label": "U", "x": 7.5, "y": 2.25 },
{ "label": "I", "x": 8.5, "y": 2.25 },
{ "label": "O", "x": 9.5, "y": 2.25 },
{ "label": "P", "x": 10.5, "y": 2.25 },
{ "label": "{", "x": 11.5, "y": 2.25 },
{ "label": "}", "x": 12.5, "y": 2.25 },
{ "label": "|", "x": 13.5, "y": 2.25, "w": 1.5 },
{ "label": "7", "x": 16, "y": 2.25 },
{ "label": "8", "x": 17, "y": 2.25 },
{ "label": "9", "x": 18, "y": 2.25, "w": 1.5 },
{ "label": "+", "x": 19, "y": 2.25 },

{ "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 },
{ "label": "A", "x": 1.75, "y": 3.25 },
{ "label": "S", "x": 2.75, "y": 3.25 },
{ "label": "D", "x": 3.75, "y": 3.25 },
{ "label": "F", "x": 4.75, "y": 3.25 },
{ "label": "G", "x": 5.75, "y": 3.25 },
{ "label": "H", "x": 6.75, "y": 3.25 },
{ "label": "J", "x": 7.75, "y": 3.25 },
{ "label": "K", "x": 8.75, "y": 3.25 },
{ "label": "L", "x": 9.75, "y": 3.25 },
{ "label": ":", "x": 10.75, "y": 3.25 },
{ "label": "'", "x": 11.75, "y": 3.25 },
{ "label": "Enter", "x": 12.75, "y": 3.25 },
{ "label": "4", "x": 17, "y": 3.25, "w": 1.25 },
{ "label": "5", "x": 18, "y": 3.25 },
{ "label": "6", "x": 19, "y": 3.25 },

{ "label": "Shift", "x": 0, "y": 4.25, "w": 1.25 },
{ "label": "Z", "x": 2.25, "y": 4.25 },
{ "label": "X", "x": 3.25, "y": 4.25 },
{ "label": "C", "x": 4.25, "y": 4.25 },
{ "label": "V", "x": 5.25, "y": 4.25 },
{ "label": "B", "x": 6.25, "y": 4.25 },
{ "label": "N", "x": 7.25, "y": 4.25 },
{ "label": "M", "x": 8.25, "y": 4.25 },
{ "label": "<", "x": 9.25, "y": 4.25 },
{ "label": ">", "x": 10.25, "y": 4.25 },
{ "label": "?", "x": 11.25, "y": 4.25 },
{ "label": "Shift", "x": 12.25, "y": 4.25, "w": 1.75 },
{ "label": "Up", "x": 15, "y": 4.25 },
{ "label": "1", "x": 16, "y": 4.25 },
{ "label": "2", "x": 17, "y": 4.25 },
{ "label": "3", "x": 18, "y": 4.25 },
{ "label": "4", "x": 19, "y": 4.25 },

{ "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 },
{ "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 },
{ "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 },
{ "label": "Space", "x": 3.75, "y": 5.25, "w": 6.25 },
{ "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 },
{ "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 },
{ "label": "Left", "x": 13.75, "y": 5.25, "w": 1.25 },

{ "label": "Down", "x": 15, "y": 5.25 },
{ "label": "Right", "x": 16, "y": 5.25 },
{ "label": "0", "x": 17, "y": 5.25 },
{ "label": ".", "x": 18, "y": 5.25 }
]
}
}
}
Loading

0 comments on commit 55c34ae

Please sign in to comment.