Have you ever been on a video call and someone forgets to mute, or you start speaking only to realize your mic is off? These awkward moments inspired us to build a DIY mute button designed specifically for video calls.
Our goal was simple: create a small, tactile device that lets you mute/unmute your microphone, see your status via LEDs, and even control the volume, all while being fully open source so anyone can build, modify, and improve it.
All project files on GitHub: GitHub repository
Concept & PlanningWe started by brainstorming the requirements:
One button to mute/unmute
- One button to mute/unmute
LED indicators for real-time status feedback
- LED indicators for real-time status feedback
Rotary control for volume adjustment
- Rotary control for volume adjustment
Once the concept was clear, we assigned tasks across our team:
Hardware design – designing the PCB and selecting components
- Hardware design – designing the PCB and selecting components
Firmware development – coding the PIC microcontroller and Python driver
- Firmware development – coding the PIC microcontroller and Python driver
3D enclosure design – creating a durable and printable case
- 3D enclosure design – creating a durable and printable case
The hardware includes:
PIC 32-bit microcontroller
- PIC 32-bit microcontroller
Rotary encoder for button & volume control
- Rotary encoder for button & volume control
RGB LEDs to indicate microphone status
- RGB LEDs to indicate microphone status
USB-C port for connectivity
- USB-C port for connectivity
Supporting components (resistors, capacitors, etc.)
- Supporting components (resistors, capacitors, etc.)
We designed a 4-layer PCB (1.55 mm thickness) and provided:
Bill of Materials (BOM)
- Bill of Materials (BOM)
Gerber files for manufacturing
- Gerber files for manufacturing
Assembly guide PDF
- Assembly guide PDF
For prototyping, we applied solder paste with a metal stencil, placed components with a manual pick-and-place arm, and completed the process with reflow soldering. The main encoder was soldered manually.
Firmware & SoftwareOur firmware, written in C, runs on the PIC microcontroller:
Controls LED colors according to mic status
- Controls LED colors according to mic status
Reads pulses from the rotary encoder
- Reads pulses from the rotary encoder
Communicates with a virtual serial port on your computer
- Communicates with a virtual serial port on your computer
A Python driver installed on your computer interprets commands for:
Muting/unmuting
- Muting/unmuting
Adjusting volume
- Adjusting volume
Updating LED status
- Updating LED status
The enclosure was designed for ease of printing and durability:
Two parts: bottom base holds the PCB and USB-C port, top cover attaches to the encoder
- Two parts: bottom base holds the PCB and USB-C port, top cover attaches to the encoder
Translucent top allows LED light to shine through
- Translucent top allows LED light to shine through
STL files are ready for 3D printing; STEP files allow customization
- STL files are ready for 3D printing; STEP files allow customization
We also ensured that all moving parts are reinforced, and the top cover rotates smoothly while providing tactile feedback when clicking.
Testing & CustomizationOnce assembled, the mute button can be tested on Zoom, Google Meet, Microsoft Teams, and other apps.
Being fully open source, the project allows you to:
Modify firmware or driver code
- Modify firmware or driver code
Adjust 3D models for custom enclosures
- Adjust 3D models for custom enclosures
Replace components or add new features
- Replace components or add new features
All project files on GitHub: GitHub repository
Make it yours! Tweak, customize, and upgrade our open source Mute Button. Share your creations with us on social media!
Follow & tag us: Linktree
Comments