summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorindivid-divided <75159519+individ-divided@users.noreply.github.com>2021-03-03 22:31:41 +0100
committerGitHub <noreply@github.com>2021-03-03 13:31:41 -0800
commit4c3090ace922c06d00df12f7fc5d0f2d0f194fae (patch)
tree9a23248a6e2e0b8b4723a2536159802265f440d4
parentfb3777f085fb0ba0510e4217df58f00f6ebd5a01 (diff)
Documentation changes SPLIT_USB_DETECT and hid_listen udev rules (#11665)
Co-authored-by: David Grundberg <david@quartz>
-rw-r--r--docs/faq_debug.md13
-rw-r--r--docs/feature_split_keyboard.md15
2 files changed, 25 insertions, 3 deletions
diff --git a/docs/faq_debug.md b/docs/faq_debug.md
index 872b1688ed..13a649bfa2 100644
--- a/docs/faq_debug.md
+++ b/docs/faq_debug.md
@@ -109,6 +109,19 @@ If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes
You may need privileges to access the device an OS like Linux. Try `sudo hid_listen`.
+On many Linux distros you can avoid having to run hid_listen as root
+by creating a file called `/etc/udev/rules.d/70-hid-listen.rules` with
+the following content:
+
+```
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="def1", TAG+="uaccess", RUN{builtin}+="uaccess"
+```
+
+Replace abcd and def1 with your keyboard's vendor and product id,
+letters must be lowercase. The `RUN{builtin}+="uaccess"` part is only
+needed for older distros.
+
+
## Can't Get Message on Console
Check:
- *hid_listen* finds your device. See above.
diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md
index dc081ff3ae..3613775d72 100644
--- a/docs/feature_split_keyboard.md
+++ b/docs/feature_split_keyboard.md
@@ -243,7 +243,12 @@ This sets how many LEDs are directly connected to each controller. The first nu
```c
#define SPLIT_USB_DETECT
```
-This option changes the startup behavior to detect an active USB connection when delegating master/slave. If this operation times out, then the half is assume to be a slave. This is the default behavior for ARM, and required for AVR Teensy boards (due to hardware limitations).
+
+Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and theres's USB communication, then that half assumes it is the master, otherwise it assumes it is the slave.
+
+Without this option, the master is the half that can detect voltage on the physical USB connection (VBUS detection).
+
+Enabled by default on ChibiOS/ARM.
?> This setting will stop the ability to demo using battery packs.
@@ -259,9 +264,13 @@ This sets the poll frequency when detecting master/slave when using `SPLIT_USB_D
## Hardware Considerations and Mods
-While most any Pro Micro can be used, micro controllers like the AVR Teensys and most (if not all) ARM boards require the Split USB Detect.
+Master/slave delegation is made either by detecting voltage on VBUS connection or waiting for USB communication (`SPLIT_USB_DETECT`). Pro Micro boards can use VBUS detection out of the box and be used with or without `SPLIT_USB_DETECT`.
+
+Many ARM boards, but not all, do not support VBUS detection. Because it is common that ARM boards lack VBUS detection, `SPLIT_USB_DETECT` is automatically defined on ARM targets (technically when ChibiOS is targetted).
+
+### Teensy boards
-However, with the Teensy 2.0 and Teensy++ 2.0, there is a simple hardware mod that you can perform to add VBUS detection, so you don't need the Split USB detection option.
+Teensy boards lack VBUS detection out of the box and must have `SPLIT_USB_DETECT` defined. With the Teensy 2.0 and Teensy++ 2.0, there is a simple hardware mod that you can perform to add VBUS detection, so you don't need the `SPLIT_USB_DETECT` option.
You'll only need a few things: