This year I decided to get back into electronics and for my first project I decided to build a remote controller.
Reason for it was annoyance at having to juggle this many remotes for a handful of functions. For the preliminary problem identification, I photoshopped out buttons that I wasn't using on the remotes. If I consolidated the cursor (left, right, up, down, OK), the count went from 137 to 16.
Keep it simple, right?
Technically I'd still probably need more buttons than that - the device selector would still be needed, and maybe some strays I hadn't thought of yet (like a channel preset?), but it's still an 8:1 button reduction if I pull the project off. Some of my earliest renderings of the remote were comical, but as I kept doodling them, I started drifting toward angles.
The buttons on this rough sketch are color-coded by which device uses them more. The volume buttons are for the soundbar controller (gah, it wasn't HDMI-ARC-compatible), and with it as the sole exception, every remaining device (TV, Fios box, OSMC Vero 2) used the cursor extensively. So, this remote will need a device selector somewhere and I pondered putting it in as a 4-state sliding switch on the side of the remote. However, pressing the Netflix button (since the feature came with the TV) currently escapes straight to that TV app and it's convenient to have.
Eventually I want to get back into 3D printing, but for now I've decided to just design the controller and have it printed out by Shapeways or sculpteo. I'm sure it'll be a puzzle all by itself just to slice a design, and I'm just now revisiting OpenSCAD and brushing up on it.
For brains of the device, I thought to get into Arduino microcontrollers. I've previously used PICs but what I've come to appreciate about Arduino is the rapid way for which they're designed to get code updates. Tinkerer-friendly. So far I'm eyeballing the Arduino Nano, or at least a common knockoff.
This alone is going to be a puzzle. By my rough estimates, an Arduino running at full power will drain a battery in hours (seven, maybe?) Secondly, they need 5 volts to run, which means needing to stack batteries (use AAA, AA, 9V -- too big?, or coin batteries.) Or, a combination of these along with a DC/DC Boost converter, like the LM2623.
Power optimizations are going to be needed, since I imagine changing batteries daily or having to charge the remote is impractical. Putting it in heavy sleep mode should help, with input (buttons) being wakeup triggers. And then, reducing the crystal frequency should bring the power usage down. The downside is that using any current code libraries (and there are a lot) might be problematic, since they'll come to expect a certain operating frequency.
This isn't a unique project, but what I like about it is that it's very finite.