diff options
author | Danny <nooges@users.noreply.github.com> | 2022-03-14 14:08:10 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-14 11:08:10 -0700 |
commit | a12d58c6c965254bdf40ae0f02a6644e183eb17c (patch) | |
tree | 9f59796c90fa7e6d2112605a2abc8643ac7bc649 /keyboards/keebio/bamfk1 | |
parent | 6a6a333c75e60692c4497aafe949e6304b22f8b8 (diff) |
[Keyboard] Add BAMFK-1 (#16409)
Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'keyboards/keebio/bamfk1')
-rw-r--r-- | keyboards/keebio/bamfk1/bamfk1.c | 4 | ||||
-rw-r--r-- | keyboards/keebio/bamfk1/bamfk1.h | 14 | ||||
-rw-r--r-- | keyboards/keebio/bamfk1/config.h | 113 | ||||
-rw-r--r-- | keyboards/keebio/bamfk1/info.json | 19 | ||||
-rw-r--r-- | keyboards/keebio/bamfk1/keymaps/default/keymap.c | 39 | ||||
-rw-r--r-- | keyboards/keebio/bamfk1/keymaps/default/rules.mk | 1 | ||||
-rw-r--r-- | keyboards/keebio/bamfk1/keymaps/via/keymap.c | 39 | ||||
-rw-r--r-- | keyboards/keebio/bamfk1/keymaps/via/rules.mk | 2 | ||||
-rw-r--r-- | keyboards/keebio/bamfk1/readme.md | 27 | ||||
-rw-r--r-- | keyboards/keebio/bamfk1/rules.mk | 21 |
10 files changed, 279 insertions, 0 deletions
diff --git a/keyboards/keebio/bamfk1/bamfk1.c b/keyboards/keebio/bamfk1/bamfk1.c new file mode 100644 index 0000000000..eddd7e624e --- /dev/null +++ b/keyboards/keebio/bamfk1/bamfk1.c @@ -0,0 +1,4 @@ +// Copyright 2021 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "bamfk1.h" diff --git a/keyboards/keebio/bamfk1/bamfk1.h b/keyboards/keebio/bamfk1/bamfk1.h new file mode 100644 index 0000000000..be1fd00808 --- /dev/null +++ b/keyboards/keebio/bamfk1/bamfk1.h @@ -0,0 +1,14 @@ +// Copyright 2021 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + k00, e01, e02, \ + e01a, e01b, e02a, e02b \ +) { \ + { k00, e01, e02, KC_NO }, \ + { e01a, e01b, e02a, e02b } \ +} diff --git a/keyboards/keebio/bamfk1/config.h b/keyboards/keebio/bamfk1/config.h new file mode 100644 index 0000000000..5cd86a9d16 --- /dev/null +++ b/keyboards/keebio/bamfk1/config.h @@ -0,0 +1,113 @@ +// Copyright 2021 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB10 +#define PRODUCT_ID 0x1111 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Keebio +#define PRODUCT BAMFK-1 + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + */ + +#define DIRECT_PINS { \ + { E6, B6, D6, NO_PIN }, \ + { NO_PIN, NO_PIN, NO_PIN, NO_PIN } \ +} +#define AUDIO_PIN C6 +#ifdef AUDIO_ENABLE +# define STARTUP_SONG SONG(STARTUP_SOUND) +#endif + +#define ENCODERS_PAD_A { C7, D7 } +#define ENCODERS_PAD_B { B5, D4 } +#define ENCODERS 2 +#define ENCODERS_CW_KEY { { 1, 1 }, { 3, 1 } } +#define ENCODERS_CCW_KEY { { 0, 1 }, { 2, 1 } } + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +# 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 +#endif +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * 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 + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/keebio/bamfk1/info.json b/keyboards/keebio/bamfk1/info.json new file mode 100644 index 0000000000..817eb98af0 --- /dev/null +++ b/keyboards/keebio/bamfk1/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "BAMFK-1", + "url": "https://keeb.io", + "maintainer": "nooges", + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "k00", "x": 1.5, "y": 0, "h":2, "w": 2}, + {"label": "k01", "x": 0.5, "y": 2.25}, + {"label": "k02", "x": 3.5, "y": 2.25}, + + {"label": "k10", "x": 0, "y": 3.5}, + {"label": "k11", "x": 1, "y": 3.5}, + {"label": "k12", "x": 3, "y": 3.5}, + {"label": "k13", "x": 4, "y": 3.5} + ] + } + } +} diff --git a/keyboards/keebio/bamfk1/keymaps/default/keymap.c b/keyboards/keebio/bamfk1/keymaps/default/keymap.c new file mode 100644 index 0000000000..aa0780eafc --- /dev/null +++ b/keyboards/keebio/bamfk1/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2021 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _MAIN, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT( + KC_A, // Big Switch + MO(1), KC_MUTE, // Encoder presses + KC_DOWN, KC_UP, // Left encoder turns + KC_VOLD, KC_VOLU // Right encoder turns + ), + [_FN1] = LAYOUT( + KC_B, // Big Switch + _______, KC_C, // Encoder presses + KC_PGDN, KC_PGUP, // Left encoder turns + KC_VOLU, KC_VOLD // Right encoder turns + ), + [_FN2] = LAYOUT( + _______, // Big Switch + _______, _______, // Encoder presses + _______, _______, // Left encoder turns + _______, _______ // Right encoder turns + ), + [_FN3] = LAYOUT( + _______, // Big Switch + _______, _______, // Encoder presses + _______, _______, // Left encoder turns + _______, _______ // Right encoder turns + ) +}; diff --git a/keyboards/keebio/bamfk1/keymaps/default/rules.mk b/keyboards/keebio/bamfk1/keymaps/default/rules.mk new file mode 100644 index 0000000000..4da205a168 --- /dev/null +++ b/keyboards/keebio/bamfk1/keymaps/default/rules.mk @@ -0,0 +1 @@ +LTO_ENABLE = yes diff --git a/keyboards/keebio/bamfk1/keymaps/via/keymap.c b/keyboards/keebio/bamfk1/keymaps/via/keymap.c new file mode 100644 index 0000000000..e7cde2d7ee --- /dev/null +++ b/keyboards/keebio/bamfk1/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2021 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _MAIN, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT( + RGB_MOD, // Big Switch + FN_MO13, KC_MUTE, // Encoder presses + KC_DOWN, KC_UP, // Left encoder turns + KC_VOLD, KC_VOLU // Right encoder turns + ), + [_FN1] = LAYOUT( + KC_B, // Big Switch + _______, KC_C, // Encoder presses + KC_PGDN, KC_PGUP, // Left encoder turns + KC_VOLU, KC_VOLD // Right encoder turns + ), + [_FN2] = LAYOUT( + _______, // Big Switch + _______, _______, // Encoder presses + _______, _______, // Left encoder turns + _______, _______ // Right encoder turns + ), + [_FN3] = LAYOUT( + _______, // Big Switch + _______, _______, // Encoder presses + _______, _______, // Left encoder turns + _______, _______ // Right encoder turns + ) +}; diff --git a/keyboards/keebio/bamfk1/keymaps/via/rules.mk b/keyboards/keebio/bamfk1/keymaps/via/rules.mk new file mode 100644 index 0000000000..36b7ba9cbc --- /dev/null +++ b/keyboards/keebio/bamfk1/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/keebio/bamfk1/readme.md b/keyboards/keebio/bamfk1/readme.md new file mode 100644 index 0000000000..a90ee8ac8c --- /dev/null +++ b/keyboards/keebio/bamfk1/readme.md @@ -0,0 +1,27 @@ +# BAMFK-1 + +![bamfk1](https://cdn.shopify.com/s/files/1/1851/5125/products/bamfk-1-back_1100x.png?v=1635304218) + +PCB for the Big Switch with support for horizontal rotary encoders. + +* Keyboard Maintainer: [Keebio](https://github.com/nooges) +* Hardware Supported: BAMFK-1 PCB +* Hardware Availability: [Keebio](https://keeb.io/) + +Make example for this keyboard (after setting up your build environment): + + make keebio/bamfk1:default + +Flashing example for this keyboard: + + make keebio/bamfk1: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 or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/keebio/bamfk1/rules.mk b/keyboards/keebio/bamfk1/rules.mk new file mode 100644 index 0000000000..abcf10c871 --- /dev/null +++ b/keyboards/keebio/bamfk1/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = yes # Audio output +ENCODER_ENABLE = yes + +SRC += encoder_actions.c |