A push-button control panel for Zoom

Overview

Zoom Control Panel

Zoom Control Panel

A push-button control panel for Zoom

This repo contains files for building a push-button control panel for Zoom. It was made using Windows short cuts, but could easily be modified for Mac instead.

There are four major components to this build:

  • A 3D-printed case
  • Optional: Printing and installing button icons
  • Wiring buttons and Arduino Mega 2560
  • Programming Arduino

Parts List

In order to build this project, you will need:

  • Access to a 3D printer
  • An Arduino Mega 2560 board
  • A 2560 Prototype Circuit Breakout Board PCB
  • Enough 2.54mm male header pins to mount the breakout board PCB to the Arduino
    • I used the full groupings of 1x10, 5 1x8, 2 1x18 in mine for stability, though you could get away with just the two 1x18 or a single 2x18
  • 12 rectangular LA128A push buttons rated at 12V
    • (If you find 5V ones, even better, though the 12V ones work just fine.)
    • This design was made with the 16mm rectangular ones in mind, though others should work as well -- however, the button icons may need to be scaled to fit other sizes
    • As designed, I used the following, though you can update it to your own preference:
      • 4 Orange Latching Switches
      • 2 Orange Momentary Switches
      • 2 Red Latching Switches
      • 3 Green Momentary Switches
      • 1 Green Latching Switch
  • A red mushroom LAY37-11ZS push button
  • 13 10k Ohm Resistors
  • Various hook-up wires, preferably in multiple colors to keep track of wires
  • Optional: Glossy transparent printable sticker 'paper' for icons
  • 8 M3 nuts
  • 8 small M3 screws
  • Optional long USB-A or USB extension cable to connect panel to the computer
  • Small flathead screwdriver

3D Printed Case

There are two files that need to be 3D printed to create the case. They are found in 3D Print/To Print, which contains these *.stl files for the button panel and the main body. These files have been designed to not require supports when printing, though you may want to use a brim. I printed it on a Prusa Mk3S+ using PETG with 0.20mm layer heights.

Once printed, M3 nuts can be pushed into place for each of the 8 screw-holes. If they fall out, you can use a small amount of superglue around the edge to hold them into place.

The CAD design was built in FreeCAD, and the original FreeCAD files are included under 3D Print/CAD Files if you wish to modify them.

Printing and Installing Button Icons

  • In the Icons folder you can find a *.svg and *.pdf of icons that can be printed onto transparent sticker 'paper', carefully cut out, and adhered to the push buttons.
  • Using a small flathead screwdriver, you can carefully remove the colored transparent window from the push buttons.
  • Behind it sits a white rectangle, followed by a white piece of plastic that connects the button mechanism to the front part that is pressed.
  • Carefully place the sticker onto the white rectangle, then reassemble the button
    • Make sure to check that the button pushes and released properly. If not, the button may have been inserted backwards.
      • Try to keep track of which buttons each parts came from, as mixing them can lead to buttons sticking.
  • As printed, the buttons are:
    • Mute Me | Video | Share Screen | Record | Gallery/Speaker View | Chat
    • Mute All | Camera | Pause Screen Share | Pause Recording | Reset | Participants

Wiring and Assembly

  • Before spending a lot of time wiring, first make sure to install HoodLoader2 on your Arduino so that you can use it as a keyboard. Follow the Hardware and Software Installations in their wiki before going further: https://github.com/NicoHood/HoodLoader2/wiki/Hardware-Installation
  • Install each of the buttons onto the 3D printed Button Panel
    • I found it easiest to have the flat side of the buttons flush against the panel and to install the rubber o-rings on the back side before putting in the square washers and screwing them in place
  • Solder the headers onto the PCB board
  • For wiring the buttons, follow the wiring diagram in the folder Wiring and solder the buttons . It's provided in *.pdf, *.svg, and *.png formats
    • The resistors can be soldered directly on each button between the negative side of the LED and the 'C' (common) pin of the switch
    • For the 5V-side, make sure that you use the 'NO' (Normally Open) pin of the switch
    • Don't forget to include the 10k Ohm resistor on the mushroom button, and make sure that it's wired to the 'green' side so that the switch is closed when the button is pressed. You can check that it's on the correct side using a multimeter.

