Parcourir la source

M10-A refactor (#12242)

James Young il y a 4 ans
Parent
commit
52b7ebd6be

+ 18 - 20
keyboards/m10a/config.h

@@ -1,22 +1,22 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-
-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/>.
-*/
+/* Copyright
+ *   2017 Josh Black (@consolenaut)
+ *   2021 QMK
+ *
+ * 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/>.
+ */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
 
 #include "config_common.h"
 
@@ -72,5 +72,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //#define NO_ACTION_ONESHOT
 //#define NO_ACTION_MACRO
 //#define NO_ACTION_FUNCTION
-
-#endif

+ 26 - 0
keyboards/m10a/info.json

@@ -0,0 +1,26 @@
+{
+    "keyboard_name": "Rama Works X Machine Industries M10-A Macropad",
+    "url": "",
+    "maintainer": "qmk",
+    "width": 3,
+    "height": 4,
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"x":0, "y":0},
+                {"x":1, "y":0},
+                {"x":2, "y":0},
+
+                {"x":0, "y":1},
+                {"x":1, "y":1},
+                {"x":2, "y":1},
+
+                {"x":0, "y":2},
+                {"x":1, "y":2},
+                {"x":2, "y":2},
+
+                {"x":1, "y":3, "w":2}
+            ]
+        }
+    }
+}

+ 91 - 29
keyboards/m10a/keymaps/default/keymap.c

@@ -1,39 +1,101 @@
-#include QMK_KEYBOARD_H
-
+/* Copyright
+ *   2017 Josh Black (@consolenaut)
+ *   2021 QMK
+ *
+ * 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/>.
+ */
 
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
+#include QMK_KEYBOARD_H
 
-enum layers {
-  _LAYER0,
-  _LAYER1,
-  _LAYER2,
-  _LAYER3,
-  _LAYER4,
-  _LAYER5,
-  _LAYER6,
-  _LAYER7,
-  _LAYER8,
-  _LAYER9
+enum layer_names {
+    _LAYER0,
+    _LAYER1,
+    _LAYER2,
+    _LAYER3,
+    _LAYER4,
+    _LAYER5,
+    _LAYER6,
+    _LAYER7,
+    _LAYER8,
+    _LAYER9
 };
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  [_LAYER0] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER1] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER2] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER3] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER4] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER5] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER6] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER7] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER8] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER9] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J)
+    [_LAYER0] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER1] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER2] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER3] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER4] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER5] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER6] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER7] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER8] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER9] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    )
 };
 
 void matrix_init_user(void) {
-  #ifdef BACKLIGHT_ENABLE
+#ifdef BACKLIGHT_ENABLE
     backlight_level(0);
-  #endif
+#endif
 }

+ 19 - 1
keyboards/m10a/keymaps/via/config.h

@@ -1,4 +1,22 @@
+/* Copyright
+ *   2020 Jason Williams (Wilba)
+ *   2021 QMK
+ *
+ * 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
 
 // Keep default crazy number of layers
-#define DYNAMIC_KEYMAP_LAYER_COUNT 10
+#define DYNAMIC_KEYMAP_LAYER_COUNT 10

+ 91 - 29
keyboards/m10a/keymaps/via/keymap.c

@@ -1,39 +1,101 @@
-#include QMK_KEYBOARD_H
-
+/* Copyright
+ *   2020 Jason Williams (Wilba)
+ *   2021 QMK
+ *
+ * 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/>.
+ */
 
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
+#include QMK_KEYBOARD_H
 
