Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions captures/redragon-m690-pro/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Redragon M690 PRO (`258a:002e` / `258a:002f`) captures

Vendor-channel traffic between the official Redragon M690-PRO app (v1.0,
`Redragon_M690-PRO_Setup_v1.0_20221125`, OemDrv-based) and three units
(mouse firmware 2.95 and 2.97, receiver firmware 6.05), captured with
USBPcap on Windows and exported to text: HID feature reports 5 and 8,
report-7 events, keyboard reports from bound keys, and report descriptors only. The mouse reports no serial
number, so the files carry no unit identifier.

| File | What it is |
| --- | --- |
| `report-descriptors.hex` | Interface 0 (mouse) and interface 1 (keyboard, consumer, vendor) report descriptors. |
| `app-startup-cable-fw295.hex` | App startup over the cable, firmware 2.95. |
| `app-startup-cable-fw297.hex` | The same on firmware 2.97. |
| `app-startup-receiver.hex` | App startup through the receiver (bank `0x21`/`0x22`) and its battery polls. |
| `app-startup-receiver-factory.hex` | App startup through the receiver of a factory-fresh unit: factory settings, identify zeros until the mouse links. |
| `polling-125-to-500-cable.hex` | One polling write, the reference for the block-write format. |
| `dpi-stage-edits-cable.hex` | DPI 250 / 3000 / 8000 on each stage. |
| `dpi-colours-cable.hex` | DPI indicator colours for all five stages, then every stage selected. |
| `lighting-edits-cable.hex` | Steady, Breathing and Colorful Streaming edits. |
| `button-remaps-cable.hex` | Button 8 and wheel-click reassignments. |
| `keyboard-keys-receiver.hex` | Keyboard keys bound to a button through the receiver, each followed by the keyboard report the mouse sent on press. |
| `macro-assign-cable.hex` | Macro store and a macro slot (documented only; the driver does not write macros). |
| `receiver-polling-and-standby.hex` | Receiver writes 125 -> 250 -> 125 Hz, app opened with the mouse off. |
| `receiver-offline-apply.hex` | Link check `05 80` with the mouse off (`00`) and on (`01`). |
| `openmouse-receiver-session.hex` | This driver in OpenMouse through the receiver: a write made with the mouse off is undone when it reconnects; DPI events; 500 / 1000 Hz writes. |
| `cable-charge-state.hex` | `05 90` over the cable: `10 01` while charging, `10 02` once charged. |
| `bridge-receiver-session.hex` | This driver in OpenMouse through OpenMouse Bridge: link and battery status readable, writes held back while the mouse is asleep. |
| `openmouse-hardware-test-wired.json` | OpenMouse's built-in hardware test, cable, Chrome: pass. |
| `openmouse-hardware-test-wireless.json` | The same through the receiver, Chrome: pass. |
| `openmouse-hardware-test-bridge-wired.json` | Cable through OpenMouse Bridge: pass, with charging status. |
| `openmouse-hardware-test-bridge-wireless.json` | Receiver through OpenMouse Bridge: pass, with battery (99 %). |
| `chrome-report5-stall.hex` | Chrome's feature reads (wLength 520) STALLed by the mouse: why battery and link status cannot be read in a browser. |
| `dpi-button-events.hex` | Report 7 events from the mouse's own DPI buttons. |

In the `.hex` files each line is `SET` (host to mouse), `GET` (mouse to host)
or `EVT` (interrupt-IN), then the report bytes with the report id first and
trailing zeros dropped (`chrome-report5-stall.hex` lists setup packets and USB
status instead). Every read is selected by `SET 05 <command>` and answered
with that command in the reply's second byte, so the `SET` is shown only when
no answer arrives. Lines are in capture order, without timestamps; a `# --`
comment marks where timing matters. Each settings or button block is shown in
full once per file; later copies give the first four bytes, `..`, then only the
bytes that changed since the previous copy as `[offset] old -> new`
(`unchanged` or `identical to the write` when none did; the `a5` ending a
button-block write at `0x58` is not listed). Repeated reads, repeated answers
and key releases are omitted; battery polls appear only in the startup,
charge and Bridge files, and the identify answer only in the startup files.

