diff options
Diffstat (limited to 'docs/faq_misc.md')
-rw-r--r-- | docs/faq_misc.md | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/docs/faq_misc.md b/docs/faq_misc.md new file mode 100644 index 000000000..10961fb9f --- /dev/null +++ b/docs/faq_misc.md | |||
@@ -0,0 +1,118 @@ | |||
1 | # Miscellaneous FAQ | ||
2 | |||
3 | ## How do I test my keyboard? :id=testing | ||
4 | |||
5 | Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. You can use [QMK Configurator](https://config.qmk.fm/#/test/)'s test mode to check your keyboard, even if it doesn't run QMK. | ||
6 | |||
7 | ## Safety Considerations | ||
8 | |||
9 | You probably don't want to "brick" your keyboard, making it impossible | ||
10 | to rewrite firmware onto it. Here are some of the parameters to show | ||
11 | what things are (and likely aren't) too risky. | ||
12 | |||
13 | - If your keyboard map does not include RESET, then, to get into DFU | ||
14 | mode, you will need to press the reset button on the PCB, which | ||
15 | requires unscrewing the bottom. | ||
16 | - Messing with tmk_core / common files might make the keyboard | ||
17 | inoperable | ||
18 | - Too large a .hex file is trouble; `make dfu` will erase the block, | ||
19 | test the size (oops, wrong order!), which errors out, failing to | ||
20 | flash the keyboard, leaving it in DFU mode. | ||
21 | - To this end, note that the maximum .hex file size on Planck is | ||
22 | 7000h (28672 decimal) | ||
23 | |||
24 | ``` | ||
25 | Linking: .build/planck_rev4_cbbrowne.elf [OK] | ||
26 | Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK] | ||
27 | |||
28 | Size after: | ||
29 | text data bss dec hex filename | ||
30 | 0 22396 0 22396 577c planck_rev4_cbbrowne.hex | ||
31 | ``` | ||
32 | |||
33 | - The above file is of size 22396/577ch, which is less than | ||
34 | 28672/7000h | ||
35 | - As long as you have a suitable alternative .hex file around, you | ||
36 | can retry, loading that one | ||
37 | - Some of the options you might specify in your keyboard's Makefile | ||
38 | consume extra memory; watch out for BOOTMAGIC_ENABLE, | ||
39 | MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE, API_SYSEX_ENABLE | ||
40 | - DFU tools do /not/ allow you to write into the bootloader (unless | ||
41 | you throw in extra fruit salad of options), so there is little risk | ||
42 | there. | ||
43 | - EEPROM has around a 100000 write cycle. You shouldn't rewrite the | ||
44 | firmware repeatedly and continually; that'll burn the EEPROM | ||
45 | eventually. | ||
46 | |||
47 | ## NKRO Doesn't work | ||
48 | First you have to compile firmware with this build option `NKRO_ENABLE` in **Makefile**. | ||
49 | |||
50 | 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. | ||
51 | |||
52 | If your firmware built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic` **N** command(`Space+N` by default). This setting is stored in EEPROM and kept over power cycles. | ||
53 | |||
54 | https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch | ||
55 | |||
56 | |||
57 | ## TrackPoint Needs Reset Circuit (PS/2 Mouse Support) | ||
58 | Without reset circuit you will have inconsistent result due to improper initialize of the hardware. See circuit schematic of TPM754. | ||
59 | |||
60 | - http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 | ||
61 | - http://www.mikrocontroller.net/attachment/52583/tpm754.pdf | ||
62 | |||
63 | |||
64 | ## Can't Read Column of Matrix Beyond 16 | ||
65 | Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16. | ||
66 | |||
67 | In C `1` means one of [int] type which is [16 bit] 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`. | ||
68 | |||
69 | http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 | ||
70 | |||
71 | ## Special Extra Key Doesn't Work (System, Audio Control Keys) | ||
72 | You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK. | ||
73 | |||
74 | ``` | ||
75 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
76 | ``` | ||
77 | |||
78 | ## Wakeup from Sleep Doesn't Work | ||
79 | |||
80 | In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting. | ||
81 | |||
82 | Pressing any key during sleep should wake host. | ||
83 | |||
84 | ## Using Arduino? | ||
85 | |||
86 | **Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself. | ||
87 | |||
88 | - http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf | ||
89 | - http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf | ||
90 | |||
91 | Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem. | ||
92 | |||
93 | ## Enabling JTAG | ||
94 | |||
95 | By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc. | ||
96 | |||
97 | If you would like to keep JTAG enabled, just add the following to your `config.h`: | ||
98 | |||
99 | ```c | ||
100 | #define NO_JTAG_DISABLE | ||
101 | ``` | ||
102 | |||
103 | ## USB 3 Compatibility | ||
104 | I heard some people have a problem with USB 3 port, try USB 2 port. | ||
105 | |||
106 | |||
107 | ## Mac Compatibility | ||
108 | ### OS X 10.11 and Hub | ||
109 | https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 | ||
110 | |||
111 | |||
112 | ## Problem on BIOS (UEFI)/Resume (Sleep & Wake)/Power Cycles | ||
113 | Some people reported their keyboard stops working on BIOS and/or after resume(power cycles). | ||
114 | |||
115 | 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. | ||
116 | |||
117 | https://github.com/tmk/tmk_keyboard/issues/266 | ||
118 | https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 | ||