The Linux Infrared Remote Control (LIRC) Project

March 21st, 2006 by Colin McGregor in

Want to build an infrared remote control for your laptop, MythTV or hidden computer? Learn how.

Linux Infrared Remote Control (LIRC) allows you to use inexpensive hardware to control your Linux PC with a TV remote control. Why would you want to control your PC with a TV remote control? A number of reasons are possible, the most obvious being MythTV, which I wrote about earlier for LJ.com. You might want to use LIRC for presentations, so you can step out into the audience and still change slides on your laptop. Or, LIRC can be used when you are keeping a machine out of the way somewhere but still want to control it.

Some of the Options for Use with LIRC

As an example, an eatery not too far from me, Linuxcaffe is planning to set up a PC to run in-house displays. The box will be hung just below the ceiling. Linuxcaffe owner David Patrick wants the staff to be able to change displays on the fly, without having to climb a ladder. With LIRC, this can be done.

Here, I am going to demonstrate how to build a LIRC system. For hardware, you need an infrared receiver, which you might have already, and a remote control. A small number of PCs come with an infrared receiver that is supported by the LIRC software. Many laptops come with an IrDA standard interface for doing infrared networking and some IrDA interfaces, but not all of them work with LIRC. Many TV tuner cards come with an infrared port that is supported by LIRC. In addition, Creative Labs used to produce a series of CD-ROM drives that included an infrared port supported by LIRC. If you don't already have an infrared port for your PC, however, you need to look at other options, which I will get to shortly.

A small number of radio-based remote controls have been made to work with LIRC, but basically, LIRC is an infrared system. For remote controls, almost any "universal" infrared remote control can be made to work with LIRC. The only brand of remote control that is notorious for its problems and should be avoided is Bang & Olufsen.

Do give some thought as to how much control you want/need over your PC. For example, if you are planning to do presentations for which your control concerns amount to next/last slide, then a small remote you can carry in your pocket may take priority over a remote with a lot of buttons. If, on the other hand, you want to run a MythTV box, you probably want all of the functions of a TV, DVD player and so on, meaning more buttons. Thus, a larger remote is an acceptable trade-off. Either way, your options here are wide.

The price for the remote can range from effectively free if you have an old VCR remote up to a several hundred dollar color display screen remote that does almost everything (see the Logitech Harmony series of remote controls). With MythTV in mind, I got a factory refurbished RCA remote with batteries at an electronics clearance shop for less than five dollars.

Assuming you don't already have an infrared detector, you have to buy or build one. You can find plans for several infrared detectors on the LIRC Web site, including plans that use the serial port, a USB port or the parallel port. Here, I walk-through building the simple serial port detector inside a DB9 hood. This serial port design does not follow the RS-232 standard fully, but it is close enough for most desktop PCs. When it comes to laptop computers, which often don't fully follow the RS-232 standard themselves, this design may be problematic. The circuit diagram is laid out in Figure 1. In Figure 2, you can see one possible layout on perfboard.

Figure 1. Circuit Diagram

Figure 2. Perfboard Layout

To build your own detector, you need a few parts:

  • IC1 - SFH 5110-38 Infrared detector, or compatible

  • IC2 - 78L05 voltage regulator

  • D1 - 1N4148 diode

  • R1 - 4.7 K ohm 0.25 watt carbon resistor

  • C1 - 4.7 uF 16 volt electrolytic capacitor

  • DB9 female solder connector

  • DB9 hood

  • Miscellaneous: perfboard, hookup wire, rosin core solder, flux remover

You can expect that finding a suitable infrared detector will be something of a pain. The rest of the parts are quite common and easy to locate. The total cost for all of the above parts should be under $15.

Testing the Mystery Infrared IC

