aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskullY <skullydazed@gmail.com>2017-07-08 19:59:07 -0700
committerskullY <skullydazed@gmail.com>2017-07-08 20:01:35 -0700
commit5810bb67e4280582ef2811a7246f90d5f0bf292d (patch)
tree44599540cb56d0244351a9f89441af2580b109bd
parentcb9e59152e30f3cd543963282b1fa616cb8b037b (diff)
downloadqmk_firmware-5810bb67e4280582ef2811a7246f90d5f0bf292d.tar.gz
qmk_firmware-5810bb67e4280582ef2811a7246f90d5f0bf292d.zip
Rearrange the faq a bit
-rw-r--r--docs/faq.md110
1 files changed, 56 insertions, 54 deletions
diff --git a/docs/faq.md b/docs/faq.md
index d7f2a6f4f..3287578ac 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -1,10 +1,16 @@
1# Frequently Asked Questions 1# Frequently Asked Questions
2 2
3## What is QMK? 3## General
4
5### What is QMK?
4 6
5[QMK](https://github.com/qmk), short for Quantum Mechanical Keyboard, is a group of people building tools for custom keyboards. We started with the [QMK firmware](https://github.com/qmk/qmk_firmware), a heavily modified fork of [TMK](https://github.com/tmk/tmk_keyboard). 7[QMK](https://github.com/qmk), short for Quantum Mechanical Keyboard, is a group of people building tools for custom keyboards. We started with the [QMK firmware](https://github.com/qmk/qmk_firmware), a heavily modified fork of [TMK](https://github.com/tmk/tmk_keyboard).
6 8
7## What Differences Are There Between QMK and TMK? 9### Why the name Quantum?
10
11<!-- FIXME -->
12
13### What Differences Are There Between QMK and TMK?
8 14
9TMK was originally designed and implemented by [Jun Wako](https://github.com/tmk). QMK started as [Jack Humbert's](https://github.com/jackhumbert) fork of TMK for the Planck. After a while Jack's fork had diverged quite a bit from TMK, and in 2015 Jack decided to rename his fork to QMK. 15TMK was originally designed and implemented by [Jun Wako](https://github.com/tmk). QMK started as [Jack Humbert's](https://github.com/jackhumbert) fork of TMK for the Planck. After a while Jack's fork had diverged quite a bit from TMK, and in 2015 Jack decided to rename his fork to QMK.
10 16
@@ -14,8 +20,22 @@ From a project and community management standpoint TMK maintains all the officia
14 20
15Both approaches have their merits and their drawbacks, and code flows freely between TMK and QMK when it makes sense. 21Both approaches have their merits and their drawbacks, and code flows freely between TMK and QMK when it makes sense.
16 22
17# Debug Console 23# Building
18## hid_listen can't recognize device 24
25## Windows
26
27### I'm on Windows Vista, 7, or 8, how do I setup my build environment?
28
29Follow the build instructions to [install MHV AVR Tools](https://docs.qmk.fm/build_environment_setup.html#windows-vista-and-later).
30
31### I'm on Windows 10 without the Creators Update. Do I have to install it?
32
33No, but if you don't install the creators update you will not be able to build and flash with a single command. You will be able to build but to flash you will have to use a separate program, such as [QMK Flasher](https://github.com/qmk/qmk_flasher).
34
35# Troubleshooting
36
37## Debug Console
38### hid_listen can't recognize device
19When debug console of your device is not ready you will see like this: 39When debug console of your device is not ready you will see like this:
20 40
21``` 41```
@@ -34,7 +54,7 @@ If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes
34You may need privilege to access the device on OS like Linux. 54You may need privilege to access the device on OS like Linux.
35- try `sudo hid_listen` 55- try `sudo hid_listen`
36 56
37## Can't get message on console 57### Can't get message on console
38Check: 58Check:
39- *hid_listen* finds your device. See above. 59- *hid_listen* finds your device. See above.
40- Enable debug with pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). 60- Enable debug with pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands).
@@ -42,7 +62,7 @@ Check:
42- try using 'print' function instead of debug print. See **common/print.h**. 62- try using 'print' function instead of debug print. See **common/print.h**.
43- disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97). 63- disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
44 64
45## Linux or UNIX like system requires Super User privilege 65### Linux or UNIX like system requires Super User privilege
46Just use 'sudo' to execute *hid_listen* with privilege. 66Just use 'sudo' to execute *hid_listen* with privilege.
47``` 67```
48$ sudo hid_listen 68$ sudo hid_listen
@@ -56,10 +76,9 @@ File: /etc/udev/rules.d/52-tmk-keyboard.rules(in case of Ubuntu)
56SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" 76SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
57``` 77```
58 78
59*** 79## Software Issues
60 80
61# Miscellaneous 81### NKRO Doesn't work
62## NKRO Doesn't work
63First you have to compile frimware with this build option `NKRO_ENABLE` in **Makefile**. 82First you have to compile frimware with this build option `NKRO_ENABLE` in **Makefile**.
64 83
65Try `Magic` **N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work you need to switch to **6KRO** mode, in particular when you are in BIOS. 84Try `Magic` **N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work you need to switch to **6KRO** mode, in particular when you are in BIOS.
@@ -68,15 +87,7 @@ If your firmeare built with `BOOTMAGIC_ENABLE` you need to turn its switch on by
68 87
69https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch 88https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch
70 89
71 90### Can't read column of matrix beyond 16
72## TrackPoint needs reset circuit(PS/2 mouse support)
73Without reset circuit you will have inconsistent reuslt due to improper initialize of the hardware. See circuit schematic of TPM754.
74
75- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
76- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf
77
78
79## Can't read column of matrix beyond 16
80Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16. 91Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16.
81 92
82In C `1` means one of [int] type which is [16bit] in case of AVR so you can't shift left more than 15. You will get unexpected zero when you say `1<<16`. You have to use [unsigned long] type with `1UL`. 93In C `1` means one of [int] type which is [16bit] in case of AVR so you can't shift left more than 15. You will get unexpected zero when you say `1<<16`. You have to use [unsigned long] type with `1UL`.
@@ -84,16 +95,16 @@ In C `1` means one of [int] type which is [16bit] in case of AVR so you can't sh
84http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 95http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
85 96
86 97
87## Bootloader jump doesn't work 98### Bootloader jump doesn't work
88Properly configure bootloader size in **Makefile**. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**. 99Properly configure bootloader size in **Makefile**. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**.
89``` 100```
90# Size of Bootloaders in bytes: 101# Size of Bootloaders in bytes:
91# Atmel DFU loader(ATmega32U4) 4096 102# Atmel DFU loader(ATmega32U4) 4096
92# Atmel DFU loader(AT90USB128) 8192 103# Atmel DFU loader(AT90USB128) 8192
93# LUFA bootloader(ATmega32U4) 4096 104# LUFA bootloader(ATmega32U4) 4096
94# Arduino Caterina(ATmega32U4) 4096 105# Arduino Caterina(ATmega32U4) 4096
95# USBaspLoader(ATmega***) 2048 106# USBaspLoader(ATmega***) 2048
96# Teensy halfKay(ATmega32U4) 512 107# Teensy halfKay(ATmega32U4) 512
97# Teensy++ halfKay(AT90USB128) 2048 108# Teensy++ halfKay(AT90USB128) 2048
98OPT_DEFS += -DBOOTLOADER_SIZE=4096 109OPT_DEFS += -DBOOTLOADER_SIZE=4096
99``` 110```
@@ -107,14 +118,14 @@ byte Atmel/LUFA(ATMega32u4) byte Atmel(AT90SUB1286)
107 | | | | 118 | | | |
108 | | | | 119 | | | |
109 | Application | | Application | 120 | Application | | Application |
110 | | | | 121 | | | |
111 = = = = 122 = = = =
112 | | 32KB-4KB | | 128KB-8KB 123 | | 32KB-4KB | | 128KB-8KB
1130x6000 +---------------+ 0x1E000 +---------------+ 1240x6000 +---------------+ 0x1E000 +---------------+
114 | Bootloader | 4KB | Bootloader | 8KB 125 | Bootloader | 4KB | Bootloader | 8KB
1150x7FFF +---------------+ 0x1FFFF +---------------+ 1260x7FFF +---------------+ 0x1FFFF +---------------+
116 127
117 128
118byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286) 129byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286)
1190x0000 +---------------+ 0x00000 +---------------+ 1300x0000 +---------------+ 0x00000 +---------------+
120 | | | | 131 | | | |
@@ -132,20 +143,28 @@ And see this discussion for further reference.
132https://github.com/tmk/tmk_keyboard/issues/179 143https://github.com/tmk/tmk_keyboard/issues/179
133 144
134 145
135## Special Extra key doesn't work(System, Audio control keys) 146### Special Extra key doesn't work(System, Audio control keys)
136You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK. 147You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK.
137 148
138``` 149```
139EXTRAKEY_ENABLE = yes # Audio control and System control 150EXTRAKEY_ENABLE = yes # Audio control and System control
140``` 151```
141 152
142## Wakeup from sleep doesn't work 153### Wakeup from sleep doesn't work
143 154
144In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting. 155In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting.
145 156
146Pressing any key during sleep should wake host. 157Pressing any key during sleep should wake host.
147 158
148## Using Arduino? 159## Hardware Issues
160
161### TrackPoint needs reset circuit(PS/2 mouse support)
162Without reset circuit you will have inconsistent reuslt due to improper initialize of the hardware. See circuit schematic of TPM754.
163
164- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
165- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf
166
167### Using Arduino?
149 168
150**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself. 169**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself.
151 170
@@ -154,8 +173,7 @@ Pressing any key during sleep should wake host.
154 173
155Arduino leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem. 174Arduino leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
156 175
157 176### Using PF4-7 pins of USB AVR?
158## Using PF4-7 pins of USB AVR?
159You need to set JTD bit of MCUCR yourself to use PF4-7 as GPIO. Those pins are configured to serve JTAG function by default. MCUs like ATMega*U* or AT90USB* are affeteced with this. 177You need to set JTD bit of MCUCR yourself to use PF4-7 as GPIO. Those pins are configured to serve JTAG function by default. MCUs like ATMega*U* or AT90USB* are affeteced with this.
160 178
161If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function. 179If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function.
@@ -171,12 +189,7 @@ https://github.com/tmk/tmk_keyboard/blob/master/keyboard/hbkb/matrix.c#L67
171And read **26.5.1 MCU Control Register – MCUCR** of ATMega32U4 datasheet. 189And read **26.5.1 MCU Control Register – MCUCR** of ATMega32U4 datasheet.
172 190
173 191
174## Adding LED indicators of Lock keys 192### Program Arduino Micro/Leonardo
175You need your own LED indicators for CapsLock, ScrollLock and NumLock? See this post.
176
177http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560
178
179## Program Arduino Micro/Leonardo
180Push reset button and then run command like this within 8 seconds. 193Push reset button and then run command like this within 8 seconds.
181 194
182``` 195```
@@ -188,27 +201,16 @@ Device name will vary depending on your system.
188http://arduino.cc/en/Main/ArduinoBoardMicro 201http://arduino.cc/en/Main/ArduinoBoardMicro
189https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867 202https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867
190 203
191 204### Problem on BIOS(UEFI)/Resume(Sleep&Wake)/Power cycles
192## USB 3 compatibility
193I heard some people have a problem with USB 3 port, try USB 2 port.
194
195
196## Mac compatibility
197### OS X 10.11 and Hub
198https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
199
200
201## Problem on BIOS(UEFI)/Resume(Sleep&Wake)/Power cycles
202Some people reported their keyboard stops working on BIOS and/or after resume(power cycles). 205Some people reported their keyboard stops working on BIOS and/or after resume(power cycles).
203 206
204As of now root of its cause is not clear but some build options seem to be related. In Makefile try to disable those options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others. 207As of now root of its cause is not clear but some build options seem to be related. In Makefile try to disable those options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others.
205 208
206https://github.com/tmk/tmk_keyboard/issues/266 209https://github.com/tmk/tmk_keyboard/issues/266
207https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 210https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778
208 211
212## Flashing Problems
209 213
214### Can't use dfu-programmer or QMK Flasher to flash on Windows
210 215
211## FLIP doesn't work 216Windows requires a driver to support the keyboard in DFU mode. You can use [QMK Driver Installer](https://github.com/qmk/qmk_driver_installer/releases) to install the necessary drivers.
212### AtLibUsbDfu.dll not found
213Remove current driver and reinstall one FLIP provides from DeviceManager.
214http://imgur.com/a/bnwzy