aboutsummaryrefslogtreecommitdiff
path: root/docs/config_options.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/config_options.md')
-rw-r--r--docs/config_options.md29
1 files changed, 29 insertions, 0 deletions
diff --git a/docs/config_options.md b/docs/config_options.md
index c4921c21d..b811fa877 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -261,3 +261,32 @@ Use these to enable or disable building certain features. The more you have enab
261 * Forces the keyboard to wait for a USB connection to be established before it starts up 261 * Forces the keyboard to wait for a USB connection to be established before it starts up
262* `NO_USB_STARTUP_CHECK` 262* `NO_USB_STARTUP_CHECK`
263 * Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master. 263 * Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
264
265## USB Endpoint Limitations
266
267In order to provide services over USB, QMK has to use USB endpoints.
268These are a finite resource: each microcontroller has only a certain number.
269This limits what features can be enabled together.
270If the available endpoints are exceeded, a build error is thrown.
271
272The following features can require separate endpoints:
273
274* `MOUSEKEY_ENABLE`
275* `EXTRAKEY_ENABLE`
276* `CONSOLE_ENABLE`
277* `NKRO_ENABLE`
278* `MIDI_ENABLE`
279* `RAW_ENABLE`
280* `VIRTSER_ENABLE`
281
282In order to improve utilisation of the endpoints, the HID features can be combined to use a single endpoint.
283By default, `MOUSEKEY`, `EXTRAKEY`, and `NKRO` are combined into a single endpoint.
284
285The base keyboard functionality can also be combined into the endpoint,
286by setting `KEYBOARD_SHARED_EP = yes`.
287This frees up one more endpoint,
288but it can prevent the keyboard working in some BIOSes,
289as they do not implement Boot Keyboard protocol switching.
290
291Combining the mouse also breaks Boot Mouse compatibility.
292The mouse can be uncombined by setting `MOUSE_SHARED_EP = no` if this functionality is required.