Hardware projects

The remote control project

volymkontroll
Schematic overview

This is the story of how I built a remote control system for my computer and speakers. It is based on an off-the-shelf universal remote and some AVR chips and other electronics.

The problem

My computer speaker system, called Creative Inspire T6060, was giving me some trouble. It's one of those that come equipped with a tethered remote-control thingy, and the volume wheel was beginning to show signs of an aging graphite potentiometer, meaning pops, cracks and occasionally unstable volume levels. Furthermore, the way my furniture was organized, it was impossible to change the volume (or pause, or anything) from the sofa when watching a movie. In other words, some kind of remote control solution was called for.

Reverse-engineering the volume controller

The first step was to open up the volume control box. Of course, reverse-engineering is like a box of chocolates — you never know what you're gonna get. In this case, I was lucky enough to find a clean system that could be quickly analysed by just looking at the PCB layout.

volymkontrollvolymkontroll
volymkontrollvolymkontroll

As I had hoped, the volume wheel was simply a potentiometer connected as a voltage divider, providing the base unit with a voltage level between 0 and 5 volts. The volume control box was powered (with 9 volts DC), which was also going to be useful.

Producing a volume signal

I connected an AVR ATmega88 to a resistor ladder, so that a 6-bit output value would be converted into a voltage level between 0 and 5 volts. Originally, I also routed this signal through an OP amp to keep the impedance down, but further experimentation showed that this was unneccessary. Then I added a rotation sensor as an input, so that I could adjust the volume by turning a knob. Since the rotation sensor is digital (it emits a pulse train as you turn it), it won't age like the old volume wheel.

volymkontrollvolymkontroll
volymkontrollvolymkontroll

Once this was up and running, I wanted to be able to read out the current volume setting digitally, and be able to change it as well. Since the AVR controller was powered by the speaker system (using the aforementioned 9 volt supply), I decided to add some kind of opto-isolated communications port. I ended up using the SPI protocol (the one you use when programming an AVR chip through the MISO/MOSI/SCK pins), because it's easy to opto-isolate uni-directional signals. I then connected a second ATmega88, powered separately, to the other end of the opto isolators, and designed a rudimentary high-level protocol.

At this point, I ran into a problem: Whenever the volume was set to a medium (or high) level, the speakers would hum or purr softly. I had designed the communication protocol so that the "master" (the second ATmeta88 chip) would poll the volume controller chip several times per second, and apparently the LEDs used in the opto-isolated communication was drawing a noticeable, varying amount of current from the speaker system. In the end, I managed to connect a capacitor in such a way as to flatten the current curve, and the humming disappeared.

Decoding an IR signal from a remote control

A typical remote control transmits signals according to a simple serial protocol over a 38 kHz bearer. By connecting an IR receiver module (basically an IR light sensitive diode and a 38 kHz filter) to the master chip, I was able to decode the signals generated by my universal remote control. Then it was just a simple matter of mapping the volume buttons on the remote control into control signals to send over the opto-isolated link to the volume controller.

Display

The display runs on a separate ATmega88. It consists of two 7-segment LED modules and three discrete LEDs. The idea is that when you change the volume, the display lights up with the new volume level for a few seconds. I decided to move the IR receiver from the master chip to the display controller as well. The display controller is a really simple AVR project, so I won't describe it in detail. It communicates with the master using TWI (an I²C variant supported natively by the AVR chips).

Computer communication

Finally, the master communicates with my computer using RS232. I have a daemon process running on the computer, listening for commands on a unix socket. Currently, I've defined commands for setting the volume and for switching the three discrete LEDs on or off. A command line interface, consisting of two client programs called volume and lamp, can be used to send commands to the daemon.

The daemon process also receives remote control events from the master whenever a remote control button has been pressed. These events are turned into keyboard events using the /dev/uinput mechanism in Linux, and the mapping has been set up so that I can control mplayer and ogle using the standard buttons (play, pause, etc.) on the remote control. In the future, I intend to write some kind of movie selection interface as well, which will enable me to navigate through my media files from the sofa.

Final words

It's always fun to experiment with home automation, to reverse-engineer and to connect various gadgets in unintended ways. I hope this post will inspire more people to tinker with their electronics. But remember that it's your own fault if anything breaks. =)

More pics

Posted Friday 26-Oct-2007 18:39

Discuss this page

Disclaimer: I am not responsible for what people (other than myself) write in the forums. Please report any abuse, such as insults, slander, spam and illegal material, and I will take appropriate actions. Don't feed the trolls.

Jag tar inget ansvar för det som skrivs i forumet, förutom mina egna inlägg. Vänligen rapportera alla inlägg som bryter mot reglerna, så ska jag se vad jag kan göra. Som regelbrott räknas till exempel förolämpningar, förtal, spam och olagligt material. Mata inte trålarna.

Anonymous
Fri 8-Aug-2008 09:01
iam uderstanding u project and i want to think on this project
basafa
Alireza Basafa
Thu 28-Aug-2008 21:05
Can you send me circuit & Atmega88 source program of your remote control project ?
lft
Linus Åkesson
Tue 2-Sep-2008 07:45

basafa wrote:

Can you send me circuit & Atmega88 source program of your remote control project ?

Thanks for showing an interest in my project!

Unfortunately, the remote control project is somewhat ad hoc, and has evolved
since I described it on this page. It would be difficult for me to create a
useful software/schematic combination at this point.
Anonymous
Thu 23-Jul-2009 14:00

lft wrote:

basafa wrote:

