summaryrefslogtreecommitdiff
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)
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 ae342167df..8b8c45169d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+keyboard/planck/dfu-programmer.exe
.dep
*.o
*.eep
@@ -18,4 +19,5 @@ build/
# Eclipse Settings
.cproject
.project
-.settings/ \ No newline at end of file
+.settings/
+
diff --git a/keyboard/planck/PCB_GUIDE.md b/keyboard/planck/PCB_GUIDE.md
index 3daf0e0092..28e8a4b084 100644
--- a/keyboard/planck/PCB_GUIDE.md
+++ b/keyboard/planck/PCB_GUIDE.md
@@ -8,6 +8,7 @@
2. Install [DFU-Programmer][dfu-prog] (the -win one).
3. 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.
+
### Mac
If you're using homebrew, you can use the following commands:
@@ -52,6 +53,28 @@ Generally, the instructions to flash the PCB are as follows:
4. Press the reset button on the PCB/press the key with the `RESET` keycode
5. `make <arguments> dfu` - use the necessary `KEYMAP=<keymap>` and/or `COMMON=true` arguments here.
+## Troubleshooting
+If you see something like this
+
+ 0 [main] sh 13384 sync_with_child: child 9716(0x178) died before initialization with status code 0xC0000142
+ 440 [main] sh 13384 sync_with_child: *** child state waiting for longjmp
+ /usr/bin/sh: fork: Resource temporarily unavailable
+
+after running 'make' on Windows than you are encountering a very popular issue with WinAVR on Windows 8.1 and 10.
+You 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).
+Restart your system and everything should work fine!
+
+
+If you see this
+
+ dfu-programmer atmega32u4 erase
+ process_begin: CreateProcess(NULL, dfu-programmer atmega32u4 erase, ...) failed.
+ make (e=2): The system cannot find the file specified.
+ make: *** [dfu] Error 2
+
+when trying to 'make dfu' on Windows you need to copy the dfu-programmer.exe to qmk_firmware/keyboard/planck.
+
+
## Quantum MK Firmware
### Keymap
diff --git a/keyboard/planck/keymaps/lucas.c b/keyboard/planck/keymaps/lucas.c
new file mode 100644
index 0000000000..27672e1bbc
--- /dev/null
+++ b/keyboard/planck/keymaps/lucas.c
@@ -0,0 +1,163 @@
+/*
+This is the keymap of /u/deepshitgoeshere!
+Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german.
+The second layer has all the german umlauts I need and with capital and small letters on the
+same layer there is no need to press shift+lower.
+This keymap is made to work with software implemented QWERTZ.
+The "Gaming" layer is mainly customized for CS:GO.
+If you have any question about this keymap feel free to shoot me a message on reddit!
+*/
+
+#include "keymap_common.h"
+#include "keymap_extras/keymap_german.h"
+#include "backlight.h"
+#include "debug.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = { /* Colemak
+ * ,-----------------------------------------------------------------------.
+ * | Esc | q | w | f | p | g | j | l | u | y | ; | - |
+ * |-----------------------------------------------------------------------|
+ * | BS | a | r | s | t | d | h | n | e | i | o | ' |
+ * |-----------------------------------------------------------------------|
+ * | SFT | z | x | c | v | b | k | m | , | . | / | Ent |
+ * |-----------------------------------------------------------------------|
+ * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right|
+ * `-----------------------------------------------------------------------'
+ */
+ {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS},
+ {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT},
+ {M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT},
+ {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
+},
+[1] = { /* Symbols
+ * ,-----------------------------------------------------------------------.
+ * | | | | | | | | | | | : | |
+ * |-----------------------------------------------------------------------|
+ * | | | | | | | | | | | | " |
+ * |-----------------------------------------------------------------------|
+ * | | | | | | | | | < | > | ? | |
+ * |-----------------------------------------------------------------------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------'
+ */
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
+},
+[2] = { /* Raise
+ * ,-----------------------------------------------------------------------.
+ * | | Ä | | | | | | | Ü | Ö | |Game |
+ * |-----------------------------------------------------------------------|
+ * | Del | ä | | ß | | | | | ü | ö | |FVol+|
+ * |-----------------------------------------------------------------------|
+ * | | | | | | | | |Stop | Prv | Nxt |FVol-|
+ * |-----------------------------------------------------------------------|
+ * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P |
+ * `-----------------------------------------------------------------------'
+ */
+ {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)},
+ {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)},
+ {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)},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[3] = { /* Lower
+ * ,-----------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + |
+ * |-----------------------------------------------------------------------|
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = |
+ * |-----------------------------------------------------------------------|
+ * | | | | | | [ | ] | { | } | € | | \ | Ent |
+ * |-----------------------------------------------------------------------|
+ * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End |
+ * `-----------------------------------------------------------------------'
+ */
+ {DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS},
+ {DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL},
+ {KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT},
+ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
+},
+[4] = { /* Function
+ * ,-----------------------------------------------------------------------.
+ * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
+ * |-----------------------------------------------------------------------|
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |-----------------------------------------------------------------------|
+ * | | | | | | KP- | KP+ | | | | |Reset|
+ * |-----------------------------------------------------------------------|
+ * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P |
+ * `-----------------------------------------------------------------------'
+ */
+ {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24},
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
+ {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, RESET, KC_NO},
+ {KC_NO, BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY}
+},
+[5] = { /* Gaming
+ * ,-----------------------------------------------------------------------.
+ * | Buy | ESC | q | w | e | r | t | y | u | i | o | p |
+ * |-----------------------------------------------------------------------|
+ * | ENT | BS | a | s | d | f | g | h | j | k | l | ; |
+ * |-----------------------------------------------------------------------|
+ * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / |
+ * |-----------------------------------------------------------------------|
+ * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right|
+ * `-----------------------------------------------------------------------'
+ */
+ {MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, F(4)},
+ {KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN},
+ {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH},
+ {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}
+},
+[6] = { /* Gaming
+ /* CS:GO buy binds
+ * ,-----------------------------------------------------------------------.
+ * | | | | | | | | | 7 | 8 | 9 | |
+ * |-----------------------------------------------------------------------|
+ * | BS | | | | | | | | 6 | 5 | 4 | End |
+ * |-----------------------------------------------------------------------|
+ * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn |
+ * |-----------------------------------------------------------------------|
+ * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt |
+ * `-----------------------------------------------------------------------'
+ */
+ {KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO},
+ {KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END},
+ {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN},
+ {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}
+},
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+ [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE
+ [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER
+ [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC), // to Function
+ [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming
+ [5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS), //Shift on press, Caps on tap
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case 0: // M(0)
+ if (record->event.pressed) {
+ register_code(KC_LSFT);
+ layer_on(1);
+ } else {
+ layer_off(1);
+ unregister_code(KC_LSFT);
+ }
+ break;
+ case 1: // M(1)
+ if (record->event.pressed) {
+ unregister_code(KC_LSFT);
+ register_code(DE_MORE);
+ } else {
+ unregister_code(DE_MORE);
+ }
+ break;
+ }
+ return MACRO_NONE;
+
+}; \ No newline at end of file