summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMechMerlin2018-07-06 08:15:56 -0700
committerDrashna Jaelre2018-07-06 08:15:56 -0700
commit36d35959c8d849e82881ea107019e9302ef29f74 (patch)
treef2b48be2ffdbf8a8c6ad5c77fe53a7fb8b756099
parent0210447c82c9006a740393aed07e944d7ab72df5 (diff)
E6-V2 Last Edition (LE) Support (#3324)
* new matrix for LE(Last Edition) E6V2 * Update pin outs for the new version of the PCB * putting in some placeholders for now * Trying to get e6v2/oe:default to compile * put rules.mk in the right directory * Add and update readme files * move info.json to oe directory * Update LE directory * rename keyboard name * Add QMK Configurator Support At this time, ths only covers the ALL case and allows people to use the configurator to generate their keymaps. More work will need to be done.
-rw-r--r--keyboards/e6v2/e6v2.c54
-rw-r--r--keyboards/e6v2/e6v2.h66
-rw-r--r--keyboards/e6v2/keymaps/amnesia0287/config.h1
-rw-r--r--keyboards/e6v2/keymaps/amnesia0287/rules.mk0
-rw-r--r--keyboards/e6v2/keymaps/default/config.h1
-rw-r--r--keyboards/e6v2/keymaps/default/rules.mk0
-rw-r--r--keyboards/e6v2/le/config.h65
-rw-r--r--keyboards/e6v2/le/info.json12
-rw-r--r--keyboards/e6v2/le/le.c53
-rw-r--r--keyboards/e6v2/le/le.h19
-rw-r--r--keyboards/e6v2/le/readme.md17
-rw-r--r--keyboards/e6v2/le/rules.mk68
-rw-r--r--keyboards/e6v2/oe/config.h (renamed from keyboards/e6v2/config.h)0
-rw-r--r--keyboards/e6v2/oe/info.json (renamed from keyboards/e6v2/info.json)2
-rw-r--r--keyboards/e6v2/oe/keymaps/amnesia0287/keymap.c (renamed from keyboards/e6v2/keymaps/amnesia0287/keymap.c)0
-rw-r--r--keyboards/e6v2/oe/keymaps/amnesia0287/readme.md (renamed from keyboards/e6v2/keymaps/amnesia0287/readme.md)0
-rw-r--r--keyboards/e6v2/oe/keymaps/default/keymap.c (renamed from keyboards/e6v2/keymaps/default/keymap.c)0
-rw-r--r--keyboards/e6v2/oe/keymaps/default/readme.md (renamed from keyboards/e6v2/keymaps/default/readme.md)0
-rw-r--r--keyboards/e6v2/oe/oe.c53
-rw-r--r--keyboards/e6v2/oe/oe.h66
-rw-r--r--keyboards/e6v2/oe/readme.md17
-rw-r--r--keyboards/e6v2/oe/rules.mk70
-rw-r--r--keyboards/e6v2/readme.md15
-rw-r--r--keyboards/e6v2/rules.mk71
24 files changed, 453 insertions, 197 deletions
diff --git a/keyboards/e6v2/e6v2.c b/keyboards/e6v2/e6v2.c
index 917f3e07b..e7d5fe9e3 100644
--- a/keyboards/e6v2/e6v2.c
+++ b/keyboards/e6v2/e6v2.c
@@ -1,53 +1 @@
-#include "e6v2.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- matrix_init_user();
-}
-
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
-
- matrix_scan_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- // put your per-action keyboard code here
- // runs for every action, just before processing by the firmware
-
- return process_record_user(keycode, record);
-}
-
-void led_set_kb(uint8_t usb_led) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
- DDRB |= (1<<6);
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
- // output low
- DDRB |= (1<<2);
- PORTB &= ~(1<<2);
- } else {
- // Hi-Z
- DDRB &= ~(1<<2);
- PORTB &= ~(1<<2);
- }
- // DDRB |= (1<<7);
- // DDRB |= (1<<1);
- // DDRB |= (1<<3);
- // DDRE |= (1<<6);
- if (usb_led == 0){
- PORTB |= (1<<6);
- // PORTB |= (1<<7);
- // PORTB |= (1<<1);
- // PORTB |= (1<<3);
- // PORTE |= (1<<6);
- }
- else{
- PORTB &= ~(1<<6);
- // PORTB &= ~(1<<7);
- }
-
- led_set_user(usb_led);
-}
+#include "e6v2.h" \ No newline at end of file
diff --git a/keyboards/e6v2/e6v2.h b/keyboards/e6v2/e6v2.h
index 6416b4bd5..5190a3e82 100644
--- a/keyboards/e6v2/e6v2.h
+++ b/keyboards/e6v2/e6v2.h
@@ -3,64 +3,12 @@
#include "quantum.h"
-#define LAYOUT( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K46, K4A, K4B, K4C, K4D \
-)\
-{\
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
- { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \
-}
-
-#define LAYOUT_60_ansi( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
- K40, K41, K42, K46, K4A, K4B, K4C, K4D \
-)\
-{\
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
- { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO }, \
- { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \
-}
-
-#define LAYOUT_hhkb( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K41, K42, K46, K4B, K4C \
-)\
-{\
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
- { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
- { KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, KC_NO }, \
-}
-
-#define LAYOUT_hhkb_splits( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K41, K42, K46, K4B, K4C \
-)\
-{\
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
- { KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, KC_NO }, \
-}
+#ifdef KEYBOARD_e6v2_oe
+ #include "oe.h"
+#endif
+#ifdef KEYBOARD_e6v2_le
+ #include "le.h"
#endif
+
+#endif \ No newline at end of file
diff --git a/keyboards/e6v2/keymaps/amnesia0287/config.h b/keyboards/e6v2/keymaps/amnesia0287/config.h
deleted file mode 100644
index a5568e400..000000000
--- a/keyboards/e6v2/keymaps/amnesia0287/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../config.h"
diff --git a/keyboards/e6v2/keymaps/amnesia0287/rules.mk b/keyboards/e6v2/keymaps/amnesia0287/rules.mk
deleted file mode 100644
index e69de29bb..000000000
--- a/keyboards/e6v2/keymaps/amnesia0287/rules.mk
+++ /dev/null
diff --git a/keyboards/e6v2/keymaps/default/config.h b/keyboards/e6v2/keymaps/default/config.h
deleted file mode 100644
index a5568e400..000000000
--- a/keyboards/e6v2/keymaps/default/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../config.h"
diff --git a/keyboards/e6v2/keymaps/default/rules.mk b/keyboards/e6v2/keymaps/default/rules.mk
deleted file mode 100644
index e69de29bb..000000000
--- a/keyboards/e6v2/keymaps/default/rules.mk
+++ /dev/null
diff --git a/keyboards/e6v2/le/config.h b/keyboards/e6v2/le/config.h
new file mode 100644
index 000000000..e15545150
--- /dev/null
+++ b/keyboards/e6v2/le/config.h
@@ -0,0 +1,65 @@
+/*
+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/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0002
+#define MANUFACTURER Exclusive / E-Team
+#define PRODUCT E6-V2 LE
+#define DESCRIPTION E6-V2 LE QMK PCB (Mid-Port)
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/* QMK E6-V2 PCB default pin-out */
+#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4 }
+#define MATRIX_COL_PINS { B5, D0, D1, D2, D3, D4, D5, D6, D7, C6, C7, F4, F5, F6, F7 }
+#define UNUSED_PINS
+
+#define RGB_DI_PIN E6
+#ifdef RGB_DI_PIN
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 12
+#define RGBLIGHT_HUE_STEP 12
+#define RGBLIGHT_SAT_STEP 12
+#define RGBLIGHT_VAL_STEP 12
+#endif
+
+#define BACKLIGHT_PIN B6
+#ifdef BACKLIGHT_PIN
+#define BACKLIGHT_LEVELS 2
+#define BACKLIGHT_BREAHTING
+#define BREATHING_PERIOD 3
+#endif
+
+#define DIODE_DIRECTION COL2ROW
+#define DEBOUNCING_DELAY 5
+
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+ )
+
+
+
+#endif
diff --git a/keyboards/e6v2/le/info.json b/keyboards/e6v2/le/info.json
new file mode 100644
index 000000000..9f9251282
--- /dev/null
+++ b/keyboards/e6v2/le/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "E6-V2 LE",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.75}, {"label":"Ctrl", "x":1.75, "y":4, "w":1.25}, {"label":"Win", "x":3, "y":4, "w":1.25}, {"label":"Alt", "x":4.25, "y":4, "w":1.25}, {"x":5.5, "y":4, "w":2.75}, {"x":8.25, "y":4, "w":1.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/e6v2/le/le.c b/keyboards/e6v2/le/le.c
new file mode 100644
index 000000000..9083352d4
--- /dev/null
+++ b/keyboards/e6v2/le/le.c
@@ -0,0 +1,53 @@
+#include "le.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+ DDRB |= (1<<6);
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // output low
+ DDRB |= (1<<2);
+ PORTB &= ~(1<<2);
+ } else {
+ // Hi-Z
+ DDRB &= ~(1<<2);
+ PORTB &= ~(1<<2);
+ }
+ // DDRB |= (1<<7);
+ // DDRB |= (1<<1);
+ // DDRB |= (1<<3);
+ // DDRE |= (1<<6);
+ if (usb_led == 0){
+ PORTB |= (1<<6);
+ // PORTB |= (1<<7);
+ // PORTB |= (1<<1);
+ // PORTB |= (1<<3);
+ // PORTE |= (1<<6);
+ }
+ else{
+ PORTB &= ~(1<<6);
+ // PORTB &= ~(1<<7);
+ }
+
+ led_set_user(usb_led);
+}
diff --git a/keyboards/e6v2/le/le.h b/keyboards/e6v2/le/le.h
new file mode 100644
index 000000000..197b9335c
--- /dev/null
+++ b/keyboards/e6v2/le/le.h
@@ -0,0 +1,19 @@
+#ifndef LE_H
+#define LE_H
+
+#include "../e6v2.h"
+
+#define LAYOUT( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
+ K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K42, K43, K44, K47, K49, K4A, K4B, K4C, K4D, K4E \
+)\
+{\
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
+ { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, KC_NO, K42, K43, K44, KC_NO, KC_NO, K47, KC_NO, K49, K4A, K4B, K4C, K4D, K4E }, \
+} \ No newline at end of file
diff --git a/keyboards/e6v2/le/readme.md b/keyboards/e6v2/le/readme.md
new file mode 100644
index 000000000..33a864771
--- /dev/null
+++ b/keyboards/e6v2/le/readme.md
@@ -0,0 +1,17 @@
+# E6-V2 Last Edition (LE)
+
+These docs are for the QMK version of the PCB. [More info on qmk.fm](http://qmk.fm/)
+
+Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
+Hardware Supported: E6-V2 LE Mid Port rev.qmk
+Hardware Availability: [geekhack.org/index.php?topic=90787.0](https://geekhack.org/index.php?topic=90787.0)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make e6v2/le:default
+
+Or to make and flash:
+
+ make e6v2/le:default:dfu
+
+See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file
diff --git a/keyboards/e6v2/le/rules.mk b/keyboards/e6v2/le/rules.mk
new file mode 100644
index 000000000..c2c02b614
--- /dev/null
+++ b/keyboards/e6v2/le/rules.mk
@@ -0,0 +1,68 @@
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+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 on B7 by default
+RGBLIGHT_ENABLE = yes
+MIDI_ENABLE = no # MIDI controls
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/e6v2/config.h b/keyboards/e6v2/oe/config.h
index b80afcb51..b80afcb51 100644
--- a/keyboards/e6v2/config.h
+++ b/keyboards/e6v2/oe/config.h
diff --git a/keyboards/e6v2/info.json b/keyboards/e6v2/oe/info.json
index 1cac56f7e..7c1401727 100644
--- a/keyboards/e6v2/info.json
+++ b/keyboards/e6v2/oe/info.json
@@ -1,5 +1,5 @@
{
- "keyboard_name": "E6-V2",
+ "keyboard_name": "E6-V2 OE",
"url": "",
"maintainer": "qmk",
"width": 15,
diff --git a/keyboards/e6v2/keymaps/amnesia0287/keymap.c b/keyboards/e6v2/oe/keymaps/amnesia0287/keymap.c
index 7e64b1212..7e64b1212 100644
--- a/keyboards/e6v2/keymaps/amnesia0287/keymap.c
+++ b/keyboards/e6v2/oe/keymaps/amnesia0287/keymap.c
diff --git a/keyboards/e6v2/keymaps/amnesia0287/readme.md b/keyboards/e6v2/oe/keymaps/amnesia0287/readme.md
index 4cc97aef0..4cc97aef0 100644
--- a/keyboards/e6v2/keymaps/amnesia0287/readme.md
+++ b/keyboards/e6v2/oe/keymaps/amnesia0287/readme.md
diff --git a/keyboards/e6v2/keymaps/default/keymap.c b/keyboards/e6v2/oe/keymaps/default/keymap.c
index 945787f0d..945787f0d 100644
--- a/keyboards/e6v2/keymaps/default/keymap.c
+++ b/keyboards/e6v2/oe/keymaps/default/keymap.c
diff --git a/keyboards/e6v2/keymaps/default/readme.md b/keyboards/e6v2/oe/keymaps/default/readme.md
index e72647364..e72647364 100644
--- a/keyboards/e6v2/keymaps/default/readme.md
+++ b/keyboards/e6v2/oe/keymaps/default/readme.md
diff --git a/keyboards/e6v2/oe/oe.c b/keyboards/e6v2/oe/oe.c
new file mode 100644
index 000000000..10cd59f0c
--- /dev/null
+++ b/keyboards/e6v2/oe/oe.c
@@ -0,0 +1,53 @@
+#include "oe.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+ DDRB |= (1<<6);
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // output low
+ DDRB |= (1<<2);
+ PORTB &= ~(1<<2);
+ } else {
+ // Hi-Z
+ DDRB &= ~(1<<2);
+ PORTB &= ~(1<<2);
+ }
+ // DDRB |= (1<<7);
+ // DDRB |= (1<<1);
+ // DDRB |= (1<<3);
+ // DDRE |= (1<<6);
+ if (usb_led == 0){
+ PORTB |= (1<<6);
+ // PORTB |= (1<<7);
+ // PORTB |= (1<<1);
+ // PORTB |= (1<<3);
+ // PORTE |= (1<<6);
+ }
+ else{
+ PORTB &= ~(1<<6);
+ // PORTB &= ~(1<<7);
+ }
+
+ led_set_user(usb_led);
+}
diff --git a/keyboards/e6v2/oe/oe.h b/keyboards/e6v2/oe/oe.h
new file mode 100644
index 000000000..2cfecb0be
--- /dev/null
+++ b/keyboards/e6v2/oe/oe.h
@@ -0,0 +1,66 @@
+#ifndef OE_H
+#define OE_H
+
+#include "../e6v2.h"
+
+#define LAYOUT( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D \
+)\
+{\
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \
+}
+
+#define LAYOUT_60_ansi( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D \
+)\
+{\
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \
+}
+
+#define LAYOUT_hhkb( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K41, K42, K46, K4B, K4C \
+)\
+{\
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
+ { KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, KC_NO }, \
+}
+
+#define LAYOUT_hhkb_splits( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K41, K42, K46, K4B, K4C \
+)\
+{\
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
+ { KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, KC_NO }, \
+}
+
+#endif
diff --git a/keyboards/e6v2/oe/readme.md b/keyboards/e6v2/oe/readme.md
new file mode 100644
index 000000000..b9b42bd5f
--- /dev/null
+++ b/keyboards/e6v2/oe/readme.md
@@ -0,0 +1,17 @@
+# E6-V2 Original Edition (OE)
+
+These docs are for the QMK version of the PCB. [More info on qmk.fm](http://qmk.fm/)
+
+Keyboard Maintainer: [amnesia0287](https://github.com/amnesia0287)
+Hardware Supported: E6-V2 OE Mid Port rev.qmk
+Hardware Availability: [geekhack.org/index.php?topic=90787.0](https://geekhack.org/index.php?topic=90787.0)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make e6v2/oe:default
+
+Or to make and flash:
+
+ make e6v2/oe:default:dfu
+
+See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file
diff --git a/keyboards/e6v2/oe/rules.mk b/keyboards/e6v2/oe/rules.mk
new file mode 100644
index 000000000..7d28042d8
--- /dev/null
+++ b/keyboards/e6v2/oe/rules.mk
@@ -0,0 +1,70 @@
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+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 on B7 by default
+RGBLIGHT_ENABLE = yes
+MIDI_ENABLE = no # MIDI controls
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+
+LAYOUTS = 60_ansi \ No newline at end of file
diff --git a/keyboards/e6v2/readme.md b/keyboards/e6v2/readme.md
index 5fd9668f5..4ac498fc4 100644
--- a/keyboards/e6v2/readme.md
+++ b/keyboards/e6v2/readme.md
@@ -1,18 +1,9 @@
-E6-V2
-===
+# E6-V2
These docs are for the QMK version of the PCB. [More info on qmk.fm](http://qmk.fm/)
-Keyboard Maintainer: [amnesia0287](https://github.com/amnesia0287)
-Hardware Supported: E6-V2 Mid Port rev.qmk
-Hardware Availability: [geekhack.org/index.php?topic=90787.0](https://geekhack.org/index.php?topic=90787.0)
+The E6V2 has been available with either a bootmapper client or QMK powered PCB. During the second round, the QMK powered PCB was redesigned and used different ports and a different switch matrix.
-Make example for this keyboard (after setting up your build environment):
-
- make e6v2:default
-
-Or to make and flash:
-
- make e6v2:default:dfu
+Please use the appropriate version when making your firmware.
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
diff --git a/keyboards/e6v2/rules.mk b/keyboards/e6v2/rules.mk
index 7d28042d8..0909ba2ce 100644
--- a/keyboards/e6v2/rules.mk
+++ b/keyboards/e6v2/rules.mk
@@ -1,70 +1 @@
-# MCU name
-#MCU = at90usb1287
-MCU = atmega32u4
-
-# Processor frequency.
-# This will define a symbol, F_CPU, in all source code files equal to the
-# processor frequency in Hz. You can then use this symbol in your source code to
-# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-# automatically to create a 32-bit value in your source code.
-#
-# This will be an integer division of F_USB below, as it is sourced by
-# F_USB after it has run through any CPU prescalers. Note that this value
-# does not *change* the processor frequency - it should merely be updated to
-# reflect the processor speed set externally so that the code can use accurate
-# software delays.
-F_CPU = 16000000
-
-
-#
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-# This will define a symbol, F_USB, in all source code files equal to the
-# input clock frequency (before any prescaling is performed) in Hz. This value may
-# differ from F_CPU if prescaling is used on the latter, and is required as the
-# raw input clock is fed directly to the PLL sections of the AVR for high speed
-# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-# at the end, this will be done automatically to create a 32-bit value in your
-# source code.
-#
-# If no clock division is performed on the input clock inside the AVR (via the
-# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-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 on B7 by default
-RGBLIGHT_ENABLE = yes
-MIDI_ENABLE = no # MIDI controls
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE = no # Audio output on port C6
-
-LAYOUTS = 60_ansi \ No newline at end of file
+DEFAULT_FOLDER = e6v2/oe \ No newline at end of file