Skip to content

basilisk v3 picks the wrong interface #166

Description

@cursssed

OpenMouse HID Diagnostic Report

Razer Basilisk V3Razer | VID_1532 | PARTIAL

Device opened but TX-ID test received no valid response
Interfaces: Generic Desktop
TX 0xFF: ❌ | TX 0x3F: ❌ | TX 0x1F: ❌

Razer Basilisk V3Razer | 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 V3Razer | 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions