Building JP1 Remote Updates
(From A Newbie's Viewpoint)

It's been an interesting and often frustrating road to learning the entire JP1 process from step one.  The help in the jp1 forum has been great and prolific (especially from RobMan) but, as with any new process, reading instructions from those who have already learned the advanced bits, it's often impossible to seen the trees for the forest.

The following are some thoughts remembered from the very first steps... simple steps that may have appeared obvious when looking back, but were totally invisible when I started the process.

The following points refer to building a new upgrade from learned codes using KeyMapMaster

The steps below are far from complete, but, rather, dwell on the parts of building an upgrade that were difficult for me to understand and to find help references for.

When working with "learned codes" (which are those codes that you capture by using the universal remote's ability to learn a button press from an OEM's original remote,) understanding the following concepts were important.

This is the non programmable remote that ships with most devices such as TV's and DVD players from which you will be copying "learned commands" to use in creating custom "Upgrades"
UPGRADE Programmable Remotes such as the OneForAll series contain hundreds of OEM Remote control "definitions" in their ROM chips which can be selected to set up an approximation of the OEM remote when a device button is selected.

Since so many new IR controllable devices are being produced every year, even the newest progammable remotes may not contain codes for newer audio/video devices plus other equipment such as projectors and satellite radios are not normally part of installed codes.

As a result, the manufacturers of progammable remotes have been providing remote "upgrades" which can be installed by returning them to the mfg or, with the more expensive units, by telephone.  As a result, custom remote definitions created by users using JP1 tools such as KeyMapMaster and Remote Master are also referred to as "UPGRADES"

FUNCTION When you press a button on the original OEM remote, doing so is implimenting a "function" that is transmitted as an ir signal.  For example, pressing the TV remote's "channel up" button triggers a "function" in the TV... the channel is changed to the next higher selection. 

A another, more relevant, example is pressing the "aspect ratio" button on a high res tv or video projector.  Pressing this button controls the "aspect ratio" function on the device, but a programmable remote is unlikely to have a button labeled "Aspect Ratio"  The lack of a matching button label doesn't matter, as the "function" of the original button is to control the aspect ratio.

It's important that you understand that what you are capturing are the "functions" that control the operation of a device rather than the names on the buttons.

NOTES It's highly unlikely you will remember the button presses you "learn" when capturing all of the button presses on an OEM remote, so, you will have to both start with a plan, and also keep extensive notes the first time through on how the buttons on the learning remote will match the buttons on the OEM Remote.
A "Device Button" is the button at the top of a multifunction remote that selects the "device" which will be controlled... i.e. TV, VCR, DVD, CD, etc.

TIP In the beginning, capture all of the learned commands to the buttons assigned to a single "Device Button" such as CD to keep things as simple as possible. 

It is not necessary to match the name on the "device button" to the remote you are learning, but you should use one such as CD or DVD that includes buttons (play, rew, etc) which your device may use.

LAYOUT Match the basic buttons, such as the power, volume, mute, channel and the cursor pad, but, beyond that, it's probably easier to match the button layout than trying to match the button labels, especially if the functions are advanced or "not standard" such as "keystone"

For example, most remotes have either a number pad or twelve buttons ordered exactly as a number pad is laid out... so match the button positions.  Continue this approach with other rows of buttons and remember to keep good notes.

TIP, remember that it's easy to get confused by the button orientation being reversed during the learning process. 

Using IR's "Summary Capture"

Download the captures to ir immediately while the layout is still fresh in your mind.

Next, run IR's File/Summary.  Scroll down to the "learned codes," then highlight and copy all of them.

Switch to either Excel or a text editor and <paste> the codes into a blank Excel worksheet.  Since the columns in the summary are "Tab Delimited" the data will be organized into worksheet columns.

(Note, if you paste them into a text editor, you will need to set the editor's "tab spacing" to 10 characters to keep the columns correct plus you will still have to edit the column headers to keep them in place.)

If you use Excel you can easily reorder the columns to make the layout easy for YOU to understand.

I suggest adding a blank column labled "OEM Function" next to the "Key" column and delete the "#" and "Device Button" columns as they are irrelevant if all of the codes were learned under the same device button.

Then, immediately fill in the "OEM Function" column with a description of what the code does when sent by your OEM remote.   Do this while the capture sequence is fresh and, when that column is finished, you can then also delete the KEY column or move it to the far right.

It's not immediately obvious, but the OEM Remote's "Protocol" will determine which of the following columns are important... for the Sony "Combo" Protocol, OBC was critical and the following rearrangement worked best for transferring the learned information from the ir capture into KeyMapMaster

Note that the additional "Top Row" and "Number Pad" "etc" entries were "key grouping" notes to  myself to help me refer back to which key was pressed on the OEM remote during the "learning capture."

OEM Funct   Protocol    OBC         Dev     SubDev

Top Row
Sleep       Sony12      96          16
Sel         Sony12      98          16
Set         Sony12      101         16
Pwr         Sony12      21          16

"Number Pad Section" (layout on the sony oem remote matching a number pad on most remotes)
Funct       Sony15      105         144
TunMem      Sony12      14          16
Disp        Sony12      75          16

Tape        Sony12      35          16
Fwd/Bak     Sony12      52          14
TStop       Sony12      24          14

TuneBnd     Sony12      15          16
Tune-       Sony12      17          16
Tune+       Sony12      16          16

CD          Sony12      37          16
PauPlay     Sony12      10          17
CDStop      Sony12      56          17
(end of Number Pad Section)

Clear       Sony20      15          26      57
Mode        Sony20      40          26      57
Repeat      Sony20      44          26      57
Enter       Sony20      124         26      57

cursor pad
Vol+        Sony12      18          16
Vol-        Sony12      19          16
EqSel       Sony15      99          144
Eq-         Sony15      121         144
Eq+         Sony15      120         144

transport keys
F-Rew       Sony20      48          26      57
F-Fwd       Sony20      49          26      57
Rew         Sony20      51          26      57
Rew         Sony20      52          26      57

Starting with KeyMapMaster
Setup Tab

The oem remote you choose to start learning with will arbitrarily present you with a random level of difficulty based on the IR protocol that remote happens to use.  In the above example, you see a mix of the Sony 12, 15 and 20 protocols, so after starting KeyMapMaster, the first step on the Keymapmaster SETUP tab would be to;

In the sample of collected codes shown in the above capture table, note that the subdevices ONLY appear after "Sony 20" protocol entries.

A second look at the columns will expose the fact that there is only one "Sony 20" SUBdevice and that is "57" so with the entry of "57" as shown in the yellow table, all of the protocols in the above learned codes have been addressed.

Protocol Help Tab

When a Protocol is selected in the first tab of KM, the "Protocol Help" tab will load a protocol help file specifically related to your current protocol selection... after you select the protocol, take some time to spend some time reading it with the understanding that you will probably have to reread it several times before the details fall into place and make sense.

When you Select "Sony" the "Button Codes" will turn red as a warning if "EFC" is selected as Sony codes must be entered as OBC values, so click that box and select OBC.

The KM "Functions Tab"

Time to start filling out the "Functions" table.  We'll start with the two simple Sony protocols (12 & 15)

The first column will contain the contents of YOUR "blank column" in which you added to YOUR descriptions of the button "functions" on the OEM Remote learned commands...

It's important here to understand that the existing entries in the first column are only suggestions and should be ignored or even erased to make things clearer on your first attempts.  You can select the column, then right click and  "clear contents" to begin with a clean slate..

For the Sony 12 & 15 protocols, enter the OBC value and the "Device Number" in the "Byte2" column.
Note that the order is not important and should be used only to make the layout clear for YOU.

To use two sample entries from the examples above;

OEM Funct   Prot        OBC         Dev     SubDev

Sleep       Sony12      96          16
PauPlay     Sony12      10          17

Again, note the "Device Number" goes in the "Byte2" column.

Now, onward to the "Sony 20" entry foibles.  Notice that, unlike the previous protocols, the "Sony20" have "SubDev" values

The sample table above shows the "Sony 20" keys as;

OEM Funct   Prot        OBC         Dev     SubDev

Clear       Sony20      15          26      57
Mode        Sony20      40          26      57
Repeat      Sony20      44          26      57

You now have to refer back to your protocol selection and entry on the first KM tab;

So, in this example, all of the Sony 20 entries are "57" so "Byte2" will be "1" (to match your subdevice selection shown above)

Can't stop there... KM has to also know the device number, so you add that after the "1" by adding a <space> and then adding the device number.

Believe it or not, the hardest part is now done.

If your "function names" might not be clear to others, take a moment fill in the "Notes" column to clarify the function names before moving on.

Buttons Tab

Click the KM "Buttons" tab.  The "OEM Functions" you have previously entered will now show up in the fourth column.

The first column (not editable) contains the buttons on the remote that you previously selected on the KM "Setup" tab and the second column entries are filled in by clicking them and selecting YOUR function names entered in the KM functions tab.

Note that as you select each button's function, the selected function name in column four is greyed out to assist you in not duplicating key locations.


Beginners Gospel
"Upgrades" (OEM Remote Programming Maps) used to program a remote tomimic an OEM's remote htttp://