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 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


  • 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: you’re interested in the process, read on.


The First Prototype (v0.1)

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)

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!)


They’re at GitHub for safe keeping.