This guide explains how to add support for a Corsair headset to HeadsetControl.
Most Corsair headsets use the same protocol, so your device might work by simply adding its Product ID to an existing implementation.
Exception: The Virtuoso and HS series use different protocols and may need separate implementations.
./headsetcontrol --dev -- --listLook for your Corsair headset (Vendor ID 0x1b1c) and note the Product ID.
alsamixer
# Press F6, select your headset
# Look for "Sidetone" controlIf sidetone appears in ALSA, it can't be controlled via HID (but battery and other features may still work).
Most Corsair headsets can be added to lib/devices/corsair_void_rich.hpp:
// Find the PRODUCT_IDS array and add your ID
static constexpr std::array<uint16_t, N> PRODUCT_IDS {
0x1b27, // VOID PRO
0x1b2a, // VOID PRO Wireless
0x1b23, // VOID USB
0x1b2f, // <- Add your product ID here
};Also update the array size N to match the new count.
Note: You don't need to modify device_registry.cpp - the device is already registered there. Just adding the product ID to the array is enough.
cd build
cmake ..
make
# Test your headset
./headsetcontrol -b # Battery
./headsetcontrol -s 64 # Sidetone
./headsetcontrol -l 1 # Lights onIf the standard Corsair protocol doesn't work for your headset:
-
Use developer mode to explore:
./headsetcontrol --dev -- --list --device 0x1b1c:YOUR_ID
-
Capture USB traffic with Wireshark (see ADDING_A_DEVICE.md)
-
You may need to create a new device class - use
corsair_void_rich.hppas a template
- Fork the repository
- Add only your device changes
- Test all features that should work
- Submit a pull request
If you have questions, open an issue on GitHub.