Custom TV Remote

Subheading

    TV Remotes are ugly little plastic bricks that nobody thinks about. Why not make one to match your home decor?
I've built a nice little media player for us that runs on a little tiny matchbox sized Linux computer (called a Raspberry Pi) but we got tired of using our phone's as a remote. I wanted the simplicity of a standard TV remote, but I hate the look of a remote that sits on the table looking ugly... So I made a remote from scratch using a junk remote and hacking it's IR codes to work with my media player.

This project will work on any computer or media player that can be controlled with a keyboard, as far as the computer is concerned you are pressing buttons on a USB keyboard, not sutting on a couch mashing cool oldschool panel mount buttons on a chunk of wood...

The Theory

When you press a button on a remote control, a small chip get the signal and generates a code that the TV interprets and then does the required action.

As a case study, lets say you have a Samsung TV and a Aldi brand speaker system. When you press power on the Samsung TV remote, it sends a code - lets say 123. Likewise when you press power on the Aldi speaker remote, it sends a code to tell the speaker to turn on, lets say 456. This is how the devices know to not interfere with each other. Every button on every remote should have a unique code to avoid interference, but of course there is some crossover. Sometimes the rewind button on your DVD player remote turns the TV off - and that's just part of it.

My plan with this project is to grab a random remote, figure out what codes correspond with the buttons, and then program a microcontroller to perform a certain action when a specific code is received.

I grabbed this Sanyo remote from an op shop for $1 and ripped the board out. You can see the IR LED that sends the signals on the top, and the spring where the batteries connect to power the remote. I've labled a couple of the pads to demonstrate where the buttons would line up.

I decided not to use the black remote as it only has 7 buttons. So can only send 7 unique codes. I wanted more functions for this project - and as you can see the Sanyo has 18 buttons - more than enough functions for this project.

The face plate is a piece of sheet metal with a few buttons and switches added.

Top row is a yellow LED to indicate when it's charging, and the UP button.

Middle row is

Each button on the front panel gets wired to a random pad on the remote. So instead of the rubber button closing the circuit, these cool tactile buttons do the job.

The TV remote ran on 2x AA batteries, so at 1.5v each it needs 3v to run. This green battery is a lithium ion 18650 cell - it packs alot more storage capacity than 2x AA batteries, and also is rechargable. The little circuit board is from the cheap power bank / phone charger that it came from.

Basically the barrell plug on the front of the panel is connected to the micro USB port on this board, for charging the battery. And the USB outlet (normally for charging your phone) runs the TV remote. The USB outlet is at 5v, and the remote wants 3v, but I just hooked it up and it works fine... You could use a buck converter to drop it down, but in this case it worked without one.

Next I chopped up some pallet wood to make a little box. Nothing flash, I'm going for a rustic vibe here!

Everything gets put into the wooden box, with a little hole out the front for the Infrared LED to poke out. I had to extend the wires from the board to make it reach.

I added an extra big red button for PLAY/PAUSE. It was the only momentary button I had on hand! The LED was wired up to the little charging circuit board, to indicate when it is charging and full (the power bank that I took it from flashes when charging, and goes solid when fully charged)

Finally I closed it all up, and labled the buttons with a permanent marker. I love how it looks.

Here is a video explaining the code, and demonstrating the remote in action.

And if anyone is interested in the Arduino code - here it is for you to play with