~ruther/qmk_firmware

b99ccd4f064e15c7ea94184986e396603bfa1dc2 — jack 3 years ago 5a126e1
[Keyboard] boardsource/beiwagon data driven (#17631)

9 files changed, 81 insertions(+), 249 deletions(-)

D keyboards/boardsource/beiwagon/beiwagon.c
D keyboards/boardsource/beiwagon/beiwagon.h
M keyboards/boardsource/beiwagon/config.h
M keyboards/boardsource/beiwagon/info.json
M keyboards/boardsource/beiwagon/keymaps/default/keymap.c
D keyboards/boardsource/beiwagon/keymaps/default/readme.md
M keyboards/boardsource/beiwagon/keymaps/via/keymap.c
D keyboards/boardsource/beiwagon/keymaps/via/readme.md
M keyboards/boardsource/beiwagon/rules.mk
D keyboards/boardsource/beiwagon/beiwagon.c => keyboards/boardsource/beiwagon/beiwagon.c +0 -38
@@ 1,38 0,0 @@
/* Copyright 2020 Boardsource
 *
 * 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 2 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 <http://www.gnu.org/licenses/>.
 */

#include "beiwagon.h"
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
  {7,8,9},
    {10,11,12},
    {13,14,15},
    {16,17,18}
}, {
   {2, 0}, {1, 0}, {0, 0},
   {2, 1}, {1, 1}, {0, 1},
   {2, 2}, {1, 2}, {0, 2},
   {2, 3}, {1, 3}, {0, 3},
}, {
    2, 2, 2, 2, 2, 2, 
    1, 1, 1,
    1, 4, 1,
    1, 4, 1,
    1, 1, 1 

} };
#endif


D keyboards/boardsource/beiwagon/beiwagon.h => keyboards/boardsource/beiwagon/beiwagon.h +0 -32
@@ 1,32 0,0 @@
/* Copyright 2020 Boardsource
 *
 * 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 2 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 <http://www.gnu.org/licenses/>.
 */

#pragma once

#include "quantum.h"

#define LAYOUT( \
    K00, K01, K02, \
    K10, K11, K12, \
    K20, K21, K22, \
    K30, K31, K32\
    ) { \
        {K00, K01, K02 }, \
        {K10, K11, K12 }, \
        {K20, K21, K22 }, \
        {K30, K31, K32 } \
    }


M keyboards/boardsource/beiwagon/config.h => keyboards/boardsource/beiwagon/config.h +2 -115
@@ 1,5 1,5 @@
/*
Copyright 2020 Boardsource
Copyright 2022 Boardsource

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


@@ 16,62 16,18 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID    0x4273
#define PRODUCT_ID   0x0066
#define DEVICE_VER   0x0001
#define MANUFACTURER Boardsource
#define PRODUCT      Beiwagon

/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 3

/*
 * Keyboard Matrix Assignments
 *
 * Change this to how you wired your keyboard
 * COLS: AVR pins used for columns, left to right
 * ROWS: AVR pins used for rows, top to bottom
 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
 *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
 *
 */
#define MATRIX_ROW_PINS {B0, B1, B2, B3}
#define MATRIX_COL_PINS {B5,B6,B7}
#define UNUSED_PINS

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

//#define BACKLIGHT_PIN B7
//#define BACKLIGHT_LEVELS 3
#define BACKLIGHT_BREATHING
#define RGBLIGHT_ANIMATIONS
#define RGB_DI_PIN C6
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
// 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_ALPHAS_MODS
#define DRIVER_LED_TOTAL 18
#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


@@ 85,81 41,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#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
#ifdef RGBLIGHT_ENABLE
#define RGBLED_NUM 6    // Number of LEDs
#endif

#define DRIVER_LED_TOTAL  22

