qmk_firmware/assets/faq_misc.md.qGrhOTu4.js

16 lines
11 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
const __pageData = JSON.parse('{"title":"Miscellaneous FAQ","description":"","frontmatter":{},"headers":[],"relativePath":"faq_misc.md","filePath":"faq_misc.md"}');
const _sfc_main = { name: "faq_misc.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="miscellaneous-faq" tabindex="-1">Miscellaneous FAQ <a class="header-anchor" href="#miscellaneous-faq" aria-label="Permalink to &quot;Miscellaneous FAQ&quot;"></a></h1><h2 id="testing" tabindex="-1">How do I test my keyboard? <a class="header-anchor" href="#testing" aria-label="Permalink to &quot;How do I test my keyboard? {#testing}&quot;"></a></h2><p>Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. You can use <a href="https://config.qmk.fm/#/test/" target="_blank" rel="noreferrer">QMK Configurator</a>&#39;s test mode to check your keyboard, even if it doesn&#39;t run QMK.</p><h2 id="safety-considerations" tabindex="-1">Safety Considerations <a class="header-anchor" href="#safety-considerations" aria-label="Permalink to &quot;Safety Considerations&quot;"></a></h2><p>You probably don&#39;t want to &quot;brick&quot; your keyboard, making it impossible to rewrite firmware onto it. Here are some of the parameters to show what things are (and likely aren&#39;t) too risky.</p><ul><li>If your keyboard map does not include QK_BOOT, then, to get into DFU mode, you will need to press the reset button on the PCB, which requires unscrewing the bottom.</li><li>Messing with tmk_core / common files might make the keyboard inoperable</li><li>Too large a .hex file is trouble; <code>make dfu</code> will erase the block, test the size (oops, wrong order!), which errors out, failing to flash the keyboard, leaving it in DFU mode. <ul><li>To this end, note that the maximum .hex file size on e.g. Planck is 7000h (28672 decimal)</li></ul></li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>Linking: .build/planck_rev4_cbbrowne.elf [OK]</span></span>\n<span class="line"><span>Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK]</span></span>\n<span class="line"><span></span></span>\n<span class="line"><span>Size after:</span></span>\n<span class="line"><span> text data bss dec hex filename</span></span>\n<span class="line"><span> 0 22396 0 22396 577c planck_rev4_cbbrowne.hex</span></span></code></pre></div><ul><li>The above file is of size 22396/577ch, which is less than 28672/7000h</li><li>As long as you have a suitable alternative .hex file around, you can retry, loading that one</li><li>Some of the options you might specify in your keyboard&#39;s Makefile consume extra memory; watch out for BOOTMAGIC_ENABLE, MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE</li><li>DFU tools do /not/ allow you to write into the bootloader (unless you throw in an extra fruit salad of options), so there is little risk there.</li><li>EEPROM has around a 100000 (100k) write cycle. You shouldn&#39;t rewrite the firmware repeatedly and continually; that&#39;ll burn the EEPROM eventually.</li></ul><h2 id="nkro-doesn-t-work" tabindex="-1">NKRO Doesn&#39;t work <a class="header-anchor" href="#nkro-doesn-t-work" aria-label="Permalink to &quot;NKRO Doesn&#39;t work&quot;"></a></h2><p>First you have to compile firmware with the build option <code>NKRO_ENABLE</code> in <strong>Makefile</strong>.</p><p>Try <code>Magic</code> <strong>N</strong> command(<code>LShift+RShift+N</code> by default) when <strong>NKRO</strong> still doesn&#39;t work. You can use this command to toggle between <strong>NKRO</strong> and <strong>6KRO</strong> mode temporarily. In some situations <strong>NKRO</strong> doesn&#39;t work and you will need to switch to <strong>6KRO</strong> mode, in particular when you are in BIOS.</p><h2 id="trackpoint-needs-reset-circuit-ps-2-mouse-support" tabindex="-1">TrackPoint Needs Reset Circuit (PS/2 Mouse Support) <a class="header-anchor" href="#trackpoint-needs-reset-circuit-ps-2-mouse-support" aria-label="Permalink to &quot;TrackPoint Needs Reset Circuit (PS/2 Mouse Support)&quot;"></a></h2><p>Without reset circuit you will have inconsistent result due to improper initialization of the hardware. See circuit schematic of TPM754:</p><ul><li><a href="https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447" target="_blank" rel="noreferrer">https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447</a></li><li><a href="https://www.mikrocontroller.net/attachment/52583/tpm754.pdf" target="_blank" rel="noreferrer">https://www.mikrocontroller.net/attachment/52583/tpm754.pdf</a></li></ul><h2 id="can-t-read-column-of-matrix-beyond-16" tabindex="-1">Can&#39;t Read Column of Matrix Beyond 16 <a class="header-anchor" href="#can-t-read-column-of-matrix-beyond-16" aria-label="Permalink to &quot;Can&#39;t Read Column of Matrix Beyond 16&quot;"></a></h2><p>Use <code>1UL&lt;&lt;16</code> instead of <code>1&lt;&lt;16</code> in <code>read_cols()</code> in [matrix.h] when your columns goes beyond 16.</p><p>In C <code>1</code> means one of [int] type which is [16 bit] in case of AVR, so you can&#39;t shift left more than 15. Thus, calculating <code>1&lt;&lt;16</code> will unexpectedly equal zero. To work around this, you have to use [unsigned long] type with <code>1UL</code>.</p><p><a href="https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279" target="_blank" rel="noreferrer">https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279</a></p><h2 id="special-extra-key-doesn-t-work-system-audio-control-keys" tabindex="-1">Special Extra Key Doesn&#39;t Work (System, Audio Control Keys) <a class="header-anchor" href="#special-extra-key-doesn-t-work-system-audio-control-keys" aria-label="Permalink to &quot;Special Extra Key Doesn&#39;t Work (System, Audio Control Keys)&quot;"></a></h2><p>You need to define <code>EXTRAKEY_ENABLE</code> in <code>rules.mk</code> to use them in QMK.</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>EXTRAKEY_ENABLE = yes # Audio control and System control</span></span></code></pre></div><h2 id="wake-from-sleep-doesn-t-work" tabindex="-1">Wake from Sleep Doesn&#39;t Work <a class="header-anchor" href="#wake-from-sleep-doesn-t-work" aria-label="Permalink to &quot;Wake from Sleep Doesn&#39;t Work&quot;"></a></h2><p>In Windows check <code>Allow this device to wake the computer</code> setting in <strong>Power Management</strong> property tab of <strong>Device Manager</strong>. Also check your BIOS settings. Pressing any key during sleep should wake host.</p><h2 id="using-arduino" tabindex="-1">Using Arduino? <a class="header-anchor" href="#using-arduino" aria-label="Permalink to &quot;Using Arduino?&quot;"></a></h2><p><strong>Note that Arduino pin naming is different from actual chip.</strong> For example, Arduino pin <code>D0</code> is not <code>PD0</code>. Check circuit with its schematics yourself.</p><ul><li><a href="https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf" target="_blank" rel="noreferrer">https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf</a></li><li><a href="https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf" target="_blank" rel="noreferrer">https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf</a></li></ul><p>Arduino Leonardo and micro have <strong>ATMega32U4</strong> and can be used for TMK, though Arduino bootloader may be a problem.</p><h2 id="enabling-jtag" tabindex="-1">Enabling JTAG <a class="header-anchor" href="#enabling-jtag" aria-label="Permalink to &quot;Enabling JTAG&quot;"></a></h2><p>By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the <code>JTAGEN</code> fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc.</p><p>If you would like to keep JTAG enabled, just add the following to your <code>config.h</code>:</p><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#define</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> NO_JTAG_DISABLE</span></span></code></pre></div><h2 id="usb-3-compatibility" tabindex="-1">USB 3 Compatibility <a class="header-anchor" href="#usb-3-compatibility" aria-label="Permalink to &quot;USB 3 Compatibility&quot;"></a></h2><p>Some problems can be fixed by switching from a USB 3.x port to a USB 2.0 port.</p><h2 id="mac-compatibility" tabindex="-1">Mac Compatibility <a class="header-anchor" href="#mac-compatibility" aria-label="Permalink to &quot;Mac Compatibility&quot;"></a></h2><h3 id="os-x-10-11-and-hub" tabindex="-1">OS X 10.11 and Hub <a class="header-anchor" href="#os-x-10-11-and-hub" aria-label="Permalink to &quot;OS X 10.11 and Hub&quot;"></a></h3><p>See here: <a href="https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034" target="_blank" rel="noreferrer">https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034</a></p><h2 id="problem-in-bios-uefi-setup-resume-sleep-wake-power-cycles" tabindex="-1">Problem in BIOS (UEFI) Setup/Resume (Sleep &amp; Wake)/Power Cycles <a class="header-anchor" href="#problem-in-bios-uefi-setup-resume-sleep-wake-power-cycles" aria-label="Permalink to &quot;Problem in BIOS (UEFI) Setup/Resume (Sleep &amp; Wake)/Power Cycles&quot;"></a></h2><p>Some people reported their keyboard stops working in BIOS and/or after resume(power cycles).</p><p>As of now the root cause is not clear, but some build options seem to be related. In Makefile, try to disable options like <code>CONSOLE_ENABLE</code>, <code>NKRO_ENABLE</code>, <code>SLEEP_LED_ENABLE</code> and/or others.</p><p>More info:</p><ul><li><a href="https://github.com/tmk/tmk_keyboard/issues/266" target="_blank" rel="noreferrer">https://github.com/tmk/tmk_keyboard/issues/266</a></li><li><a href="https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778" target="_blank" rel="noreferrer">https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778</a></li></ul>', 41);
const _hoisted_42 = [
_hoisted_1
];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("div", null, _hoisted_42);
}
const faq_misc = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
__pageData,
faq_misc as default
};