Wiring Diagram

Nearly completed wiring

  • Once the wiring is complete, attach the PCB to the Arduino and place it inside of the panel.
  • Carefully place the bottom 4 M3 screws into position and screw them in. (if you can only get the front 2 in, that will also work fine)
  • Gently push the button panel into place and attach it with the 4 remaining M3 screws.

Programming Arduino

  • Before programming the Arduino, make sure that you have installed both the Arduino IDE (https://www.arduino.cc/en/software/) and HoodLoader2 on your Arduino so that you can use it as a keyboard. Follow the Hardware and Software Installations in their wiki before going further: https://github.com/NicoHood/HoodLoader2/wiki/Hardware-Installation
    • Hopefully HoodLoader was installed before you finished wiring, or else you'll need to pull the Arduino to install it following the instructions linked above
  • The files needed to upload to the Arduino are located in the Arduino folder. There are three:
    • blankIno.ino is a blank Arduino file to upload when switching between the 16u and Mega 2560 chipset. After uploading to the 16u chip, I find uploading this twice to the Mega 2560 the easiest way to regain access to the Mega 2560 chip
    • controlBox.ino is the primary code that should be uploaded to the Mega 2560 chip -- NOT the 16u chip
      • It defines the pins of each button and sends serial commands to the 16u chip using the Serial1 commands
      • Make sure to upload this software each time before uploading HID-Bridge on the 16u.
      • If debugging, you can uncomment the Serial.print(allData) line and run the serial monitor to make sure your buttons are working correctly. This should only be done before uploading the HID-Bridge to the 16u, and make sure to comment that line and re-upload this code before uploading HID-Bridge or else some strange effects may occur by flooding the serial port with text
    • HID-Bridge_USB.ino allows the Arduino Mega 2560 to be used as a keyboard input device. This software can only be loaded if HoodLoader2 is installed, and should be uploaded to the 16u chip -- NOT the Mega 2560 chip
  • Once the software is uploaded, you should be able to use your new Zoom Control Panel! If you run into issues, you can use the on-screen keyboard to make sure that the modifier keys are being input correctly, or open a Zoom channel to test out your new control box.
    • Note: The 'Reset' button currently toggles the momentary switch LEDs so that you can leave the box plugged in without having the LEDs lit up.

Attributions

This project was inspired by https://github.com/lanewinfield/zoomout and https://www.instructables.com/Zoom-Control-Box/, and would not have been possible to finish using the Arduinos I had sitting around if not for https://github.com/NicoHood/HoodLoader2/

You might also like...
Digispark attiny85 code to smack the big button!

dave-o-rec The big button what records the trucks! Requires the DigiKeyboard.h library, which is included in the Arduino IDE's DigiStump package. Setu

Control Heidelberg Wallbox Energy Control over WiFi using ESP8266 and configure your own local load management
Control Heidelberg Wallbox Energy Control over WiFi using ESP8266 and configure your own local load management

scroll down for English version and additional information wbec WLAN-Anbindung der Heidelberg WallBox Energy Control über ESP8266 Die Heidelberg W

Azure Outlook Command & Control (C2) - Remotely control a compromised Windows Device from your Outlook mailbox. Threat Emulation Tool for North Korean APT InkySquid / ScarCruft / APT37. TTP: Use Microsoft Graph API for C2 Operations. Automatic street light control using LDR as the sensor and an LED as an example of a street light. Performed a small simulation of an Arduino board along with LDR and LED to simulate the automatic street light control in TinkerCAD.
Budgie Control Center is a fork of GNOME Control Center for the Budgie 10 Series.

Budgie Control Center Budgie Control Center is a fork of GNOME Settings / GNOME Control Center with the intent of providing a simplified list of setti

Robust multi-prompt delimited control and effect handlers in C/C++
Robust multi-prompt delimited control and effect handlers in C/C++

libmprompt Note: The library is under development and not yet complete. This library should not be used in production code. Latest release: v0.2, 2021

Control your mouse using razer synapse

rzctl Control your mouse using razer synapse Compile in x64 Not tested for x86 Credits Process Hacker - https://github.com/processhacker/processhacker

Remote control for your QMK-powered keyboard

QMK RC QMK RC is a project that aims to bring the same convenience to controlling your QMK keyboard from your computer, as QMK did to programming keyb

ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps
ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps

EMS-ESP is an open-source firmware for the Espressif ESP8266 and ESP32 microcontroller that communicates with EMS (Energy Management System) based equipment from manufacturers like Bosch, Buderus, Nefit, Junkers, Worcester and Sieger.

Comments
  • CAD files

    CAD files

    @ellie-long, would love to learn more about the design of the 3d print.

    What software did you use to make the CAD and STL files? Is there anything you would recommend for those starting to learn about design and ideal goals for intermediate to pro levels?

    opened by paulywill 1
  • Should I change anything in HID-bridge_USB?

    Should I change anything in HID-bridge_USB?

    controlBox.txt

    Hi, I'm adding a rotary encoder to control PC Volume. Should I add or remove anything in HID-bridge_USB.ino? And another question, Did I write correctly the new controlBox.ino? I wrote it by combining your controlBox.ino and VolumeCtrl.ino from https://www.instructables.com/USB-Volume-Control-and-Caps-Lock-LED-Simple-Cheap-/ . I'm not going to make this project with any LED so I removed pieces of code for LED. I'm making this project on Arduino UNO.

    opened by albanrr9 0
Owner
Elena Long
Elena Long
Yet another alarm (control) panel for Home Assistant.

HASS-YAAP Yet another alarm (control) panel for Home Assistant. Change alarm system mode (away, home, night, disarmed) Welcome people arriving by thei

Paul-Vincent Roll 48 Dec 4, 2021
TinyRemoteXL - 12-Button IR Remote Control based on ATtiny13A

TinyRemoteXL is a 12-button IR remote control based on an ATtiny13A powered by a CR2032 or LIR2032 coin cell battery.

Stefan Wagner 35 Dec 30, 2022
Foo_openlyrics - An open-source lyric display panel for foobar2000

foo_openlyrics An open-source lyrics plugin for foobar2000 that includes its own UI panel for displaying and sources for downloading lyrics that are n

Jacques Heunis 241 Dec 23, 2022
EspHoMaTriX - A simple DIY status display with an 8x32 RGB LED panel implemented with esphome.io

EspHoMaTriX (ehmtx) A simple DIY status display with an 8x32 RGB LED panel implemented with esphome.io Introduction There are some status displays out

LuBeDa 55 Dec 29, 2022
hacktober fest 2021 repo, push any code which works for dsa

Hacktoberfest 2021 ✨ This repo contains collection of all competitive programming algorithms. I will be happy to accept any contributions during Hackt

Utkarsh Gupta 1 Oct 30, 2021
Hide skip button in cutscenes in Max Payne 3

MaxPayne3.FusionFix This is a small project intended to add ability to hide button in Max Payne 3. Additionally, added an option to increase the size

Sergey P. 26 Sep 29, 2022
Turns the button on the Lamy Pen into an eraser on the reMarkable.

RemarkableLamyEraser Standalone tool that turns the button on the Lamy Pen into an eraser on the reMarkable. Also confirmed to work with these other s

null 140 Dec 26, 2022
If the button pressed esp will reset and App mode will on. App mode will on then led will on, network is connected led will off.

DHT22-to-Google-sheet-Reset-Using-ESP8266-LED-Switch If button pressed esp will reset and App mode will on. App mode will on then led will on, network

Md. Harun-Or-Rashid 3 Aug 17, 2022
MFD Button Switches for Flight Simulators. Arduino *.ino and PCB Gerber files and a picture. Now with FalconBMS specific firmwares.

MFD-Switches Use at your own risk. I am not accepting responsiblity for anything. Copyright Ron Lyttle 2021. I have to copyright because of some of th

Ron Lyttle 10 Jul 10, 2022
L'iconico Button di YouTube rivisitato e reso Smart con un contatore di iscritti in tempo reale!

Smart Youtube Button with Subscribers Counter ESP32 L'iconico Button di Youtube rivisitato e "smartizzato" con un contatore di iscritti in tempo reale

Luca Barsanti 2 Dec 28, 2021