瀏覽代碼

AMJ40 Refactor (#11854)

* update keyboard source files

- add license headers (attributed to original keyboard submitter)
- #pragma once include guards
- file template matching
- readme update and template matching

* set sensible default keyboard settings

- enable Bootmagic Lite and Mouse Keys
- disable Console and Command
- remove default keymap's rules.mk file

* remove unnecessary files from default keymap

* refactor default keymap

* add additional layouts/keymaps

* update keyboard readme

- add images and bootloader instructions
- reformat link list

* convert tabs to spaces in default keymap
James Young 4 年之前
父節點
當前提交
fa740f8129

+ 16 - 0
keyboards/amj40/amj40.c

@@ -1 +1,17 @@
+/* Copyright 2017 Fabian Topfstedt
+ *
+ * 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 "amj40.h"

+ 90 - 19
keyboards/amj40/amj40.h

@@ -1,26 +1,52 @@
-#ifndef AMJ40_H
-#define AMJ40_H
+/* Copyright 2017 Fabian Topfstedt
+ * Copyright 2021 James Young (@noroadsleft)
+ *
+ * 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"
 
-// readability  
 #define XXX KC_NO
 
-/* AMJ40 ver2.0 layout1 配列一
- * ,-----------------------------------------------------------.
- * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B |
- * |-----------------------------------------------------------|
- * | 10   | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1B    |
- * |-----------------------------------------------------------|
- * | 20     | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |  2A | 2B |
- * |-----------------------------------------------------------|
- * | 30  | 31 | 32  |   34      |  35         | 39  | 3A | 3B  |
- * `-----------------------------------------------------------'
+/* AMJ40 ver2.0 staggered layouts
+ * ,-----------------------------------------------.
+ * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
+ * |-----------------------------------------------|
+ * |10  |11 |12 |13 |14 |15 |16 |17 |18 |19 |1b    |
+ * |-----------------------------------------------|
+ * |20    |22 |23 |24 |25 |26 |27 |28 |29 |2a  |2b |
+ * |-----------------------------------------------|
+ * |30  |31 |32  |   34   |35        |39  |3a |3b  | Layout 1 Bottom Row
+ * `-----------------------------------------------'
+ * ,-----------------------------------------------.
+ * |30  |31 |32 |           35           |3a  |3b  | Layout 2
+ * `-----------------------------------------------'
+ * ,-----------------------------------------------.
+ * |30   |31 |32   |   34   |    35    |39 |3a |3b | Layout 3
+ * `-----------------------------------------------'
+ * ,-----------------------------------------------.
+ * |30  |31 |32  |           35           |3a |3b  | Layout 4
+ * `-----------------------------------------------'
  */
+
+// a.k.a. Layout 1 or Layout 3 (matrix is the same for both)
 #define LAYOUT( \
     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,      k1b,  \
-    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,  \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,      k1b, \
+    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
     k30, k31, k32,      k34, k35,                k39, k3a, k3b  \
 ) { \
     {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b}, \
@@ -29,10 +55,55 @@
     {k30, k31, k32, XXX, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \
 }
 
+// a.k.a. Layout 2 or Layout 4 (matrix is the same for both)
+#define LAYOUT_625u_space( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,      k1b, \
+    k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32,             k35,                   k3a, k3b  \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, XXX, k1b }, \
+    { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, XXX, k3a, k3b } \
+}
 
+/* AMJ40 ver2.0 ortholinear layouts
+ * ,-----------------------------------------------.
+ * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
+ * |-----------------------------------------------|
+ * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1a |1b |
+ * |-----------------------------------------------|
+ * |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b |
+ * |-----------------------------------------------|
+ * |30 |31 |32 |33 |34 |    35    |38  |39 |3a |3b | 2.75u Spacebar
+ * `-----------------------------------------------'
+ * ,-----------------------------------------------.
+ * |30 |31 |32 |          35           |39 |3a |3b | 6u Spacebar
+ * `-----------------------------------------------'
+ */
 
+// equivalent to LAYOUT_all
+#define LAYOUT_ortho_275u_space( \
+    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,      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, XXX, XXX, k38, k39, k3a, k3b }  \
+}
 
