diff options
author | skullY <skullydazed@gmail.com> | 2017-07-08 19:59:07 -0700 |
---|---|---|
committer | skullY <skullydazed@gmail.com> | 2017-07-08 20:01:35 -0700 |
commit | 5810bb67e4280582ef2811a7246f90d5f0bf292d (patch) | |
tree | 44599540cb56d0244351a9f89441af2580b109bd | |
parent | cb9e59152e30f3cd543963282b1fa616cb8b037b (diff) | |
download | qmk_firmware-5810bb67e4280582ef2811a7246f90d5f0bf292d.tar.gz qmk_firmware-5810bb67e4280582ef2811a7246f90d5f0bf292d.zip |
Rearrange the faq a bit
-rw-r--r-- | docs/faq.md | 110 |
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 | ||
9 | TMK 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. | 15 | TMK 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 | ||
15 | Both approaches have their merits and their drawbacks, and code flows freely between TMK and QMK when it makes sense. | 21 | Both 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 | |||
29 | Follow 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 | |||
33 | No, 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 | ||
19 | When debug console of your device is not ready you will see like this: | 39 | When 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 | |||
34 | You may need privilege to access the device on OS like Linux. | 54 | You 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 |
38 | Check: | 58 | Check: |
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 |
46 | Just use 'sudo' to execute *hid_listen* with privilege. | 66 | Just 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) | |||
56 | SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" | 76 | SUBSYSTEMS=="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 | ||
63 | First you have to compile frimware with this build option `NKRO_ENABLE` in **Makefile**. | 82 | First you have to compile frimware with this build option `NKRO_ENABLE` in **Makefile**. |
64 | 83 | ||
65 | Try `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. | 84 | Try `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 | ||
69 | https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch | 88 | https://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) | ||
73 | Without 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 | ||
80 | Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16. | 91 | Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16. |
81 | 92 | ||
82 | In 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`. | 93 | In 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 | |||
84 | http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 | 95 | http://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 |
88 | Properly configure bootloader size in **Makefile**. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**. | 99 | Properly 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 |
98 | OPT_DEFS += -DBOOTLOADER_SIZE=4096 | 109 | OPT_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 |
113 | 0x6000 +---------------+ 0x1E000 +---------------+ | 124 | 0x6000 +---------------+ 0x1E000 +---------------+ |
114 | | Bootloader | 4KB | Bootloader | 8KB | 125 | | Bootloader | 4KB | Bootloader | 8KB |
115 | 0x7FFF +---------------+ 0x1FFFF +---------------+ | 126 | 0x7FFF +---------------+ 0x1FFFF +---------------+ |
116 | 127 | ||
117 | 128 | ||
118 | byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286) | 129 | byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286) |
119 | 0x0000 +---------------+ 0x00000 +---------------+ | 130 | 0x0000 +---------------+ 0x00000 +---------------+ |
120 | | | | | | 131 | | | | | |
@@ -132,20 +143,28 @@ And see this discussion for further reference. | |||
132 | https://github.com/tmk/tmk_keyboard/issues/179 | 143 | https://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) |
136 | You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK. | 147 | You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK. |
137 | 148 | ||
138 | ``` | 149 | ``` |
139 | EXTRAKEY_ENABLE = yes # Audio control and System control | 150 | EXTRAKEY_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 | ||
144 | In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting. | 155 | In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting. |
145 | 156 | ||
146 | Pressing any key during sleep should wake host. | 157 | Pressing 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) | ||
162 | Without 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 | ||
155 | Arduino leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem. | 174 | Arduino 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? | ||
159 | You 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. | 177 | You 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 | ||
161 | If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function. | 179 | If 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 | |||
171 | And read **26.5.1 MCU Control Register – MCUCR** of ATMega32U4 datasheet. | 189 | And 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 |
175 | You need your own LED indicators for CapsLock, ScrollLock and NumLock? See this post. | ||
176 | |||
177 | http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560 | ||
178 | |||
179 | ## Program Arduino Micro/Leonardo | ||
180 | Push reset button and then run command like this within 8 seconds. | 193 | Push 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. | |||
188 | http://arduino.cc/en/Main/ArduinoBoardMicro | 201 | http://arduino.cc/en/Main/ArduinoBoardMicro |
189 | https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867 | 202 | https://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 | ||
193 | I 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 | ||
198 | https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 | ||
199 | |||
200 | |||
201 | ## Problem on BIOS(UEFI)/Resume(Sleep&Wake)/Power cycles | ||
202 | Some people reported their keyboard stops working on BIOS and/or after resume(power cycles). | 205 | Some people reported their keyboard stops working on BIOS and/or after resume(power cycles). |
203 | 206 | ||
204 | As 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. | 207 | As 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 | ||
206 | https://github.com/tmk/tmk_keyboard/issues/266 | 209 | https://github.com/tmk/tmk_keyboard/issues/266 |
207 | https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 | 210 | https://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 | 216 | Windows 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 | ||
213 | Remove current driver and reinstall one FLIP provides from DeviceManager. | ||
214 | http://imgur.com/a/bnwzy | ||