Decoding and verification notes: `docs/redragon-m690-pro-testing.md`.
6 changes: 6 additions & 0 deletions captures/redragon-m690-pro/app-startup-cable-fw295.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Redragon M690 PRO: Vendor app v1.0 starting over the cable, firmware 2.95: identify (05 01 -> "2945"), settings
# block (05 11), button block (05 12), then the 30 s status poll (05 90).
GET 05 01 32 39 34 35
GET 08 11 00 00 00 00 00 00 64 13 01 35 00 02 00 04 00 08 00 0c 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 00 00 40 00 00 40 00 00 40 ff 46 00 00 ff ff ff ff ff 02 00 01 00 ff 00 00 00 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
GET 08 12 00 00 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01
GET 05 90 10 01
5 changes: 5 additions & 0 deletions captures/redragon-m690-pro/app-startup-cable-fw297.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Redragon M690 PRO: The same startup on firmware 2.97: same id; 250 Hz ([0x0a] = 02), stage 1 active ([0x0b] = 15).
GET 05 01 32 39 34 35
GET 08 11 00 00 00 00 00 00 64 13 02 15 00 02 00 04 00 08 00 0c 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 ff 00 ff 00 ff 00 ff ff ff 00 ff 46 00 00 ff ff ff ff ff 03 42 01 00 ff 00 00 00 07 ff 00 00 00 ff 00 00 00 00 ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 34 0f 03 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
GET 08 12 00 00 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01
GET 05 90 10 01
8 changes: 8 additions & 0 deletions captures/redragon-m690-pro/app-startup-receiver-factory.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Redragon M690 PRO: Vendor app through the receiver of a factory-fresh unit (factory settings). Identify answers all
# zeros (05 01 00 ..) until the mouse links, then "2945"; the app retries every ~7 s.
# 05 90 answers 11 63 (level 99) while the app displays "80 %".
GET 05 01
GET 05 01 32 39 34 35
GET 08 21 00 00 00 00 00 00 64 13 01 15 00 02 00 04 00 08 00 0c 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 ff 00 ff 00 ff 00 ff ff ff 00 ff 46 00 00 ff ff ff ff ff 01 42 01 40 ff 00 00 42 07 ff 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 ff 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
GET 08 22 00 00 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01
GET 05 90 11 63
7 changes: 7 additions & 0 deletions captures/redragon-m690-pro/app-startup-receiver.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Redragon M690 PRO: Vendor app through the receiver: the receiver bank is read with 05 21 / 05 22.
# 05 90 answers 11 64 (level 100), later 11 63 (99).
GET 05 01 32 39 34 35
GET 08 21 00 00 00 00 00 00 64 13 01 25 00 02 00 04 00 08 00 0c 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 00 00 40 00 00 40 00 00 40 ff 46 00 00 ff ff ff ff ff 02 00 01 00 ff 00 00 00 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
GET 08 22 00 00 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01
GET 05 90 11 64
GET 05 90 11 63
18 changes: 18 additions & 0 deletions captures/redragon-m690-pro/bridge-receiver-session.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Redragon M690 PRO: This driver in OpenMouse through OpenMouse Bridge, receiver path. Bridge reads report 5 with
# wLength 8, so the short answers arrive: link 05 80 00 02 while the mouse sleeps (battery then reads
# the receiver's last value, 11 64), 05 80 01 01 once it wakes (battery 11 63 = 99). Two lighting
# writes follow, each read back.
GET 08 21 00 00 00 00 00 00 64 13 01 25 00 02 00 05 00 0e 00 13 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 80 80 ff ff 00 00 ff 00 00 00 ff ff 80 c0 ff 46 00 00 ff ff ff ff ff 03 44 01 40 ff 00 00 44 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 e9 5a ee 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
GET 05 80 00 02
GET 08 22 00 00 00 00 00 00 11 01 00 00 11 02 00 00 11 02 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01
GET 05 90 11 64
GET 05 80 01 01
GET 05 90 11 63
EVT 07 11 01 03 0e
GET 08 21 00 00 .. [0x0b] 25 -> 35
SET 08 21 00 92 .. [0x45] 03 -> 01
SET 08 22 00 50 .. unchanged
GET 08 21 .. identical to the write
GET 08 22 .. identical to the write
SET 08 21 00 92 .. [0x45] 01 -> 03
GET 08 21 .. identical to the write
13 changes: 13 additions & 0 deletions captures/redragon-m690-pro/button-remaps-cable.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Redragon M690 PRO: Button 8 (slot 8, 0x24) and button 3 (slot 3, 0x10) reassigned: 50 02, 31 01 32 03, 11 10,
# 22 00 00 20 (Refresh), 50 01 (Disable), 11 04.
GET 08 11 00 00 00 00 00 00 64 13 03 35 00 18 00 18 00 18 00 18 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 00 00 40 00 00 40 00 00 40 ff 46 00 00 ff ff ff ff ff 02 12 01 00 ff 00 00 42 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 00 00 00 00 ff 00 00 00 ff 00 00 ff 4c 22 8a ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
SET 08 11 00 92 .. unchanged
SET 08 12 00 50 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 50 02 00 00 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 a5
GET 08 11 .. identical to the write
SET 08 12 00 50 .. [0x24] 50 02 00 00 -> 31 01 32 03
SET 08 12 00 50 .. [0x24] 31 01 32 03 -> 11 10 00 00
SET 08 12 00 50 .. [0x24] 11 10 00 00 -> 22 00 00 20
SET 08 12 00 50 .. [0x24] 22 00 00 20 -> 50 02 00 00
SET 08 12 00 50 .. [0x11] 04 -> 10
SET 08 12 00 50 .. [0x10] 11 10 -> 50 01
SET 08 12 00 50 .. [0x10] 50 01 -> 11 04
6 changes: 6 additions & 0 deletions captures/redragon-m690-pro/cable-charge-state.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Redragon M690 PRO: Vendor app over the cable with a fully charged mouse just plugged in: 05 90 answers 10 01
# (charging) for about a minute, then 10 02 (charged), when the app shows "100 %".
GET 08 11 00 00 00 00 00 00 64 13 04 35 00 02 00 04 00 08 00 0c 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 00 00 40 00 00 40 00 00 40 ff 46 00 00 ff ff ff ff ff 02 44 01 00 ff 00 00 40 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 0b eb d7 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
GET 08 12 00 00 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01
GET 05 90 10 01
GET 05 90 10 02
13 changes: 13 additions & 0 deletions captures/redragon-m690-pro/chrome-report5-stall.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Redragon M690 PRO: Chrome (WebHID, Windows) over the cable: every feature read asks for wLength 0x0208 (520) instead
# of the app's 8, and the mouse STALLs it (status c0000004). Lines are HID class control transfers:
# the 8-byte setup packet, the USBD status, and any data.
setup 21 09 05 03 01 00 08 00 status 00000000 data 05 01
setup a1 01 05 03 01 00 08 02 status c0000004 data -
setup 21 09 05 03 01 00 08 00 status 00000000 data 05 01
setup a1 01 08 03 01 00 08 02 status c0000004 data -
setup 21 09 05 03 01 00 08 00 status 00000000 data 05 01
setup a1 01 05 03 01 00 08 02 status c0000004 data -
setup 21 09 05 03 01 00 08 00 status 00000000 data 05 90
setup a1 01 08 03 01 00 08 02 status c0000004 data -
setup 21 09 05 03 01 00 08 00 status 00000000 data 05 90
setup a1 01 05 03 01 00 08 02 status c0000004 data -
10 changes: 10 additions & 0 deletions captures/redragon-m690-pro/dpi-button-events.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Redragon M690 PRO: Unprompted report 7 when the mouse's DPI buttons change stage: 07 10 01 <stage 1-5> <DPI code>.
EVT 07 10 01 03 08
EVT 07 10 01 02 04
EVT 07 10 01 03 08
EVT 07 10 01 02 04
EVT 07 10 01 03 08
EVT 07 10 01 02 04
EVT 07 10 01 03 08
EVT 07 10 01 04 0c
EVT 07 10 01 03 08
21 changes: 21 additions & 0 deletions captures/redragon-m690-pro/dpi-colours-cable.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Redragon M690 PRO: DPI indicator colours for stages 1-5 (ff8080, ffff00, 00ff00, 0000ff, ffffff at 0x2d + 3n),
# then every stage selected with the DPI buttons: report 7 reads 07 10 04 .. here and 07 10 01 ..
# in other sessions (byte 2 unknown).
GET 08 11 00 00 00 00 00 00 64 13 04 25 00 02 00 04 00 08 00 0c 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 00 00 40 00 00 40 00 00 40 ff 46 00 00 ff ff ff ff ff 02 44 01 00 ff 00 00 40 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 0b eb d7 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
SET 08 11 00 92 .. [0x2d] 00 00 40 00 00 40 00 00 40 00 00 40 00 00 40 -> ff 80 80 ff ff 00 00 ff 00 00 00 ff ff ff ff
SET 08 12 00 50 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 a5
EVT 07 10 04 03 08
EVT 07 10 04 04 0c
EVT 07 10 04 05 18
EVT 07 10 04 04 0c
EVT 07 10 04 03 08
EVT 07 10 04 02 04
EVT 07 10 04 01 02
EVT 07 10 04 02 04
EVT 07 10 04 03 08
EVT 07 10 04 04 0c
EVT 07 10 04 05 18
EVT 07 10 04 04 0c
EVT 07 10 04 03 08
EVT 07 10 04 02 04
EVT 07 10 04 01 02
25 changes: 25 additions & 0 deletions captures/redragon-m690-pro/dpi-stage-edits-cable.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Redragon M690 PRO: Every stage set to 250 (code 01), then each in turn to 3000 (0c) and 8000 (18).
GET 08 11 00 00 00 00 00 00 64 13 03 35 00 02 00 04 00 08 00 0c 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 00 00 40 00 00 40 00 00 40 ff 46 00 00 ff ff ff ff ff 02 12 01 00 ff 00 00 42 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 00 00 00 00 ff 00 00 00 ff 00 00 ff 4c 22 8a ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
SET 08 11 00 92 .. [0x0d] 02 00 04 00 08 00 0c 00 18 -> 01 00 01 00 01 00 01 00 01
SET 08 12 00 50 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 a5
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x0d] 01 -> 0c
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x0d] 0c -> 18
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x0f] 01 -> 0c
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x0f] 0c -> 18
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x11] 01 -> 0c
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x11] 0c -> 18
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x13] 01 -> 0c
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x13] 0c -> 18
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x15] 01 -> 0c
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x15] 0c -> 18
GET 08 11 .. identical to the write
27 changes: 27 additions & 0 deletions captures/redragon-m690-pro/keyboard-keys-receiver.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Redragon M690 PRO: Keyboard keys bound to the wheel click through the receiver (slot 3 = 21 <modifiers> <usage> 00),
# each followed by presses: the mouse sends keyboard report 1 (01 <modifiers> <usage> ..). In order:
# Ctrl+Shift+R (already bound), Alt+A, Win+W, A, \, Delete, Up arrow, F12, Numpad 5, Backspace.
EVT 01 03 15
GET 08 21 00 00 00 00 00 00 64 13 03 35 00 02 00 05 00 0e 00 13 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 80 80 ff ff 00 00 ff 00 00 00 ff ff 80 c0 ff 46 00 00 ff ff ff ff ff 03 44 01 40 ff 00 00 44 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 e9 5a ee 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
GET 08 22 00 00 00 00 00 00 11 01 00 00 11 02 00 00 21 03 15 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01
GET 05 80 01 01
SET 08 21 00 92 .. unchanged
SET 08 22 00 50 .. [0x11] 03 15 -> 04 04
EVT 01 04 04
GET 08 21 .. identical to the write
SET 08 22 00 50 .. [0x11] 04 04 -> 08 1a
EVT 01 08 1a
SET 08 22 00 50 .. [0x11] 08 1a -> 00 04
EVT 01 00 04
SET 08 22 00 50 .. [0x12] 04 -> 31
EVT 01 00 31
SET 08 22 00 50 .. [0x12] 31 -> 4c
EVT 01 00 4c
SET 08 22 00 50 .. [0x12] 4c -> 52
EVT 01 00 52
SET 08 22 00 50 .. [0x12] 52 -> 45
EVT 01 00 45
SET 08 22 00 50 .. [0x12] 45 -> 5d
EVT 01 00 5d
SET 08 22 00 50 .. [0x12] 5d -> 2a
EVT 01 00 2a
21 changes: 21 additions & 0 deletions captures/redragon-m690-pro/lighting-edits-cable.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Redragon M690 PRO: Twelve lighting writes: Steady brightness and slot ([0x48]), Steady slot colours ([0x66..]),
# Breathing ([0x45] = 03, [0x4c]) and Colorful Streaming ([0x45] = 01, [0x46]).
GET 08 11 00 00 00 00 00 00 64 13 03 35 00 02 00 04 00 08 00 0c 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 00 00 40 00 00 40 00 00 40 ff 46 00 00 ff ff ff ff ff 02 42 01 00 ff 00 00 00 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
SET 08 11 00 92 .. [0x48] 00 -> 03
SET 08 12 00 50 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 11 10 00 00 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 a5
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x48] 03 -> 43
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x6f] ff ff 00 -> 00 00 ff
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x48] 43 -> 45
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x45] 02 -> 03, [0x4c] 00 -> 42
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x45] 03 42 -> 01 33
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x46] 33 -> 12
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x45] 01 12 01 45 -> 02 12 01 24, [0x72] 00 ff ff -> 4c 22 8a
GET 08 11 .. identical to the write
SET 08 11 00 92 .. [0x48] 24 -> 00
6 changes: 6 additions & 0 deletions captures/redragon-m690-pro/macro-assign-cable.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Redragon M690 PRO: An empty macro assigned to app button 4: macro store (08 30 ..), then slot 5 (0x18) = 70 01 01 01.
# Documented only; the driver does not write macros.
GET 08 11 00 00 00 00 00 00 64 13 02 25 00 02 00 04 00 08 00 0c 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 00 00 40 00 00 40 00 00 40 ff 46 00 00 ff ff ff ff ff 02 00 01 00 ff 00 00 00 07 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff 02 02 00 00 00 00 00 ff 00 00 00 ff ff ff 00 00 ff ff ff 80 00 ff 00 ff ff 00 00 ff 00 00 ff 00 00 02 00 ff 00 fa 03 6a 42 42 02 ff 00 00 00 00 01 02 ff 00 00 a5
SET 08 11 00 92 .. unchanged
SET 08 30 02 00 00 00 00 00 01
SET 08 12 00 50 00 00 00 00 11 01 00 00 11 02 00 00 11 04 00 00 11 08 00 00 70 01 01 01 41 01 00 00 41 02 00 00 31 01 32 03 50 04 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 50 01 00 00 a5
Loading
Loading