Zoom Controller v1.1

๐ŸŽฎ Control your Zoom meetings with a dedicated hardware controller ๐ŸŽฎ

Introduction

The Zoom Controller is a device designed especially for Uzair to augment his Nutanix meeting experience. You can manage your meetings while multitasking!

Controller Features

Steps to be up and running

Step 1: Download and install the BetterTouchTool Config!

The details if you're interested. You can also play around with these once you have added this config to BTT.

            
                {
                    "BTTPresetRequiredBTTVersion" : "Made by Rishabh Jain",
                    "BTTPresetCreatorNotes" : "This allows the Zoom Button to function. ",
                    "BTTPresetInfoURL" : "zoom-button.netlify.app",
                    "BTTPresetName" : "Zoom Button",
                    "BTTPresetColor" : "214.000000, 53.549999, 157.972504, 255.000000",
                    "BTTPresetUUID" : "14F12822-7EB6-4F7C-9815-D63163D8B264",
                    "BTTPresetContent" : [
                      {
                        "BTTAppBundleIdentifier" : "BT.G",
                        "BTTAppName" : "Global",
                        "BTTAppAutoInvertIcon" : 1,
                        "BTTAppSpecificSettings" : {
                          "BTTDisableGlobalTriggers" : false
                        },
                        "BTTTriggers" : [
                          {
                            "BTTLastUpdatedAt" : 1705419373.338393,
                            "BTTTriggerType" : 0,
                            "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
                            "BTTPredefinedActionType" : 366,
                            "BTTPredefinedActionName" : "Empty Placeholder",
                            "BTTAdditionalConfiguration" : "9437192",
                            "BTTKeyboardShortcutScope" : 0,
                            "BTTKeyboardShortcutKeyboardType" : 2302,
                            "BTTUUID" : "463CFCA3-82DE-4919-A7EC-5951BCF44222",
                            "BTTTriggerOnDown" : 1,
                            "BTTLayoutIndependentChar" : "F12",
                            "BTTEnabled" : 1,
                            "BTTEnabled2" : 1,
                            "BTTShortcutKeyCode" : 111,
                            "BTTShortcutModifierKeys" : 9437184,
                            "BTTOrder" : 4,
                            "BTTAutoAdaptToKeyboardLayout" : 0,
                            "BTTAdditionalActions" : [
                              {
                                "BTTLastUpdatedAt" : 1705419706.973577,
                                "BTTTriggerType" : -1,
                                "BTTTriggerParentUUID" : "463CFCA3-82DE-4919-A7EC-5951BCF44222",
                                "BTTIsPureAction" : true,
                                "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
                                "BTTPredefinedActionType" : 177,
                                "BTTPredefinedActionName" : "Show \/ Hide Specific Application",
                                "BTTGenericActionConfig2" : "{\"BTTShowHideSpecificAppMoveToSpace\":\"BTTShowHideSpecificAppNoSpaceChange\",\"BTTShowHideSpecificAppOnlyShow\":true,\"BTTShowHideSpecificAppOnlyHide\":false,\"BTTShowHideSpecificAffectedWindow\":\"BTTShowHideSpecificAppAffectSpecificWindow\",\"BTTShowHideSpecificMinimizeInstead\":false,\"BTTShowHideSpecificAppRegex\":\"Zoom Meeting\",\"BTTShowHideSpecificAppOnlyTreatActiveAsVisible\":true,\"BTTShowHideSpecificAppOnlyIfRunning\":true,\"BTTShowHideSpecificAppCMDN\":false,\"BTTShowHideSpecificAppMoveToCurrentSpace\":false,\"BTTShowHideSpecificAppMoveAllToCurrentSpace\":false}",
                                "BTTAppToShowOrHide" : "\/Applications\/zoom.us.app",
                                "BTTShowHideAppConfig" : "{\"BTTShowHideSpecificAppMoveToSpace\":\"BTTShowHideSpecificAppNoSpaceChange\",\"BTTShowHideSpecificAppOnlyShow\":true,\"BTTShowHideSpecificAppOnlyHide\":false,\"BTTShowHideSpecificAffectedWindow\":\"BTTShowHideSpecificAppAffectSpecificWindow\",\"BTTShowHideSpecificMinimizeInstead\":false,\"BTTShowHideSpecificAppRegex\":\"Zoom Meeting\",\"BTTShowHideSpecificAppOnlyTreatActiveAsVisible\":true,\"BTTShowHideSpecificAppOnlyIfRunning\":true,\"BTTShowHideSpecificAppCMDN\":false,\"BTTShowHideSpecificAppMoveToCurrentSpace\":false,\"BTTShowHideSpecificAppMoveAllToCurrentSpace\":false}",
                                "BTTKeyboardShortcutKeyboardType" : 0,
                                "BTTUUID" : "17EB0866-3F59-40BA-9B74-8C96BAA16528",
                                "BTTEnabled" : 1,
                                "BTTEnabled2" : 1,
                                "BTTShortcutKeyCode" : -1,
                                "BTTShortcutModifierKeys" : -1,
                                "BTTOrder" : 20,
                                "BTTAutoAdaptToKeyboardLayout" : 0
                              }
                            ],
                            "BTTTriggerConfig" : {
                              "BTTTriggerRestrictions" : "0",
                              "BTTHUDText" : "Zoom PTT"
                            }
                          },
                          {
                            "BTTLastUpdatedAt" : 1705418573.397938,
                            "BTTTriggerType" : 0,
                            "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
                            "BTTPredefinedActionType" : 366,
                            "BTTPredefinedActionName" : "Empty Placeholder",
                            "BTTAdditionalConfiguration" : "9437192",
                            "BTTKeyboardShortcutScope" : 0,
                            "BTTKeyboardShortcutKeyboardType" : 2302,
                            "BTTUUID" : "29860233-7470-4872-8AD3-22F70C209AC8",
                            "BTTTriggerOnDown" : 1,
                            "BTTLayoutIndependentChar" : "F11",
                            "BTTEnabled" : 1,
                            "BTTEnabled2" : 1,
                            "BTTShortcutKeyCode" : 103,
                            "BTTShortcutModifierKeys" : 9437184,
                            "BTTOrder" : 5,
                            "BTTAutoAdaptToKeyboardLayout" : 0,
                            "BTTAdditionalActions" : [
                              {
                                "BTTLastUpdatedAt" : 1705418573.398634,
                                "BTTTriggerType" : -1,
                                "BTTTriggerParentUUID" : "29860233-7470-4872-8AD3-22F70C209AC8",
                                "BTTIsPureAction" : true,
                                "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
                                "BTTPredefinedActionType" : 128,
                                "BTTPredefinedActionName" : "Send Shortcut to Specific App",
                                "BTTLayoutIndependentActionChar" : "\/Applications\/zoom.us.app",
                                "BTTShortcutApp" : "\/Applications\/zoom.us.app",
                                "BTTShortcutSwitchToAppFirst" : "1",
                                "BTTShortcutAppUnderCursor" : "us.zoom.xos",
                                "BTTShortcutToSend" : "56,55,9",
                                "BTTKeyboardShortcutKeyboardType" : 0,
                                "BTTUUID" : "EE37A5A2-9E43-4401-A2DE-B6FD59961E95",
                                "BTTEnabled" : 1,
                                "BTTEnabled2" : 1,
                                "BTTShortcutKeyCode" : -1,
                                "BTTShortcutModifierKeys" : -1,
                                "BTTOrder" : 19,
                                "BTTAutoAdaptToKeyboardLayout" : 0
                              }
                            ],
                            "BTTTriggerConfig" : {
                              "BTTHUDText" : "Zoom Button",
                              "BTTHUDDetailText" : "Camera Toggled!"
                            }
                          },
                          {
                            "BTTLastUpdatedAt" : 1705418573.400099,
                            "BTTTriggerType" : 0,
                            "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
                            "BTTPredefinedActionType" : 366,
                            "BTTPredefinedActionName" : "Empty Placeholder",
                            "BTTAdditionalConfiguration" : "9437192",
                            "BTTKeyboardShortcutKeyboardType" : 2302,
                            "BTTUUID" : "B437BBDA-8166-468E-B3BE-BBD940BBDA3C",
                            "BTTTriggerOnDown" : 1,
                            "BTTLayoutIndependentChar" : "F10",
                            "BTTEnabled" : 1,
                            "BTTEnabled2" : 1,
                            "BTTShortcutKeyCode" : 109,
                            "BTTShortcutModifierKeys" : 9437184,
                            "BTTOrder" : 6,
                            "BTTAutoAdaptToKeyboardLayout" : 0,
                            "BTTAdditionalActions" : [
                              {
                                "BTTLastUpdatedAt" : 1705418573.400342,
                                "BTTTriggerType" : -1,
                                "BTTTriggerParentUUID" : "B437BBDA-8166-468E-B3BE-BBD940BBDA3C",
                                "BTTIsPureAction" : true,
                                "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
                                "BTTPredefinedActionType" : 364,
                                "BTTPredefinedActionName" : "Activate Specific Window",
                                "BTTGenericActionConfig" : "Zoom Meeting",
                                "BTTKeyboardShortcutKeyboardType" : 0,
                                "BTTUUID" : "4921A79C-DFF5-46CB-B65B-81F10266F400",
                                "BTTEnabled" : 1,
                                "BTTEnabled2" : 1,
                                "BTTShortcutKeyCode" : -1,
                                "BTTShortcutModifierKeys" : -1,
                                "BTTOrder" : 18,
                                "BTTAutoAdaptToKeyboardLayout" : 0
                              },
                              {
                                "BTTLastUpdatedAt" : 1705418573.400578,
                                "BTTTriggerType" : -1,
                                "BTTTriggerParentUUID" : "B437BBDA-8166-468E-B3BE-BBD940BBDA3C",
                                "BTTIsPureAction" : true,
                                "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
                                "BTTPredefinedActionType" : 345,
                                "BTTPredefinedActionName" : "Delay Next Action (async \/ not blocking)",
                                "BTTDelayNextActionBy" : "0.3",
                                "BTTKeyboardShortcutKeyboardType" : 0,
                                "BTTUUID" : "BD104B68-A8C1-4EB4-86B7-270FC3E250D2",
                                "BTTEnabled" : 1,
                                "BTTEnabled2" : 1,
                                "BTTShortcutKeyCode" : -1,
                                "BTTShortcutModifierKeys" : -1,
                                "BTTOrder" : 19,
                                "BTTAutoAdaptToKeyboardLayout" : 0
                              },
                              {
                                "BTTLastUpdatedAt" : 1705418573.400821,
                                "BTTTriggerType" : -1,
                                "BTTTriggerParentUUID" : "B437BBDA-8166-468E-B3BE-BBD940BBDA3C",
                                "BTTIsPureAction" : true,
                                "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
                                "BTTPredefinedActionType" : 128,
                                "BTTPredefinedActionName" : "Send Shortcut to Specific App",
                                "BTTLayoutIndependentActionChar" : "\/Applications\/zoom.us.app",
                                "BTTShortcutApp" : "\/Applications\/zoom.us.app",
                                "BTTShortcutSwitchToAppFirst" : "1",
                                "BTTShortcutAppUnderCursor" : "us.zoom.xos",
                                "BTTShortcutToSend" : "55,13",
                                "BTTKeyboardShortcutKeyboardType" : 0,
                                "BTTUUID" : "38831810-7127-4F70-931D-266A4E293537",
                                "BTTEnabled" : 1,
                                "BTTEnabled2" : 1,
                                "BTTShortcutKeyCode" : -1,
                                "BTTShortcutModifierKeys" : -1,
                                "BTTOrder" : 20,
                                "BTTAutoAdaptToKeyboardLayout" : 0
                              },
                              {
                                "BTTLastUpdatedAt" : 1705418573.401098,
                                "BTTTriggerType" : -1,
                                "BTTTriggerParentUUID" : "B437BBDA-8166-468E-B3BE-BBD940BBDA3C",
                                "BTTIsPureAction" : true,
                                "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
                                "BTTPredefinedActionType" : 128,
                                "BTTPredefinedActionName" : "Send Shortcut to Specific App",
                                "BTTLayoutIndependentActionChar" : "\/Applications\/zoom.us.app",
                                "BTTShortcutApp" : "\/Applications\/zoom.us.app",
                                "BTTShortcutAppUnderCursor" : "us.zoom.xos",
                                "BTTShortcutToSend" : "36",
                                "BTTKeyboardShortcutKeyboardType" : 0,
                                "BTTUUID" : "EAF54FFB-A951-4EA4-A1C5-891154415F91",
                                "BTTEnabled" : 1,
                                "BTTEnabled2" : 1,
                                "BTTShortcutKeyCode" : -1,
                                "BTTShortcutModifierKeys" : -1,
                                "BTTOrder" : 22,
                                "BTTAutoAdaptToKeyboardLayout" : 0
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "BTTAppBundleIdentifier" : "com.apple.finder",
                        "BTTAppName" : "Finder",
                        "BTTAppAutoInvertIcon" : 1,
                        "BTTTriggers" : [
                  
                        ]
                      }
                    ],
                    "BTTPresetSnapAreas" : [
                  
                    ]
                  }
            
        
Download BetterTouchTool Config

Step 2: Reconfigure Zoom Keyboard Shortcut

Change the "Press and hold 'Space Key' to temporarily unmute" shortcut to โ‡งโŒ˜F5 (Shift+Command+Fn+F5)

OStep 3: Dont forget to plug it in! ๐Ÿ”Œ

If you dont plug it in, it cant really do anything ๐Ÿคทโ€โ™‚๏ธ

Optional Step N: Here's the Arduino Code if you want to play around!

            
                #include "Keyboard.h"
                #include "Adafruit_Debounce.h"
                
                const int bigRedPin = 14;
                const int camTogglePin = 16;
                const int pttPin = 10;
                
                Adafruit_Debounce bigRed(bigRedPin, LOW);
                Adafruit_Debounce camToggle(camTogglePin, LOW);
                Adafruit_Debounce ptt(pttPin, LOW);
                
                void setup() {
                  //Serial COM for debugging
                  Serial.begin(9600);
                
                  //intitate buttons
                  bigRed.begin();
                  camToggle.begin();
                  ptt.begin();
                }
                
                void loop() {
                
                  //update button state
                  bigRed.update();
                  camToggle.update();
                  ptt.update();
                
                  //Push-to-Talk Trigger check
                  if (ptt.justPressed()) {
                    // Serial.println("Button was just pressed!");
                    pttActivate();
                  }
                
                  //Push-to-Talk Release check
                  if (ptt.justReleased()) {
                    // Serial.println("Button was just released!");
                    Keyboard.releaseAll();
                  }
                  
                  //Camera togggle trigger
                  if (camToggle.justPressed()) {
                    // Serial.println("Camera toggled!");
                    toggleCamera();
                  }
                
                  if (camToggle.justReleased()) {
                    // Serial.println("Camera Toggled!");
                    toggleCamera();
                  }
                
                  if (bigRed.justPressed()) {
                    // Serial.println("Big Red Button was just pressed!");
                    endZoomMeeting();
                  }
                
                  //Debouncing the buttons
                  delay(20);
                }
                
                void pttActivate(){
                  // Serial.println("ptt lessgoo");
                
                  //Pressing โŒ˜F12 to trigger the BetterTouchTool shortcut
                  Keyboard.press(KEY_LEFT_GUI);
                  Keyboard.press(KEY_F12);
                  delay(50);
                  Keyboard.releaseAll();
                  
                  delay(300);
                
                  //Modify this to match the Keyboard shortcut in Zoom for Temporary Unmute (โ‡งโŒ˜F5 For this implementation)
                  Keyboard.press(KEY_LEFT_SHIFT);
                  Keyboard.press(KEY_LEFT_GUI);
                  Keyboard.press(KEY_F5);
                }
                
                void endZoomMeeting(){
                  //Pressing โŒ˜F10 to trigger the BetterTouchTool shortcut
                  Keyboard.press(KEY_LEFT_GUI);
                  Keyboard.press(KEY_F10);
                  delay(50);
                  Keyboard.releaseAll();
                }
                
                void toggleCamera(){
                  //Pressing โŒ˜F11 to trigger the BetterTouchTool shortcut
                  Keyboard.press(KEY_LEFT_GUI);
                  Keyboard.press(KEY_F11);
                  delay(50);
                  Keyboard.releaseAll();
                }
            
        
Download Arduino Code