From 84920ff5f4c1dfb3c84ca175899f81804be30396 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Thu, 10 Nov 2022 08:26:43 +1100 Subject: [PATCH] Addition of the Binepad BN006 6-key macropad (#18810) --- keyboards/binepad/bn006/config.h | 79 +++++++++++++++++++ keyboards/binepad/bn006/info.json | 52 ++++++++++++ .../binepad/bn006/keymaps/default/keymap.c | 18 +++++ keyboards/binepad/bn006/keymaps/via/keymap.c | 33 ++++++++ keyboards/binepad/bn006/keymaps/via/rules.mk | 4 + keyboards/binepad/bn006/readme.md | 26 ++++++ keyboards/binepad/bn006/rules.mk | 5 ++ 7 files changed, 217 insertions(+) create mode 100755 keyboards/binepad/bn006/config.h create mode 100755 keyboards/binepad/bn006/info.json create mode 100755 keyboards/binepad/bn006/keymaps/default/keymap.c create mode 100755 keyboards/binepad/bn006/keymaps/via/keymap.c create mode 100644 keyboards/binepad/bn006/keymaps/via/rules.mk create mode 100755 keyboards/binepad/bn006/readme.md create mode 100755 keyboards/binepad/bn006/rules.mk diff --git a/keyboards/binepad/bn006/config.h b/keyboards/binepad/bn006/config.h new file mode 100755 index 0000000000..9a06ef50ee --- /dev/null +++ b/keyboards/binepad/bn006/config.h @@ -0,0 +1,79 @@ +/* Copyright 2022 Binepad (@binpad) */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +/* + * Wear Leveling EEPROM Emulation + */ + +#define WEAR_LEVELING_LOGICAL_SIZE 2048 // Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. +#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) // Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size. + + +/* + * RGB Matrix + */ + +#ifdef RGB_MATRIX_ENABLE + /* =========================================================================================== + * PLEASE NOTE: Because the BN006 only has 6 keys, not all the animations are visually viable + * =========================================================================================== */ + + #define RGB_DI_PIN B15 + #define DRIVER_LED_TOTAL 6 + #define RGB_MATRIX_KEYPRESSES // reacts to keypresses + #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 + #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_BREATHING // Sets the default mode, if none has been set + #define RGB_TRIGGER_ON_KEYDOWN // Triggers RGB keypress events on key down. This makes RGB control feel more responsive. This may cause RGB to not function properly on some boards + + // 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_SOLID_COLOR + // #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 +#endif diff --git a/keyboards/binepad/bn006/info.json b/keyboards/binepad/bn006/info.json new file mode 100755 index 0000000000..c0147a564e --- /dev/null +++ b/keyboards/binepad/bn006/info.json @@ -0,0 +1,52 @@ +{ + "manufacturer": "Binepad", + "keyboard_name": "BN006", + "maintainer": "Binepad", + "bootloader": "stm32duino", + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A15", "B3", "B4"], + "rows": ["A8", "C14"] + }, + "processor": "STM32F103", + "url": "https://binepad.com", + "usb": { + "vid": "0x4249", + "pid": "0x426E", + "device_version": "1.0.0" + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 112, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 224, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [1, 1], "x": 112, "y": 64 }, + { "flags": 4, "matrix": [1, 2], "x": 224, "y": 64 } + ] + }, + "community_layouts": ["ortho_2x3"], + "layouts": { + "LAYOUT_ortho_2x3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 } + ] + } + } +} diff --git a/keyboards/binepad/bn006/keymaps/default/keymap.c b/keyboards/binepad/bn006/keymaps/default/keymap.c new file mode 100755 index 0000000000..a79ff505a1 --- /dev/null +++ b/keyboards/binepad/bn006/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +/* Copyright 2022 Binepad (@binpad) */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ A │ B │ C │ + * ├───┼───┼───┤ + * │ D │ E │ F │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_2x3( + KC_MPLY, KC_MUTE, KC_VOLU, + KC_MPRV, KC_MNXT, KC_VOLD + ) +}; diff --git a/keyboards/binepad/bn006/keymaps/via/keymap.c b/keyboards/binepad/bn006/keymaps/via/keymap.c new file mode 100755 index 0000000000..1ee98f890c --- /dev/null +++ b/keyboards/binepad/bn006/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Binepad (@binpad) */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ A │ B │ C │ + * ├───┼───┼───┤ + * │ D │ E │ F │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_2x3( + KC_MPLY, KC_MUTE, KC_VOLU, + KC_MPRV, KC_MNXT, KC_VOLD + ), + + [1] = LAYOUT_ortho_2x3( + _______, _______, _______, + _______, _______, _______ + ), + + [2] = LAYOUT_ortho_2x3( + _______, _______, _______, + _______, _______, _______ + ), + + [3] = LAYOUT_ortho_2x3( + _______, _______, _______, + _______, _______, _______ + ) +}; diff --git a/keyboards/binepad/bn006/keymaps/via/rules.mk b/keyboards/binepad/bn006/keymaps/via/rules.mk new file mode 100644 index 0000000000..78ee487f45 --- /dev/null +++ b/keyboards/binepad/bn006/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +# Copyright 2022 Binepad (@binpad) +# SPDX-License-Identifier: GPL-2.0-or-later + +VIA_ENABLE = yes diff --git a/keyboards/binepad/bn006/readme.md b/keyboards/binepad/bn006/readme.md new file mode 100755 index 0000000000..1964b5dced --- /dev/null +++ b/keyboards/binepad/bn006/readme.md @@ -0,0 +1,26 @@ +# BINEPAD BN006 + +The BN006 is a CNC machined 6-key macropad + +* Keyboard Maintainer: [Binepad](https://github.com/binepad) +* Hardware Supported: BN006 +* Hardware Availability: [Binepad.com](https://www.binepad.com/bn006) + +Make example for this keyboard (after setting up your build environment): + + make binepad/bn006:default + +Flashing example for this keyboard: + + make binepad/bn006: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 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` *(or `RESET`)* if it is available diff --git a/keyboards/binepad/bn006/rules.mk b/keyboards/binepad/bn006/rules.mk new file mode 100755 index 0000000000..58561c984b --- /dev/null +++ b/keyboards/binepad/bn006/rules.mk @@ -0,0 +1,5 @@ +# Copyright 2022 Binepad (@binpad) +# SPDX-License-Identifier: GPL-2.0-or-later + +EPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash