From c255174cf3e55483f14351a69689e24e849445a0 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Thu, 6 Oct 2022 10:52:42 +0100 Subject: Implement split comms watchdog (#18599) --- docs/config_options.md | 7 +++++++ docs/feature_split_keyboard.md | 11 +++++++++++ 2 files changed, 18 insertions(+) (limited to 'docs') diff --git a/docs/config_options.md b/docs/config_options.md index 3e322e590a..a6ceb199de 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -325,6 +325,13 @@ There are a few different ways to set handedness for split keyboards (listed in * `#define SPLIT_USB_TIMEOUT_POLL 10` * Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` + +* `#define SPLIT_WATCHDOG_ENABLE` + * Reboot slave if no communication from master within timeout. + * Helps resolve issue where both sides detect as slave using `SPLIT_USB_DETECT` + +* `#define SPLIT_WATCHDOG_TIMEOUT 3000` + * Maximum slave timeout when waiting for communication from master when using `SPLIT_WATCHDOG_ENABLE` * `#define FORCED_SYNC_THROTTLE_MS 100` * Deadline for synchronizing data from master to slave when using the QMK-provided split transport. diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index e53b3525cb..7d194284d6 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -422,6 +422,17 @@ This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_ ``` This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` +```c +#define SPLIT_WATCHDOG_ENABLE +``` + +This will enable a software watchdog on any side delegated as slave and will reboot the keyboard if no successful communication occurs within `SPLIT_WATCHDOG_TIMEOUT`. This can be particularly helpful when `SPLIT_USB_DETECT` delegates both sides as slave in some circumstances. + +```c +#define SPLIT_WATCHDOG_TIMEOUT 3000 +``` +This set the maximum slave timeout when waiting for communication from master when using `SPLIT_WATCHDOG_ENABLE` + ## Hardware Considerations and Mods 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`. -- cgit v1.2.3