Repository navigation
Conversation
Oricul
marked this pull request as ready for review
October 15, 2026 19:02
The wired SCIMITAR RGB ELITE (USB 0x1b1c:0x1be3) speaks the Bragi protocol the IRONCLAW RGB WIRELESS already uses, so it joins that codec and driver instead of getting a new one. The driver stays read-only. - Table entry with the mouse's 128-byte reports (the IRONCLAW's are 64), DPI range 100-18,000 and command usage 0x01. CorsairBragiMouse gains an optional packetSize that defaults to 64, so existing entries are unchanged. corsairBragiPacket keeps its signature and corsairBragiPacketOfSize is new. - New properties: 0x02 brightness, 0x07 angle snapping, 0x4f active DPI stage. Encoders for polling rate, brightness and angle snapping are tested against the capture but not sent by the driver. - The driver reads firmware, mode, DPI X/Y, polling rate, angle snapping, brightness and the active stage. The extra reads are opt-in per mouse, so the IRONCLAW's request sequence is unchanged. - The picker filter for this PID pins usage 1, which excludes the input-only 0xFF42:2 interface. Evidence: captures/corsair-scimitar-rgb-elite/ (iCUE property traffic, USB descriptors, README). Checked on one unit, firmware 1.2.21: direct HID reads and writes with iCUE closed, and the driver in OpenMouse on Chrome/Linux. Live DPI writes are volatile; polling rate, brightness and angle snapping are stored. See the README for what is not verified. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Oricul
force-pushed
the
add-corsair-scimitar-rgb-elite
branch
from
October 19, 2026 14:00
7542fa0 to
67014aa
Compare
Author
|
Rebased onto current main (54c68c6); the patch is unchanged. Full check passes on the rebased branch (2,659 tests), as does openmouse against the local package (400 tests). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
The wired Corsair SCIMITAR RGB ELITE (USB
0x1b1c:0x1be3) speaks the Bragi protocolthe repo already has for the IRONCLAW RGB WIRELESS, so this adds it to that codec and
driver rather than introducing a new one. Read-only, like the existing Bragi driver.
collection usage
0x01.CorsairBragiMousegains an optionalpacketSize(default 64,so existing entries are unchanged);
corsairBragiPacket's signature is unchanged(
corsairBragiPacketOfSizeis new) and theget/setDpiencoders take an optional sizethat defaults to 64. No existing export changes meaning, and nothing in
openmouseuses the types touched.
0x02brightness,0x07angle snapping,0x4factive DPI stage.driver does not send them). Decoders for brightness percent and angle snapping.
active stage. The three extra reads are opt-in per mouse (
extraProperties), so theIRONCLAW's request sequence is unchanged.
usage: 1, so the input-only0xFF42:2interface is not offered.
Evidence
captures/corsair-scimitar-rgb-elite/:properties.hex(219 request/reply pairs fromiCUE, the handshake and DPI, polling, brightness and angle-snapping changes),
usb-descriptors.txt, README. No serial numbers; other devices on the bus, the lightingstream and the on-board profile transfer are left out.
host. iCUE's version was not recorded.
Tested on hardware
One unit, wired, firmware 1.2.21 (as iCUE reports it), mouse in hardware mode:
GET 4ffollows the DPI buttonis found in the picker, connects, shows name, Wired, DPI 800, 1,000 Hz; DPI follows the
physical DPI button on the 30 s refresh. The driver sent only GETs.
npm run checkin mouse-protocol (2,659 tests) and in openmouse with the local package (400 tests) pass on the rebased branch.OpenMouse
No matching
openmousePR is needed:CorsairBragiHidClientis already registered and inNEEDS_OPEN, and the picker filter comes from the table.openmousebuilds and its testspass with this branch installed as the local package. For information: the landing-page
list shows "Scimitar RGB Elite" as "Driver Needed"; I haven't touched it.
Not verified / assumptions
03is read as 1 = hardware / 2 = software per the existing table; iCUE writes2, 1, 2 at connect and why is unknown.
0x14,0x50,0x51read back values whose meaning is unknown; they are not named.08 01 6e(what iCUE sends when a Device Memory Mode slot is selected) is acked withstatus 5 and
GET 6eis also 5, so it is not shown to switch slots; left out.Notes
run on the contributor's own mouse.
Summary by CodeRabbit
New Features
Documentation