Remote Controls and MythTV

There are a good number of univeral remotes that can be programmed for use with MythTV. In general, I find the quality of even the better remotes shipped with TV capture cards (like the grey Hauppauge one) to be rather sub-par. For starters, they're too damned small and flimsy for my taste. Second, when you have as many different A/V components as I do, you DON'T want yet another remote. Thus the desire for a both a better and universal remote.

While there are tons of "Universal" remotes out there, not all are created equal. Some are just way too expensive for me to even consider. Others aren't actually very "Universal" (their device coverage sucks). The list of junk I wanted to control is as follows: a 47" Panasonic HDTV, a 110-disc Technics CD changer, a Motorola DCT-5100 cable box, an X-Box w/the DVD module, a Yamaha amp/receiver and my MythTV Home Theater PC, interfaced via a Hauppauge IR receiver on a WinTV PVR-250 card. Based on the suggestion of another MythTV user, I opted to go with the RadioShack 15-2116 universal remote, which can be had for about $30.

This RadioShack remote (along with most other RS remotes) is actually manufactured by Universal Electronics (UEIC), who also sells their products directly to consumers under the "One-4-All" brand name. Such being the case, you'll typically be able to control the exact same devices with either line of remotes. The steps to programming functionality into these remotes is also very similar. That said, continue on to read just how I went about programming my RadioShack remote for use with MythTV.

Step-by-step guide to using RadioShack 15-2116 remotes with Hauppauge IR receivers and lirc

Compiled by Jarod C. Wilson <jcw_at_wilsonet_dot_com>
Based on info from Harry and Nelson on the MythTV mailing lists
Version 1.0.5, last updated November 27, 2004


  1. Hardware
  2. Software
  3. Programming the remote
  4. Resources
  5. Changelog

1. Hardware

I had a pretty good feeling I'd be able to get everything working from the get-go, based on a little bit of research. I figured I'd probably have to get (or build) a serial IR receiver to use the remote with my MythTV box. I was pleasantly surprised to find out that it wasn't at all necessary.

This means the only significant hardware in this puzzle is the RadioShack 15-2116 universal remote, and the IR receiver, hooked to my Hauppauge WinTV PVR-250 (which should function the same as the IR receiver on any other Hauppauge card). Note that these instructions will NOT work with most other TV card's IR receivers, because Hauppauge uses a less-common IR protocol than most.

Note that while this remote *is* JP1-programmable (, I haven't touched JP1 at all. You can get this thing working without JP1 (the JP1 route is probably technically superior and cleaner, but I figured I'd try without, especially since JP1 programming requires a Windows-only app, and MythTV is a Linux project :).

2. Software

The main pieces of software in question are LIRC ( and MythTV ( Another piece of documentation I've already written describes how to set up lirc with MythTV and a Hauppauge IR receiver on a Fedora/Red Hat Linux system, and applies equally for this little excercise. You can find the relevant section of that doc here:

The primary differences between that documentation and this, is that lircd.conf and lircrc are set up for use with the little grey remote included with recent rev Hauppauge TV capture cards, while we'll need an entirely different lircd.conf file and a slightly modified lircrc file for the RadioShack remote. Below are links to the RadioShack-specific files I'm using:

You'll need to rename those files lircd.conf and lircrc respectively. The lircd.conf file should be placed into /etc/ (/etc/lircd.conf) and the lircrc file into ~/.mythtv/ (your_home_directory/.mythtv/lircrc).

3. Programming the remote

For starters, you'll need to use a remote profile that uses the same RC-5 signaling protocol as the Hauppauge remote. Philips/Magnavox and Marantz are the primary manufacturers that use this signaling protocol. I opted to use the "AUX" device button on my remote for my MythTV system, though the "VCR" button might be preferable to others. Pretty much any of the device buttons will work, so long as you set it up as a VCR device, with VCR device code 0081.

Also, if you've done any prior work on customizing your remote under the VCR 0081 profile (like some IR Learn stuff), you might want to consider starting fresh. Simply temporarily assigning a different device to your desired button, then setting it back to 0081 should give you a fresh 0081 profile. You *might* have to d a full reset of the remote, but I'm not certain...

While this does make many of the buttons function immediately, several of them aren't mapped to do anything under this profile. However, with the remote's keymover function, you can map extended function codes (EFCs) that aren't assigned to any keys to the currently dead keys. A relatively full listing of key codes can be found at This is the primary resource I used (along with Harry's guidance) to get functional codes mapped to the dead buttons.

So how do I program those buttons, you ask? That information might be in your remote's manual (I'm not sure, I didn't actually look there), but it is definitely on the same site just referenced, at, specifically section B. under the LCD Remote Instructions (Current models) heading. Shamelessly heisted from that site (but modified to match up exactly w/the RS15-2116), here's how to program the buttons:

  1. Press the device button you've programmed for VCR 0081 (this example assumes "AUX")
  2. Press and hold the "P" key at the top left of the remote, until the LCD changes to read "CODE SET"
  3. Down-arrow seven times, or until the LCD reads "KEYMOVER"
  4. Press "SELECT" and the LCD should read "FROM MODE"
  5. Press "AUX" and the LCD should now read "FROM KEY"
  6. Now tap (don't hold) the "P" key, after which the LCD should read "SYNT"
  7. At this point, you should be able to enter the desired 3-digit EFC (see table below), followed by the "SELECT" key
  8. The LCD will read "TO MODE", so press "AUX" again
  9. The LCD will read "TO KEY", so press the key you want that code mapped to (again, see table below)
  10. The LCD should briefly read "SUCCESS", then "EXIT SETUP", and you've got the key programmed. Rinse and repeat for all the keys you want to program.
EFC Destination Key

Most of these key assignments match up directly with the mappings show on the hifi-remote site, but with a few of them, I had to get a little creative, as the assignments from that site overlapped with other already programmed keys (essentially, they sent the same IR codes). The end result is that while the EFCs might not match up exactly with those tables, they all send a unique IR code, which can in turn be mapped to a unique function.

I almost forgot... A note about the volume keys: I didn't do anything with them, because I have the volume keys on my remote set to always control volume on my amp. Your situation may differ, but figuring out what to do with them is up to you.

Anyhow, if you follow the above mapping exactly, the lircd.conf and lircrc files I've put together should leave you with a fully functioning setup on your RadioShack 15-2116 universal remote for controlling you MythTV system. Now tweak it to your heart's content. :)

4. Resources

RadioShack page for the 15-2116 remote:

LIRC website:

MythTV website:

LIRC config files:

My full MythTV on Fedora Core HOWTO:

The HiFi Remote website:

The JP1 Yahoo! Group website:

Hauppauge website:

Thread containing Nelson's posting to the MythTV mailing list:

Thread containing Harry's posting to the MythTV mailing list:


v1.0.5 -- Nov 27 2004
-Addition of xine button mappings in lircrc

v1.0.4 -- Feb 11 2004
-Adapted for new Fedora Myth(TV)ology site layout
-Added reference to other remotes this should work with

v1.0.3 -- Feb 06 2004
-Added RIGHT/LEFT programmings (thanks Carl!)

v1.0.2 -- Jan 04 2004
-Added missing step in key moving section (thanks Carl!)
-Added note that you *might* have to reset the entire remote to start fresh

v1.0.1 -- Jan 03 2004
-Fixed wrong bits, eps and gap in lircd.conf (thanks Carl!)
-Added note to start with a clean slate on the remote profile

v1.0.0 -- Jan 02 2004
-Initial release