A firmware for ATtiny85 microcontrollers that can mute/unmute and hang up calls in video conferencing sofware.
The firmware emulates the following usages according to the USB HID specification (see HID Usage Tables):
Page name | Page ID | Usage name | Usage ID |
---|---|---|---|
LED | 0x08 |
Mute | 0x09 |
LED | 0x08 |
Off-Hook | 0x17 |
Telephony Device | 0x0B |
Hook Switch | 0x20 |
Telephony Device | 0x0B |
Drop | 0x26 |
Telephony Device | 0x0B |
Phone Mute | 0x2F |
Hardware:
- Development board: ATtiny85 Micro USB Development Board
- Or any other ATtiny85 development board where USB communication is handled by the ATtiny85 itself, and not by some additional USB-to-UART controller (CP2102, CH340, etc.)
Software:
- Install PlatformIO
- Clone this repository,
cd firmware/
- Configure firmware
- Generate your own config file:
cp include/config.h.example include/config.h
- Edit
include/config.h
to suit your needs (see comments there for further description)
- Generate your own config file:
- Flash firmware
pio run -t upload
- Plug in the device within 60 seconds
- Make sure user has read/write access to the raw USB device:
- Either drop
udev rules file
to/etc/udev/rules.d/
, issue asudo udevadm control --reload-rules
and re-plug device (recommended) - Or try manually:
sudo chmod 0666 /dev/hidrawX
- Either drop
- Attach device via USB
- Configure video conferencing software to use the device for call controls:
If your development board does not already come pre-flashed with it, I highly recommend the micronucleus bootloader. It adds support for firmware flashing without a dedicated programmer.
By default, the bootloader always starts and waits for up to 6 seconds after plugging in the device before starting the actual firmware. You can improve this behavior by flashing an optimized version of micronucleus as provided in the doc/micronucleus
folder. The modified configuration only starts into bootloader mode if the button is pressed while plugging in the device.
Please check the micronucleus repository for more information on how to flash the optimized bootloader. Hint: micronucleus can update itself via their provided CLI tool.
See LICENSE.md
- Inspired by Digispark Keyboard
- Powered by the micronucleus bootloader
- Only possible thanks to V-USB