loading
This project is inspired by several existing really creative Easy Button hacks I've seen on Instructables.  This one is a bit cheaper than the others.  It's not wireless, nor a game show, and takes a little more work, but it'll get you going quickly :-)

Step 1: Tools and Parts

I used the Teensy 2.0, available directly from them or from Adafruit for $20.  It's got USB support built in, and can be programmed using the Arduino IDE or directly with avr-gcc as you prefer.  We'll be using the Arduino IDE, so install that and TeensyDuino.

We will program the Teensy to send a unique keystroke combination, Meta-Alt-Control-W, that will be intercepted on the computer - for Windows you can use AutoHotkey, for Mac you can use QuickSilver, and for Linux you can set it up directly in the Window Manager's preferences using xev or keytouch.

You'll need to do a little scripting, but the Lifehacker links I used above have many common script libraries to get you started.

Finally, you'll need an Easy Button.

For tools you'll need a P0 or P1 philips screwdriver, a soldering iron, and about a foot of hookup wire.  A coping saw or hacksaw is helpful for cutting the hole for the usb port into the side of the button, but a pair of pliers will do just fine with the relatively soft plastic, it will just look a bit more ragged.  Not pictured are an xacto knife or small flat screwdriver, and a wire cutter/stripper.

Disclaimer:  I'm not affiliated with Microsoft, Apple, PJRC, Adafruit, Lifehacker, Quicksilver, Autohotkey, nor Staples.  I just like their products and used them in this Instructable.

Any soldering or other hacking is at your own risk.

Step 2: Disassembling the Easy Button

Take out the batteries, you won't need them.  Save the rest of the parts for when you put the button back together.

Remove the four pads on the bottom of the button.  Unscrew the four screws you'll find underneath the pads.  Take off the top, which is in two parts.

There are two screws holding the board on, and two screws holding the mezzanine in place.  Remove those.  Under the metal click plate are two more screws.  Remove those and remove the mezzanine.  Save the two metal slugs which will fall out when you remove the mezzanine.

Take out the speaker, and clip the wires to the speaker and battery compartment.

Step 3: Modifying the Board

The board seems to be different from the one shown in previous Instructables, so the traces to cut and splice to are different.

Solder one 6" wire to the ground plane.

Carefully scrape the solder mask off the line from the button.  Scrape across the line near the epoxy dot to break that connection.  Solder a 6" wire to the trace on the board - it may help to tape down the wire with electrical tape, I ended up pulling the copper right off the board several times.

Solder one wire to the GND pin on the Teensy, and the other to B4/pin 13.

Step 4: Programming the Teensy and Checking Your Work So Far

Open the Arduino IDE, plug in the Teensy, and upload the sketch.  You'll need to select Keyboard+Mouse+Joystick as shown below for USB type.  Press the reset button on the Teensy and it should upload.

Open the Serial Monitor, you should see diagnostic messages when you press the button.  If not, go back and check your connections.  Make sure you've soldered to the right traces, and that you've cut the trace from the button.

You may get a popup asking you to identify a new keyboard, you can safely close this.

Step 5: Installing the Teensy Into the Button

Once you have the sketch loaded and working, it's time to install the Teensy into the button.  I install it where the speaker is, so remove the speaker now if you haven't already.

Use wire to hold the Teensy down - I solder it to unused pins.  Since the unused pins are inputs, there's no danger of short circuits by doing this, since the inputs are electrically disconnected.

Mark the points on the frame where the USB connector will go, then cut to right below the Staples logo.  File the cut edges smooth for neatness and to avoid sharp points.

Step 6: Reassembling the Button

Put the metal slugs back into their slots, then place mezzanine back on top of the Teensy.  The plastic overhang should help wedge the Teensy into place.  Check placement by putting the frame on temporarily to see that the USB port still lines up.

Screw in the four screws that hold in the mezzanine.  Put the click plate back on, then screw in the board.  Route the wires away from the four holes that the button top will go into.

