[New Device] Winbond Gaming Keyboard

Name of device:

Pulsar PCMK TKL (this is the one I own)

WIANXP/Nautilus/Capturer KT108 RGB Hot-Swappable Mechanical Keyboard (mostly found on aliexpress and similar shops)

Winbond Electronics Corp. Gaming Keyboard (this is the generic name that some of these keyboards identify as)

Link to manufacturer's product page:

https://www.pulsar.gg/collections/keyboard

https://vibegaming.com.bd/product/nautilus-kt108-rgb-hot-swappable-mechanical-keyboard/
https://kprepublic.com/products/capturer-kt87-87-key-mechanical-keyboard-80-tkl-hot-swappable-switch-lighting-effect-rgb-switch-led-type-c-software-macro

(ok, this is just a shop where this can be bought, but AFAIK the manufacturer doesn't have a page)
https://usb-ids.gowdy.us/read/UD/0416/b23c has a little more information

Please select what type of device/interface the device uses:

DeviceTypeUSB

ID information:

0416:b23c Winbond Electronics Corp. PCMK TKL
(the product name, "PCMK TKL" in this case, will be different for different devices)

Please attach screenshots of the device's official control application here:

wave

static

neon

musical

(I have no idea how this musical rhythm mode is supposed to work exactly, so I haven't implemented it for OpenRGB)

id-light-static

id-light-breath

custom

For non-pulsar devices, the KT87/KT108 software can be found here: http://kpchn.com/s/PoHJ?path=%2F025-KT%20Series%2F026-KT%20Series

it seems to look extremely similar to the pulsar software, except for not having a way to configure the pulsar-specific logo light/id light/side light, and apparently having some additional effects: KT87: https://youtu.be/sss3MdV-G7c?t=557 KT108: https://www.youtube.com/watch?v=sspBGSjzMFw&t=209s

Please attach device captures here:

Wireshark caputure: pulsarcapture.zip
I marked the USB packets for different things I tested with comments (click Analyze -> Expert Information -> Comment in Wireshark).

I reverse engineered the protocol based on that capture and wrote a simple prototype application for testing on Linux (the source includes lots of comments that explain the protocol):
https://gist.github.com/DanielGibson/cd92c5faa6b2e0426351dc44193c6182

Checklist for Step2

  • Name of device
  • A link to the vendors product page has been included
  • The transport bus has been identified and the appropriate label added to the issue.
  • The device ID's have been included for USB or PCI
  • Screenshots of the OEM Application are included
  • There is either, appropriate code examples linked or suitable device captures attached
Edited by Daniel Gibson