Problem: There are two remotes, one for the TV and one for the Home Theater system. The remotes have small squishy rubbery button-like things to press. The remotes have a combined total of 2 million buttons. The remotes are made of cheap plastic. The remotes are never beside Dads seat. Where are the remotes?
Solution: DIY Dad's Remote. Dad's remote is made of solid metal. Dad's remote has big metal buttons that are easy to press, and go 'click'. Dad's remote is solid like a brick. Dad's remote only has six buttons. Dad's remote stays beside Dad's seat.
Step 1: Parts
Arduino Pro Mini MEGA328P 3.3v (without headers soldered)
DC/DC ( Input 0.8-3V) ( Output 3.3V ) Step-UP Power Converter Voltage Module
1 x 100 Ohm resistor
1 x 82 Ohm resistor
6 x 1N4148 signal diodes
1 x 5mm Infrared LED
Dupont female connectors
Aluminum Project Box Aluminum Enclousure Case DIY - 4.33"*2.60"*0.94"
5 x 16mm Horn Momentary Stainless Steel Flat Head Push Buttons
16mm Start Horn Button Momentary Stainless Steel Metal Push Button Switch Red
1 x double AAA battery holder
HSS Steel Drilling Hole Saw Tool for Metal Aluminum Sheet Alloy 16mm
Dupont Wire Color Jumper Cable 2.54mm 1P-1P Male to Female 20cm
Step 2: Drill the Case
I used a Dremmel on a drill press to drill first 1.5mm then 3.5mm guide holes for the 16mm hole-saw.
Step 3: Wire the Buttons
I split 6 pairs of Dupont jumpers and cut them in half. Then wired the male ends to the six buttons.
For strength I folded the conductor back over the plastic part of the wire and put the whole piece into the screw terminals. Then covered each terminal with a 7mm long piece of 5mm diameter heat-shrink.
Then I mounted the buttons in the case. This is a bit tricky as there is not much room. Mount the center ones first, and position the leads so that the leads for the top buttons exit the top of the case, and the leads for middle and bottom buttons exit the bottom.
NOTE: Three of the buttons I purchased came with large (say 15mm diameter) rubber washers, which were fine, but the other three came with rubber washers of much smaller diameter which had to be stretched, and made it very difficult to tighten the bolts. So for those I cut my own washers from soft plastic.
Step 4: The Main Circuit
The basic circuit is simple - just buttons on six inputs and the LED on an output. There is a slight added complexity so that the Arduino can go into sleep mode, and awaken with an interupt when a button is pressed. This is accomplished by having pin D2 connected to all the buttons via diodes.
Because there is not much space, I used the Arduino with only the one small header installed for connecting to PC and power. The diodes were soldered onto the back of the Arduino with a piece of insulation tape protecting the back. One wire from each of the female Dupont connector pairs is placed through the hole from one side, and the diode is placed through the hole on the other. Extend the leads from the diodes a few mm on the lead side to give the lead strength when covered with 3mm diameter head shrink.
The diodes are bent over and soldered to the 100ohm resistor, the other end of which then goes to the D2 pin.
The second lead from each female Dupont connector pair are all soldered together and connected to GND pin by a short length of wire.
Solder two wires from the D3 pin and the other GND pin to go to the Infrared LED.
The diodes on the back are covered with insulation tape.
Step 5: The Power Supply Circuit
Power is supplied from two AAA batteries (I am using two 1350mAh rechargables). The DC-DC boost converter converts an input between 0.8v and 3v to a steady 3.3v output.
The 5v output is soldered to a 6 pin female header that connects to the Arduino header to deliver power. The input is connected to a 2pin male header, and the battery holder to a 2 pin female header.
Wrap the power unit with insulation tape.
Step 6: Putting It Together
I drilled a 6mm hole in the top end-plate to mount the LED and bezel. The LED was connected to the Arduino with the 82ohm resistor in series (covered with heat shrink).
Assembly is a bit tricky. The crude sketch attached is supposed to help.
The Arduino was inserted from the top on the left hand side, first, and long nose pliers used to assist connecting the leads to the buttons. Doesn't really matter if you connect the wrong leads to the wrong buttons, as this can be corrected in the software. Just whatever fits best.
The power unit is pushed down the right hand side.
You probably want to upload the software (next section) before inserting the Arduino, but the placement is designed so that this can easily be done after assembly, by connecting to the header at the top of the case.
Step 7: The Software
Attached is version 1.0 of the software.
IRremote library is also required:
It is designed for my setup, which is a Samsung TV and a Panasonic Home Theater.
The red button is power to the TV.
The top right button is source select (selecting source requires two buttons on my TV. Pressing source on the TV remote to select a source, then pressing select on the TV remote to exit the source menu. On Dad's remote this is done with one button. Pressing this button multiple times will select the source, then after a small delay, the select signal will be sent).
Channel + and - the left hand buttons.
Volume + - on the right.
Obviously this will require customization for your own system.
To extract the IR codes for your remote(s) see here:
Reference (Arduino power savings):