Put the button top on, then the frame.  Note that the frame has slots to line it up with the button top and screw holes.

Screw in the four bottom screws and replace the rubber pads.

Step 7: Setting Up the Hotkeys

This part will vary depending on your operating system.  I will show the Mac procedure since that's the one I have, but welcome input from Windows and Linux users for their setup.

Install the Quicksilver program and put the sample applescript (easy.scpt) in your Documents directory.  Add the trigger and set the hotkey to Command-Alt-Control-W, as shown.  I've also included a script that's specific to Mail.app that will tell you if you have new mail.

For Windows and Linux, set up your hotkey program as appropriate.

[edit]  I added an autohotkey.ahk file based on the example.

Plug in the easy button and press it.  Your action should happen!

Vote this Instructable up if you like it, it will encourage me to make more!
<p>I made one! Although I used an Adafruit Trinket instead of a Teensy (it is much cheaper and just as easy). Instructions for the Trinket software are here; <a href="https://learn.adafruit.com/trinket-usb-keyboard?view=all" rel="nofollow">https://learn.adafruit.com/trinket-usb-keyboard?vi...</a> </p><p>Read here how to set up Arduino IDE for the Trinket; <a href="https://learn.adafruit.com/introducing-trinket/setting-up-with-arduino-ide" rel="nofollow">https://learn.adafruit.com/introducing-trinket/set...</a></p><p>My code;</p><p>#include &lt;TrinketKeyboard.h&gt;</p><p>#define EASY_BUTTON 0</p><p>void setup()</p><p>{</p><p> pinMode(EASY_BUTTON, INPUT);</p><p> digitalWrite(EASY_BUTTON, HIGH);</p><p> TrinketKeyboard.begin();</p><p>}</p><p>void loop()</p><p>{</p><p> TrinketKeyboard.poll();</p><p> if (digitalRead(EASY_BUTTON) == LOW)</p><p> {</p><p> // Available keys and their commands; https://github.com/adafruit/Adafruit-Trinket-USB/blob/master/TrinketKeyboard/TrinketKeyboard.h</p><p> TrinketKeyboard.pressKey(0, KEYCODE_F10);</p><p> TrinketKeyboard.pressKey(0, 0);</p><p> delay(500);</p><p> }</p><p>}</p>
<p>quick question - bought a trinket 5v in my attempt to replicate.. </p><p>did you use the 3.3v or the pro instead?</p><p>power wise should it use the usb connection for power or the batteries (apologies as I havent gone through the tutorial yet - I will be receiving the hardware tomorrow)?</p>
<p>I made it ! Works great. I zip tied the Teensy to the speaker holes and programmed it to trigger my backup script. Not bad for my first microcontroller project.</p>
Great Instructable! My wife wanted me to make her a button that she could press to open a new internet window easily. I used your code and wiring guide to re-purpose an antique Telegraph Key to do this. Works great. Thanks.
<p>That is so cool!!!</p>
You can do it, Vinny! Also this looks like a lot of fun, I think I'll try it later. =)
so you can get this to preform any task? like open a program, etc? It's kind of hard to see in your video, what does the widow that pops up say?
Oh the popup window says &quot;There, that was easy&quot; :-)
Hi Amanda,<br>Yeah, on the mac Quicksilver is quite flexible - I'm using an Applescript, which has hooks into most mac programs, but you could use a shell or any executable file too. The mailcount script (attached to the instructable), for example, will start the Mail.app if it's not running, and I have scripts that will send messages also.<br>I played a bit with AutoHotKeys on Windows, which seems to have about the same capabilities. It can start apps, click buttons on windows, pop up dialogs, play sounds, etc.

About This Instructable

26,330views

21favorites

More by rmd6502:Creating a Bluetooth wireless scrollwheel How to make a charlieplexed LED heart How to 3D print a solder stencil! 
Add instructable to: