Zoom Control Box

45,855

424

131

Introduction: Zoom Control Box

BREAKING NEWS (September 2021):My Bluetooth version is now live!

Before the pandemic few of us had even heard of Zoom. Now it's a part of our daily lives for many of us.

If you're just joining other people's meetings, it's easy. Surely, one of the reasons it's caught on. But another reason is that it's actually quite powerful. Once you start using it to the full for your own meetings you can share your screen, presentations, music and videos, and a whiteboard, and you can manage your participants.

For some of those uses you might be juggling 2 or 3 programs on your screen, whereupon it can get quite complicated. At our church, like many others, we have been holding our services online, and latterly, "mixed mode" with some participants online and others in church. In addition to Zoom, muting and un-muting participants and maybe controlling one or more cameras, the meeting host has to operate the special projection software for hymn words and responses and often a media player and/or Powerpoint as well. For such a meeting to go smoothly, you need all the help you can get!

So I built this little box. It plugs into a USB port, emulates a keyboard, and generates the 6 Zoom hotkeys that I find most useful. You can easily reprogram it to generate a different set of hotkeys if you wish, or even generate hotkeys for a completey different program.

I based this project on my USB Volume Control and Caps Lock LED, in fact the code for that is included but disabled. You can enable it if you like, and add a rotary volume control and/or caps lock, scroll lock and num lock LEDs.

Supplies

The total cost could be under £10. The parts list is very simple:

  • Arduino Pro Micro
  • 6 push-button switches
  • A box
  • A microUSB cable
  • A short length of rainbow ribbon cable.

You will also need:

  • Soldering iron, solder, wire cutters and stripper
  • Label printer
  • Hot melt glue gun.

In principle you could use a different Arduino, some of which are slightly cheaper. But you'd need extra libraries for the code and possibly extra components, so it's just not worth it.

I got a set of 6 push-button switches in different colours from a Far Eastersn seller, which were ideal. An eBay search for "12mm round push button switch" or "PBS-33b" should find them. These have a nice positive action - no chance of acidental button pushes.

For the box, an ABS plastic project box would be ideal but I couldn't find one a suitable size. I considered using a cassette tape box, but then found a box that my original first generation Raspberry Pi came in.

You can use any connecting wire but rainbow ribbon cable makes it easy. I used a piece of thick copper wire for the common push button connection, only because I'd used it to support the push buttons for testing before I found a suitable box.

Step 1: The Box

There are various possibilities for the box, and you may be able to think of more.

  • An ABS project box is easy to drill for the push buttons but all the ones I could find were either too big or too small. There's one with a compartment for a 9V battery which was the nearest, but wouldn't have left much room for the button labels.
  • A cassette tape box (or the box from a first generation Raspberry Pi) is about the right size, but the plastic is thin and brittle, and it's hard to drill more than a small hole without it cracking. (Mine did crack, and neither superglue nor expoxy resin bonded very well to the plastic. There's a small broken piece of plastic held in place mainly by one of the push buttons.) It might be less liable to crack if you stick sticky labels to both sides before drilling. Using a router might be more successful, or drilling a small hole and enlarging it with a dremel.
  • If you have access to a 3D printer you could make a box of just the size you want, or you could laser-cut a box in thin plywood.

If you use the same buttons as I did, you'll need to make six 15mm holes. Space them sufficiently so you can stick a label under each.

Place the Arduino in the bottom of the box and offer it up to one of the sides. Make a hole for the microUSB connector to protrude through.

Step 2: Wiring It Up

Examine the Arduino Pro Micro carefully, and identify the connections marked 8, 9, 10 and A0, A1 and A2. Use, respectively, the brown, red, orange, yellow, green and blue strands of the ribbon cable to connect these to one connector each of push buttons 1 to 6.

Wire the remaining connectors of all 6 push buttons together, and then wire them on to the Arduino connector marked GND using the violet strand.

You can now locate the Arduino in its correct position with its microUSB connector protruding through the hole you made for it. Fix it in place with a few blobs of hot melt glue.

You can label the buttons with a label printer, or if it's a laser cut box you could burn the labels with the laser.

Step 3: Programming

If you haven't used Arduino before you will need to download and install the Arduino IDE from the Arduino Download site.

Download the ZoomButtons.ino file, then doble-click it. The Arduino IDE will launch, and say that ZoomButtons.ino needs to be in a folder named ZoomButtons. Click OK.

