More Productive Procrastination
The Karma Controller lets you procrastinate on Reddit more efficiently. The buttons control the following functions:
- Upvote!
- Downvote
- Move up
- Move down
- Toggle image
- Open comments in new tab
- Close tab
I’m giving away five of them at http://karmacontroller.com/. They’ll be professionally printed and hand-built by me!
The professionally printed boards came in and I gave away five of them. Now they’re commercially available at http://karmacontroller.com/
THE BASICS OF HOW
- I used a DigiSpark, a small Arduino-compatible board.
- I built a prototype (v0.1) out of some RadioShack proto board.
- Zack Freedman, another member of MakerBar, helped me setup the board in Eagle and etch it (v1.0).
- I’m working on getting this sent out to a PCB manufacturer to create kits for people to assemble at MakerBar!
If this is already too much for you, consider just signing up for the drawing: http://karmacontroller.com/. If you’re interested in the process, read on.
THE PROCESS
The First Prototype (v0.1)
- Laying out the buttons
- Some very hacky soldering.
- Adding the DigiSpark
- Working prototype
Not Enough Pins
I really wanted seven buttons on this thing, so I can browse Reddit without having to put it down. The problem was that the DigiSpark only has 6 digital inputs. Fear not! Turns out if you use one pin as an analog input, you can put two buttons on it. To have them register different analog values, you have to put a resistor on one of them. I followed this instructable.
DigiSparks Pins 3 & 4 for USB Communications!
After wiring everything up, I tested it only to find that pin 3 was freaking out and pin 4 wasn’t registering any key presses. The DigiSpark uses these for USB communications, so you can only use them if you don’t need to send USB commands. Clearly, I failed to read this on DigiStump’s limitations page.
Not to worry, though. I was able to just use the analog method a few more times and get 5 buttons on two analog pins.
The Second Prototype (v1.0)
- Drawing the schematics and laying out the board in Eagle.
- Laser printed layout onto transparencies. Two layers for each side so they’re really dark.
- Zack cutting some photo-sensitive copper board.
- Exposing the board under UV light with the mask pressed flat under glass for 6 minutes.
- Soaking the board in developer and then copper etchant.
- Here’s the etched board.
- I removed the photo-sensitive layer with denatured alcohol on both sides.
- Drilled holes for components. The front and back were nicely aligned.
- Placing and soldering components to the board.
- Finished – Front
- Finished – Back
- Finished and tested
Zack Freedman helped me create this prototype – everything from advising on Eagle issues to guiding me step by step through the etching process. The images explain the process quite well, though, here are some tips I learned:
- Use dark toner: The darker the better and overlay two transparencies to get it darker.
- Use targets: The alignment targets helped a lot and made sure we had both sides of the board aligned perfectly (otherwise drilling wouldn’t work!).
- Darkness: When placing the transparencies on the photo-sensitive board, do it in a dark place (duh.)
- Flatness: Use heavy glass to keep the transparencies as flat as possible on the board during exposure. Our glass was a bit light, so a few connections came out fuzzy and had to be fixed with an exacto knife (not fun!)
THE FILES
They’re at GitHub for safe keeping.