In my case, I had some infrared detector ICs left over from a project I made several years ago. I no longer had the data sheets, however, and the markings on the ICs were not useful. So, I needed to be certain of the pin-outs. On my local user group mailing list, Peter L. Peres suggested setting up the circuit shown in Figure 3 on a prototyping board. The idea behind this is you can set up various possible connections with the voltages involved set so low that there is little chance the IC will be damaged. After setting up each combination, fire a known good infrared remote control at the sensor IC and see if the LED flickers. For the test setup, you ideally want a 5 mA red LED; otherwise, the flicker may be very faint. Regardless, you should do these tests in a dimly lit room.

Figure 3. Test Setup

The pin-outs for my mystery infrared detectors are the same as the Osram SFH-5110 series of detectors. The layout of that series assumes a SFH-5110 or compatible detector. This circuit can be made to work with dozens of detectors, but not all have the same connection layout, so do double check your own compatability.

In addition to the above parts, you need to have a few tools available:

  • Low wattage soldering iron (20-40 Watts)

  • Soldering iron stand

  • Wire cutter

  • Wire stripper

  • Small screwdriver

  • Small saw

  • Optional but recommended: clip-on heat sink, third-hand parts holder, solder remover tool

When it comes to soldering irons, 100 and 200 watt versions are available for people who do things such as make stained glass windows. The problem with these high-power soldering irons is they get very hot very fast, and computer parts can be destroyed with too much heat. Therefore, don't use a soldering iron with more than 40 watts, and I recommend using one closer to 25 watts. The "cold heat" soldering irons promoted on television have their place for some jobs, but that place isn't here. Among several problems they have, their tips are much too big for the sort of small-work precision this project requires.

Heat is an issue throughout this project. As noted, the parts in this project can be destroyed by too much heat, yet we need enough heat to melt solder. People with a lot of experience soldering could bond all of these parts together quickly enough that heat doesn't build up, so they could get away without using a heat sink. But as a hobbyist who solders only occasionally, I find that a clip-on heat sink buys a lot of leeway and saves a lot of parts from destruction.

Several Web sites are dedicated to explaining how to make good solder joints. I suggest referring to this one or this one.

Flux is a cleaner put into the middle of the solder to help ensure good solder connections. Two kinds of flux-containing solders are on the market, acid and rosin core solders. Acid core solder is designed for things such as radiator repairs; it should be avoided at all costs for electronic work.

Respect the things you are dealing with; if handled carelessly, the soldering iron can burn. Most solders sold in North America contain lead, a metal with known health issues, so you should try to limit your exposure to it. Flux remover typically contains alcohol, so don't use it near an open flame or other heat sources. Finally, the flux in the solder burns off as you work, creating tiny wisps of smoke. So work in a well-ventilated and well-lit area.

Do collect in advance the parts and tools you need for the project, as you see in Figure 2. Because I was doing my work at the kitchen table, I laid out some newspapers to protect the table surface.

The Hardware

It doesn't matter which way you install the resistor, but for all of the other parts, position matters. The capacitor has a minus sign beside one of the wires to identify which wire is which. The diode has a black line at one end to identify which end is which. When looked at from above, the 78L05 voltage regulator looks like a half moon, and where the wires are relative to the flat sides matters. There is a lens on one side of the infrared detector, and where the wires are relative to that lens counts. Numbers should be molded beside the pins on the DB9 connector.

The Tools and Parts Laid Out for Building a Detector

Perforated board, or perfboard, is a wonder for hobbyist electronics work. It is a thin piece of non-conductive, heat tolerant plastic with holes drilled into it at 0.1" intervals. I use perfboard that has small copper rings bound to the board around each hole, which helps ensure the parts stay attached to the board.

The first step is to cut a piece of perfboard down to the right size. I used a small hacksaw for this job, but a Dremel or other small power-cutting tool can be used. We need a grid that is 4x5 holes, so cut along a line six holes in from one edge and five holes in from the other edge.

The first step is to attach the perfboard to the female DB9 connector. Place the board so that it is between the top and bottom row of pins and the copper rings are lined up with the solder cups for pins 6 through 9. Then, solder pins 6, 8 and 9 to the copper rings on the board.

