Easy Zoom Quit Button

21K19638

Intro: Easy Zoom Quit Button

This Zoom emergency quit button lets you exit out of your meeting in an instant. It is simple to make and requires very little electronics experience. I built this because I was always searching around for the quit button on the bottom of the screen and seemed to always be that last person to leave every meeting. Now that I have built this emergency quit button I can exit any Zoom meeting like a champ. I would say that my quality of life has now improved 357% (give or take).

STEP 1: Setup the Software

This project assumes that you have some working knowledge of Arduino. Nevertheless, I will gloss over the software setup process here.

First and foremost, download the Arduino IDE if you have not done so already.

Next, you will need to add the Adafruit Trinket M0 to the Arduino IDE. The easiest way to do this is to follow the install instructions on the Adafruit page.

Finally, configure the board as follows

Tools > Board > Adafruit Trinket M0
Tools > Port > /dev/cu.usbmodem (or similar)

STEP 2: Program the Board

Upload the following code to the board:

// ******************************************************
// 
//            Code for quitting Zoom quickly
//
//           Designed for Adafruit Trinket M0
//                   by Randy Sarafan
//
//               For more info check out:
//  https://www.instructables.com/Easy-Zoom-Quit-Button/
//
// ******************************************************

// Add the keyboard library
#include <Keyboard.h>

void setup() {
 
    // Configure Pin 2 as input switch.
    // Triggered when connected to ground. 
    pinMode(2, INPUT_PULLUP);

    // Start running the board as a virtual computer keyboard
    Keyboard.begin();
  
}

void loop() {
  
    // Check for a button press event
    if (digitalRead(2) == LOW) {
   
        // Press command w and wait 1/10 second
        Keyboard.press(KEY_LEFT_GUI);
        Keyboard.press('w');
        delay(100);
    
        // Release all keyboard keys
        Keyboard.releaseAll();

        // Press the return key and wait 1/10 second
        Keyboard.press(KEY_RETURN);
        delay(100);
    
        // Release all keyboard keys
        Keyboard.releaseAll();

        // Wait for the pushbutton to be released before resuming
        while (digitalRead(2) == LOW){
           delay(1000);
        }
 
    }

}

STEP 3: Attach the Connectors

Cut two 6" wires. One should preferably be black (for ground) and the other whatever other color you would like.

Strip one end of each wire and crimp fork spade terminals onto the ends of each.

STEP 4: Solder the Wires

Solder the black wire to ground.

Solder the other wire to pin 2.

Note: If you don't know how to solder, you can learn how in my Intro to Soldering instructable.

STEP 5: Insert the USB

Find the enclosure's rubber grommet.

With a razor blade, cut a small slit large enough to pass the end of USB cable through, and then do so.

STEP 6: Plug in the USB

Mount the rubber grommet in the enclosure and then plug the USB cable into the Trinket M0.

STEP 7: Replace the Switch (optional)

The emergency switch assembly comes with a latching switch. This means when you press it down, the switch locks into place and stays there until you twist and release it.

I wanted my button to return on its own. Thus, I decided to replace it with a momentary spring-return switch.

In order to do this, I just disassembled the latching switch and remove it from the enclosure. I then disassembled and installed the momentary switch instead.

STEP 8: Wire the Switch

There are two sets of connections inside the switch. One is normally open (not connected) and one is normally closed (connected). We want to connect the two wires to the normally open connection. That way, when the switch is pressed the connection closes.

Usually these connections are marked. In my switch it wasn't marked, but the enclosure was clear and I could see which connection was the one that was not normally connected to terminals.

I attached the spade terminals from the circuit board to these two terminals using their mounting screws.

Note: If you end up getting this wrong, no worries. Just switch the wires to the other set of terminals.

STEP 9: Close the Case

Put the lid on the enclosure and fasten it shut with its mounting screws.

STEP 10: Quit Zoom!

To use this, simply plug it into your USB port.

When you are ready to end your Zoom meeting, press the button.

That is all there is to it.

Did you find this useful, fun, or entertaining?
Follow @madeineuphoria to see my latest projects.

25 Comments

I think it's important to note that this was coded for a Mac (if I'm not mistaken) because the keyboard shortcut to quit a Zoom meeting in Windows is ALT+q, not COMMAND+w.

Simple enough to change though, just swap out:
// Press command w and wait 1/10 second
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('w');
delay(100);

with:
// Press alt-q and wait 1/10 second
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press('q');
delay(100);