-void matrix_init_user(void);
-void matrix_scan_user(void);
-
-#endif
+#define LAYOUT_ortho_600u_space( \
+    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,             k35,              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, XXX, XXX, k35, XXX, XXX, XXX, k39, k3a, k3b }  \
+}

+ 1 - 4
keyboards/amj40/config.h

@@ -15,8 +15,7 @@ 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"
 
@@ -87,5 +86,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

+ 205 - 10
keyboards/amj40/info.json

@@ -1,13 +1,208 @@
 {
-  "keyboard_name": "AMJ40", 
-  "url": "", 
-  "maintainer": "qmk", 
-  "bootloader": "", 
-  "width": 12, 
-  "height": 4, 
-  "layouts": {
-    "LAYOUT": {
-      "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2, "w":1.25}, {"x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3, "w":2.25}, {"x":5.75, "y":3, "w":2.75}, {"x":8.5, "y":3, "w":1.25}, {"x":9.75, "y":3}, {"x":10.75, "y":3, "w":1.25}]
+    "keyboard_name": "AMJ40",
+    "url": "",
+    "maintainer": "qmk",
+    "width": 12,
+    "height": 4,
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"x":0, "y":0},
+                {"x":1, "y":0},
+                {"x":2, "y":0},
+                {"x":3, "y":0},
+                {"x":4, "y":0},
+                {"x":5, "y":0},
+                {"x":6, "y":0},
+                {"x":7, "y":0},
+                {"x":8, "y":0},
+                {"x":9, "y":0},
+                {"x":10, "y":0},
+                {"x":11, "y":0},
+
+                {"x":0, "y":1, "w":1.25},
+                {"x":1.25, "y":1},
+                {"x":2.25, "y":1},
+                {"x":3.25, "y":1},
+                {"x":4.25, "y":1},
+                {"x":5.25, "y":1},
+                {"x":6.25, "y":1},
+                {"x":7.25, "y":1},
+                {"x":8.25, "y":1},
+                {"x":9.25, "y":1},
+                {"x":10.25, "y":1, "w":1.75},
+
+                {"x":0, "y":2, "w":1.75},
+                {"x":1.75, "y":2},
+                {"x":2.75, "y":2},
+                {"x":3.75, "y":2},
+                {"x":4.75, "y":2},
+                {"x":5.75, "y":2},
+                {"x":6.75, "y":2},
+                {"x":7.75, "y":2},
+                {"x":8.75, "y":2},
+                {"x":9.75, "y":2, "w":1.25},
+                {"x":11, "y":2},
+
+                {"x":0, "y":3, "w":1.25},
+                {"x":1.25, "y":3},
+                {"x":2.25, "y":3, "w":1.25},
+                {"x":3.5, "y":3, "w":2.25},
+                {"x":5.75, "y":3, "w":2.75},
+                {"x":8.5, "y":3, "w":1.25},
+                {"x":9.75, "y":3},
+                {"x":10.75, "y":3, "w":1.25}
+            ]
+        },
+        "LAYOUT_625u_space": {
+            "layout": [
+                {"x":0, "y":0},
+                {"x":1, "y":0},
+                {"x":2, "y":0},
+                {"x":3, "y":0},
+                {"x":4, "y":0},
+                {"x":5, "y":0},
+                {"x":6, "y":0},
+                {"x":7, "y":0},
+                {"x":8, "y":0},
+                {"x":9, "y":0},
+                {"x":10, "y":0},
+                {"x":11, "y":0},
+
+                {"x":0, "y":1, "w":1.25},
+                {"x":1.25, "y":1},
+                {"x":2.25, "y":1},
+                {"x":3.25, "y":1},
+                {"x":4.25, "y":1},
+                {"x":5.25, "y":1},
+                {"x":6.25, "y":1},
+                {"x":7.25, "y":1},
+                {"x":8.25, "y":1},
+                {"x":9.25, "y":1},
+                {"x":10.25, "y":1, "w":1.75},
+
+                {"x":0, "y":2, "w":1.75},
+                {"x":1.75, "y":2},
+                {"x":2.75, "y":2},
+                {"x":3.75, "y":2},
+                {"x":4.75, "y":2},
+                {"x":5.75, "y":2},
+                {"x":6.75, "y":2},
+                {"x":7.75, "y":2},
+                {"x":8.75, "y":2},
+                {"x":9.75, "y":2, "w":1.25},
+                {"x":11, "y":2},
+
+                {"x":0, "y":3, "w":1.25},
+                {"x":1.25, "y":3},
+                {"x":2.25, "y":3},
+                {"x":3.25, "y":3, "w":6.25},
+                {"x":9.5, "y":3, "w":1.25},
+                {"x":10.75, "y":3, "w":1.25}
+            ]
+        },
+        "LAYOUT_ortho_600u_space": {
+            "layout": [
+                {"label":"K00 (F4,F1)", "x":0, "y":0},
+                {"label":"K01 (F4,F0)", "x":1, "y":0},
+                {"label":"K02 (F4,E6)", "x":2, "y":0},
+                {"label":"K03 (F4,C7)", "x":3, "y":0},
+                {"label":"K04 (F4,C6)", "x":4, "y":0},
+                {"label":"K05 (F4,B0)", "x":5, "y":0},
+                {"label":"K06 (F4,D4)", "x":6, "y":0},
+                {"label":"K07 (F4,B1)", "x":7, "y":0},
+                {"label":"K08 (F4,B7)", "x":8, "y":0},
+                {"label":"K09 (F4,B5)", "x":9, "y":0},
+                {"label":"K0A (F4,B4)", "x":10, "y":0},
+                {"label":"K0B (F4,D7)", "x":11, "y":0},
+
+                {"label":"K10 (F5,F1)", "x":0, "y":1},
+                {"label":"K11 (F5,F0)", "x":1, "y":1},
+                {"label":"K12 (F5,E6)", "x":2, "y":1},
+                {"label":"K13 (F5,C7)", "x":3, "y":1},
+                {"label":"K14 (F5,C6)", "x":4, "y":1},
+                {"label":"K15 (F5,B0)", "x":5, "y":1},
+                {"label":"K16 (F5,D4)", "x":6, "y":1},
+                {"label":"K17 (F5,B1)", "x":7, "y":1},
+                {"label":"K18 (F5,B7)", "x":8, "y":1},
+                {"label":"K19 (F5,B5)", "x":9, "y":1},
+                {"label":"K1A (F5,B4)", "x":10, "y":1},
+                {"label":"K1B (F5,D7)", "x":11, "y":1},
+
+                {"label":"K20 (F6,F1)", "x":0, "y":2},
+                {"label":"K21 (F6,F0)", "x":1, "y":2},
+                {"label":"K22 (F6,E6)", "x":2, "y":2},
+                {"label":"K23 (F6,C7)", "x":3, "y":2},
+                {"label":"K24 (F6,C6)", "x":4, "y":2},
+                {"label":"K25 (F6,B0)", "x":5, "y":2},
+                {"label":"K26 (F6,D4)", "x":6, "y":2},
+                {"label":"K27 (F6,B1)", "x":7, "y":2},
+                {"label":"K28 (F6,B7)", "x":8, "y":2},
+                {"label":"K29 (F6,B5)", "x":9, "y":2},
+                {"label":"K2A (F6,B4)", "x":10, "y":2},
+                {"label":"K2B (F6,D7)", "x":11, "y":2},
+
+                {"label":"K30 (F7,F1)", "x":0, "y":3},
+                {"label":"K31 (F7,F0)", "x":1, "y":3},
+                {"label":"K32 (F7,E6)", "x":2, "y":3},
+                {"label":"K35 (F7,B0)", "x":3, "y":3, "w":6},
+                {"label":"K39 (F7,B5)", "x":9, "y":3},
+                {"label":"K3A (F7,B4)", "x":10, "y":3},
+                {"label":"K3B (F7,D7)", "x":11, "y":3}
+            ]
+        },
+        "LAYOUT_ortho_275u_space": {
+            "layout": [
+                {"label":"K00 (F4,F1)", "x":0, "y":0},
+                {"label":"K01 (F4,F0)", "x":1, "y":0},
+                {"label":"K02 (F4,E6)", "x":2, "y":0},
+                {"label":"K03 (F4,C7)", "x":3, "y":0},
+                {"label":"K04 (F4,C6)", "x":4, "y":0},
+                {"label":"K05 (F4,B0)", "x":5, "y":0},
+                {"label":"K06 (F4,D4)", "x":6, "y":0},
+                {"label":"K07 (F4,B1)", "x":7, "y":0},
+                {"label":"K08 (F4,B7)", "x":8, "y":0},
+                {"label":"K09 (F4,B5)", "x":9, "y":0},
+                {"label":"K0A (F4,B4)", "x":10, "y":0},
+                {"label":"K0B (F4,D7)", "x":11, "y":0},
+
+                {"label":"K10 (F5,F1)", "x":0, "y":1},
+                {"label":"K11 (F5,F0)", "x":1, "y":1},
+                {"label":"K12 (F5,E6)", "x":2, "y":1},
+                {"label":"K13 (F5,C7)", "x":3, "y":1},
+                {"label":"K14 (F5,C6)", "x":4, "y":1},
+                {"label":"K15 (F5,B0)", "x":5, "y":1},
+                {"label":"K16 (F5,D4)", "x":6, "y":1},
+                {"label":"K17 (F5,B1)", "x":7, "y":1},
+                {"label":"K18 (F5,B7)", "x":8, "y":1},
+                {"label":"K19 (F5,B5)", "x":9, "y":1},
+                {"label":"K1A (F5,B4)", "x":10, "y":1},
+                {"label":"K1B (F5,D7)", "x":11, "y":1},
+
+                {"label":"K20 (F6,F1)", "x":0, "y":2},
+                {"label":"K21 (F6,F0)", "x":1, "y":2},
+                {"label":"K22 (F6,E6)", "x":2, "y":2},
+                {"label":"K23 (F6,C7)", "x":3, "y":2},
+                {"label":"K24 (F6,C6)", "x":4, "y":2},
+                {"label":"K25 (F6,B0)", "x":5, "y":2},
+                {"label":"K26 (F6,D4)", "x":6, "y":2},
+                {"label":"K27 (F6,B1)", "x":7, "y":2},
+                {"label":"K28 (F6,B7)", "x":8, "y":2},
+                {"label":"K29 (F6,B5)", "x":9, "y":2},
+                {"label":"K2A (F6,B4)", "x":10, "y":2},
+                {"label":"K2B (F6,D7)", "x":11, "y":2},
+
+                {"label":"K30 (F7,F1)", "x":0, "y":3},
+                {"label":"K31 (F7,F0)", "x":1, "y":3},
+                {"label":"K32 (F7,E6)", "x":2, "y":3},
+                {"label":"K33 (F7,C7)", "x":3, "y":3},
+                {"label":"K34 (F7,C6)", "x":4, "y":3},
+                {"label":"K35 (F7,B0)", "x":5, "y":3, "w":2.75},
+                {"label":"K38 (F7,B7)", "x":7.75, "y":3, "w":1.25},
+                {"label":"K39 (F7,B5)", "x":9, "y":3},
+                {"label":"K3A (F7,B4)", "x":10, "y":3},
+                {"label":"K3B (F7,D7)", "x":11, "y":3}
+            ]
+        }
     }
