bookmark_borderPhysical Mute Button for Zoom Meetings

This is a big physical button you can put on your desk that will toggle your mute in zoom meetings, and if you hold the button down it leaves the meeting or ends it if you are the host.

It consists of a Digispark clone board (attiny85), a resistor, and a switch. The microcontroller acts as a keyboard with with just one button, and I’m taking advantage of the keyboard shortcuts built into the zoom app. The main thing that makes this work is the fact that CTRL+ALT+SHIFT brings focus to the meeting controls. This brings the zoom window to the front if you are a participant (sometimes I toggle mute with the button just to find the window), and it also works while you are sharing your screen. A short press sends ALT+A which toggles your mute state, and a long press sends ALT+Q then ENTER, which exits the meeting entirely.

Source code will be at the end of the post, it’s a slightly modified example from the digikeyboard library. I used the Arduino IDE – you’ll need to install the digistump boards through the board manager and also get the button library I used here: https://github.com/mathertel/OneButton. The wiring is very simple, it is just a momentary switch between GND and P0, and a 10k pullup resistor between 5V and P0 (this is not required at all in fact, so you can leave the resistor out).

I have created an instructable for this as well, a PDF copy is downloadable below and the link is: https://www.instructables.com/id/Zoom-Meetings-Physical-Mute-Button/

//Elliotmade 4/22/2020
//https://elliotmade.com/2020/04/23/physical-mute-button-for-zoom-meetings/
//https://www.youtube.com/watch?v=apGbelheIzg
//Used a digispark clone

//this will switch to the zoom application and mute it or exit on long press
//momentary button on pin 0 with pullup resistor

//https://github.com/mathertel/OneButton
//button library
#include "OneButton.h"

int button1pin = 0;

#include "DigiKeyboard.h"

//set up buttons
  OneButton button1(button1pin, true);

void setup() {
  // put your setup code here, to run once:


  //set up button functions

  button1.attachClick(click1);
  button1.attachLongPressStart(longPressStart1);

  DigiKeyboard.sendKeyStroke(0);
  DigiKeyboard.delay(500);
  
}

void loop() {
  // put your main code here, to run repeatedly:
  //monitor buttons
  button1.tick();
}


// This function will be called when the button1 was pressed 1 time (and no 2. button press followed).
void click1() {
  // this is generally not necessary but with some older systems it seems to
  // prevent missing the first character after a delay:
  DigiKeyboard.sendKeyStroke(0);
  
  // Type out this string letter by letter on the computer (assumes US-style
  // keyboard)
  DigiKeyboard.sendKeyStroke(0, MOD_SHIFT_LEFT | MOD_CONTROL_LEFT | MOD_ALT_LEFT);
  DigiKeyboard.delay(100);
  DigiKeyboard.sendKeyStroke(KEY_A, MOD_ALT_LEFT);


} // click1


// This function will be called once, when the button1 is pressed for a long time.
void longPressStart1() {
  // this is generally not necessary but with some older systems it seems to
  // prevent missing the first character after a delay:
  DigiKeyboard.sendKeyStroke(0);
  
  // Type out this string letter by letter on the computer (assumes US-style
  // keyboard)
  DigiKeyboard.sendKeyStroke(0, MOD_SHIFT_LEFT | MOD_CONTROL_LEFT | MOD_ALT_LEFT);
  DigiKeyboard.delay(50);
  DigiKeyboard.sendKeyStroke(KEY_Q, MOD_ALT_LEFT);
  DigiKeyboard.delay(50);
  DigiKeyboard.sendKeyStroke(KEY_ENTER);

} // longPressStart1

bookmark_borderUSB Switch Mod

Working from home means two computers fighting over the same desk. KVM switches are not very affordable if you’re using anything more than VGA for your displays, but there are a bunch of cheap devices that will just switch your USB input devices and that is good enough for me. The only drawback is that most have the physical switch on the box itself, which means you need to have a whole bunch of USB cords sticking out of the thing in all directions within reach on your desk. I fixed this with some wire, a switch, two LEDs, and a piece of steel.

This works pretty well on the desk, and the block is nice and heavy so it stays put.

bookmark_borderStickvise

I got some new PCBs in the mail and remembered that I want a Stickvise.

Amazon’s delivery dates for prime are all over the road now that we’re in full crisis mode (nearly a month instead of 2 days), so I just made one up. Main thing I did differently was used “bobbins” instead of jaws, they seem to work just fine and I can think of one situation they will work better than straight jaws: round things. The rod is 3/8″ and overall it is 4″ wide. The PCB held in the photos is 4″ square.

There’s that saying that copying is the sincerest form of something something… thanks for having a good idea! The price is reasonable and I would recommend buying one if you don’t have all the materials laying around (and time to spend). I dig the way they encourage folks to make their own and modify the thing, what a cool way to be.

bookmark_borderLaser Cut Drill Holder

This is a simple thing that you can use to hang power tools on your wall. It’s designed to hang the tools upside-down by their handle/battery and has room on top to use as a shelf or hold your battery charger. They also can be connected together to hold many tools, either with glue or some #6 screws and nuts. I used this as an excuse to try out Freecad, the parametric model file is attached to this post. Detailed instructions if you’d like to make one are here on Instructables.