aboutsummaryrefslogtreecommitdiff
path: root/keyboards/aplyard/aplx6/rev2
diff options
context:
space:
mode:
authorAkshay <[email protected]>2022-04-10 12:13:40 +0100
committerAkshay <[email protected]>2022-04-10 12:13:40 +0100
commitdc90387ce7d8ba7b607d9c48540bf6d8b560f14d (patch)
tree4ccb8fa5886b66fa9d480edef74236c27f035e16 /keyboards/aplyard/aplx6/rev2
Diffstat (limited to 'keyboards/aplyard/aplx6/rev2')
-rw-r--r--keyboards/aplyard/aplx6/rev2/config.h48
-rw-r--r--keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c148
-rw-r--r--keyboards/aplyard/aplx6/rev2/readme.md39
-rw-r--r--keyboards/aplyard/aplx6/rev2/rev2.c16
-rw-r--r--keyboards/aplyard/aplx6/rev2/rev2.h28
-rw-r--r--keyboards/aplyard/aplx6/rev2/rules.mk22
6 files changed, 301 insertions, 0 deletions
diff --git a/keyboards/aplyard/aplx6/rev2/config.h b/keyboards/aplyard/aplx6/rev2/config.h
new file mode 100644
index 000000000..2b30e67e0
--- /dev/null
+++ b/keyboards/aplyard/aplx6/rev2/config.h
@@ -0,0 +1,48 @@
1/*
2Copyright 2020 April Aplyard <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xE0E0
24#define PRODUCT_ID 0x0040
25#define DEVICE_VER 0x0002
26#define MANUFACTURER Aplyard
27#define PRODUCT Aplx6
28
29/* key matrix size */
30#define MATRIX_ROWS 2
31#define MATRIX_COLS 3
32
33/* 9Key PCB default pin-out */
34#define MATRIX_ROW_PINS { B4, B5 }
35#define MATRIX_COL_PINS { C6, D7, E6 }
36#define UNUSED_PINS
37
38/* COL2ROW or ROW2COL */
39#define DIODE_DIRECTION COL2ROW
40
41#define TAPPING_TERM 200
42
43/* Encoder */
44#define ENCODERS_PAD_A { F5 }
45#define ENCODERS_PAD_B { F4 }
46#define ENCODER_RESOLUTION 4
47
48#define TAP_CODE_DELAY 50
diff --git a/keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c b/keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c
new file mode 100644
index 000000000..9c8ac545b
--- /dev/null
+++ b/keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c
@@ -0,0 +1,148 @@
1 /* Copyright 2020 Aplyard
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18enum layer_names {
19 _MEDIA,
20 _DOC,
21 _POWER
22};
23
24#define KC_COPY LCTL(KC_C) //Mac, change it to LGUI(KC_C)
25#define KC_CUT LCTL(KC_X) // >> >> LGUI(KC_X)
26#define KC_PASTE LCTL(KC_V) // >> >> LGUI(KC_V)
27//#define KC_MY_COMPUTER LGUI(KC_SPC) //Uncomment this for Mac Spotlight Search
28
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30 /* Keymap __MEDIA: Default Layer
31 * ,----------------------------------.
32 * | .-------. / / / / / / |
33 * | | | |------|------|------| |
34 * | | Pro | | Mute | Play |Vol+/-| |
35 * | | Micro | |------|------|------| |
36 * | | | |----------------------|
37 * | | | |------|------|------| |
38 * | '-------' | Prev | Stop | Next | |
39 * | APLX6 |------|------|------| |
40 * '----------------------------------'
41 */
42 [_MEDIA] = LAYOUT(
43 KC_MUTE, KC_MPLY, TO(1),
44 KC_MPRV, KC_MSTP, KC_MNXT
45 ),
46 /* Keymap __DOC
47 * ,----------------------------------.
48 * | .-------. / / / / / / |
49 * | | | |------|------|------| |
50 * | | Pro | | Home | PgUp | L/R | |
51 * | | Micro | |------|------|------| |
52 * | | | |----------------------|
53 * | | | |------|------|------| |
54 * | '-------' | End | PgDn | Ins | |
55 * | APLX6 |------|------|------| |
56 * '----------------------------------'
57 */
58 [_DOC] = LAYOUT(
59 KC_HOME, KC_PGUP, TO(2),
60 KC_END, KC_PGDN, KC_INS
61 ),
62 /* Keymap __DOC
63 * ,----------------------------------.
64 * | .-------. / / / / / / |
65 * | | | |------|------|------| |
66 * | | Pro | | Calc | MyPc |Bright| |
67 * | | Micro | |------|------|------| |
68 * | | | |----------------------|
69 * | | | |------|------|------| |
70 * | '-------' | Copy | Cut |Paste | |
71 * | APLX6 |------|------|------| |
72 * '----------------------------------'
73 */
74 [_POWER] = LAYOUT(
75 KC_CALC, KC_MY_COMPUTER, TO(0),
76 KC_COPY, KC_CUT, KC_PASTE
77 )
78};
79
80#if defined(OLED_ENABLE)
81static void render_logo(void) {
82 //Logo for _MEDIA
83 static const char PROGMEM logo1[] = {
84 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 32, 32,160,160,160,160, 32, 32, 0, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,160,144, 8,252,129, 0, 60,126,255,255,255,255,255,255,255,255,126, 60, 0,129,252, 8,144,160, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254, 0, 0, 0, 0, 0, 0,144,144,144,144,240, 0, 0, 48,224,128, 0, 0,224, 48, 0,192,224,176,144,144,240,192, 0, 0,240,240, 16, 16, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 12,254,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 21, 42, 17, 96,135, 88,162, 64, 68,128,137,137,137,137,137,136,128, 68, 64,162, 88,199, 32, 17, 42, 21, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 8, 8, 8, 8, 0, 7, 15, 8, 8, 12, 15, 0, 0, 64, 65,111, 60, 15, 1, 0, 0, 3, 7, 12, 8, 8, 8, 0, 0, 0, 15, 15, 0, 0, 0, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 15, 15, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
87 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 5, 4, 2, 2, 2, 2, 2, 2, 4, 5, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
88 };
89 //Logo for _DOC
90 static const char PROGMEM logo2[] = {
91 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,224,160,224,128,224,160,224,128,224,160,224,128,224,160,224,128,224,160,224,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
92 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 17, 16, 16,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254, 0, 0, 0, 0, 0, 0,144,144,144,144,240, 0, 0, 48,224,128, 0, 0,224, 48, 0,192,224,176,144,144,240,192, 0, 0,240,240, 16, 16, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6,130,194,102, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
93 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,145,161,225, 32,224,160,224, 32,224,160,224, 32,224,160,224, 32,224,160,224, 32,224,160, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 8, 8, 8, 8, 0, 7, 15, 8, 8, 12, 15, 0, 0, 64, 65,111, 60, 15, 1, 0, 0, 3, 7, 12, 8, 8, 8, 0, 0, 0, 15, 15, 0, 0, 0, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 14, 11, 9, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
94 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 3, 2, 3, 0, 3, 2, 3, 0, 3, 2, 3, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
95 };
96 //Logo for _POWER
97 static const char PROGMEM logo3[] = {
98 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,120,254, 58, 30, 8, 4, 4, 4, 2, 2, 4, 4, 4, 8, 30, 58,254,120,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
99 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,248,145, 38, 68,136,144, 16, 32, 32, 32, 32, 16, 16,136, 68, 34,241,254,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254, 0, 0, 0, 0, 0, 0,144,144,144,144,240, 0, 0, 48,224,128, 0, 0,224, 48, 0,192,224,176,144,144,240,192, 0, 0,240,240, 16, 16, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 2, 34, 50, 58,110,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 35,231, 47,255, 62, 62, 61, 61, 61, 61, 61, 61, 62, 62, 63,239, 39,227, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 8, 8, 8, 8, 0, 7, 15, 8, 8, 4, 15, 0, 0, 64, 65,111, 60, 15, 1, 0, 0, 3, 7, 12, 8, 8, 8, 0, 0, 0, 15, 15, 0, 0, 0, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
102 };
103 //Switch between logos
104 switch (get_highest_layer(layer_state)) {
105 case 1:
106 oled_write_raw_P(logo2, sizeof(logo2));
107 break;
108 case 2:
109 oled_write_raw_P(logo3, sizeof(logo3));
110 break;
111 default:
112 oled_write_raw_P(logo1, sizeof(logo1));
113 }
114}
115
116bool oled_task_user(void) {
117 render_logo();
118 return false;
119}
120#endif
121
122bool encoder_update_user(uint8_t index, bool clockwise) {
123 if (index == 0) {
124 switch (get_highest_layer(layer_state)) {
125 case 1:
126 if (clockwise) {
127 tap_code(KC_RIGHT); //edit here your _DOC layer(2) encoder keycode
128 } else {
129 tap_code(KC_LEFT); //edit here your _DOC layer(2) encoder keycode
130 }
131 break;
132 case 2:
133 if (clockwise) {
134 tap_code(KC_BRIU); //edit here your _POWER layer(3) encoder keycode
135 } else {
136 tap_code(KC_BRID); //edit here your _POWER layer(3) encoder keycode
137 }
138 break;
139 default:
140 if (clockwise) {
141 tap_code(KC_VOLU); //edit here your _MEDIA layer(1) encoder keycode
142 } else {
143 tap_code(KC_VOLD); //edit here your _MEDIA layer(1) encoder keycode
144 }
145 }
146 }
147 return true;
148}
diff --git a/keyboards/aplyard/aplx6/rev2/readme.md b/keyboards/aplyard/aplx6/rev2/readme.md
new file mode 100644
index 000000000..fc209fa57
--- /dev/null
+++ b/keyboards/aplyard/aplx6/rev2/readme.md
@@ -0,0 +1,39 @@
1# Aplx6 rev2
2
3![Top View](https://i.imgur.com/92KlXazl.jpeg)
4
5An updated encoder version, implementing music, browser and document shortcuts. Designed to be assembled as a sandwich with a blank PCB, using M2.5 screws and spacers, your choice of MX- or Alps-compatible switches, and 1N4148 diodes.
6
7## New features
8* Encoder (with push button for cycling layers)
9* Oled display for some fancy logos
10* More layers
11
12## Firmware
13* Keyboard Maintainer: [Aplyard](https://github.com/Aplyard)
14* Hardware Supported: Aplx6 PCB, Pro Micro (ATmega32U4)
15* Hardware Availability: [GitHub](https://github.com/Aplyard/aplx6/tree/master/rev2)
16
17Make example for this keyboard (after setting up your build environment):
18
19 make aplyard/aplx6/rev2:default
20
21See 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).
22
23---
24****Designed in**:**
25[KiCad](https://github.com/KiCad)
26
27**Components Footprints & Libraries :**
28[MX_Alps_Hybrid](https://github.com/tyetye/MX_Alps_Hybrid.pretty)
29[keebs.pretty](https://github.com/egladman/keebs.pretty)
30[keyboard_parts.pretty
31](https://github.com/tmk/keyboard_parts.pretty)
32[ProMicro KiCad](https://github.com/Biacco42/ProMicroKiCad)
33
34**Usefull Links:**
35[Qmk Online Configurator](https://config.qmk.fm/#)
36[Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/)
37[Keyboard Plate & Case Builder](http://builder.swillkb.com/)
38
39---
diff --git a/keyboards/aplyard/aplx6/rev2/rev2.c b/keyboards/aplyard/aplx6/rev2/rev2.c
new file mode 100644
index 000000000..1a97f5005
--- /dev/null
+++ b/keyboards/aplyard/aplx6/rev2/rev2.c
@@ -0,0 +1,16 @@
1 /* Copyright 2020 Aplyard
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include "rev2.h"
diff --git a/keyboards/aplyard/aplx6/rev2/rev2.h b/keyboards/aplyard/aplx6/rev2/rev2.h
new file mode 100644
index 000000000..193c6cd51
--- /dev/null
+++ b/keyboards/aplyard/aplx6/rev2/rev2.h
@@ -0,0 +1,28 @@
1 /* Copyright 2020 Aplyard
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#pragma once
17#include "quantum.h"
18
19#define LAYOUT( \
20 k000, k001, k002, \
21 k100, k101, k102 \
22) \
23{ \
24 { k000, k001, k002 }, \
25 { k100, k101, k102 } \
26}
27
28
diff --git a/keyboards/aplyard/aplx6/rev2/rules.mk b/keyboards/aplyard/aplx6/rev2/rules.mk
new file mode 100644
index 000000000..22ada747f
--- /dev/null
+++ b/keyboards/aplyard/aplx6/rev2/rules.mk
@@ -0,0 +1,22 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = caterina
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15NKRO_ENABLE = yes # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19UNICODE_ENABLE = yes # Unicode
20OLED_ENABLE = yes
21OLED_DRIVER = SSD1306 # Enable Support for Oled Display
22ENCODER_ENABLE = yes # Enable Support for Encoder