|
@@ -85,7 +85,7 @@ just points at the `OpenPuck` directory). Modules are layered low → high:
|
|
|
| `rf_diag.{h,cpp}` | RF reverse-engineering / calibration tooling: raw capture, CRC-validating config sweeps, frame replay, address listen, scan-then-respond, live-session sniffer. Not used in normal operation. |
|
|
| `rf_diag.{h,cpp}` | RF reverse-engineering / calibration tooling: raw capture, CRC-validating config sweeps, frame replay, address listen, scan-then-respond, live-session sniffer. Not used in normal operation. |
|
|
|
| `webusb_config.{h,cpp}` | The WebUSB binary config channel for the browser panel. |
|
|
| `webusb_config.{h,cpp}` | The WebUSB binary config channel for the browser panel. |
|
|
|
| `serial_console.{h,cpp}` | The CDC single-letter debug command line. |
|
|
| `serial_console.{h,cpp}` | The CDC single-letter debug command line. |
|
|
|
-| `wake_hid.{h,cpp}` | A boot-keyboard HID interface added to the clean controller modes so the host honors USB remote-wakeup (see "Wake from sleep"). |
|
|
|
|
|
|
|
+| `wake_hid.{h,cpp}` | A boot-mouse HID interface added to the clean controller modes so the host honors USB remote-wakeup (see "Wake from sleep"). |
|
|
|
|
|
|
|
|
## The controller abstraction
|
|
## The controller abstraction
|
|
|
|
|
|
|
@@ -213,8 +213,9 @@ only *honors* a resume signal from an allow-listed input device class (HID keybo
|
|
|
gamepad/vendor/composite presentation gets armed but ignored (notably Windows under Modern Standby). That's
|
|
gamepad/vendor/composite presentation gets armed but ignored (notably Windows under Modern Standby). That's
|
|
|
why Xbox mode (which exposes a boot mouse) woke Windows while the gamepad/puck modes didn't.
|
|
why Xbox mode (which exposes a boot mouse) woke Windows while the gamepad/puck modes didn't.
|
|
|
|
|
|
|
|
-The fix: `wake_hid.cpp` registers a do-nothing **boot keyboard** interface so each mode is classified as a
|
|
|
|
|
-wake-capable input device. It's added in `setup()` for every **clean** mode. It is **not** added in puck mode,
|
|
|
|
|
|
|
+The fix: `wake_hid.cpp` registers a do-nothing **boot mouse** interface (the same shape Xbox mode already uses
|
|
|
|
|
+to wake Windows) so each mode is classified as a wake-capable input device. It's added in `setup()` for every
|
|
|
|
|
+**clean** mode. It is **not** added in puck mode,
|
|
|
which is already at the nRF52840's 7-data-IN-endpoint limit (CDC + 4 puck HID + WebUSB) — adding it there would
|
|
which is already at the nRF52840's 7-data-IN-endpoint limit (CDC + 4 puck HID + WebUSB) — adding it there would
|
|
|
require freeing an endpoint (dropping CDC or WebUSB, or a bond slot). Puck mode already wakes on Linux/Steam
|
|
require freeing an endpoint (dropping CDC or WebUSB, or a bond slot). Puck mode already wakes on Linux/Steam
|
|
|
Deck; making it wake Windows is the one case this doesn't cover without that tradeoff.
|
|
Deck; making it wake Windows is the one case this doesn't cover without that tradeoff.
|