-  }
 }

+ 0 - 42
keyboards/amj40/keymaps/default/build.sh

@@ -1,42 +0,0 @@
-#!/bin/bash
-# adjust for cpu 
-# -j 16 gave best result on a hyperthreaded quad core core i7
-
-LIMIT=10
-THREADS="-j 16"
-KMAP=iso_split_rshift
-
-echo "We need sudo later"
-sudo ls 2>&1 /dev/null
-
-function wait_bootloader {
-	echo "Waiting for Bootloader..."
-	local STARTTIME=$(date +"%s")
-	local REMIND=0
-    local EXEC=dfu-programmer
-    local TARGET=atmega32u4
-	while true
-	do
-		sudo $EXEC $TARGET get > /dev/null 2>&1
-		[ $? -eq 0 ] && break
-		ENDTIME=$(date +"%s")
-		DURATION=$(($ENDTIME-$STARTTIME))
-		if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ]
-		then 
-			echo "Did you forget to press the reset button?"
-			REMIND=1
-		fi
-        sleep 1
-	done
-}
-make clean
-make KEYMAP=${KMAP} ${THREADS}
-if [[ $? -eq 0 ]]
-then
-    echo "please trigger flashing!"
-    wait_bootloader
-    sudo make KEYMAP=${KMAP} dfu ${THREADS}
-else
-    echo "make failed"
-    exit 77
-fi

