~ruther/qmk_firmware

a991d65e875ddc517133e95b2c4d63bbb2093c5b — jack 3 years ago 019bfc4
[Keyboard] boardsource/3x4 data driven (#17628)

* initial

* change to development board

* replaced KC_TRNS & use rules.mk template
8 files changed, 67 insertions(+), 167 deletions(-)

D keyboards/boardsource/3x4/3x4.c
D keyboards/boardsource/3x4/3x4.h
D keyboards/boardsource/3x4/config.h
M keyboards/boardsource/3x4/info.json
M keyboards/boardsource/3x4/keymaps/default/keymap.c
M keyboards/boardsource/3x4/keymaps/via/keymap.c
D keyboards/boardsource/3x4/keymaps/via/readme.md
M keyboards/boardsource/3x4/rules.mk
D keyboards/boardsource/3x4/3x4.c => keyboards/boardsource/3x4/3x4.c +0 -1
@@ 1,1 0,0 @@
#include "3x4.h"

D keyboards/boardsource/3x4/3x4.h => keyboards/boardsource/3x4/3x4.h +0 -12
@@ 1,12 0,0 @@
#pragma once

#include "quantum.h"
#define LAYOUT( \
    K00, K01, K02, K03,  \
    K10, K11, K12, K13,  \
    K20, K21, K22, K23 \
    ) { \
        {K00, K01, K02, K03}, \
        {K10, K11, K12, K13}, \
        {K20, K21, K22, K23} \
    }

D keyboards/boardsource/3x4/config.h => keyboards/boardsource/3x4/config.h +0 -70
@@ 1,70 0,0 @@


#pragma once

#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID       0x4273 // "Bs" - Boardsource
#define PRODUCT_ID      0x0304 // 3x4
#define DEVICE_VER      0x0000
#define MANUFACTURER    Boardsource
#define PRODUCT         3x4

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

#define MATRIX_ROW_PINS {F7, F6, F5}
#define MATRIX_COL_PINS {B6, B2, B3, B1}

#define DIODE_DIRECTION COL2ROW

#define DEBOUNCE 5

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

M keyboards/boardsource/3x4/info.json => keyboards/boardsource/3x4/info.json +37 -24
@@ 1,27 1,40 @@
{
    "keyboard_name": "boardsource 4x3",
    "url": "https://boardsource.xyz",
    "maintainer": "boardsource",
    "layouts": {

        "LAYOUT": {

            "layout": [
                { "label": "K01", "x": 0, "y": 0 },
                { "label": "K02", "x": 1, "y": 0 },
                { "label": "K03", "x": 2, "y": 0 },
                { "label": "K04", "x": 3, "y": 0 },

                { "label": "K05", "x": 0, "y": 1 },
                { "label": "K06", "x": 1, "y": 1 },
                { "label": "K07", "x": 2, "y": 1 },
                { "label": "K08", "x": 3, "y": 1 },

                { "label": "K09", "x": 0, "y": 2 },
                { "label": "K10", "x": 1, "y": 2 },
                { "label": "K11", "x": 2, "y": 2 },
                { "label": "K12", "x": 3, "y": 2 }
            ]
        }
  "manufacturer": "Boardsource",
  "keyboard_name": "3x4",
  "maintainer": "waffle87",
  "development_board": "promicro",
  "diode_direction": "COL2ROW",
  "features": {
    "bootmagic": true,
    "extrakey": true,
    "mousekey": true
  },
  "matrix_pins": {
    "cols": ["B6", "B2", "B3", "B1"],
    "rows": ["F7", "F6", "F5"]
  },
  "url": "https://boardsource.xyz/store/5ecc2008eee64242946c98c1",
  "usb": {
    "device_version": "1.0.0",
    "pid": "0x0304",
    "vid": "0x4273"
  },
  "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": [0, 3], "x": 3, "y": 0 },
        { "matrix": [1, 0], "x": 0, "y": 1 },
        { "matrix": [1, 1], "x": 1, "y": 1 },
        { "matrix": [1, 2], "x": 2, "y": 1 },
        { "matrix": [1, 3], "x": 3, "y": 1 },
        { "matrix": [2, 0], "x": 0, "y": 2 },
        { "matrix": [2, 1], "x": 1, "y": 2 },
        { "matrix": [2, 2], "x": 2, "y": 2 },
        { "matrix": [2, 3], "x": 3, "y": 2 }
      ]
    }
  }
}

M keyboards/boardsource/3x4/keymaps/default/keymap.c => keyboards/boardsource/3x4/keymaps/default/keymap.c +7 -17
@@ 1,26 1,16 @@
// Copyright 2022 @waffle87
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H

enum layers {
    _MAIN,
    _RAISE,
    _LOWER,
};

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

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

  [_MAIN] = LAYOUT(
  KC_0,  KC_1,    KC_4,    KC_7, 
  KC_ENT,  KC_2,    KC_5,    KC_8, 
  RAISE,  KC_3,    KC_6,    KC_9
  [0] = LAYOUT(
    KC_0,   KC_1, KC_4, KC_7,
    KC_ENT, KC_2, KC_5, KC_8,
    MO(1),  KC_3, KC_6, KC_9
  ),
  [_RAISE] = LAYOUT(
  [1] = LAYOUT(
    _______, _______, _______, _______,
    _______, _______, _______, _______,
    _______, _______, _______, QK_BOOT
  )

};

M keyboards/boardsource/3x4/keymaps/via/keymap.c => keyboards/boardsource/3x4/keymaps/via/keymap.c +22 -21
@@ 1,25 1,26 @@
// Copyright 2022 @gwillad
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H

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

    LAYOUT(
        KC_0,  KC_1,    KC_4,    KC_7, 
        KC_ENT,  KC_2,    KC_5,    KC_8, 
        MO(1),  KC_3,    KC_6,    KC_9
    ),
    LAYOUT(
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
    ),
    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
    ),
    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
    )
  [0] = LAYOUT(
    KC_0,   KC_1, KC_4, KC_7,
    KC_ENT, KC_2, KC_5, KC_8,
    MO(1),  KC_3, KC_6, KC_9
  ),
  [1] = LAYOUT(
    _______, _______, _______, _______,
    _______, _______, _______, _______,
    _______, _______, _______, QK_BOOT
  ),
  [2] = LAYOUT(
    _______, _______, _______, _______,
    _______, _______, _______, _______,
    _______, _______, _______, _______
  ),
  [3] = LAYOUT(
    _______, _______, _______, _______,
    _______, _______, _______, _______,
    _______, _______, _______, _______
  )
};

D keyboards/boardsource/3x4/keymaps/via/readme.md => keyboards/boardsource/3x4/keymaps/via/readme.md +0 -5
@@ 1,5 0,0 @@
# The via keymap for boardsource 3x4 macropad

This folder contains the [VIA](https://caniusevia.com/) configuration for the boardsource 3x4 macropad

Maintained by: [gwillad](https://github.com/gwillad)

M keyboards/boardsource/3x4/rules.mk => keyboards/boardsource/3x4/rules.mk +1 -17
@@ 1,17 1,1 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = caterina

# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes       # Mouse keys
EXTRAKEY_ENABLE = yes       # Audio control and System control
CONSOLE_ENABLE = yes        # Console for debug
COMMAND_ENABLE = yes        # Commands for debug and configuration
NKRO_ENABLE = no            # Enable N-Key Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
AUDIO_ENABLE = no           # Audio output
# This file intentionally left blank