Skip to content

feat(fantech): add WG14P Yari Pro driver - #27

Merged
jazzstack merged 1 commit into
OpenMouse-Project:mainfrom
jazzstack:feat/fantech-driver
Aug 17, 2026
Merged

feat(fantech): add WG14P Yari Pro driver#27
jazzstack merged 1 commit into
OpenMouse-Project:mainfrom
jazzstack:feat/fantech-driver

Conversation

@jazzstack

Copy link
Copy Markdown
Contributor

Add Fantech WG14P Yari Pro (VID 0x3151, PID 0x503D) driver with full HID vendor protocol support.

Protocol

The protocol was reverse-engineered from the Fantech web configurator at qmk.top (GearHub-V5 JS bundle). It uses the command-based Family B protocol:

  • Get DPI: command 144, Set DPI: command 16
  • Get Report Rate: command 131, Set Report Rate: command 8
  • DPI stored as LE uint16 at bytes [8+slot2..9+slot2] (X) and [24+slot2..25+slot2] (Y)
  • Report rate encoding: 0=8000Hz, 1=4000Hz, 2=2000Hz, 3=1000Hz, 4=500Hz, 5=125Hz

Changes

  • src/drivers/fantech/hid.ts - new driver (command I/O, DPI, report rate, status)
  • src/drivers/fantech/hid.test.ts - 7 tests covering protocol encoding
  • src/drivers/vendors.ts - added fantech 0x3151 + HID filter on usage page 0xFFFF
  • src/drivers/mouse-types.ts - added Fantech brand
  • src/drivers/registry.ts - registered driver with score 5
  • src/drivers/registry.test.ts - added 0xFFFF usage page to probe matrix

Testing

Build passes cleanly. All 458 tests pass.

Add Fantech WG14P (VID 0x3151, PID 0x503D) driver with:
- Command-based protocol (Family B) from GearHub qmk.top
- DPI read/write: cmd 144 (get), cmd 16 (set)
- Report rate: cmd 131 (get), cmd 8 (set)
- Rate encoding: 0=8000Hz, 1=4000Hz, 2=2000Hz, 3=1000Hz, 4=500Hz, 5=125Hz
- DPI stored as LE uint16 at bytes [8+slot*2..9+slot*2]

Protocol reverse-engineered from Fantech web configurator JS bundle.
@jazzstack
jazzstack merged commit a93768d into OpenMouse-Project:main Aug 17, 2026
2 checks passed
jazzstack added a commit to OpenMouse-Project/openmouse that referenced this pull request Aug 17, 2026
Add Fantech Yari Pro WG14P (VID 0x3151, PID 0x503D) to the device catalog.

Features PixArt 3950 STRIKE sensor, 42000 DPI max, and 8K polling rate.

Protocol reverse-engineered from Fantech web configurator at qmk.top using command-based Family B protocol.

Depends on: OpenMouse-Project/mouse-protocol#27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant