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.
|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,
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.
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."
(end of Number Pad Section)
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.
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 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;
Again, note the "Device Number" goes in the "Byte2" column.
The sample table above shows the "Sony 20" keys as;
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.
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
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
|"Upgrades" (OEM Remote Programming Maps) used to program a remote tomimic an OEM's remote||htttp://www.hifi-remote.com/forums/dload.php?action=category&cat_id=4|
|IR Apps and rdf's (definition of Porgrammable Remotes) used to tell apps how to build the binary upgrades for each type of programmable remote||http://www.hifi-remote.com/forums/dload.php?action=category&cat_id=7|