+ 125 - 117
keyboards/amj40/keymaps/default/keymap.c

@@ -1,135 +1,143 @@
-
-
+/* Copyright 2017 Fabian Topfstedt
+ *
+ * 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 QMK_KEYBOARD_H
 
-// 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.
-#define _QWERTY 0
-#define _LOWER 1
-#define _RAISE 2
-#define _ADJUST 3
-
-
+enum layer_names {
+    _QWERTY,
+    _LOWER,
+    _RAISE,
+    _ADJUST,
+};
 
 enum custom_keycodes {
-  QWERTY = SAFE_RANGE,
-  LOWER,
-  RAISE,
-  ADJUST,
+    QWERTY = SAFE_RANGE,
+    LOWER,
+    RAISE,
+    ADJUST,
 };
 
+#define LT1_SPC LT(_LOWER,KC_SPC)
+#define LT2_SPC LT(_RAISE,KC_SPC)
+#define LT3_LGU LT(_ADJUST,KC_LGUI)
+
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-        /* Default Layer
-     * ,-----------------------------------------------------------.
-     * | Esc|  Q |  W |  E |  R |  T |  Y |  U |  I |  O |  P | BS |
-     * |-----------------------------------------------------------|
-     * | Tab |  A |  S |  D |  F |  G |  H |  J |  K |  L | Ent    |
-     * |-----------------------------------------------------------|
-     * | LSft   |  Z |  X |  C |  V |  B |  N |  M |  ,  |  . | /? |
-     * |-----------------------------------------------------------|
-     * | LCtl | LGui| LAlt|  spc fn0  |  spc fn1    |fn2|RAlt|RCtl |
-     * `-----------------------------------------------------------'
+    /* Default Layer
+     * ,-----------------------------------------------.
+     * |Esc| Q | W | E | R | T | Y | U | I | O | P |BS |
+     * |-----------------------------------------------|
+     * |Tab | A | S | D | F | G | H | J | K | L |Enter |
+     * |-----------------------------------------------|
+     * | LSft | Z | X | C | V | B | N | M | , | .  |/? |
+     * |-----------------------------------------------|
+     * |LCtl|GUI|LAlt|Spc/Fn0 | Spc/Fn1  |Fn2 |Alt|RCtl|
+     * `-----------------------------------------------'
      */