The Start of Construction with the Perfboard Attached to the DB9

You need to thread the wire from the end of the diode that does not have the black line on it through a hole (C1) in the perfboard and connect it to pin 7 in the DB9 connector. Trim the diode wire so it fits into the DB9 connector. When positioning the diode, remember that you don't have a lot of space above the perfboard, so keep everything close to the board. Clip the heat sink to the wire that goes into the diode and solder it into the DB9 connector. Wait a minute for things to cool down, and then solder the diode to hole C2. Run the wire from the black line end of the diode through hole D1, up to hole D2 and trim off the excess wire. Reposition the heat sink, solder hole D1 and then remove the heat sink.

The resistor goes in next. Place one end in hole D2 and the other in D3. Remember that you need to keep the resistor close to the board, but leave enough room for a wire to get into hole D4. The resistor has a high heat tolerance, so I skipped using the heat sink for this part. Position the resistor wire that comes in through hole D2 so that it ends by hole C2, and trim the excess. The resistor wire that goes into hole D3 should end by hole D4. Leave hole D3 alone for now, and solder hole D2.

Using a piece of wire trimmed from the diode, we make a little jumper. The wire needs to be bent so that one end goes into pin 5 of the DB9 connector, through hole B1 and then up, so it's just touching hole B4. Solder pin 5 in the DB9 connector and hole B1.

Now, put the voltage regulator into holes A2, A3 and A4. Remember to pay attention to the orientation of the regulator. Leave the wires on the component side long enough that you can clip in the heat sink and later fold the voltage regulator over, so it fits close to the board. Clip on the heat sink, solder holes A2, A3 and A4 and then remove the heat sink.

Part Way Through Construction with the Heat Sink in Place

The next part is the capacitor. Pay attention to which wire is negative, and leave enough space for the heat sink and to fold the capacitor over. Clip on the heat sink, solder holes A3 and B3 and remove the heat sink.

Our second jumper comes next, made from a short piece of hook-up wire about 0.75" (2 cm) long. Trim the insulation off both ends and solder one end into pin 1 of the DB9 connector. The other end goes to hole D4. It may be a tight fit, and you may need to shift the resistor to fit things, which is why the resistor wasn't soldered earlier. Once the jumper is in place, solder the resistor at hole D3.

Two Almost-Complete Infrared Detectors

Finally, we come to the infrared sensor. You are going to have to do some test fittings to make sure that the leads are long enough so the sensor is just behind the hole in the plastic DB9 hood. This fitting also may require that you push the capacitor slightly to one side, out of the way. Once the length is adjusted, bend the wire that goes in though hole C4 so it goes across to hole D4. Clip on the heat-sink, solder holes A4, B4, C4 and D4 and remove the heat-sink.

Now you might want to take a minute to clean up. Apply some flux remover, per the manufacturer's instructions, to the solder side of the perfboard to clean away any flux residue left from the assembly.

The last construction job is to assemble the DB9 hood around the project. Once that's done, plug the interface into the serial port on your computer and start the machine. That finishes the hardware part of the project.

A Close-Up of a Completed Detector

The Software

I cheated a little for the software and used a short cut made possible by Jarod Wilson, who has done a great job of documenting MythTV and Fedora Core 4. After you have used up2date to bring your system up to date with the latest security patches, start up a terminal session and enter:


   su
   <enter the root password>
   echo "export KVER=\`uname -r\`" >>
/etc/profile.d/kver.sh
   cd /etc/yum.repos.d/
   wget http://wilsonet.com/mythtv/atrpms.repo
   wget http://wilsonet.com/mythtv/freshrpms.repo
   yum install lirc-kmdl-$KVER
   yum install lirc-lib
   wget --no-check-certificate
https://svn.wilsonet.com/svn/mythtvology/trunk/rc.sysinit-mm.diff
  
   patch /etc/rc.d/rc.sysinit < rc.sysinit-mm.diff
   yum install lirc

