~ruther/qmk_firmware

80c6fbad1cd25071942f44119d76d29adcccd9f3 — Albert Y 2 years ago f639089
[Keyboard] Clean up contra & move to data-driven (#19973)

Co-authored-by: Joel Challis <git@zvecr.com>
7 files changed, 135 insertions(+), 73 deletions(-)

D keyboards/contra/config.h
D keyboards/contra/contra.c
D keyboards/contra/contra.h
M keyboards/contra/info.json
M keyboards/contra/keymaps/default/config.h
M keyboards/contra/readme.md
M keyboards/contra/rules.mk
D keyboards/contra/config.h => keyboards/contra/config.h +0 -15
@@ 1,15 0,0 @@
#pragma once


/* key matrix pins */
#define MATRIX_ROW_PINS { F6, B3, B2, B6 }
#define MATRIX_COL_PINS { F4, F5, B5, B4, E6, D7, C6, D4, D0, D1, D2, D3 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

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

D keyboards/contra/contra.c => keyboards/contra/contra.c +0 -1
@@ 1,1 0,0 @@
#include "contra.h"

D keyboards/contra/contra.h => keyboards/contra/contra.h +0 -27
@@ 1,27 0,0 @@
#pragma once

#include "quantum.h"

#define LAYOUT_ortho_4x12( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B \
) { \
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B } \
}

#define LAYOUT_planck_mit( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
    k30, k31, k32, k33, k34,   k35,    k37, k38, k39, k3A, k3B \
) { \
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
    { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3A, k3B } \
}