-enum layers {
-  _LAYER0,
-  _LAYER1,
-  _LAYER2,
-  _LAYER3,
-  _LAYER4,
-  _LAYER5,
-  _LAYER6,
-  _LAYER7,
-  _LAYER8,
-  _LAYER9
+enum layer_names {
+    _LAYER0,
+    _LAYER1,
+    _LAYER2,
+    _LAYER3,
+    _LAYER4,
+    _LAYER5,
+    _LAYER6,
+    _LAYER7,
+    _LAYER8,
+    _LAYER9
 };
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  [_LAYER0] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER1] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER2] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER3] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER4] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER5] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER6] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER7] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER8] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J),
-  [_LAYER9] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_NO, KC_NO, KC_J)
+    [_LAYER0] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER1] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER2] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER3] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER4] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER5] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER6] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER7] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER8] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    ),
+    [_LAYER9] = LAYOUT(
+        KC_A,    KC_B,    KC_C,
+        KC_D,    KC_E,    KC_F,
+        KC_G,    KC_H,    KC_I,
+                          KC_J
+    )
 };
 
 void matrix_init_user(void) {
-  #ifdef BACKLIGHT_ENABLE
+#ifdef BACKLIGHT_ENABLE
     backlight_level(0);
-  #endif
+#endif
 }

+ 18 - 4
keyboards/m10a/m10a.c

@@ -1,5 +1,19 @@
-#include "m10a.h"
+/* Copyright
+ *   2017 Josh Black (@consolenaut)
+ *   2021 QMK
+ *
+ * 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/>.
+ */
 
-void matrix_init_kb(void) {
-	matrix_init_user();
-}
+#include "m10a.h"

+ 23 - 6
keyboards/m10a/m10a.h

@@ -1,19 +1,36 @@
-#ifndef M10A_H
-#define M10A_H
+/* Copyright
+ *   2017 Josh Black (@consolenaut)
+ *   2021 QMK
+ *
+ * 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 ___ KC_NO
+
 #define LAYOUT( \
       k00, k01, k02, \
       k10, k11, k12, \
       k20, k21, k22, \
-      k30, k31, k32  \
+                k32  \
 ) \
 { \
     { k00, k01, k02 }, \
     { k10, k11, k12 }, \
     { k20, k21, k22 }, \
-    { k30, k31, k32 } \
+    { ___, ___, k32 } \
 }
-
-#endif

+ 13 - 5
keyboards/m10a/readme.md

@@ -1,13 +1,21 @@
 # Rama Works X Machine Industries M10-A Macropad
 
-Firmware for custom macropad PCB
+![Rama Works X Machine Industries M10-A Macropad](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/m10a/image-asset9_640.jpg)
 
-Keyboard Maintainer: QMK Community   
-Hardware Supported: Rama Works M10-A  
-Hardware Availability: [Rama Works](https://rama.works/m10-a)
+A 10-key macro pad with support for single-color LED backlighting in a milled aluminum case.
+
+* Keyboard Maintainer: QMK Community
+* Hardware Supported: Rama Works M10-A
+* Hardware Availability: [Rama Works](https://rama.works/m10-a)
 
 Make example for this keyboard (after setting up your build environment):
 
     make m10a:default
 
-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.
+Flashing example for this keyboard:
+
+    make m10a:default:flash
+
+To reset the board into bootloader mode, tap the Reset switch mounted on the top side of the PCB, beneath the 2u keycap.
+
+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).

+ 11 - 19
keyboards/m10a/rules.mk

@@ -2,32 +2,24 @@
 MCU = atmega32u4
 
 # Bootloader selection
-#   Teensy       halfkay
-#   Pro Micro    caterina
-#   Atmel DFU    atmel-dfu
-#   LUFA DFU     lufa-dfu
-#   QMK DFU      qmk-dfu
-#   ATmega32A    bootloadHID
-#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
 # Build Options
-#   change to "no" to disable the options, or define them in the Makefile in 
-#   the appropriate keymap folder that will get included automatically
+#   change yes to no to disable
 #
 BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration
 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            # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+COMMAND_ENABLE = no         # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes           # USB Nkey Rollover
 BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
-MIDI_ENABLE = no            # MIDI controls
-AUDIO_ENABLE = no           # Audio output on port C6
-UNICODE_ENABLE = yes         # Unicode
-BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
-API_SYSEX_ENABLE = yes
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no       # Enable Bluetooth
+AUDIO_ENABLE = no           # Audio output
 
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
+UNICODE_ENABLE = yes        # Unicode
+API_SYSEX_ENABLE = yes