Assuming that you are connecting the detector to ttyS0, put the following lines in file /etc/modprobe.conf:


   install lirc_serial /bin/setserial /dev/ttyS0 uart
none ; /sbin/modprobe --ignore-install lirc_serial
   alias char-major-61 lirc_serial
   options lirc_serial irq=4 io=0x3f8   

If you are connecting the detector to ttyS1, enter the following lines:


   install lirc_serial /bin/setserial /dev/ttyS1 uart
none ; /sbin/modprobe --ignore-install lirc_serial
   alias char-major-61 lirc_serial
   options lirc_serial irq=3 io=0x2f8  

To test that you have a working infrared detector, type mode2. Point a working remote control at your detector and start pressing buttons. If you see something like:


   pulse 1187
   space 596
   pulse 598
   space 623
   pulse 553
   space 643
   pulse 630
   space 603

you have a working detector. If not, it's time to open up the hood and start troubleshooting. The first thing to check for is cold solder joints, where the solder has not bonded properly with the parts. Look for connections with a dull surface. Clip the heat sink to the appropriate nearby part, reheat those joints and remove the old solder with your solder remover. Then, re-solder using fresh solder.

Two Fully Complete Detectors

Assuming things do work now, you need to start configuring your system to work with the remote. But that is another significant project, one for another article.

Colin McGregor works for a Toronto area charity, does consulting on the side and has served as President of the Toronto Free-Net. He also is secretary for and occasional guest speaker at the Greater Toronto Area Linux User Group meetings.

__________________________


Special Magazine Offer -- 2 Free Trial Issues!
Receive 2 free trial issues of Linux Journal as well as instant online access to current and past issues. There's NO RISK and NO OBLIGATION to buy. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994.

Sorry, offer available in the US only. International orders, click here.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

A minor detail, but it's

On May 6th, 2008 Anonymous (not verified) says:

A minor detail, but it's called a DE9 connector, not a DB9 :)

Actually, it is called a DB9

On May 29th, 2008 Anonymous (not verified) says:

Actually, it is called a DB9 connector... but again... minor point.

I'll jump in on this just

On June 20th, 2008 Anonymous (not verified) says:

I'll jump in on this just because I can :)

http://en.wikipedia.org/wiki/D-subminiature

kxiiqsmy

On October 1st, 2007 Anonymous (not verified) says:

vlmjpzir

On September 8th, 2007 Anonymous (not verified) says:

IR Detector

On October 13th, 2006 Anonymous (not verified) says:

I Could not find where the software is to use with the IR Detector. Do I just download the mythtv software or is there a specific software for the IR detector. I just need the software for the IR detector. I do not plan to use the myth tv stuff.

IR Detector software

On April 26th, 2007 Mike (not verified) says:

It's lirc. Go to http://www.lirc.org for more information.

For a better usage of the 5V regulator

On March 22nd, 2006 domi (not verified) says:

The capacitor should be connected to the input pin of the regulator instead of the output pin.

This way, you'll get a much better 5V supply.

creative infra

On June 9th, 2006 Nitin (not verified) says:

Hi Did you manage to get it working with an creative infra drive. I have been struggling for the same for days now. It requires it to have the ide-scsi module loaded; and then use scsi inquiries to do the same. Would this work with oldish mother boards / very old Creative Infra drive ??

Actually, you need a cap at

On March 22nd, 2006 Anonymous (not verified) says:

Actually, you need a cap at both the input & the output for regulation and stabilty, respectively. A 1uF at the input and a 0.1uF at the output is fine for this.

Make me one!!

On March 22nd, 2006 ErRoNeUs (not verified) says:

That serial device looks really cool. And while it appears to be simple enough, I was born with five thumbs on each hand and soldering irons hate me. Would there be any volunteers to make one for me? :) (How can someone contact me though? I left my valid email address but it won't show publically...)

maybe, i don't know, type it

On April 15th, 2006 Anonymous (not verified) says:

maybe, i don't know, type it in the big comment box

Check out this one:

On March 21st, 2006 Anonymous (not verified) says:

Check out this one: http://www.igalaxie.com/ltt/mp3/ir/index.html.
I added a little led, to blink when I receive some IR signal (this is great for debuging and every days job)

Why not radio?

On February 24th, 2006 Anonymous (not verified) says:

IR is quite anitquated. It's cool for TV's and video where you have line of sight, but not much use for things like controlling music from another room.

Why not go radio? Or WiFi? Or Bluetooth? Linux should take the lead on some of these instead of just playing catchup.

RF remote with Lirc

On April 7th, 2006 Anonymous (not verified) says:

I use an rf remote, the X10 Mp3Anywhere remote with Lirc.

Where do you get the appliances ?

On March 25th, 2006 Anonymous (not verified) says:

1) Where do you get a 'radio' capable remote control ?
2) Where do you get a 'WiFi' capable remote control ?
3) Where do you get a 'Bluetooth' capable remote control ?

LIRCD allows you to interact with a Linux based computer using the same technology as you use to interact with your TV/VCR/DVD/Stereo/... equipment.

If you were to say use something like a Nokia 770 as your remote (hope the battery does not go flat) to control all your home AV equipment, then you need something to convert it's signals from Radio/WiFI/Bluetooth back to IR to allow you to interact with the end appliances.

IR may be old, but it's cheap, pervasive, reliable, secure, and proven to work.

Secure?

On April 20th, 2006 Lansing (not verified) says:

I think you might need to re-evaluate that statement:
www.hackaday.com/entry/1234000950059571/
www.schneier.com/blog/archives/2005/08/hacking_hotel_i.html
www.i-hacked.com/content/view/176/44/

A simple brute force attack reneders every "secure" ir system useless. For example, most garage door systems work off sending an 8 bit message to the reciever. If you brute force this, that means that you only have to send out 256 guesses ( do you know how fast your computer can count to 256). Furthermore, the most "secure" ir systems use 16 bits which can be brute forced with 64k attempts which at most will take about 3 mins to break. Just a little food for thought.

Antiquated but affordable

On March 23rd, 2006 pbardet says:

I suppose the problem is to find a device that will be able to send information to the PC via your preferred method. Currently, finding an infra-red remote is fairly easy, not to mention cheap.

Sure it's a great ID. I personnally love my UHF remote on my PVR, but finding those remotes is not easy, and I didn't even look for an appropriate receiver.

Featured Videos

Non-linear video editing tools are great, but they're not always the best tool for the job. This is where a powerful tool like ffmpeg becomes useful. This tutorial by Elliot Isaacson covers the basics of transcoding video, as well as more advanced tricks like creating animations, screen captures, and slow motion effects.

Shawn Powers reviews the HP Mini-Note portable computer.

Thanks to our sponsor: Silicon Mechanics

Silicon Mechanics is a leading manufacturer of rackmount servers, storage, and high performance computing hardware. The best warranty offerings available are backed by experts dedicated to customer satisfaction.

From the Magazine

August 2008, #172

There's nuttin like a Cool Project to give you some relief from the summer heat, so get out your parka cuz we got a bunch of em. First up is the BUG, not a bug, The BUG. It's got a GPS, camera and more, in a hand-sized package that's user programmable. The BUG does everything. It's both a floor wax and a dessert topping. Get one now. Need a software version of a Swiss Army knife? Take a look at Billix, and don't leave home without it. Then, chew on this one, an X server on a Gumstix device driving an E-Ink display. Need more storage? How about 16 Terabytes? Can do.

And, of course, we have the usual cast of characters: Marcel, Reuven, Dave, Kyle, Doc, plus the new kid on the block Shawn Powers. But it doesn't stop there: build a MythTV box on a budget, build your own GIS system, set up the tools to monitor your enterprise and more. Finally, remember The War of the Worlds? Now you can play too.

Read this issue