From the drop-down menu items at the top of the Arduino, select Tools - Manage Libraries...

In the search box type HID-Project and press Enter. When HID-Project by NicoHood appears, click the Install button. You can now close the Library Manager.

From the drop-down menus, select Tools - Board - SparkFun AVR Boards and select SparkFun Pro Micro.

If you don't see SparkFun AVR Boards, select Boards Manager instead. This looks very much like the Libraries Manager. Search for Sparkfun AVR Boards and install it. You can now select the SparkFun Pro Micro as above.

Under the Tools menu it should now say Board: Sparkfun Pro Micro. Hover your mouse over the Processor line beneath and select ATmega32U4 (5V, 16MHz) if it's not already selected.

Just beneath Processor, select Port and note which Serial ports (if any) are listed.

Now plug in your your Zoom control box using the microUSB cable. When you select Tools - Port it should now show one more Serial port. Select this.

Having completed all that you should be ready to compile and upload the code to your Arduino. From the top menu, select Sketch - Upload (not Upload using Programmer). In the bottom pane of the Arduino IDE you will see the sketch being compiled and then "Linking everything together...", and shortly afterwards it will attempt to upload your compiled code. You should see a series of # marks as it uploads then verifies the code. If all goes well it should finally say "avrdude done. Thank you." (Very polite of it!)

Problems?

The Pro Micro normally works fine but uploading your sketch to it, itcan be a little temperamental. The one I used previously in my USB Volume Control a couple of years ago had an earlier version of the bootloader which required a reset button, but this is not necessary for current versions. Should you have problems you can try the upload instructions in that Instructable. This also gives an alternative method which doesn't depend on the bootloader.

Step 4: Using ZoomButtons With Zoom

In Zoom, click on the Settings cog wheel icon in the top right and select Keyboard Shortcuts. Against each of the shortcuts that you want to use, select the Enable Global Shortcut check box. This means that the keyboard shortcut will be recognised and actioned by Zoom even if you're currently interacting with another program.

Should a shorcut key combination clash with one you use with another program you are likely to be using at the same time, you can select the key combination and change it. You will then have to change the Arduino sketch to match.

Step 5: Modifications and Taking It Further

Changing key combinations

It's easy to modify the Arduino sketch to change the key combinations it generates if you want to assign buttons to different Zoom hotkeys. Scroll through the Arduino sketch until you come to the line