M keyboards/contra/info.json => keyboards/contra/info.json +116 -2
@@ 3,6 3,12 @@
  "manufacturer": "Cartel",
  "url": "",
  "maintainer": "qmk",
  "features": {
    "bootmagic": true,
    "extrakey": true,
    "mousekey": true,
    "nkro": true
  },
  "usb": {
    "vid": "0x4354",
    "pid": "0x0001",


@@ 10,14 16,122 @@
  },
  "processor": "atmega32u4",
  "bootloader": "caterina",
  "diode_direction": "COL2ROW",
  "matrix_pins": {
    "cols": ["F4", "F5", "B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2", "D3"],
    "rows": ["F6", "B3", "B2", "B6"]
  },
  "community_layouts": ["planck_mit", "ortho_4x12"],
  "layouts": {
    "LAYOUT_ortho_4x12": {
      "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"&dArr;", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"&uArr;", "x":7, "y":3}, {"label":"&larr;", "x":8, "y":3}, {"label":"&darr;", "x":9, "y":3}, {"label":"&uarr;", "x":10, "y":3}, {"label":"&rarr;", "x":11, "y":3}]
      "layout": [
        {"label":"Tab", "matrix": [0, 0], "x":0, "y":0},
        {"label":"Q", "matrix": [0, 1], "x":1, "y":0},
        {"label":"W", "matrix": [0, 2], "x":2, "y":0},
        {"label":"E", "matrix": [0, 3], "x":3, "y":0},
        {"label":"R", "matrix": [0, 4], "x":4, "y":0},
        {"label":"T", "matrix": [0, 5], "x":5, "y":0},
        {"label":"Y", "matrix": [0, 6], "x":6, "y":0},
        {"label":"U", "matrix": [0, 7], "x":7, "y":0},
        {"label":"I", "matrix": [0, 8], "x":8, "y":0},
        {"label":"O", "matrix": [0, 9], "x":9, "y":0},
        {"label":"P", "matrix": [0, 10], "x":10, "y":0},
        {"label":"BackSpace", "matrix": [0, 11], "x":11, "y":0},

        {"label":"Esc", "matrix": [1, 0], "x":0, "y":1},
        {"label":"A", "matrix": [1, 1], "x":1, "y":1},
        {"label":"S", "matrix": [1, 2], "x":2, "y":1},
        {"label":"D", "matrix": [1, 3], "x":3, "y":1},
        {"label":"F", "matrix": [1, 4], "x":4, "y":1},
        {"label":"G", "matrix": [1, 5], "x":5, "y":1},
        {"label":"H", "matrix": [1, 6], "x":6, "y":1},
        {"label":"J", "matrix": [1, 7], "x":7, "y":1},
        {"label":"K", "matrix": [1, 8], "x":8, "y":1},
        {"label":"L", "matrix": [1, 9], "x":9, "y":1},
        {"label":";", "matrix": [1, 10], "x":10, "y":1},
        {"label":"'", "matrix": [1, 11], "x":11, "y":1},

        {"label":"Shift", "matrix": [2, 0], "x":0, "y":2},
        {"label":"Z", "matrix": [2, 1], "x":1, "y":2},
        {"label":"X", "matrix": [2, 2], "x":2, "y":2},
        {"label":"C", "matrix": [2, 3], "x":3, "y":2},
        {"label":"V", "matrix": [2, 4], "x":4, "y":2},
        {"label":"B", "matrix": [2, 5], "x":5, "y":2},
        {"label":"N", "matrix": [2, 6], "x":6, "y":2},
        {"label":"M", "matrix": [2, 7], "x":7, "y":2},
        {"label":",", "matrix": [2, 8], "x":8, "y":2},
        {"label":".", "matrix": [2, 9], "x":9, "y":2},
        {"label":"/", "matrix": [2, 10], "x":10, "y":2},
        {"label":"Return", "matrix": [2, 11], "x":11, "y":2},

        {"matrix": [3, 0], "x":0, "y":3},
        {"label":"Ctrl", "matrix": [3, 1], "x":1, "y":3},
        {"label":"Alt", "matrix": [3, 2], "x":2, "y":3},
        {"label":"Super", "matrix": [3, 3], "x":3, "y":3},
        {"label":"&dArr;", "matrix": [3, 4], "x":4, "y":3},
        {"matrix": [3, 5], "x":5, "y":3},
        {"matrix": [3, 6], "x":6, "y":3},
        {"label":"&uArr;", "matrix": [3, 7], "x":7, "y":3},
        {"label":"&larr;", "matrix": [3, 8], "x":8, "y":3},
        {"label":"&darr;", "matrix": [3, 9], "x":9, "y":3},
        {"label":"&uarr;", "matrix": [3, 10], "x":10, "y":3},
        {"label":"&rarr;", "matrix": [3, 11], "x":11, "y":3}
      ]
    },

    "LAYOUT_planck_mit": {
      "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"&dArr;", "x":4, "y":3}, {"x":5, "y":3, "w":2}, {"label":"&uArr;", "x":7, "y":3}, {"label":"&larr;", "x":8, "y":3}, {"label":"&darr;", "x":9, "y":3}, {"label":"&uarr;", "x":10, "y":3}, {"label":"&rarr;", "x":11, "y":3}]
      "layout": [
        {"label":"Tab", "matrix": [0, 0], "x":0, "y":0},
        {"label":"Q", "matrix": [0, 1], "x":1, "y":0},
        {"label":"W", "matrix": [0, 2], "x":2, "y":0},
        {"label":"E", "matrix": [0, 3], "x":3, "y":0},
        {"label":"R", "matrix": [0, 4], "x":4, "y":0},
        {"label":"T", "matrix": [0, 5], "x":5, "y":0},
        {"label":"Y", "matrix": [0, 6], "x":6, "y":0},
        {"label":"U", "matrix": [0, 7], "x":7, "y":0},
        {"label":"I", "matrix": [0, 8], "x":8, "y":0},
        {"label":"O", "matrix": [0, 9], "x":9, "y":0},
        {"label":"P", "matrix": [0, 10], "x":10, "y":0},
        {"label":"BackSpace", "matrix": [0, 11], "x":11, "y":0},

        {"label":"Esc", "matrix": [1, 0], "x":0, "y":1},
        {"label":"A", "matrix": [1, 1], "x":1, "y":1},
        {"label":"S", "matrix": [1, 2], "x":2, "y":1},
        {"label":"D", "matrix": [1, 3], "x":3, "y":1},
        {"label":"F", "matrix": [1, 4], "x":4, "y":1},
        {"label":"G", "matrix": [1, 5], "x":5, "y":1},
        {"label":"H", "matrix": [1, 6], "x":6, "y":1},
        {"label":"J", "matrix": [1, 7], "x":7, "y":1},
        {"label":"K", "matrix": [1, 8], "x":8, "y":1},
        {"label":"L", "matrix": [1, 9], "x":9, "y":1},
        {"label":";", "matrix": [1, 10], "x":10, "y":1},
        {"label":"'", "matrix": [1, 11], "x":11, "y":1},

        {"label":"Shift", "matrix": [2, 0], "x":0, "y":2},
        {"label":"Z", "matrix": [2, 1], "x":1, "y":2},
        {"label":"X", "matrix": [2, 2], "x":2, "y":2},
        {"label":"C", "matrix": [2, 3], "x":3, "y":2},
        {"label":"V", "matrix": [2, 4], "x":4, "y":2},
        {"label":"B", "matrix": [2, 5], "x":5, "y":2},
        {"label":"N", "matrix": [2, 6], "x":6, "y":2},
        {"label":"M", "matrix": [2, 7], "x":7, "y":2},
        {"label":",", "matrix": [2, 8], "x":8, "y":2},
        {"label":".", "matrix": [2, 9], "x":9, "y":2},
        {"label":"/", "matrix": [2, 10], "x":10, "y":2},
        {"label":"Return", "matrix": [2, 11], "x":11, "y":2},

        {"matrix": [3, 0], "x":0, "y":3},
        {"label":"Ctrl", "matrix": [3, 1], "x":1, "y":3},
        {"label":"Alt", "matrix": [3, 2], "x":2, "y":3},
        {"label":"Super", "matrix": [3, 3], "x":3, "y":3},
        {"label":"&dArr;", "matrix": [3, 4], "x":4, "y":3},
        {"matrix": [3, 5], "x":5, "y":3},
        {"label":"&uArr;", "matrix": [3, 7], "x":7, "y":3},
        {"label":"&larr;", "matrix": [3, 8], "x":8, "y":3},
        {"label":"&darr;", "matrix": [3, 9], "x":9, "y":3},
        {"label":"&uarr;", "matrix": [3, 10], "x":10, "y":3},
        {"label":"&rarr;", "matrix": [3, 11], "x":11, "y":3}
      ]
    }
  }
}

