MuteMe HID Key
This support article is for users that want to use a MuteMe device in some other application or want to better understand the API keymap for the device. The device is fairly straightforward and simple. This keymap applies for all current versions (Batch 001 - Batch 007) of the device including the minis.
The MuteMe HID API is not easily understood because it doesn't use some of the common HID interfaces that are out there for other LED projects. This is a completely custom HID map that was specifically made for our purposes. This approach was necessary due to component shortages at the height of the pandemic. We needed a mechanism and firmware that could be quickly and easily ported over to various controllers regardless of available memory or power or even RGB LEDs. This is what allowed us to continue to develop devices and sell devices as supply disruptions caused issues for other companies.
So we have a completely custom key map that we are going to reference below that will allow you to control you MuteMe and receive input from your MuteMe to interface with your own applications if you choose to do so.
Batch 001 - 003 devices operate at USB 1.1 speeds. Batch 004+ devices operate at USB USB 2.0 speeds but untested firmware is available for low speed operation in cases of long cable runs.
MuteMe devices use the following VID & PID pairs:
|MuteMe Original (prototypes)||0x16c0||0x27db|
|MuteMe Original (production)||0x20a0||0x42da|
|MuteMe Mini (production)||0x20a0||0x42db|
These are all the input keys for MuteMe these allow you to set your colors and lighting effects.
- red = 0x01
- green = 0x02
- yellow = 0x03
- blue = 0x04
- purple = 0x05
- cyan = 0x06
- white = 0x07
- noColor = 0x00
To get the lighting effects you increment the base color above by the values below:
- const dim + 0x10
- const fastPulse + 0x20
- const slowPulse + 0x30
For example to have slow pulse red you would take 0x01 + 0x30 to get 0x31 which would be slow pulsating red. Base values alone would be bright with no effect.
We also have a custom keymap when the device sends instructions back from the device to the PC.
- Start touch = 0x04
- Touching = 0x01
- End touch = 0x02
- Clear = 0x00
This is fairly self-explanatory because the device is a capacitive touch device and we have features built into the software that allows for push to talk and push to mute. We need to understand not just the fact that a touch has occurred but also if it continues.
Some applications could just use start touch or end touch but once again this device was made specifically for our purposes.
Special Input Keys:
There are two special keys and one special increment that gives us a few additional options.
- 0x08 = Reserved for future use (Use not recommended)
- 0x09 = Firmware Update Mode (Use not recommended)
- 0x40 + Time delay shutdown sleep
The increment is used in the same method as the ones above for for lighting effects and can be stacked on-top of the lighting effects. For example, if you want MuteMe to shut down after ~10 seconds while blue and pulsing fast the key to send would be Blue 0x04 + Fast Pulse 0x20 + Time Delay 0x40 = 0x64
Once a sleep delay command is sent the internal counter starts, to intervene and not have the device sleep a regular non sleep command has to be sent.
We do not recommend implementing the firmware feature 0x09 or the reserve feature 0x08 in your code as this may lead to devices that are not recoverable or we could implement some other feature without this article being updated which could impact your project.
Last Updated: 11:45PM - PST - June 13, 2022
Please let us know via the chatbot if this article helped or didn't help resolve your issue.