switch(i) {

Under each of the casestatements is the key combination for one of the 6 keys, numbered 0 to 5. For any of the modifier keys (Shift, Ctrl, Alt) the BootKeyboard.press and Boot.Keyboard.release functions press or release that key, respectively. For other keys, the BootKeyboard.write function presses and immediately releases the key.

For a list of the codes for other keys, open your Arduino folder with File Explorer (usually My Documents\Arduino), and navigate to libraries\HID-Project\src\KeyboardLayouts. Open ImprovedKeylayouts.h with Notepad.

If you get errors when you try to compile, double-check your spelling. Missing a semi-colon at the end of a line is a very common mistake, as is unmatched parentheses. Check you haven't lost the break; statement at the end of each case. If you do it'll simply run on and perform the next key combination as well.

If you're not sure it's working

If immediately after the switch statement you change the #if 1 to #if 0, instead of the key combinations it will then simply generate the digits 0 to 5 for the respective buttons. You will see these if you run Notepad.

You want a volume control or caps/scroll/numlock LEDs as well?

The Arduino sketch also incorporates the code for my USB Volume Control and Caps Lock LED Instructable.

Near the top of the sketch you will see 3 lines

//#define VOLUME
//#define KYBDLEDS
#define ZOOMBTNS

All you have to do is uncomment the VOLUME and/or the KYBDLEDS lines by deleting the double slash.

Refer to my other Instructable for how to wire up the extra components.

Since competing this Instructable I decided to add a 7th button, a volume control and a Caps Lock LED.

22 People Made This Project!

Recommendations

  • Hide It Challenge

    Hide It Challenge
  • Edible Art Challenge

    Edible Art Challenge
  • Tiny Things Speed Challenge

    Tiny Things Speed Challenge

131 Comments

0
Dom Pro
Dom Pro

Question 1 day ago

Hello. Am having trouble finding a genuine Arduino Micro Pro, do you think an AITRIP Pro Micro ATmega32U4 would work without issue?


0
p_leriche
p_leriche

Reply 9 hours ago

Sparkfun (the Pro Micro originator) has distributors in various places but any Pro Micro clone should be fine, including cheap ones from the Far East. One review on amazon of the AITRIP board said the microUSB socket wasn't securely attached and came off. That's a generic problem with surface mount microUSB sockets - a poor design with inadequate fixing points. Always treat them gently, and wiggle the plug sideways, never up and down, if you need to in order to pull it out.

0
pranavreddy379
pranavreddy379

4 days ago

Hey @p_leriche,
Great build and explanation. Since I'm a complete beginner, is there a schematic version of the wiring? I would be really glad if you can post it!

0
p_leriche
p_leriche

Reply 4 days ago

Hi pranavreddy379 - I appreciate your desire for a schematic, and as I said in a previous comment, I get fed up with Instructables which simply give you a knitting pattern with no explanation of how it works. But in this case, there's just a button connected from each of the approprate Arduino pins to ground. Nothing more. So a schematic wouldn't really add anything.

0
pranavreddy379
pranavreddy379

Reply 3 days ago

Right, thank you! And also, how do we incorporate the knob into this button configuration?

0
RezLar
RezLar

Question 7 weeks ago

How hard is it to add additional buttons? I am hoping to have 10 buttons on mine.
0
p_leriche
p_leriche

Answer 6 weeks ago

The Pro Micro hook-up guide (https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/hardware-overview-pro-micro) will help you decide which extra pins you can use. For a start, you can use the 3 allocated for the volume control if you don't need that. The latest version of the code has support for 7 buttons so that will satisfy you. Then in the code, wherever you see 7 of anything, just add 3 more following the same pattern exactly. And don't forget to change NUMBUTTONS from 7 to 10. Pretty easy if you keep a cool head.

0
RezLar
RezLar

Reply 5 weeks ago

Thanks! I'll give it a go when I have my casing finished :)

0
lenodeabu
lenodeabu

2 months ago

Hello, good evening, I am writing to you from Mexico, I wanted to ask you, how is the Bluetooth project going? And will it be possible to do it to be able to control zoom but its version of android? Thank you so much

0
p_leriche
p_leriche

Reply 2 months ago

A timely question! The Bluetooth version is complete and I'm working on the Instructable. It may take a week or two.
Looking at the Zoom help pages it doesn't look as though the Android client supports hot keys, and iOS only supports a very limited set. Maybe they thought Android devices didn't have keyboards. Well, they forgot about Chromebooks then!

0
lenodeabu
lenodeabu

Reply 2 months ago

Hello good night, it's me again, today I put together the project and I'm super happy, but I have a question, if I wanted to put more buttons to which spaces of the pro micro would I have to connect the cables? to 6,5,4,3? thanks: D

0
p_leriche
p_leriche

Reply 2 months ago

You can use whichever you like. Take a look at the Pro Micro pinout (https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/hardware-overview-pro-micro) and the pin definitions on the sketch. The latest version I uploaded a week or two ago caters for a 7th button on A3, but if you want more, there's still 14, 15, 16. If you're sure you won't want to add a volume control you can use 5, 6, 7, and likewise 2, 3, 4 if you'll never want to add keyboard LEDs.

0
lenodeabu
lenodeabu

Reply 2 months ago

thank you very much, you are really very kind 🥺

0
Electrosonic
Electrosonic

2 months ago

Two Questions:
1) is there a schematic diagram for this project (no point re-inventing the wheel)
2) Whenever I try to launch/load ZoomButtons.ino I get a "can't create sketch" error. I'm using Arduino IDE v 1.8.15

Thanks in advance!

0
p_leriche
p_leriche

Reply 2 months ago

1) I too get fed up with Instructables that don't include a schematic to help you understand them, but instead just give you a knitting pattern! But the schematic is hardly worth having in this case as it would simply consist of 6 push buttons connected to ground.
2) I don't know why that would be. Create a new sketch and save it as ZoomButtons, then copy ZoomButtons.ino into the foder ZoomButtons in your Arduino folder.

0
Electrosonic
Electrosonic

Reply 2 months ago

Thanks very much for this, and taking the time to reply!

0
chechotech
chechotech

Question 4 months ago

Hi I can't install the Sparkfun AVR Boards, it doesn't appear when searching. What can I do?