-    [_QWERTY] = LAYOUT( \
-        KC_ESC,  KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,    KC_O,    KC_P,   KC_BSPC,\
-        KC_TAB,  KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,    KC_L,    KC_ENT,\
-        KC_LSFT, KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH,\
-        KC_LCTL, KC_LGUI, KC_LALT,          LT(_LOWER, KC_SPC),LT(_RAISE, KC_SPC),LT(_ADJUST, KC_LGUI), KC_RALT, KC_RCTL \
-		),
+    [_QWERTY] = LAYOUT(
+        KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
+        KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,             KC_ENT,
+        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
+        KC_LCTL, KC_LGUI, KC_LALT,                   LT1_SPC, LT2_SPC,                   LT3_LGU, KC_RALT, KC_RCTL
+    ),
 
     /* Function Layer 1 HHKB style
-     * ,-----------------------------------------------------------.
-     * |   ~  |   !   |  @  | # | $ | % | ^ | & | * | ( | ) | Bkspc|
-     * |-----------------------------------------------------------|
-     * |   F1   | F2 | F3 | F4 | F5 |  F6 | _ | + | [ | ] |  Pipe  |
-     * |-----------------------------------------------------------|
-     * |    F7    | F8 | F9 |  F10  |  F11 |  F12 | End|PgDn| ↓ |     |    |
-     * |-----------------------------------------------------------|
-     * |     |    |     |           |             | Stop| App|     |
-     * `-----------------------------------------------------------'
+     * ,-----------------------------------------------.
+     * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |BS |
+     * |-----------------------------------------------|
+     * | F1 |F2 |F3 |F4 |F5 |F6 | _ | + | { | } | Pipe |
+     * |-----------------------------------------------|
+     * |  F7  |F8 |F9 |F10|F11|F12| ~ | | |BL±|BL+ |BL-|
+     * |-----------------------------------------------|
+     * |    |   |    |        |   Left   |Down|Up |Rght|
+     * `-----------------------------------------------'
      */
