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 | ||