M keyboards/contra/keymaps/default/config.h => keyboards/contra/keymaps/default/config.h +3 -0
@@ 1,3 1,6 @@
// Copyright QMK Community
// SPDX-License-Identifier: GPL-2.0+

#pragma once



M keyboards/contra/readme.md => keyboards/contra/readme.md +15 -10
@@ 1,16 1,21 @@
CONTRA
======
# Contra

![CONTRA](https://cartel.ltd/wp-content/uploads/2018/01/img_3209.jpg)
Contra is a low cost 40% keyboard.

A 40% keyboard by [CARTEL](https://cartel.ltd/)

Keyboard Maintainer: The QMK Community  
Hardware Supported: CONTRA  
Hardware Availability: [CARTEL](https://cartel.ltd/projects/contra/)
* Keyboard Maintainer: The QMK Community  
* Hardware Supported: [Contra](https://github.com/ai03-2725/Contra)
* Hardware Availability: PCB sold by various vendors

Make example for this keyboard (after setting up your build environment):

    make contra:dana
    make contra:default

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:

See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is configured.
* **Physical reset button**: Briefly press the reset button soldered on the PCB.
* **Bootmagic reset**: Hold down the top left key and plug in the controller.

M keyboards/contra/rules.mk => keyboards/contra/rules.mk +1 -18
@@ 1,18 1,1 @@
# 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 = no        # Console for debug
COMMAND_ENABLE = no        # Commands for debug and configuration
NKRO_ENABLE = yes           # Enable N-Key Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
AUDIO_ENABLE = no           # Audio output

LAYOUTS_HAS_RGB = no

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
# This file intentionally left blank