aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2016-03-04 10:17:14 -0500
committerJack Humbert <jack.humb@gmail.com>2016-03-04 10:17:14 -0500
commitcc46f6984392b4b9c427970ca7299336cadb15c1 (patch)
treea365fea99b4031d719da3714b654669aaf60f52c
parent984c82a0f86031eb259f47becff5cbfc74965e5e (diff)
parent52b3ddb521ebe510a0674a69ce4f5ef208ea871f (diff)
downloadqmk_firmware-cc46f6984392b4b9c427970ca7299336cadb15c1.tar.gz
qmk_firmware-cc46f6984392b4b9c427970ca7299336cadb15c1.zip
Merge pull request #165 from deepshitgoeshere/deepshitgoeshere-master
added planck keymap and troubleshooting part in the PCB guide
-rw-r--r--.gitignore4
-rw-r--r--keyboard/planck/PCB_GUIDE.md23
-rw-r--r--keyboard/planck/keymaps/lucas.c163
3 files changed, 189 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index ae342167d..8b8c45169 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
1keyboard/planck/dfu-programmer.exe
1.dep 2.dep
2*.o 3*.o
3*.eep 4*.eep
@@ -18,4 +19,5 @@ build/
18# Eclipse Settings 19# Eclipse Settings
19.cproject 20.cproject
20.project 21.project
21.settings/ \ No newline at end of file 22.settings/
23
diff --git a/keyboard/planck/PCB_GUIDE.md b/keyboard/planck/PCB_GUIDE.md
index 3daf0e009..28e8a4b08 100644
--- a/keyboard/planck/PCB_GUIDE.md
+++ b/keyboard/planck/PCB_GUIDE.md
@@ -8,6 +8,7 @@
82. Install [DFU-Programmer][dfu-prog] (the -win one). 82. Install [DFU-Programmer][dfu-prog] (the -win one).
93. Start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you will need to update its driver on 'Device Manager' to the `dfu-programmer` driver. 93. Start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you will need to update its driver on 'Device Manager' to the `dfu-programmer` driver.
10 10
11
11### Mac 12### Mac
12 13
13If you're using homebrew, you can use the following commands: 14If you're using homebrew, you can use the following commands:
@@ -52,6 +53,28 @@ Generally, the instructions to flash the PCB are as follows:
524. Press the reset button on the PCB/press the key with the `RESET` keycode 534. Press the reset button on the PCB/press the key with the `RESET` keycode
535. `make <arguments> dfu` - use the necessary `KEYMAP=<keymap>` and/or `COMMON=true` arguments here. 545. `make <arguments> dfu` - use the necessary `KEYMAP=<keymap>` and/or `COMMON=true` arguments here.
54 55
56## Troubleshooting
57If you see something like this
58
59 0 [main] sh 13384 sync_with_child: child 9716(0x178) died before initialization with status code 0xC0000142
60 440 [main] sh 13384 sync_with_child: *** child state waiting for longjmp
61 /usr/bin/sh: fork: Resource temporarily unavailable
62
63after running 'make' on Windows than you are encountering a very popular issue with WinAVR on Windows 8.1 and 10.
64You can easily fix this problem by replacing msys-1.0.dll in WinAVR/utils/bin with [this one](http://www.madwizard.org/download/electronics/msys-1.0-vista64.zip).
65Restart your system and everything should work fine!
66
67
68If you see this
69
70 dfu-programmer atmega32u4 erase
71 process_begin: CreateProcess(NULL, dfu-programmer atmega32u4 erase, ...) failed.
72 make (e=2): The system cannot find the file specified.
73 make: *** [dfu] Error 2
74
75when trying to 'make dfu' on Windows you need to copy the dfu-programmer.exe to qmk_firmware/keyboard/planck.
76
77
55## Quantum MK Firmware 78## Quantum MK Firmware
56 79
57### Keymap 80### Keymap
diff --git a/keyboard/planck/keymaps/lucas.c b/keyboard/planck/keymaps/lucas.c
new file mode 100644
index 000000000..27672e1bb
--- /dev/null
+++ b/keyboard/planck/keymaps/lucas.c
@@ -0,0 +1,163 @@
1/*
2This is the keymap of /u/deepshitgoeshere!
3Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german.
4The second layer has all the german umlauts I need and with capital and small letters on the
5same layer there is no need to press shift+lower.
6This keymap is made to work with software implemented QWERTZ.
7The "Gaming" layer is mainly customized for CS:GO.
8If you have any question about this keymap feel free to shoot me a message on reddit!
9*/
10
11#include "keymap_common.h"
12#include "keymap_extras/keymap_german.h"
13#include "backlight.h"
14#include "debug.h"
15
16const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
17[0] = { /* Colemak
18 * ,-----------------------------------------------------------------------.
19 * | Esc | q | w | f | p | g | j | l | u | y | ; | - |
20 * |-----------------------------------------------------------------------|
21 * | BS | a | r | s | t | d | h | n | e | i | o | ' |
22 * |-----------------------------------------------------------------------|
23 * | SFT | z | x | c | v | b | k | m | , | . | / | Ent |
24 * |-----------------------------------------------------------------------|
25 * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right|
26 * `-----------------------------------------------------------------------'
27 */
28 {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS},
29 {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT},
30 {M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT},
31 {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
32},
33[1] = { /* Symbols
34 * ,-----------------------------------------------------------------------.
35 * | | | | | | | | | | | : | |
36 * |-----------------------------------------------------------------------|
37 * | | | | | | | | | | | | " |
38 * |-----------------------------------------------------------------------|
39 * | | | | | | | | | < | > | ? | |
40 * |-----------------------------------------------------------------------|
41 * | | | | | | | | | | | |
42 * `-----------------------------------------------------------------------'
43 */
44 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS},
45 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT},
46 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS},
47 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
48},
49[2] = { /* Raise
50 * ,-----------------------------------------------------------------------.
51 * | | Ä | | | | | | | Ü | Ö | |Game |
52 * |-----------------------------------------------------------------------|
53 * | Del | ä | | ß | | | | | ü | ö | |FVol+|
54 * |-----------------------------------------------------------------------|
55 * | | | | | | | | |Stop | Prv | Nxt |FVol-|
56 * |-----------------------------------------------------------------------|
57 * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P |
58 * `-----------------------------------------------------------------------'
59 */
60 {KC_NO, S(DE_AE), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, S(DE_UE), S(DE_OE), KC_NO, F(4)},
61 {KC_DEL, DE_AE, KC_NO, DE_SS, KC_NO, KC_NO, KC_NO, KC_NO, DE_UE, DE_OE, KC_NO, RALT(KC_F12)},
62 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPRV, KC_MNXT, RALT(KC_F11)},
63 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY}
64},
65[3] = { /* Lower
66 * ,-----------------------------------------------------------------------.
67 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + |
68 * |-----------------------------------------------------------------------|
69 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = |
70 * |-----------------------------------------------------------------------|
71 * | | | | | | [ | ] | { | } | € | | \ | Ent |
72 * |-----------------------------------------------------------------------|
73 * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End |
74 * `-----------------------------------------------------------------------'
75 */
76 {DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS},
77 {DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL},
78 {KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT},
79 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
80},
81[4] = { /* Function
82 * ,-----------------------------------------------------------------------.
83 * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
84 * |-----------------------------------------------------------------------|
85 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
86 * |-----------------------------------------------------------------------|
87 * | | | | | | KP- | KP+ | | | | |Reset|
88 * |-----------------------------------------------------------------------|
89 * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P |
90 * `-----------------------------------------------------------------------'
91 */
92 {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24},
93 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
94 {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, RESET, KC_NO},
95 {KC_NO, BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY}
96},
97[5] = { /* Gaming
98 * ,-----------------------------------------------------------------------.
99 * | Buy | ESC | q | w | e | r | t | y | u | i | o | p |
100 * |-----------------------------------------------------------------------|
101 * | ENT | BS | a | s | d | f | g | h | j | k | l | ; |
102 * |-----------------------------------------------------------------------|
103 * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / |
104 * |-----------------------------------------------------------------------|
105 * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right|
106 * `-----------------------------------------------------------------------'
107 */
108 {MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, F(4)},
109 {KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN},
110 {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH},
111 {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT}
112},
113[6] = { /* Gaming
114 /* CS:GO buy binds
115 * ,-----------------------------------------------------------------------.
116 * | | | | | | | | | 7 | 8 | 9 | |
117 * |-----------------------------------------------------------------------|
118 * | BS | | | | | | | | 6 | 5 | 4 | End |
119 * |-----------------------------------------------------------------------|
120 * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn |
121 * |-----------------------------------------------------------------------|
122 * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt |
123 * `-----------------------------------------------------------------------'
124 */
125 {KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO},
126 {KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END},
127 {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN},
128 {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT}
129},
130};
131
132const uint16_t PROGMEM fn_actions[] = {
133 [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE
134 [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER
135 [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC), // to Function
136 [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming
137 [5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS), //Shift on press, Caps on tap
138};
139
140const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
141{
142 switch(id) {
143 case 0: // M(0)
144 if (record->event.pressed) {
145 register_code(KC_LSFT);
146 layer_on(1);
147 } else {
148 layer_off(1);
149 unregister_code(KC_LSFT);
150 }
151 break;
152 case 1: // M(1)
153 if (record->event.pressed) {
154 unregister_code(KC_LSFT);
155 register_code(DE_MORE);
156 } else {
157 unregister_code(DE_MORE);
158 }
159 break;
160 }
161 return MACRO_NONE;
162
163}; \ No newline at end of file