Can you send me circuit & Atmega88 source program of your remote control project ?

Thanks for showing an interest in my project!

Unfortunately, the remote control project is somewhat ad hoc, and has evolved
since I described it on this page. It would be difficult for me to create a
useful software/schematic combination at this point.

plz email me ur source code....and any details on decoding Universal Remote Control...

Doesnt mater if it doesn't work directly. because i just want to use it for reference to decode the remote control.

Pankaj Agrawal
pankajvisitme [at] gmail com
Anonymous
Sun 20-Sep-2009 00:36
PLS ...send mi cabel from conektor (volume control )or shem volume control cabel imeil zario@dir.bg
Anonymous
Fri 15-Jan-2010 23:44

lft wrote:

basafa wrote:

Can you send me circuit & Atmega88 source program of your remote control project ?

Thanks for showing an interest in my project!

Unfortunately, the remote control project is somewhat ad hoc, and has evolved
since I described it on this page. It would be difficult for me to create a
useful software/schematic combination at this point.
Anonymous
Fri 7-May-2010 13:26
Hi.

If you have problem with a potentiometer, for that usually helps to put some oil to inside potentiometer. I used oil many times and it works, I usually use for example WD40.
lft
Linus Åkesson
Fri 7-May-2010 18:26
If you have problem with a potentiometer, for that usually helps to put some oil to inside potentiometer. I used oil many times and it works, I usually use for example WD40.

Thanks for the tip! It may come in handy.
Anonymous
Tue 15-Jun-2010 18:05
i like your project and i am waiting for your source code.so plz send as soon as possible......@ vigneshrockz1992@yahoo.com
Anonymous
Sat 22-Jan-2011 09:39
Hi.i choose ur project so can u send me pcb layout of this project

If you have problem with a potentiometer, for that usually helps to put some oil to inside potentiometer. I used oil many times and it works, I usually use for example WD40.
Anonymous
Sat 22-Jan-2011 09:41
hi i choose ur project can u send me pcb layout of this project
Anonymous
Thu 17-Feb-2011 18:48
wierd, how the two red leds could be illuminated the way they are plugged into the breadboad on the second image? Is it some magic?

/bmx
lft
Linus Åkesson
Fri 18-Feb-2011 09:10
wierd, how the two red leds could be illuminated the way they are plugged into the breadboad on the second image? Is it some magic?

/bmx

I think they're connected vcc -> resistor -> led -> led -> resistor -> gnd. That way, if you plug one end of a lead between the leds, it becomes a logic probe. The usability of which would increase vastly with differently coloured leds.
Anonymous
Thu 3-Mar-2011 22:04
I couldn't help noticing that the boards where you put your components in look weird... it doesn't seem like a normal PCB board is under the paper with the schematic (this, I mean: http://www.linusakesson.net/pix/data/070516-1/dsc00013.jpg).

How did you build those?
lft
Linus Åkesson
Fri 1-Jul-2011 13:56
I couldn't help noticing that the boards where you put your components in look weird... it doesn't seem like a normal PCB board is under the paper with the schematic (this, I mean: http://www.linusakesson.net/pix/data/070516-1/dsc00013.jpg).

How did you build those?

I'm using a so called strip board, which is a board with copper strips on the back. I make the design in postscript, then print it and glue it to the board, and cut the strips as needed. I find it to be a really quick and convenient prototyping method, after breadboards of course.
Anonymous
Wed 13-Jul-2011 09:53
any advice or book recommendations for people that want to learn how to do this kind of stuff?
Anonymous
Wed 9-Nov-2011 17:05
iam uderstanding u project and i want to think on this project

THIS IS MY FIRST POST TO THIS OR ANY FORUM, I NOTE THE DATE OF SOME OF THE POSTS ARE OLD BUT
I AM HOPEFUL.
MY PROBLEM IS THE OPPOSITE OF ALL THE OTHERS IN SO MUCH AS I DO NOT HAVE THE REMOTE FOR MY 6060 UNIT, AND WOULD LIKE TO BUILD ONE.
THE PICTURES AND DIAGRAMS SHOW A LITTLE INFORMATION BUT NOT ENOUGH,
THE PIN OUTS FOR THE NINE PIN PLUG AND SOCKET WOULD BE USEFUL. THANKS IN ANTICIPATION. JIM
Anonymous
Sat 24-Mar-2012 10:19
how to download the remote computer controller project please help to download
Anonymous
Sat 21-Feb-2015 05:55
i am also suffering in remote problem the remote of t6060 got damage and my speakers are useless at this time please send me picture of remote pcb soldering side as i can repair my speakers i mean the pcb green side my email is aftabqazi1976@gmail.com i shall thankful to you.
Anonymous
Sat 22-Aug-2015 14:17
Hi. I have also a creative t6060
I opened a high bass music and probably burned some parts of circuit. Could you help me

Gkhngnay86@Gmail.com
Eqwipman
Sun 5-Jun-2016 10:44
in the post "Producing a volume signal" i want to know where i can buy the digital pot shown in the picture. not the IC but the part with the knob attached.
Thanks,
Anonymous
Wed 12-Oct-2016 07:15
please help me i have t6060 i want just pcb pic please help me my email is aftabqazi1976@gmail.com
Anonymous
Wed 18-Jan-2017 22:28
As this topic still seems pretty active, maybe I can assist future posters.
Maybe replacing the broken Potentiometer with this one:

RV12 10K 103 B103 Switch Rotary Radio Potentiometer

Hope this helps.