diff --git a/keyboards/mechwild/bbs/config.h b/keyboards/mechwild/bbs/config.h index b626e5590d..1858b6b9a6 100644 --- a/keyboards/mechwild/bbs/config.h +++ b/keyboards/mechwild/bbs/config.h @@ -3,23 +3,6 @@ #pragma once -/* 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 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT +#define WS2812_PWM_DRIVER PWMD4 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 diff --git a/keyboards/mechwild/bbs/halconf.h b/keyboards/mechwild/bbs/halconf.h new file mode 100644 index 0000000000..6d3deb6a24 --- /dev/null +++ b/keyboards/mechwild/bbs/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2024 QMK Contributors (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/mechwild/bbs/keyboard.json b/keyboards/mechwild/bbs/keyboard.json index c0ba888d9a..8985c4526a 100644 --- a/keyboards/mechwild/bbs/keyboard.json +++ b/keyboards/mechwild/bbs/keyboard.json @@ -1,29 +1,60 @@ { - "keyboard_name": "BB Steno", "manufacturer": "MechWild", + "keyboard_name": "BB Steno", "maintainer": "kylemccreery", - "url": "https://mechwild.com/product/bb-steno/", - "usb": { - "vid": "0x6D77", - "pid": "0x170E", - "device_version": "0.0.1", - "force_nkro": true - }, - "matrix_pins": { - "cols": ["B0", "A7", "A6", "A5", "A4", "A3"], - "rows": ["B12", "B10", "B13", "B1", "B14"] - }, + "bootloader_instructions": "Hold down the BOOT button, then tap the NRST button on the BlackPill. Avoid touching the A11 and A12 pins.", + "development_board": "blackpill_f401", "diode_direction": "COL2ROW", "dip_switch": { "pins": ["A0"] }, + "features": { + "bootmagic": true, + "dip_switch": true, + "nkro": true, + "rgblight": true, + "steno": true + }, "indicators": { "caps_lock": "C13", "on_state": 0 }, - "processor": "STM32F401", - "bootloader": "stm32-dfu", - "board": "BLACKPILL_STM32_F401", + "matrix_pins": { + "cols": ["B0", "A7", "A6", "A5", "A4", "A3"], + "rows": ["B12", "B10", "B13", "B1", "B14"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 8, + "led_count": 6, + "saturation_steps": 8, + "sleep": true + }, + "url": "https://mechwild.com/product/bb-steno/", + "usb": { + "device_version": "1.1.0", + "force_nkro": true, + "pid": "0x170E", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6D77" + }, + "ws2812": { + "driver": "pwm", + "pin": "B9" + }, "layouts": { "LAYOUT": { "layout": [ @@ -33,32 +64,27 @@ {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0.125}, {"matrix": [0, 5], "x": 5, "y": 0.125}, - {"matrix": [1, 0], "x": 6.75, "y": 0.125}, {"matrix": [1, 1], "x": 7.75, "y": 0.125}, {"matrix": [1, 2], "x": 8.75, "y": 0}, {"matrix": [1, 3], "x": 9.75, "y": 0.125}, {"matrix": [1, 4], "x": 10.75, "y": 0.375}, {"matrix": [1, 5], "x": 11.75, "y": 0.375}, - {"matrix": [2, 0], "x": 0, "y": 1.375}, {"matrix": [2, 1], "x": 1, "y": 1.375}, {"matrix": [2, 2], "x": 2, "y": 1.125}, {"matrix": [2, 3], "x": 3, "y": 1}, {"matrix": [2, 4], "x": 4, "y": 1.125}, {"matrix": [2, 5], "x": 5, "y": 1.125}, - {"matrix": [3, 0], "x": 6.75, "y": 1.125}, {"matrix": [3, 1], "x": 7.75, "y": 1.125}, {"matrix": [3, 2], "x": 8.75, "y": 1}, {"matrix": [3, 3], "x": 9.75, "y": 1.125}, {"matrix": [3, 4], "x": 10.75, "y": 1.375}, {"matrix": [3, 5], "x": 11.75, "y": 1.375}, - {"matrix": [4, 3], "x": 2.75, "y": 3.125, "h": 1.5}, {"matrix": [4, 4], "x": 3.75, "y": 3.125, "h": 1.5}, {"matrix": [4, 5], "x": 4.75, "y": 2.875, "h": 1.5}, - {"matrix": [4, 0], "x": 7, "y": 2.875, "h": 1.5}, {"matrix": [4, 1], "x": 8, "y": 3.125, "h": 1.5}, {"matrix": [4, 2], "x": 9, "y": 3.125, "h": 1.5} diff --git a/keyboards/mechwild/bbs/keymaps/default/keymap.c b/keyboards/mechwild/bbs/keymaps/default/keymap.c index 146099fba7..a37c670590 100644 --- a/keyboards/mechwild/bbs/keymaps/default/keymap.c +++ b/keyboards/mechwild/bbs/keymaps/default/keymap.c @@ -3,22 +3,11 @@ #include QMK_KEYBOARD_H -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE, - _FN1 -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT( + [0] = LAYOUT( STN_RES1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, STN_RES2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, STN_A, STN_O, STN_N1, STN_N2, STN_E, STN_U - ), - [_FN1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/mechwild/bbs/mcuconf.h b/keyboards/mechwild/bbs/mcuconf.h new file mode 100644 index 0000000000..4902b4a120 --- /dev/null +++ b/keyboards/mechwild/bbs/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 QMK Contributors (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE diff --git a/keyboards/mechwild/bbs/readme.md b/keyboards/mechwild/bbs/readme.md index 530717b800..d606e90cb5 100644 --- a/keyboards/mechwild/bbs/readme.md +++ b/keyboards/mechwild/bbs/readme.md @@ -5,7 +5,8 @@ A bare-bones stenography keyboard. No bells or whistles. Simple, cheap, effective, steno. * Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery) -* Hardware Supported: BBS v0.1 +* Hardware Supported: BBS v0.1, v1.1 + * v0.1 PCBs were miswired for WS2812 RGB LED strips. As the data pin is the same, a strip could still be added with some handwiring. * Hardware Availability: [BBS on MechWild](https://mechwild.com/product/bb-steno/) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/mechwild/bbs/rules.mk b/keyboards/mechwild/bbs/rules.mk deleted file mode 100644 index 6dbff620b8..0000000000 --- a/keyboards/mechwild/bbs/rules.mk +++ /dev/null @@ -1,17 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes # Dip Switch Enabled - -# Necessary for stenography functionality -STENO_ENABLE = yes # Enable stenography endpoint -NKRO_ENABLE = yes # Enable N-Key Rollover -KEYBOARD_SHARED_EP = yes # Needed to free up an endpoint in blackpill \ No newline at end of file