OpenMouse HID Diagnostic Report
Razer Basilisk V3 — Razer | VID_1532 | PARTIAL
Device opened but TX-ID test received no valid response
Interfaces: Generic Desktop
TX 0xFF: ❌ | TX 0x3F: ❌ | TX 0x1F: ❌
Razer Basilisk V3 — Razer | VID_1532 | WEBHID FULL
Razer HID protocol responding — TX-ID test passed
Interfaces: Consumer
TX 0xFF: ✅ FW 1.0 | TX 0x3F: ✅ FW 1.0 | TX 0x1F: ✅ FW 1.0
Razer Basilisk V3 — Razer | VID_1532 | PARTIAL
Device opened but TX-ID test received no valid response
Interfaces: Consumer, Generic Desktop, Generic Desktop
TX 0xFF: ❌ | TX 0x3F: ❌ | TX 0x1F: ❌
my basilisk v3 shows up as 4 interfaces (.0010 thru .0013). the one that actually answers commands is .0013 — hidraw7, descriptor BQwJAaEBBgD/CQIVACUBdQiVWrEBwA==. tested it by hand, feature report read/write works fine, TX-ID responds FW 1.0 no issue
problem is hasVendorCollection() in hid.ts only checks the top level collection's usagePage for >=0xff00. on this interface the vendor page (0xFF00) is declared inside the Consumer collection, not as its own top level thing, so the check just doesnt see it. returns false
meanwhile .0010 (hidraw4, descriptor BQEJAqEBCQGhAAUJGQEpBRUAJQF1AZUFgQJ1AZULgQMFDAo4AhWBJX91CJUBgQYFAQk4FYElf3UIlQGBBgkwCTEWAIAm/391EJUCgQbAwA==) matches isMouseControlInterface() no problem — generic desktop, usage 0x02, single collection, exactly the shape it wants. except thats literally just the boot mouse pointer interface. zero feature reports on it, log confirms it every time: "This device does not support feature reports." 4x in the log, every attempt
so isSupported() picks .0010, driver tries to write a feature report to something that doesnt have one, boom
fix is probably check featureReports.length > 0 instead of trusting the collection wrapper's usagePage. usagePage on the collection doesnt tell you what the actual report items are tagged with
device-log.log
OpenMouse HID Diagnostic Report
Razer Basilisk V3 —
Razer|VID_1532| PARTIALRazer Basilisk V3 —
Razer|VID_1532| WEBHID FULLRazer Basilisk V3 —
Razer|VID_1532| PARTIALmy basilisk v3 shows up as 4 interfaces (.0010 thru .0013). the one that actually answers commands is .0013 — hidraw7, descriptor BQwJAaEBBgD/CQIVACUBdQiVWrEBwA==. tested it by hand, feature report read/write works fine, TX-ID responds FW 1.0 no issue
problem is hasVendorCollection() in hid.ts only checks the top level collection's usagePage for >=0xff00. on this interface the vendor page (0xFF00) is declared inside the Consumer collection, not as its own top level thing, so the check just doesnt see it. returns false
meanwhile .0010 (hidraw4, descriptor BQEJAqEBCQGhAAUJGQEpBRUAJQF1AZUFgQJ1AZULgQMFDAo4AhWBJX91CJUBgQYFAQk4FYElf3UIlQGBBgkwCTEWAIAm/391EJUCgQbAwA==) matches isMouseControlInterface() no problem — generic desktop, usage 0x02, single collection, exactly the shape it wants. except thats literally just the boot mouse pointer interface. zero feature reports on it, log confirms it every time: "This device does not support feature reports." 4x in the log, every attempt
so isSupported() picks .0010, driver tries to write a feature report to something that doesnt have one, boom
fix is probably check featureReports.length > 0 instead of trusting the collection wrapper's usagePage. usagePage on the collection doesnt tell you what the actual report items are tagged with
device-log.log