[Keyboard] Add Blue Team Pad (#19807)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
master
Thomas 2023-02-12 15:09:43 -05:00 committed by GitHub
parent 3f45fd4924
commit 9a654e5728
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 214 additions and 0 deletions

View File

@ -0,0 +1,38 @@
// Copyright 2022-2023 Thomas Autiello Jr (@fearherbs1)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
#ifdef OLED_ENABLE
bool oled_task_kb(void) {
if (!oled_task_user()) {
return false;
}
// Host Keyboard Layer Status
oled_write_P(PSTR("Blue Team Pad \nCurrent Layer: "), false);
switch (get_highest_layer(layer_state)) {
case 0:
oled_write_P(PSTR("0\n"), false);
break;
case 1:
oled_write_P(PSTR("1\n"), false);
break;
case 2:
oled_write_P(PSTR("2\n"), false);
break;
case 3:
oled_write_P(PSTR("3\n"), false);
break;
case 4:
oled_write_P(PSTR("4\n"), false);
break;
case 5:
oled_write_P(PSTR("5\n"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("Undefined"), false);
}
return false;
}
#endif

View File

@ -0,0 +1,14 @@
// Copyright 2022-2023 Thomas Autiello Jr (@fearherbs1)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "config_common.h"
#ifdef OLED_ENABLE
#define I2C1_SCL_PIN GP27
#define I2C1_SDA_PIN GP26
#define I2C_DRIVER I2CD2
#define OLED_DISPLAY_128X32
#define OLED_BRIGHTNESS 128
#endif

View File

@ -0,0 +1,8 @@
// Copyright 2022-2023 Thomas Autiello Jr (@fearherbs1)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>

View File

@ -0,0 +1,61 @@
{
"keyboard_name": "blue_team_pad",
"maintainer": "fearherbs1",
"manufacturer": "fearherbs1",
"processor": "RP2040",
"bootloader": "rp2040",
"url": "https://github.com/fearherbs1/blue-team-pad",
"usb": {
"vid": "0x4648",
"pid": "0x4254",
"device_version": "1.1.0"
},
"features": {
"encoder": true,
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"console": true,
"command": false,
"nkro": true
},
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["GP24", "GP23", "GP21", "GP20", "GP3"],
"rows": ["GP2", "GP11", "GP10", "GP9", "GP8"]
},
"encoder": {
"rotary": [
{ "pin_a": "GP25", "pin_b": "GP28", "resolution": 2 },
{ "pin_a": "GP1", "pin_b": "GP0", "resolution": 2 }
]
},
"layouts": {
"LAYOUT": {
"layout": [
{ "matrix": [0, 0], "x": 0.0, "y": 0.0 },
{ "matrix": [0, 4], "x": 4.0, "y": 0.0 },
{ "matrix": [1, 0], "x": 0.0, "y": 2.0 },
{ "matrix": [1, 1], "x": 1.0, "y": 2.0 },
{ "matrix": [1, 2], "x": 2.0, "y": 2.0 },
{ "matrix": [1, 3], "x": 3.0, "y": 2.0 },
{ "matrix": [1, 4], "x": 4.0, "y": 2.0 },
{ "matrix": [2, 0], "x": 0.0, "y": 3.0 },
{ "matrix": [2, 1], "x": 1.0, "y": 3.0 },
{ "matrix": [2, 2], "x": 2.0, "y": 3.0 },
{ "matrix": [2, 3], "x": 3.0, "y": 3.0 },
{ "matrix": [2, 4], "x": 4.0, "y": 3.0 },
{ "matrix": [3, 0], "x": 0.0, "y": 4.0 },
{ "matrix": [3, 1], "x": 1.0, "y": 4.0 },
{ "matrix": [3, 2], "x": 2.0, "y": 4.0 },
{ "matrix": [3, 3], "x": 3.0, "y": 4.0 },
{ "matrix": [3, 4], "x": 4.0, "y": 4.0 },
{ "matrix": [4, 0], "x": 0.0, "y": 5.0 },
{ "matrix": [4, 1], "x": 1.0, "y": 5.0 },
{ "matrix": [4, 2], "x": 2.0, "y": 5.0 },
{ "matrix": [4, 3], "x": 3.0, "y": 5.0 },
{ "matrix": [4, 4], "x": 4.0, "y": 5.0 }
]
}
}
}

View File

@ -0,0 +1,22 @@
// Copyright 2022-2023 Thomas Autiello Jr (@fearherbs1)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE, KC_MPLY,
KC_1, KC_2, KC_3, KC_4, KC_5,
KC_1, KC_2, KC_3, KC_4, KC_5,
KC_1, KC_2, KC_3, KC_4, KC_5,
KC_1, KC_2, KC_3, KC_4, KC_5
),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
};
#endif

View File

@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,6 @@
// Copyright 2022-2023 Thomas Autiello Jr (@fearherbs1)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define DYNAMIC_KEYMAP_LAYER_COUNT 6

View File

@ -0,0 +1,21 @@
// Copyright 2022-2023 Thomas Autiello Jr (@fearherbs1)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE, KC_MPLY,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
),
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
};
#endif

View File

@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,9 @@
// Copyright 2022-2023 Thomas Autiello Jr (@fearherbs1)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef RP_I2C_USE_I2C1
#define RP_I2C_USE_I2C1 TRUE

View File

@ -0,0 +1,30 @@
# Blue Team Pad
![blue_team_pad](https://i.imgur.com/U8LNofvh.jpeg)
An open source macropad for the cyber security analyst.
The Blue Team Pad is a RP2040 based 4x5 macropad with two rotary encoders and OLED display.
It was specifically designed with the maximum possible space for macros supported by QMK. This allows the analyst to store various triage & remediation commands for quick access.
* Keyboard Maintainer: [Thomas Autiello Jr](https://github.com/fearherbs1)
* Hardware Supported: Custom RP2040 Based PCB
* Hardware Availability: https://github.com/fearherbs1/blue-team-pad
Make example for this keyboard (after setting up your build environment):
make fearherbs1/blue_team_pad:default
Flashing example for this keyboard:
make fearherbs1/blue_team_pad:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 2 ways:
* **Bootmagic reset**: Hold down the upper left encoder and plug in the keyboard
* **Physical reset button**: Briefly short the two "BOOT" pads on the back side of the pcb

View File

@ -0,0 +1,2 @@
OLED_ENABLE = yes
OLED_DRIVER = SSD1306