mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-04-30 19:11:34 +00:00
Protokeeb Rev1 QMK Firmware
This commit is contained in:
parent
7f756448ba
commit
0fc220b8ee
11
keyboards/protokeeb/info.json
Normal file
11
keyboards/protokeeb/info.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"keyboard_name": "Protokeeb",
|
||||
"manufacturer": "A-Tech Officials",
|
||||
"maintainer": "atechofficials",
|
||||
"url": "https://github.com/atechofficials/protokeeb",
|
||||
"bootloader_instructions": "Press and hold the FN Key (row-4, column-1) then press the key mapped to `QK_BOOT` i.e ENTER Key (row-4, column-4) to enter the bootloader mode.",
|
||||
"tags": ["rgb", "4x4"],
|
||||
"usb": {
|
||||
"vid": "0x419A"
|
||||
}
|
||||
}
|
8
keyboards/protokeeb/keymaps/debug/rules.mk
Normal file
8
keyboards/protokeeb/keymaps/debug/rules.mk
Normal file
@ -0,0 +1,8 @@
|
||||
# Build Options
|
||||
# Change yes to no to diable feature
|
||||
|
||||
# Console for keyboard debug
|
||||
CONSOLE_ENABLE = yes
|
||||
|
||||
# Commands for debug and configuration
|
||||
COMMAND_ENABLE = yes
|
@ -22,18 +22,41 @@
|
||||
#include "os_detection.h"
|
||||
#include "quantum.h"
|
||||
|
||||
enum protokeeb_keymap_layers {
|
||||
LAYER_BASE = 0,
|
||||
LAYER_LOWER = 1,
|
||||
};
|
||||
|
||||
#define LOWER MO(LAYER_LOWER)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT( /* Base */
|
||||
[LAYER_BASE] = LAYOUT( /* Base */
|
||||
KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH,
|
||||
KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK,
|
||||
KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_MINUS,
|
||||
MO(1), KC_KP_0, KC_KP_PLUS, KC_KP_ENTER
|
||||
LOWER, KC_KP_0, KC_KP_PLUS, KC_KP_ENTER
|
||||
),
|
||||
|
||||
[1] = LAYOUT( /* RGB Control */
|
||||
[LAYER_LOWER] = LAYOUT( /* RGB Control */
|
||||
RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG,
|
||||
RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD,
|
||||
RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
|
||||
KC_TRNS, RGB_MODE_SWIRL, QK_DEBUG_TOGGLE, QK_BOOT
|
||||
),
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[LAYER_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[LAYER_LOWER] = { ENCODER_CCW_CW(KC_BRIGHTNESS_DOWN, KC_BRIGHTNESS_UP) },
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
#if defined(DIP_SWITCH_MAP_ENABLE)
|
||||
const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = {
|
||||
DIP_SWITCH_OFF_ON(DF(0), DF(1)),
|
||||
DIP_SWITCH_OFF_ON(KC_MUTE, KC_MUTE)
|
||||
};
|
||||
#endif
|
||||
*/
|
17
keyboards/protokeeb/keymaps/midi/config.h
Normal file
17
keyboards/protokeeb/keymaps/midi/config.h
Normal file
@ -0,0 +1,17 @@
|
||||
/* Protokeeb Copyright 2024 A-Tech Officials
|
||||
* 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 3 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 <https://www.gnu.org/licenses/gpl-3.0.html>.
|
||||
*/
|
||||
|
||||
#define MIDI_ADVANCED
|
53
keyboards/protokeeb/keymaps/midi/keymap.c
Normal file
53
keyboards/protokeeb/keymaps/midi/keymap.c
Normal file
@ -0,0 +1,53 @@
|
||||
/* Protokeeb Copyright 2024 A-Tech Officials
|
||||
* 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 3 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 <https://www.gnu.org/licenses/gpl-3.0.html>.
|
||||
*/
|
||||
|
||||
/* Protokeeb v1.0
|
||||
* Keymap: MIDI
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "os_detection.h"
|
||||
#include "quantum.h"
|
||||
|
||||
enum protokeeb_keymap_layers {
|
||||
LAYER_BASE = 0,
|
||||
LAYER_LOWER = 1,
|
||||
};
|
||||
|
||||
#define LOWER MO(LAYER_LOWER)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[LAYER_BASE] = LAYOUT( /* MIDI Control */
|
||||
MI_C, MI_Cs, MI_D, MI_Ds,
|
||||
MI_E, MI_F, MI_Fs, MI_G,
|
||||
MI_Gs, MI_A, MI_As, MI_B,
|
||||
LOWER, MI_C1, MI_Cs1, MI_D1
|
||||
),
|
||||
|
||||
[LAYER_LOWER] = LAYOUT( /* RGB Control */
|
||||
RGB_MODE_PLAIN, RGB_MODE_FORWARD, RGB_MODE_REVERSE, RGB_TOG,
|
||||
RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD,
|
||||
RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD,
|
||||
KC_TRNS, RGB_MODE_SWIRL, QK_DEBUG_TOGGLE, QK_BOOT
|
||||
),
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[LAYER_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[LAYER_LOWER] = { ENCODER_CCW_CW(KC_BRIGHTNESS_DOWN, KC_BRIGHTNESS_UP) },
|
||||
};
|
||||
#endif
|
4
keyboards/protokeeb/keymaps/midi/rules.mk
Normal file
4
keyboards/protokeeb/keymaps/midi/rules.mk
Normal file
@ -0,0 +1,4 @@
|
||||
# Build Options
|
||||
# Change yes to no to diable feature
|
||||
|
||||
MIDI_ENABLE = yes
|
18
keyboards/protokeeb/keymaps/via/keymap.c
Normal file
18
keyboards/protokeeb/keymaps/via/keymap.c
Normal file
@ -0,0 +1,18 @@
|
||||
/* Protokeeb Copyright 2024 A-Tech Officials
|
||||
* 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 3 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 <https://www.gnu.org/licenses/gpl-3.0.html>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
@ -19,7 +19,7 @@
|
||||
/*
|
||||
#define VENDOR_ID 0x419A
|
||||
#define PRODUCT_ID 0x1717
|
||||
#define DEVICE_VERSION 0x0100
|
||||
#define DEVICE_VERSION 0x0100 // v1.0.0
|
||||
#define MANUFACTURER "A-Tech Officials"
|
||||
#define PRODUCT "Protokeeb"
|
||||
*/
|
||||
@ -27,6 +27,7 @@
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 4
|
||||
|
||||
/*
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ GP2, GP3, GP4, GP5 }
|
||||
|
||||
@ -34,19 +35,20 @@
|
||||
{ GP6, GP7, GP8, GP9 }
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
*/
|
||||
|
||||
//#define DEBOUNCE 20
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
/* ARGB LED Data-In Pin */
|
||||
#define RGB_DI_PIN GP10
|
||||
//#define WS2812_DI_PIN GP10
|
||||
|
||||
/* ARGB LED Byte order */
|
||||
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB // for WS2812
|
||||
//#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB // for WS2812B-2020
|
||||
// #define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB // for WS2812
|
||||
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB // for WS2812B-2020
|
||||
|
||||
/* Total number of ARGB LEDs connected */
|
||||
#define RGBLED_NUM 16
|
||||
//#define RGBLIGHT_LED_COUNT 4
|
||||
|
||||
/* Total number of ARGB LEDs in Matrix */
|
||||
//#define RGB_MATRIX_LED_COUNT 16
|
||||
@ -54,43 +56,46 @@
|
||||
/* Peripheral used */
|
||||
#define WS2812_PIO_USE_PIO1
|
||||
|
||||
#define RGBLIGHT_HUE_STEP 15
|
||||
#define RGBLIGHT_SAT_STEP 15
|
||||
#define RGBLIGHT_VAL_STEP 15
|
||||
//#define RGBLIGHT_HUE_STEP 15
|
||||
//#define RGBLIGHT_SAT_STEP 15
|
||||
//#define RGBLIGHT_VAL_STEP 15
|
||||
|
||||
/* ARGB LED T-reset period between frames */
|
||||
//#define WS2812_TRST_US 280
|
||||
// #define WS2812_TRST_US 280
|
||||
|
||||
/* The maximum ARGB LED brightness level */
|
||||
#define RGBLIGHT_LIMIT_VAL 127
|
||||
//#define RGBLIGHT_LIMIT_VAL 127
|
||||
|
||||
/* RGB LEDs Default/Fallback Values */
|
||||
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT
|
||||
#define RGBLIGHT_DEFAULT_HUE 0
|
||||
#define RGBLIGHT_DEFAULT_SAT 255
|
||||
#define RGBLIGHT_DEFAULT_VAL 50
|
||||
#define RGBLIGHT_DEFAULT_SPD 0
|
||||
//#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT
|
||||
//#define RGBLIGHT_DEFAULT_HUE 0
|
||||
//#define RGBLIGHT_DEFAULT_SAT 255
|
||||
//#define RGBLIGHT_DEFAULT_VAL 50
|
||||
//#define RGBLIGHT_DEFAULT_SPD 0
|
||||
|
||||
// Enable RGB lighting upon clearing the EEPROM
|
||||
//#define RGBLIGHT_DEFAULT_ON true
|
||||
|
||||
/* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||
#define RGBLIGHT_SLEEP
|
||||
//#define RGBLIGHT_SLEEP
|
||||
|
||||
/* RGB lighting effects and animations Enable */
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLIGHT_EFFECT_SNAKE
|
||||
#define RGBLIGHT_EFFECT_KNIGHT
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLIGHT_EFFECT_RGB_TEST
|
||||
#define RGBLIGHT_EFFECT_ALTERNATING
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
//#define RGBLIGHT_EFFECT_BREATHING
|
||||
//#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
//#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
//#define RGBLIGHT_EFFECT_SNAKE
|
||||
//#define RGBLIGHT_EFFECT_KNIGHT
|
||||
//#define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
//#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
//#define RGBLIGHT_EFFECT_RGB_TEST
|
||||
//#define RGBLIGHT_EFFECT_ALTERNATING
|
||||
//#define RGBLIGHT_EFFECT_TWINKLE
|
||||
|
||||
/* RGB lighting effects and animations settings */
|
||||
#define RGBLIGHT_EFFECT_BREATHE_MAX RGBLIGHT_LIMIT_VAL
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 40
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM RGBLED_NUM
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM RGBLIGHT_LED_COUNT
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0
|
||||
#define RGBLIGHT_EFFECT_SWIRL_RANGE 255
|
||||
@ -105,26 +110,36 @@
|
||||
|
||||
/* I2C Interface configuration */
|
||||
#define I2C_DRIVER I2CD0
|
||||
|
||||
//#define I2C_SCL_PIN NO_PIN
|
||||
#define I2C_SCL_PIN GP21
|
||||
#define I2C_SCL_PAL_MODE 4
|
||||
//#define I2C_SCL_PAL_MODE 4
|
||||
|
||||
//#define I2C_SDA_PIN NO_PIN
|
||||
#define I2C_SDA_PIN GP20
|
||||
#define I2C_SDA_PAL_MODE 4
|
||||
//#define I2C_SDA_PAL_MODE 4
|
||||
|
||||
/* SPI Interface configuration */
|
||||
#define SPI_DRIVER SPID0
|
||||
#define SPI_SCK_PIN GP18
|
||||
|
||||
#define SPI_SCK_PIN NO_PIN
|
||||
//#define SPI_SCK_PIN GP18
|
||||
//#define SPI_SCK_PAL_MODE 5
|
||||
#define SPI_MOSI_PIN GP19
|
||||
|
||||
#define SPI_MOSI_PIN NO_PIN
|
||||
//#define SPI_MOSI_PIN GP19
|
||||
//#define SPI_MOSI_PAL_MODE 5
|
||||
#define SPI_MISO_PIN GP20
|
||||
|
||||
#define SPI_MISO_PIN NO_PIN
|
||||
//#define SPI_MISO_PIN GP20
|
||||
//#define SPI_MISO_PAL_MODE 5
|
||||
|
||||
/* Bootloader Enter Button
|
||||
* Press and hold when pluging the keyboard
|
||||
* to enter the bootloader for flashing
|
||||
*/
|
||||
#define BOOTMAGIC_LITE_ROW 0
|
||||
#define BOOTMAGIC_LITE_COLUMN 0
|
||||
//#define BOOTMAGIC_ROW 0
|
||||
//#define BOOTMAGIC_COLUMN 0
|
||||
|
||||
/* Double tap reset bootloader entry */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
@ -136,6 +151,7 @@
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25
|
||||
|
||||
/* RP2040 External SPI Flash Type */
|
||||
//#define RP2040_FLASH_W25Q080 // Default
|
||||
//#define RP2040_FLASH_GENERIC_03H
|
||||
|
||||
/* Mechanical lcoking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
@ -143,3 +159,28 @@
|
||||
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#if defined (ENCODER_ENABLE)
|
||||
//#define ENCODER_PAD_A { GP12 }
|
||||
//#define ENCODER_PAD_B { GP13 }
|
||||
|
||||
// For Multiple Encoders Setup
|
||||
// #define ENCODERS_PAD_A { encoder1a, encoder2a }
|
||||
// #define ENCODERS_PAD_B { encoder1b, encoder2b }
|
||||
|
||||
// #define ENCODER_DIRECTION_FLIP
|
||||
|
||||
//#define ENCODER_RESOLUTION 2
|
||||
|
||||
// For setting individual resolution for each encoder
|
||||
// #define ENCODER_RESOLUTIONS { 4, 2 }
|
||||
|
||||
// #define ENCODER_DEFAULT_POS 0x3
|
||||
#define ENCODER_MAP_KEY_DELAY 10
|
||||
#endif
|
||||
|
||||
/*
|
||||
#if defined(DIP_SWITCH_ENABLE)
|
||||
#define DIP_SWITCH_PINS { GP14 }
|
||||
#endif
|
||||
*/
|
@ -18,12 +18,13 @@
|
||||
|
||||
/* Enable RP2040 I2C Interface */
|
||||
#undef HAL_USE_I2C
|
||||
#define HAL_USE_I2C TRUE
|
||||
#define HAL_USE_I2C FALSE
|
||||
|
||||
/* Enable RP2040 SPI Interface */
|
||||
#undef HAL_USE_SPI
|
||||
#define HAL_USE_SPI TRUE
|
||||
#define SPI_USE_WAIT TRUE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
#define HAL_USE_SPI FALSE
|
||||
#define SPI_USE_WAIT FALSE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_NONE
|
||||
// #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
|
||||
#include_next <halconf.h>
|
||||
|
@ -1,43 +1,248 @@
|
||||
{
|
||||
"keyboard_name": "Protokeeb",
|
||||
"manufacturer": "A-Tech Officials",
|
||||
"url": "https://atechofficials.com/protokeeb",
|
||||
"maintainer": "A-Tech Officials",
|
||||
"usb": {
|
||||
"vid": "0x419A",
|
||||
"pid": "0x1717",
|
||||
"device_version": "1.0.0"
|
||||
"device_version": "1.0.0",
|
||||
"force_nkro": false,
|
||||
"max_power": 500,
|
||||
"no_startup_check": false,
|
||||
"polling_interval": 1,
|
||||
"shared_endpoint": {
|
||||
"keyboard": true,
|
||||
"mouse": false
|
||||
},
|
||||
"suspend_wakeup_delay": 0,
|
||||
"wait_for": false
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [{ "pin_a": "GP12", "pin_b": "GP13" }]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"development_board": "promicro_rp2040",
|
||||
"board": "GENERIC_RP_RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"debounce": 20,
|
||||
"bootmagic": {
|
||||
"matrix": [0, 0]
|
||||
"processor": "RP2040",
|
||||
"build": {
|
||||
"debounce_type": "sym_defer_g",
|
||||
"firmware_format": "uf2",
|
||||
"lto": false
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"rgblight": true,
|
||||
"extrakey": true,
|
||||
"mousekey": false,
|
||||
"nkro": true
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": false,
|
||||
"resync": false
|
||||
},
|
||||
"tap_capslock_delay": 80,
|
||||
"tap_keycode_delay": 0
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP6", "GP7", "GP8", "GP9"],
|
||||
"rows": ["GP2", "GP3", "GP4", "GP5"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"debounce": 20,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "7", "x": 0, "y": 0 },
|
||||
{ "label": "8", "x": 1, "y": 1 },
|
||||
{ "label": "9", "x": 2, "y": 2 },
|
||||
{ "label": "/", "x": 3, "y": 3 },
|
||||
{ "label": "4", "x": 0, "y": 0 },
|
||||
{ "label": "5", "x": 1, "y": 1 },
|
||||
{ "label": "6", "x": 2, "y": 2 },
|
||||
{ "label": "*", "x": 3, "y": 3 },
|
||||
{ "label": "1", "x": 0, "y": 0 },
|
||||
{ "label": "2", "x": 1, "y": 1 },
|
||||
{ "label": "3", "x": 2, "y": 2 },
|
||||
{ "label": "-", "x": 3, "y": 3 },
|
||||
{ "label": "MO(1)", "x": 0, "y": 0 },
|
||||
{ "label": "0", "x": 1, "y": 1 },
|
||||
{ "label": "+", "x": 2, "y": 2 },
|
||||
{ "label": "N.ENT", "x": 3, "y": 3 }
|
||||
{
|
||||
"label": "7",
|
||||
"matrix": [0, 0],
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "8",
|
||||
"matrix": [0, 1],
|
||||
"x": 1,
|
||||
"y": 0,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "9",
|
||||
"matrix": [0, 2],
|
||||
"x": 2,
|
||||
"y": 0,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "/",
|
||||
"matrix": [0, 3],
|
||||
"x": 3,
|
||||
"y": 0,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "4",
|
||||
"matrix": [1, 0],
|
||||
"x": 0,
|
||||
"y": 1,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "5",
|
||||
"matrix": [1, 1],
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "6",
|
||||
"matrix": [1, 2],
|
||||
"x": 2,
|
||||
"y": 1,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "*",
|
||||
"matrix": [1, 3],
|
||||
"x": 3,
|
||||
"y": 1,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "1",
|
||||
"matrix": [2, 0],
|
||||
"x": 0,
|
||||
"y": 2,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "2",
|
||||
"matrix": [2, 1],
|
||||
"x": 1,
|
||||
"y": 2,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "3",
|
||||
"matrix": [2, 2],
|
||||
"x": 2,
|
||||
"y": 2,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "-",
|
||||
"matrix": [2, 3],
|
||||
"x": 3,
|
||||
"y": 2,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "MO(1)",
|
||||
"matrix": [3, 0],
|
||||
"x": 0,
|
||||
"y": 3,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "0",
|
||||
"matrix": [3, 1],
|
||||
"x": 1,
|
||||
"y": 3,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "+",
|
||||
"matrix": [3, 2],
|
||||
"x": 2,
|
||||
"y": 3,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
},
|
||||
{
|
||||
"label": "N.ENT",
|
||||
"matrix": [3, 3],
|
||||
"x": 3,
|
||||
"y": 3,
|
||||
"w": 1,
|
||||
"h": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"audio": {
|
||||
"default": {
|
||||
"on": false,
|
||||
"clicky": false
|
||||
},
|
||||
"macro_beep": false,
|
||||
"pins": ["GP22"],
|
||||
"voices": false
|
||||
},
|
||||
"bootmagic": {
|
||||
"enabled": true,
|
||||
"matrix": [0, 0]
|
||||
},
|
||||
"dip_switch": {
|
||||
"enabled": true,
|
||||
"pins": ["GP14"]
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{
|
||||
"pin_a": "GP12",
|
||||
"pin_b": "GP13",
|
||||
"resolution": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"rgblight": {
|
||||
"led_count": 4,
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"hue_steps": 15,
|
||||
"saturation_steps": 15,
|
||||
"brightness_steps": 15,
|
||||
"default": {
|
||||
"animation": "static_light",
|
||||
"on": true,
|
||||
"hue": 0,
|
||||
"sat": 255,
|
||||
"val": 50,
|
||||
"speed": 0
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layers": {
|
||||
"blink": false,
|
||||
"enabled": false,
|
||||
"max": 8
|
||||
},
|
||||
"max_brightness": 127,
|
||||
"rgbw": false,
|
||||
"sleep": true,
|
||||
"split": false
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP10"
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,8 @@
|
||||
#undef RP_I2C_USE_I2C1
|
||||
#define RP_I2C_USE_I2C1 FALSE
|
||||
|
||||
//#define RP_I2C_BUSY_TIMEOUT 50
|
||||
//#define RP_I2C_USE_DMA TRUE
|
||||
// #define RP_I2C_BUSY_TIMEOUT 50
|
||||
// #define RP_I2C_USE_DMA TRUE
|
||||
|
||||
/* RP2040 SPI Driver Selection */
|
||||
#undef RP_SPI_USE_SPI0
|
||||
|
@ -7,7 +7,7 @@ Learn, build, modify easily as the Protokeeb is an open-source hardware project.
|
||||
The PCB is based on a Raspberry Pi Pico development board.
|
||||
Designed for developers and enthusiasts who wants to begin their journey in custom keyboards and keyboard firmware.
|
||||
Per key south facing ARGB LED and much more.
|
||||
For more info visit https://atechofficials.com/protokeeb.
|
||||
For more info visit https://github.com/atechofficials/protokeeb
|
||||
|
||||
- Keyboard Maintainer: [A-Tech Officials](https://github.com/atechofficials)
|
||||
- Hardware Supported: Protokeeb Keyboard PCB v1.x, Raspberry Pi Pico, Raspberry Pi Pico W, Waveshare RP2040-Plus
|
||||
@ -20,7 +20,7 @@ For more info visit https://atechofficials.com/protokeeb.
|
||||
This is the default layout that comes flashed on every Protokeeb.
|
||||
The deafult layout consists of 2 layers.
|
||||
1st layer for the 16-key numpad, excluding the NUM LOCK key.
|
||||
2nd layer for RGB led and keyboard boot options.
|
||||
2nd layer for RGB LED control and keyboard boot options.
|
||||
|
||||
Make example of this keyboard (after setting up your build environment):
|
||||
|
||||
@ -34,7 +34,8 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 2 ways:
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
- **Physical pcb buttons**: Briefly press and hold both the left and right (Bootsel and Reset) tactile push button located on the top left side of the Protokeeb, then keep holding the left (Bootsel) push button and release/let go the right (Reset) push button and then after 3-5 seconds also release/let go the left (Bootsel) push button to enter the bootloader mode.
|
||||
- **Bootmagic**: Press and hold the top left key (row-0, column-0) before plugging-in the keyboard to your PC/Laptop/host to enter the bootloader.
|
||||
- **Keycode in layout**: Press and hold the FN Key (row-4, column-1) then press the key mapped to `QK_BOOT` i.e ENTER Key (row-4, column-4) to enter the bootloader mode.
|
||||
|
@ -14,4 +14,27 @@
|
||||
* If not, see <https://www.gnu.org/licenses/gpl-3.0.html>.
|
||||
*/
|
||||
|
||||
#include "rev1.h"
|
||||
#include "rev1.h"
|
||||
|
||||
#if defined(DIP_SWITCH_ENABLE)
|
||||
bool dip_switch_update_kb(uint8_t index, bool active) {
|
||||
if(!dip_switch_update_user(index, active))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
switch (index) {
|
||||
case 0:
|
||||
// Encode Push Button Pressed
|
||||
if(active) {
|
||||
// Toggle Host Mute
|
||||
tap_code(KC_MUTE);
|
||||
}
|
||||
// Encoder Push Button Released
|
||||
else {
|
||||
// Do Nothing
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
@ -17,8 +17,9 @@
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
#define ____ KC_NO
|
||||
// #define ____ KC_NO
|
||||
|
||||
/*
|
||||
#define LAYOUT( \
|
||||
k00, k01, k02, k03, \
|
||||
k10, k11, k12, k13, \
|
||||
@ -30,3 +31,4 @@
|
||||
{ k20, k21, k22, k23, }, \
|
||||
{ k30, k31, k32, k33, } \
|
||||
}
|
||||
*/
|
@ -1,75 +1,27 @@
|
||||
# Build Options
|
||||
# Change yes to no to diable features
|
||||
# Change yes to no to diable feature
|
||||
|
||||
# Default keyboard folder
|
||||
DEFAULT_FOLDER = protokeeb/rev1
|
||||
|
||||
# Custom scanning of matrix
|
||||
#CUSTOM_MATRIX = lite
|
||||
|
||||
# SPI Flash driver
|
||||
#FLASH_DRIVER = spi
|
||||
|
||||
# EEPROM driver
|
||||
#EEPROM_DRIVER = spi
|
||||
#EEPROM_DRIVER = wear_leveling
|
||||
#WEAR_LEVELING_DRIVER = spi_flash
|
||||
|
||||
# OS detection
|
||||
OS_DETECTION_ENABLE = yes
|
||||
|
||||
# Enable Bootmagic Lite
|
||||
BOOTMAGIC_ENABLE = yes
|
||||
|
||||
# Development Board used
|
||||
#BOARD = GENERIC_RP_RP2040
|
||||
|
||||
# Bootlader Selection
|
||||
BOOTLOADER = rp2040
|
||||
|
||||
# Debounce Method
|
||||
#DEBOUNCE_TYPE = sym_defer_g # Default Method
|
||||
|
||||
# Mouse keys
|
||||
MOUSEKEY_ENABLE = no
|
||||
#MOUSEKEY_ENABLE = no
|
||||
|
||||
# Audio Control and System Control keys
|
||||
EXTRAKEY_ENABLE = yes
|
||||
#EXTRAKEY_ENABLE = yes
|
||||
|
||||
# Console for keyboard debug
|
||||
CONSOLE_ENABLE = no
|
||||
#CONSOLE_ENABLE = no
|
||||
|
||||
# Commands for debug and configuration
|
||||
COMMAND_ENABLE = no
|
||||
|
||||
# Enable N-Key Rollover
|
||||
NKRO_ENABLE = yes
|
||||
#COMMAND_ENABLE = no
|
||||
|
||||
# Enable keyboard RGB underglow
|
||||
RGBLIGHT_ENABLE = yes
|
||||
|
||||
# Enable RGB LED Matrix
|
||||
#RGB_MATRIX_ENABLE = yes
|
||||
#RGB_MATRIX_DRIVER = WS2812
|
||||
|
||||
# ARGB LED Driver used
|
||||
WS2812_DRIVER = vendor # For RP2040 MCU
|
||||
#RGBLIGHT_ENABLE = yes
|
||||
#RGBLIGHT_DRIVER = ws2812
|
||||
|
||||
# Enable Audio output
|
||||
AUDIO_ENABLE = no
|
||||
|
||||
# Refer: USB Endpoint Limitations
|
||||
KEYBOARD_SHARED_EP = yes
|
||||
MOUSE_SHARED_EP = no
|
||||
|
||||
# Rotary Encoder support
|
||||
ENCODER_ENABLE = no
|
||||
#AUDIO_ENABLE = no
|
||||
|
||||
# MIDI Enable
|
||||
MIDI_ENABLE = no
|
||||
|
||||
# OLED Enable
|
||||
OLED_ENABLE = no
|
||||
|
||||
# OLED Display Driver
|
||||
OLED_DRIVER = SSD1306
|
||||
MIDI_ENABLE = no
|
49
keyboards/protokeeb/rules.mk
Normal file
49
keyboards/protokeeb/rules.mk
Normal file
@ -0,0 +1,49 @@
|
||||
# Build Options
|
||||
# Change yes to no to diable feature
|
||||
|
||||
# Custom scanning of matrix
|
||||
#CUSTOM_MATRIX = lite
|
||||
|
||||
# SPI Flash driver
|
||||
#FLASH_DRIVER = spi
|
||||
|
||||
# EEPROM driver
|
||||
#EEPROM_DRIVER = spi
|
||||
#EEPROM_DRIVER = wear_leveling
|
||||
#WEAR_LEVELING_DRIVER = spi_flash
|
||||
|
||||
# Debounce Method
|
||||
#DEBOUNCE_TYPE = sym_defer_g # Default Method
|
||||
|
||||
# OS detection
|
||||
OS_DETECTION_ENABLE = yes
|
||||
|
||||
# Enable Bootmagic Lite
|
||||
#BOOTMAGIC_ENABLE = yes
|
||||
|
||||
# Development Board used
|
||||
#BOARD = GENERIC_RP_RP2040
|
||||
|
||||
# Bootlader Selection
|
||||
#BOOTLOADER = rp2040
|
||||
|
||||
# Enable N-Key Rollover
|
||||
#NKRO_ENABLE = yes
|
||||
|
||||
# ARGB LED Driver used
|
||||
#WS2812_DRIVER = vendor # For RP2040 MCU
|
||||
|
||||
# Rotary Encoder support
|
||||
ENCODER_ENABLE = yes
|
||||
# Rotary Encoder Keymap support
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
# DIP Switch support
|
||||
# Note: Here using for Encoder Push Button Functionality
|
||||
#DIP_SWITCH_ENABLE = yes
|
||||
# DIP Switch Keymap support
|
||||
DIP_SWITCH_MAP_ENABLE = no
|
||||
|
||||
# Refer: USB Endpoint Limitations
|
||||
#KEYBOARD_SHARED_EP = yes
|
||||
#MOUSE_SHARED_EP = no
|
Loading…
Reference in New Issue
Block a user