But a very convenient way to end a call, with AUTHORITY! :-)

**EDIT: Originally I said CTRL+q was the Zoom command to end the meeting and wondered why my code didn't work. Then I actually checked and discovered it's ALT+q. Derp!
Yes. The code above is for a Mac. Thanks for updating this for Windows.
Not sure how I missed this first time round. But I still need one now, so this may have to be my summer project! Thanks for posting!
Whenever I try to upload the code to my Arduino MEGA, it gives me this error message:

Arduino: 1.8.13 (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
In file included from C:\Users\Computer\Desktop\Arduino_mega_textbuttoncontroller\Arduino_mega_textbuttoncontroller.ino:1:0:
C:\Program Files (x86)\Arduino\libraries\Keyboard\src/Keyboard.h:29:2: warning: #warning "Using legacy HID core (non pluggable)" [-Wcpp]
#warning "Using legacy HID core (non pluggable)"
^~~~~~~
C:\Users\Computer\Desktop\Arduino_mega_textbuttoncontroller\Arduino_mega_textbuttoncontroller.ino: In function 'void setup()':
Arduino_mega_textbuttoncontroller:15:5: error: 'Keyboard' not found. Does your sketch include the line '#include '?
Keyboard.begin();
^~~~~~~~
C:\Users\Computer\Desktop\Arduino_mega_textbuttoncontroller\Arduino_mega_textbuttoncontroller.ino: In function 'void loop()':
Arduino_mega_textbuttoncontroller:28:5: error: 'Keyboard' not found. Does your sketch include the line '#include '?
Keyboard.print("You pressed the button ");
^~~~~~~~
exit status 1
'Keyboard' not found. Does your sketch include the line '#include '?
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.



What am I doing wrong? I have the #include , but it does not work. I also have the same code that was in this article. What is it? Thanks in advance!

Do you need verbose to be enabled?
Your problem is that you are using a Mega board and not a 32u4 or SAMD board. Keyboard.h will only work on these types of boards. Look for Pro Micro, seeeduino xoia, or the trinket mo boards. Go to https://www.arduino.cc/reference/en/language/funct... for Arduino's reference material. First line says: Notes and WarningsThese core libraries allow the 32u4 and SAMD based boards (Leonardo, Esplora, Zero, Due and MKR Family) to appear as a native Mouse and/or Keyboard to a connected computer.
Hope this helps.
This Zoom Killer is a great tool for those of us who use Zoom on 8 different calls a day (robotics teacher). Many thanks to Randy for putting this instructable together!!!!

OK, thank you for that clarification, I will think about buying a Micro for this!
Thanks again!
Be careful which "micro" you use/buy. It must be a 32u4 or SAMD board. Sparkfun has the Pro Micro and Arduino does not. Arduino has the Micro. There are a couple other board makers that have a "micro." Just be sure to look at the board specs.
Yes, I know. After a bit of research, I decided to go with the 32u4 Leonardo, instead of the Micro. It might become a fat project though. That Arduino isn't very small!
OK, thank you for letting me know!
is there a way to add Mute Microphone and Mute Camera options? I realize that would require different controllers and buttons, but it would make it fractionally more useful.
There is no reason that you couldn't do that with another button tied to pin 3 for example and the proper keyboard shortcut. You could even code the one button to do something different for a short/long button press. E.g. short press mutes/unmutes long press hangs up.
This is great!!! Nice job on your instructions. But, for windows users, be sure to follow Lance3495 and his sketch modification. Also, when determining which posts to use on the momentary switch, use a Ohm meter. You want the two opposite posts that have no reading (Normally Open: Resistance is infinite).
Agreed. Very useful for a quick escape from a zoom call. Or program it to do something else
You know... I have to disagree here... That could normally describe most of what I make, but I think this is one of those rare instances where, in fact, I made something useful. Now that I've made this, I use it all the time.
I also agree with you that a one touch is an extremely practical solution. There are other Ables that added a few other keys such as volume and webcam On/Off etc., they turned out to resemble one of the home studio trigger button percussion kits, but suitably labeled you wouldn’t want to be without it.
There’s a entire study on ergonomic efficiency of dedicated levers, switches, knobs etc. where conventional multipurpose devices, (keyboard/mouse) are already right in front of us.
delay(100) is actually 1/10 of a second (100 milliseconds), not 1/100 of a second. Other than that, nice project, nicely presented.
Good catch. I've corrected it.
More Comments