/* 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

M keyboards/boardsource/beiwagon/info.json => keyboards/boardsource/beiwagon/info.json +61 -23
@@ 1,26 1,64 @@
{
    "keyboard_name": "Beiwagon",
    "url": "",
    "maintainer": "Boardsource",
    "layouts": {
        "LAYOUT": {
            "layout": [
                { "label": "k00", "x": 0, "y": 0 },
                { "label": "k01", "x": 1, "y": 0 },
                { "label": "k02", "x": 2, "y": 0 },

                { "label": "k10", "x": 0, "y": 1 },
                { "label": "k11", "x": 1, "y": 1 },
                { "label": "k12", "x": 2, "y": 1 },

                { "label": "k20", "x": 0, "y": 2 },
                { "label": "k21", "x": 1, "y": 2 },
                { "label": "k22", "x": 2, "y": 2 },

                { "label": "k30", "x": 0, "y": 3 },
                { "label": "k31", "x": 1, "y": 3 },
                { "label": "k32", "x": 2, "y": 3 }
            ]
        }
  "manufacturer": "Boardsource",
  "keyboard_name": "Beiwagon",
  "maintainer": "waffle87",
  "bootloader": "atmel-dfu",
  "diode_direction": "COL2ROW",
  "features": {
    "bootmagic": true,
    "extrakey": true,
    "mousekey": false,
    "rgb_matrix": true
  },
  "matrix_pins": {
    "cols": ["B5", "B6", "B7"],
    "rows": ["B0", "B1", "B2", "B3"]
  },
  "processor": "atmega32u4",
  "url": "https://boardsource.xyz/store/5ffbfe2ab855550844cab109",
  "usb": {
    "device_version": "1.0.0",
    "pid": "0x0066",
    "vid": "0x4273"
  },
  "rgb_matrix": {
    "layout": [
      { "flags": 2, "x": 16, "y": 38 },
      { "flags": 2, "x": 16, "y": 113 },
      { "flags": 2, "x": 16, "y": 188 },
      { "flags": 2, "x": 48, "y": 38 },
      { "flags": 2, "x": 48, "y": 113 },
      { "flags": 2, "x": 48, "y": 188 },
      { "flags": 4, "matrix": [0, 0], "x": 0,  "y": 0 },
      { "flags": 4, "matrix": [0, 1], "x": 32, "y": 0 },
      { "flags": 4, "matrix": [0, 2], "x": 64, "y": 0 },
      { "flags": 4, "matrix": [1, 0], "x": 0,  "y": 75 },
      { "flags": 4, "matrix": [1, 1], "x": 32, "y": 75 },
      { "flags": 4, "matrix": [1, 2], "x": 64, "y": 75 },
      { "flags": 4, "matrix": [2, 0], "x": 0,  "y": 150 },
      { "flags": 4, "matrix": [2, 1], "x": 32, "y": 150 },
      { "flags": 4, "matrix": [2, 2], "x": 64, "y": 150 },
      { "flags": 4, "matrix": [3, 0], "x": 0,  "y": 224 },
      { "flags": 4, "matrix": [3, 1], "x": 32, "y": 224 },
      { "flags": 4, "matrix": [3, 2], "x": 64, "y": 224 }
    ]
  },
  "layouts": {
    "LAYOUT": {
      "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 },
        { "matrix": [2, 0], "x": 0, "y": 2 },
        { "matrix": [2, 1], "x": 1, "y": 2 },
        { "matrix": [2, 2], "x": 2, "y": 2 },
        { "matrix": [3, 0], "x": 0, "y": 2 },
        { "matrix": [3, 1], "x": 1, "y": 2 },
        { "matrix": [3, 2], "x": 2, "y": 2 }
      ]
    }
  }
}

M keyboards/boardsource/beiwagon/keymaps/default/keymap.c => keyboards/boardsource/beiwagon/keymaps/default/keymap.c +3 -10
@@ 1,4 1,4 @@
/* Copyright 2020 Boardsource
/* Copyright 2022 Boardsource
 *
 * 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


@@ 18,30 18,23 @@

enum layers {
    _MAIN,
    _RAISE,
    _LOWER,
    _RAISE
};

// Readability keycodes
#define LOWER   MO(_LOWER)
#define RAISE   MO(_RAISE)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

  [_MAIN] = LAYOUT(
     KC_7,  KC_8,  KC_9,
     KC_4,  KC_5,  KC_6,
     KC_1,  KC_2,  KC_3,
     KC_0,  KC_PENT,RAISE
  ),

  [_RAISE] = LAYOUT(
     KC_7,  KC_8,  RGB_TOG,
     KC_4,  KC_5,  RGB_MOD,
     KC_1,  KC_2,  KC_3,
     KC_0,  KC_PENT,KC_TRNS

     KC_0,  KC_PENT,_______
  )

};


D keyboards/boardsource/beiwagon/keymaps/default/readme.md => keyboards/boardsource/beiwagon/keymaps/default/readme.md +0 -1
@@ 1,1 0,0 @@
# The default keymap for Beiwagon

M keyboards/boardsource/beiwagon/keymaps/via/keymap.c => keyboards/boardsource/beiwagon/keymaps/via/keymap.c +15 -10
@@ 1,4 1,4 @@
/* Copyright 2020 Boardsource
/* Copyright 2022 Boardsource
 *
 * 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


@@ 18,30 18,35 @@

enum layers {
    _MAIN,
    _RAISE,
    _LOWER,
    _RAISE
};

// Readability keycodes
#define LOWER   MO(_LOWER)
#define RAISE   MO(_RAISE)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

  [_MAIN] = LAYOUT(
     KC_7,  KC_8,  KC_9,
     KC_4,  KC_5,  KC_6,
     KC_1,  KC_2,  KC_3,
     KC_0,  KC_PENT,RAISE
  ),

  [_RAISE] = LAYOUT(
     KC_7,  KC_8,  RGB_TOG,
     KC_4,  KC_5,  RGB_MOD,
     KC_1,  KC_2,  KC_3,
     KC_0,  KC_PENT,KC_TRNS

     KC_0,  KC_PENT,_______
  ),
  [2] = LAYOUT(
    _______, _______, _______,
    _______, _______, _______,
    _______, _______, _______,
    _______, _______, _______
  ),
  [3] = LAYOUT(
    _______, _______, _______,
    _______, _______, _______,
    _______, _______, _______,
    _______, _______, _______
  )

};


D keyboards/boardsource/beiwagon/keymaps/via/readme.md => keyboards/boardsource/beiwagon/keymaps/via/readme.md +0 -1
@@ 1,1 0,0 @@
# The via keymap for Beiwagon

M keyboards/boardsource/beiwagon/rules.mk => keyboards/boardsource/beiwagon/rules.mk +0 -19
@@ 1,20 1,1 @@
# 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 = no       # Audio control and System control
CONSOLE_ENABLE = no         # 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 = no        # Enable keyboard RGB underglow
AUDIO_ENABLE = no           # Audio output
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812