2024-06-02 02:43:43 +00:00
|
|
|
|
import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js";
|
|
|
|
|
const __pageData = JSON.parse('{"title":"Split Keyboard","description":"","frontmatter":{},"headers":[],"relativePath":"features/split_keyboard.md","filePath":"features/split_keyboard.md"}');
|
|
|
|
|
const _sfc_main = { name: "features/split_keyboard.md" };
|
2024-08-26 00:06:22 +00:00
|
|
|
|
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="split-keyboard" tabindex="-1">Split Keyboard <a class="header-anchor" href="#split-keyboard" aria-label="Permalink to "Split Keyboard""></a></h1><p>Many keyboards in the QMK Firmware repo are "split" keyboards. They use two controllers—one plugging into USB, and the second connected by a serial or an I<sup>2</sup>C connection over a TRRS or similar cable.</p><p>Split keyboards can have a lot of benefits, but there is some additional work needed to get them enabled.</p><p>QMK Firmware has a generic implementation that is usable by any board, as well as numerous board specific implementations.</p><p>For this, we will mostly be talking about the generic implementation used by the Let's Split and other keyboards.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>ARM split supports most QMK subsystems when using the 'serial' and 'serial_usart' drivers. I2C slave is currently unsupported.</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Both sides must use the same MCU family, for eg two Pro Micro-compatible controllers or two Blackpills. Currently, mixing AVR and ARM is not possible as ARM vs AVR uses different method for serial communication, and are not compatible. Moreover Blackpill's uses 3.3v logic, and atmega32u4 uses 5v logic.</p></div><h2 id="compatibility-overview" tabindex="-1">Compatibility Overview <a class="header-anchor" href="#compatibility-overview" aria-label="Permalink to "Compatibility Overview""></a></h2><table><thead><tr><th>Transport</th><th>AVR</th><th>ARM</th></tr></thead><tbody><tr><td><a href="./../drivers/serial">'serial'</a></td><td>✔️</td><td>✅ <sup>1</sup></td></tr><tr><td>I2C</td><td>✔️</td><td></td></tr></tbody></table><p>Notes:</p><ol><li>Both hardware and software limitations are detailed within the <a href="./../drivers/serial">driver documentation</a>.</li></ol><h2 id="hardware-configuration" tabindex="-1">Hardware Configuration <a class="header-anchor" href="#hardware-configuration" aria-label="Permalink to "Hardware Configuration""></a></h2><p>This assumes that you're using two Pro Micro-compatible controllers, and are using TRRS jacks to connect to two halves.</p><h3 id="required-hardware" tabindex="-1">Required Hardware <a class="header-anchor" href="#required-hardware" aria-label="Permalink to "Required Hardware""></a></h3><p>Apart from diodes and key switches for the keyboard matrix in each half, you will need 2x TRRS sockets and 1x TRRS cable.</p><p>Alternatively, you can use any sort of cable and socket that has at least 3 wires.</p><p>If you want to use I<sup>2</sup>C to communicate between halves, you will need a cable with at least 4 wires and 2x 4.7kΩ pull-up resistors.</p><h4 id="considerations" tabindex="-1">Considerations <a class="header-anchor" href="#considerations" aria-label="Permalink to "Considerations""></a></h4><p>The most commonly used connection is a TRRS cable and jacks. These provide 4 wires, making them very useful for split keyboards, and are easy to find.</p><p>However, since one of the wires carries VCC, this means that the boards are not hot pluggable. You should always disconnect the board from USB before unplugging and plugging in TRRS cables, or you can short the controller, or worse.</p><p>Another option is to use phone cables (as in, old school RJ-11/RJ-14 cables). Make sure that you use one that actually supports 4 wires/lanes.</p><p>However, USB cables, SATA cables, and even just 4 wires have been known to be used for communication between the controllers.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Using USB cables for communication between the controllers works just fine, but the connector could be mistaken for a normal USB connection and potentially short out the keyboard, depending on how it's wired. For this reason, they are not recommended for connecting
|
2024-06-02 02:43:43 +00:00
|
|
|
|
const _hoisted_176 = [
|
|
|
|
|
_hoisted_1
|
|
|
|
|
];
|
|
|
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
|
|
return openBlock(), createElementBlock("div", null, _hoisted_176);
|
|
|
|
|
}
|
|
|
|
|
const split_keyboard = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
|
|
|
export {
|
|
|
|
|
__pageData,
|
|
|
|
|
split_keyboard as default
|
|
|
|
|
};
|