JP1 Interface for remote control

Feb 8, 2003 If you are thinking about buying a universal remote control for your Home Theater equipment, may we suggest you to take a look at the JP1 project. In two words, JP1 is a set of hardware and software tools that allows you to take a regular remote control (RadioShack and One for All are two most common brands that work with JP1) and completely customize it. The customization includes adding IR codes for new and unsupported devices, assigning keys the way you want, etc. If that is not enough for you, they have also developed so called "extenders", essentially brand new firmware for remotes, making it possible to introduce new features and operation modes. This is by no means a complete description of JP1, so please do visit their web site and newsgroup.

When we first learned about JP1 project, we were so impressesd and amazed by what these guys have achieved that we decided to contribute something to this community. This page explains how Ira can be used along with JP1.

Imagine that you have a JP1-compatible remote, and you want to use it to control your air conditioner. The remote does not support this equipment, unless you upgrade it. You need to create a code for the remote, that will enable it to send signals equivalent to those of the original remote control. You can do that using JP1, but you need to know the exact protocol used by the air conditioner. Until now the only way to get that information was to use a learning remote. Of course, if you already have a learning remote, you are lucky. But learning remotes are expensive.

Ira provides an alternative way to obtain this information. Our Protocol Analyzer will process data from Ira and will produce EFC and OBC codes ready for entering into KeyMaster. (KeyMaster is one of the JP1 tools). The Protocol Analyzer is still at the beta stage, and currently decodes limited number of IR protocols. Over the next few weeks we'll continue to work on it adding more protocols. But Ira is not limited to particular IR protocols. However, the sensor will only work with remotes using modulation frequency in the range of 32-42kHz. The best sensitivity is achieved at 38kHz. Ira cannot detect the carrier frequency. Fortunately, in most cases it can be derived from the timing information of the signal. For example, if the timing matches the RC5 protocol, the frequency most likey is 36kHz. Sometimes you will have to try a couple of frequency values to determine the one that gives the greatest transmission distance.

Below we provide a little tutorial on how to build new device code using Ira. In this example we will create a device code for Yamaha mini component system GX-500.

First, let's start Protocol Analyzer and push buttons "1", "2", and "3" on the original remote control:

IR Protocol Analyzer, ver. 0a (c) 2003 Home Electronics 
Protocol:      NEC 
Device Word 1: 0x78 120 (8 bits) 
Command Word:  0x11 17 (8 bits) 
EFC:           121 
Protocol:      NEC 
Device Word 1: 0x78 120 (8 bits) 
Command Word:  0x12 18 (8 bits) 
EFC:           119 
Protocol:      NEC 
Device Word 1: 0x78 120 (8 bits) 
Command Word:  0x13 19 (8 bits) 
EFC:           123 

Every time you push a button on a remote, Protocol Analyzer will print the following information:
1. Protocol. Name of the protocol used
2. Device Word. Value of the device word, in the hexadecimal and decimal systems. If the protocol uses more than one device word, they will be printed separately.
3. Command Word. Value of the command word. In JP1 tools this value is also referred to as OBC.
4. EFC. EFC is a special representation of the command word used by JP1-comaptible remote controls. This value is presented in the decimal system.

Now we have to open KeyMaster and enter data received from Protocol Analyzer into the table. This is how the first page of KeyMaster looks:

KeyMaster table

Remote. This field is a drop-down list where you select the type of the remote control unit you are using.
Device Type. Select the device most closely describing the one for which you are creating a new code. In our case, since we create a code for an audio system, we have selected Misc. Audio
Setup Code. Enter the number that will correspond to our new code. You can pick any number, provided it is not yet assigned to some other code.
Button Codes. Data assigned to buttons can be represented in either OBC or EFC form. Since Protocol Analyzer produces both values, either one can be used. In this example we have selected the EFC encoding.
Protocol. Select the same protocol as the one reported by Protocol Analyzer.
Main Device. Enter the device word reported by Protocol Analyzer.

In this example we do not need to edit other fields. Let's go to the next step and switch to the "Functions" table.

KeyMaster table

As you can see, we simply assign EFC codes reported by Protocol Analyzer to functions. OBC field is computed by KeyMaster and the one reported by Protocol Analyzer. Continue this procedure for all buttons on the original remote. You might want to edit the function description in the first column, if you can't find the right one.

When finished, switch to the "Buttons" page and assign the defined functions to the buttons on your JP1 remote. This is the part there you will have to employ your imagination: in many cases the original remote has buttons with functions that are not present on a universal remote control. After that we are done! Switch to the main page of KeyMaster and transfer the generated upgrade code to another JP1 tool, IR which in turn will upload the upgrade code to the remote control.

Does it sound complicated? Well, the fun way is not always the easy one! The reward for learning all these JP1 tools is that finally you can have a single remote control working all your equipment, the way you want.

As of Feb 8, 2003 Protocol Analyzer supports the following protocols: NEC (one and two device word versions), RC5, JVC, and JVC1. For unsupported protocols it prints uprocessed timing of the signal. All times are in microseconds, odd fields are duration of bursts, even fields are duration of pauses. Download Protocol Analyzer