vUSB Powered Easy Button

I work with a guy that absolutely loves his SSRS reports and contantly updates his different view points into data. Most of the reports and views he uses are accessed via Internet Explorer. His constant refreshes are usually done by pressing a single key on his keyboard, F5.

We give him a hard time about how easy his job is since he sits and stares at pretty pictures, graphs, and tables of data all day, with F5-refreshes every so often of course. So I made him this Easy Button to make his job just a little easier…


Unfortunately, I did this alone and I’m really bad about taking pictures, so there are not a ton of them. And I didn’t plan on documenting this as I am now. I’ll include all the information I can about it as I go.

I’ve attatched the schematic I used but here is the breadboarded version. In the background you can see 1 revision of the circuit board I made (with resistors sloppily stretched across other resistors…).

In this image the top half of the board is all that is being used. The voltage regulator in the bottom right was used to power the board before I was comfortable powering the prototype with my computer via USB. As you can see the circuit is incredibly simple, 1 ATTiny85, 4 resistors, 2 diodes and some wire… Once I got this working I moved onto getting the stock Easy Button board ready.

The stock Easy Button board needed a few modifications to get it ready for my circuit. First it needed to be able to be USB powered, second it needed to be able to trigger and event on my circuit. The first ended up being a bit of concern. The stock board is powered by 2 AAA batteries. AAA batteries provide about 1.5V, so 2 of them is about 3V. USB is 5V. I spent a little time looking at the components I could see on the board (that black crap always gets in the way) and didn’t see anything that glaringly said 5V would blow up. So I took the risk and tried connecting it up to various voltages about 3V until I reached 5V. Success. The board is 5V tolerant. Next up was figuring out a way to trigger an interrupt in my circuit. By tracing out the circuit path on the board I was able to find the one connected to the stock Easy Button button. Slight design issue. My original breadboarded circuit (almost like the one above) was designed for an interrupt going from low to high. This button goes high to low. Should have done my research first. Luckily it was a super easy fix, mostly software, then removing a pull up resistor. I didn’t need to replace the pull down with a pull up because the stock Easy Button board includes the pull up for me (I actually wasted a bit of time by putting the pull up in mine circuit as well and the button stopped working since it couldn’t pull down both). If you look carefully you can see the makers of this board were very kind to me. They included a plate through hole that I could high-jack for my interrupt, I soldered a wire (Green in the photo) here and got my interrupt.


While not too interesting, here is the top of my homemade PCB.


Here is the bottom: The board file for this is also included below.


This is what it looked like as got ready to solder the board above in. Sorry about the lack of pictures.


People that really pay attention will notice something else. I also included the ability to disable the “That was easy!” phrase by putting in a jumper to the speaker. This allows the user to determine if he wants to be mocked all day or not.

Schematic File

Board File

Posted in AVR, Coding, Electronics Tagged with: , , , , , , , , , , , , , , , , , ,

Leave a Reply