-    [_LOWER] = LAYOUT( \
-        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
-		KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
-		KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,S(KC_NUHS),S(KC_NUBS),BL_TOGG, BL_INC, BL_DEC, \
-		_______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
-		),
-	
-	/* Function Layer 1 HHKB style
-     * ,-----------------------------------------------------------.
-     * |Caps|    |MSel| ⏮ | ⏯ | ⏭ |PSCR|SkLk|Paus|  ↑ | Ins| Del|
-     * |-----------------------------------------------------------|
-     * |      | 🔇 | ⏏ |    |  * |  / |Hone|PgUp|  ← |  → |       |
-     * |-----------------------------------------------------------|
-     * |        | 🔉 | 🔊 |    |  + |  - | End|PgDn| ↓ |     |    |
-     * |-----------------------------------------------------------|
-     * |     |    |     |           |             | Stop| App|     |
-     * `-----------------------------------------------------------'
-     */
-    [_RAISE] = LAYOUT( \
-        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC, \
-		KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS, \
-		KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, _______, _______, KC_DEL, \
-		_______, KC_TRNS, _______, KC_TRNS, KC_TRNS, _______, _______, RGB_TOG \
-		),
-	
-	/* Function Layer 1 HHKB style
-     * ,-----------------------------------------------------------.
-     * |Caps|    |MSel| ⏮ | ⏯ | ⏭ |PSCR|SkLk|Paus|  ↑ | Ins| Del|
-     * |-----------------------------------------------------------|
-     * |      | 🔇 | ⏏ |    |  * |  / |Hone|PgUp|  ← |  → |       |
-     * |-----------------------------------------------------------|
-     * |        | 🔉 | 🔊 |    |  + |  - | End|PgDn| ↓ |     |    |
-     * |-----------------------------------------------------------|
-     * |     |    |     |           |             | Stop| App|     |
-     * `-----------------------------------------------------------'
-     */
-    [_ADJUST] = LAYOUT( \
-        _______, RESET,   _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
-		_______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, _______, _______, _______,  _______,  \
-		_______, _______, _______, RGB_TOG,  RGB_MOD,  RGB_HUI,  RGB_HUD,  RGB_SAI,  RGB_SAD,  RGB_VAI,  RGB_VAD, \
-		KC_SYSTEM_SLEEP, _______, _______, _______, _______, _______, _______, _______ \
-		),
+    [_LOWER] = LAYOUT(
+        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR,    KC_ASTR,    KC_LPRN, KC_RPRN, KC_BSPC,
+        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS,    KC_LCBR,    KC_RCBR,          KC_PIPE,
+        KC_F7,            KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  S(KC_NUHS), S(KC_NUBS), BL_TOGG, BL_INC,  BL_DEC,
+        _______, _______, _______,                   _______, KC_LEFT,                         KC_DOWN, KC_UP,   KC_RGHT
+    ),
 
-    
+    /* Function Layer 1 HHKB style
+     * ,-----------------------------------------------.
+     * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |BS |
+     * |-----------------------------------------------|
+     * | F1 |F2 |F3 |F4 |F5 |F6 | - | = | [ | ] |  \   |
+     * |-----------------------------------------------|
+     * |  F7  |F8 |F9 |F10|F11|F12| # | \ |   |    |Del|
+     * |-----------------------------------------------|
+     * |    |   |    |        |          |    |   |RGB±|
+     * `-----------------------------------------------'
+     */
+    [_RAISE] = LAYOUT(
+        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
+        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC,          KC_BSLS,
+        KC_F7,            KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, _______, _______, KC_DEL,
+        _______, _______, _______,                   _______, _______,                   _______, _______, RGB_TOG
+    ),
 
+    /* Function Layer 1 HHKB style
+     * ,-----------------------------------------------.
+     * |   |RST|   |   |   |   |   |   |   |   |   |Del|
+     * |-----------------------------------------------|
+     * |    |   |   |Au1|Au0|AGN|AGS|   |   |   |      |
+     * |-----------------------------------------------|
+     * |      |   |   |RTg|RMd|RH+|RH-|RS+|RS-|RV+ |RV-|
+     * |-----------------------------------------------|
+     * |SLP |   |    |        |          |    |   |RTg |
+     * `-----------------------------------------------'
+     */
+    [_ADJUST] = LAYOUT(
+        _______, RESET,   _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
+        _______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, _______, _______, _______,          _______,
+        _______,          _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD,
+        KC_SLEP, _______, _______,                   _______, _______,                   _______, _______, _______
+    ),
 };
 
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- 
-  switch (keycode) {
-    
-    case LOWER:
-      if (record->event.pressed) {
-        layer_on(_LOWER);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_LOWER);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-      break;
-    case RAISE:
-      if (record->event.pressed) {
-        layer_on(_RAISE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_RAISE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-      break;
-    case ADJUST:
-      if (record->event.pressed) {
-        layer_on(_ADJUST);
-      } else {
-        layer_off(_ADJUST);
-      }
-      return false;
-      break;
-  }
-  return true;
+    switch (keycode) {
+        case LOWER:
+            if (record->event.pressed) {
+                layer_on(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+            return false;
+            break;
+        case RAISE:
+            if (record->event.pressed) {
+                layer_on(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+            return false;
+            break;
+        case ADJUST:
+            if (record->event.pressed) {
+                layer_on(_ADJUST);
+            } else {
+                layer_off(_ADJUST);
+            }
+            return false;
+            break;
+    }
+    return true;
 }

+ 0 - 20
keyboards/amj40/keymaps/default/rules.mk

@@ -1,20 +0,0 @@
-# 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
-#
-BOOTMAGIC_ENABLE = no  # Virtual DIP switch configuration
-MOUSEKEY_ENABLE  = no  # Mouse keys
-EXTRAKEY_ENABLE  = yes # Audio control and System control
-CONSOLE_ENABLE   = no  # Console for debug
-COMMAND_ENABLE   = yes # 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
-BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality
-MIDI_ENABLE      = no  # MIDI controls
-AUDIO_ENABLE     = no  # Audio output on port C6
-UNICODE_ENABLE   = no  # Unicode
-BLUETOOTH_ENABLE = no  # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE  = yes  # Enable WS2812 RGB underlight.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-

+ 0 - 4
keyboards/amj40/keymaps/default/updatemerge.sh

@@ -1,4 +0,0 @@
-#!/bin/bash
-git checkout amj60      # gets you on branch amj60
-git fetch origin        # gets you up to date with origin
-git merge origin/master

+ 41 - 0
keyboards/amj40/keymaps/default_625u_space/keymap.c

@@ -0,0 +1,41 @@
+/* Copyright 2021 James Young (@noroadsleft)
+ *
+ * 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 QMK_KEYBOARD_H
+
+#define LT1_SCL     LT(1, KC_SCLN)
+#define LT2_QUO     LT(2, KC_QUOT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT_625u_space(
+        KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
+        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,             KC_ENT,
+        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
+        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             LT1_SCL, LT2_QUO
+    ),
+    [1] = LAYOUT_625u_space(
+        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DEL,
+        KC_TAB,  KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______,          KC_INS,
+        _______,          KC_SCLN, KC_QUOT, KC_COLN, KC_DQUO, KC_TILD, KC_LABK, KC_RABK, KC_LBRC, KC_RBRC, _______,
+        _______, _______, _______,                            _______,                            _______, _______
+    ),
+    [2] = LAYOUT_625u_space(
+        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,
+        RESET,   KC_PWR,  _______, _______, KC_PSCR, KC_PAUS, BL_TOGG, BL_DEC,  BL_INC,  BL_STEP,          _______,
+        KC_UP,            KC_MINS, KC_EQL,  KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LPRN, KC_RPRN, _______,
+        KC_LEFT, KC_DOWN, KC_RGHT,                            _______,                            _______, _______
+    ),
+};

+ 40 - 0
keyboards/amj40/keymaps/default_ortho_275u_space/keymap.c

@@ -0,0 +1,40 @@
+/* Copyright 2021 James Young (@noroadsleft)
+ *
+ * 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 QMK_KEYBOARD_H
+
+#define LT2_SLS     LT(2,KC_SLSH)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT_ortho_275u_space(
+        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
+        KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
+        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_UP,   KC_ENT,
+        KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, MO(1),            KC_SPC,           LT2_SLS, KC_LEFT, KC_DOWN, KC_RGHT
+    ),
+    [1] = LAYOUT_ortho_275u_space(
+        KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+        _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+        _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, KC_QUES, KC_UP,   _______,
+        _______, _______, _______, _______, _______,          _______,          _______, KC_LEFT, KC_DOWN, KC_RGHT
+    ),
+    [2] = LAYOUT_ortho_275u_space(
+        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
+        KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS,
+        _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  BL_TOGG, BL_DEC,  BL_INC,  BL_STEP, _______,
+        RESET,   _______, _______, _______, _______,          _______,          _______, _______, _______, _______
+    ),
+};

+ 38 - 0
keyboards/amj40/keymaps/default_ortho_600u_space/keymap.c

@@ -0,0 +1,38 @@
+/* Copyright 2021 James Young (@noroadsleft)
+ *
+ * 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 QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT_ortho_600u_space(
+        KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
+        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_A,    KC_ENT,
+        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
+        KC_LCTL, KC_LGUI, MO(1),                     KC_SPC,                             MO(2),   KC_BSLS, KC_B
+    ),
+    [1] = LAYOUT_ortho_600u_space(
+        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_BSPC,
+        KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UP,   _______,
+        KC_UNDS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_QUOT, KC_GRV,  _______, KC_LEFT, KC_DOWN, KC_RGHT,
+        _______, _______, _______,                   _______,                            _______, _______, _______
+    ),
+    [2] = LAYOUT_ortho_600u_space(
+        RESET,   _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______,
+        _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC,  BL_INC,  BL_STEP, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______,                   _______,                            _______, _______, _______
+    ),
+};

+ 15 - 6
keyboards/amj40/readme.md

@@ -1,14 +1,23 @@
-AMJ40
-===
+# AMJ40
+
+![AMJ40](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/amj40/AMJ40-Keyboard-Side-scaled_640.jpg)\
+[PCB photo](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/amj40/DSC_1718-768x512_640)
 
 DIY/Assembled compact 40% keyboard.
 
-Keyboard Maintainer: QMK Community  
-Hardware Supported: AMJ40 PCB  
-Hardware Availability: https://geekhack.org/index.php?topic=87961.0
+* Keyboard Maintainer: QMK Community
+* Hardware Supported: AMJ40 PCB
+* Hardware Availability: no longer available
+* References: [Flashquark](https://flashquark.com/product/amj40-40-mechanical-keyboard-kit/), [geekhack](https://geekhack.org/index.php?topic=87961.0)
 
 Make example for this keyboard (after setting up your build environment):
 
     make amj40: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 amj40:default:flash
+
+To reset the board into bootloader mode, hold the key at the top left of the keyboard while connecting the USB cable (also erases persistent settings).
+
+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).

+ 14 - 20
keyboards/amj40/rules.mk

@@ -2,27 +2,21 @@
 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
-#   comment out to disable the options.
+#   change yes to no to disable
 #
-BOOTMAGIC_ENABLE = no  # Virtual DIP switch configuration
-MOUSEKEY_ENABLE  = no  # 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      = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE  = yes # Enable keyboard underlight functionality
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE      = no  # MIDI controls
-AUDIO_ENABLE     = no
-UNICODE_ENABLE   = no  # Unicode
-BLUETOOTH_ENABLE = no  # Enable Bluetooth with the Adafruit EZ-Key HID
+BOOTMAGIC_ENABLE = lite     # 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
+# 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
+RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no       # Enable Bluetooth
+AUDIO_ENABLE = no           # Audio output