JP1 - Just How Easy Is It? - KM Version
JP1 is a home-made process that you can use to re-program your UEI remote (ie, One For All and Radio Shack, and other brands) from your PC. Not only does it allow you to manage your macros, etc in a much easier way than doing it on the remote itself, it also lets you customize the remotes in ways not previously possible and it lets you add upgrades which let the remote to control devices it would not otherwise control.
Why Do I Need JP1?
If you have a JP1 compatible remote, but it doesn't control all of your devices, you need JP1 so you can add upgrades which will let your remote control those devices. While some UEI remotes are equipped with modems that allow you to download upgrades over the phone (or web), this only works if UEI has already developed an upgrade for your un-supported device. With JP1 you don't need to wait. In most cases, someone else has already developed an upgrade that you can use, and even when there's no upgrade available, you can easily create one yourself, as I will describe in this document.
What Equipment Do I Need?
Well, for starters, you need a JP1 compatible remote, these are remotes made by UEI. The two main brands that you will find in the stores are ‘One For All' and ‘Radio Shack', but there are several other remotes out there that are also JP1 compatible. To see if your remote is JP1 compatible, open up the battery compartment and see if there's a 6-pin conenctor in there (like the one below). If you see 6 holes rather than a 6-pin connector, you remote probably needs extra parts to be JP1 compatible.
Next, you need a JP1 cable.
There are currently two types of JP1 interfaces - referred to as simply 'JP1' for the older style interface and 'JP1.x' for the newer style interface. You can determine which version you have by referring to the remote control spreadsheet available here:
While it is possible to make a parallel port JP1, or serial port JP1.x interface fairly easily yourself, for most people it's simpler to just buy them ready made.
Windows, Mac and Linux based machines are all supported at this time.
Finally, you will need the JP1 software, which you can download for free from the JP1 file section. It is also beneficial if you have MS Excel (97 or newer) as some of the JP1 tools are really Excel spreadsheets. (The Excel based tools will not work with Open Office).
How Do You Use IR.exe
This is the program that you use to communicate with your remote. You can use it to download your current programming, you can save a copy of your current programming on your PC as a backup, you can make changes to the programming, including adding upgrades, etc and you can re-load it to your remote.
First, download the program IR.exe from the Tools folder. Unzip the contents of the file into a folder on your PC. Next download the current set of RDFs, also from the Tools folder and unzip these into a separate folder. Finally, you will need to establish a link between the RDFs and IR.exe. To do this, fire up IR.exe and select File > Set RDF Path, this will bring up a standard Windows pop-up screen where you can select the folder you created for the RDFs. You will also need to download the DecodeIR.dll program, which you can either store in the same directory as IR.exe, or better yet, you should store in your Windows / System directory as it is used by several other JP1 programs.
I am going to show some screen shots of the IR.exe program, if you want to walk along with these, you can open the file ‘FromRob.txt' that's included in the IR.exe zip file.
First things first, start up the IR.exe program and, with your remote connected to the JP1 cable, click on the ‘Download From Remote' button. You should see a screen somewhat like that shown in Image 2.
You'll notice that the IR.exe program is deviced into several tabs. The actual tabs displayed will vary by remote, for example, if your remote doesn't have learning, the learning tab may not be displayed.
I am now going to briefly describe some of the main tabs that you will use, but I will skip a couple that I will cover later.
With the General Tab selected, you can see what setup codes you have assigned to each of the device buttons on your remote (eg, on this remote, the TV/0156 code is assigned to the TV button). You can also see how any of the other settings have been programmed (eg, on this remote, Volume Punch Thru is turned on and is set to the TV device)
Key Moves Tab
"Key Moves" are buttons programmed using the Key Mover function, which can either mean the button was copied from another button, or it was programmed using an advanced code. This tab shows you all the keymoves programmed in this remote. You can also edit, add or delete keymoves from this tab.
As the name implies, this tab shows you all the macros you have programmed.
Learned Signals tab
This tab shows you all the buttons that you have programmed using the remote's learning function. In addition to showing you which buttons hold learned signals, it also shows you what those learned signals look like, but more on that later.
How Do You Add an Upgrade
If you have an unsupported device, take a look in the file section of our Yahoo group and see if there's one ready-made that you can use. Remember, you don't typically need to find an exact match on the model number of the device as most major brand manufacturers use the same IR signals for all similar devices (ie, for all TVs, etc).
The URL for the file section is: http://www.hifi-remote.com/forums/dload.php
If you find a file you can use, you need to open the file using either KM (Keymap Master) or RM (Remote Master), both of which can be downloaded from the Tools folder.
I will decscribe here how to use KM, which requires MS Excel 97 or greater. If you would like similar help with RM, you can find a version of this document which has been altered for RM here:
Let me warn you in advance, the KM spreadsheet does look quite intimidating, this is because you can use it to create brand new upgrades, but when all you need to do is load a ready-made upgrade, which is what we're doing here, you can ignore 90% of what you see in KM. Also, when you open KM you will get a pop-up message asking you if it's OK to run macros, you should answer "yes" or KM's buttons won't work. If you don't see a pop-up message and the buttons don't work, it means you have your security setting too high.
Image 3 shows what KM looks like when it's first opened. Use the LOAD button (circled in red) to select the upgrade file that you downloaded from the file section. Loading the file will automatically populate all the required fields in KM. For this example I am going to load one of the files for ReplayTV. Image 4 shows what KM looks like with an upgrade loaded, and I know what you're thinking; SCARY!
Well, I agree that there sure is a lot of hex data all over the place, but you'll be pleased to know that the only part of this screen that you need to worry about at this point is the one circled in red. I'll talk about the sections circled in green and blue later.
Use the "Remote" drop down menu to change the selected remote to the remote you are trying to program. This is the only setting that you really need to change. You can change the "Device Type" setting if you want, and you can change the "Setup Code" number, but you don't need to. For now, you can ignore everything else on this screen.
The next screen in KM that is of interest to you is the "Functions" tab. Image 5 shows what the Functions tab might look like. The entries listed here are all the functions that the user who created this upgrade chose to include. Hopefully this is a complete list, but that's not always the case. If you have additional codes that you have obtained from elsewhere, you can add them here. Note that the column next to the function names is labelled "OBC" (which stands for "Original Button Code"). If the additional codes you have are actually advanced codes, you will need to switch to "EFC" mode, which you can do using the circled "Swap EFC/OBC" button.
The next screen of interest is the "Buttons" tab, as shown in Image 6. On this screen, you can check that the functions are assigned to the buttons of your choice. Remember, just because it made sense for the buttons to be assigned the way they are for the original selected remote, doesn't mean it will make sense for your remote. You assign the functions using the drop down menu items.
Note: if a button is greyed out, it either doesn't exist on your remote, or it's not possible to program it.
Once you have entered any addition functions that you have codes for, and have assigned the functions to the buttons of your choice, you are ready to load your upgrade. To do this, go back to the main Setup tab. The block of code circled in green (in image 4) is your device upgrade, click on the button in the upper left hand corner of this block to ‘copy' the code. This button will also transport you over to the IR.exe program. (Note: you can also ‘copy' the code by highlight it, and selecting ‘Copy' from the ‘Edit' menu item.).
Back in IR.exe you will need to select the "Devices" tab, as shown in Image 7. This is one of the tabs that we skipped over earlier. Press the ‘Add' button and paste the code that you copied into the pop-up window.
The ‘paste' function will automatically populate the Device Type and Setup Code boxes, even though IR will let you change these settings, it's not a good idea to do so. If there are keymoves associated with this upgrade, those will get populated into the Key Moves / Macros box.
If KM displays a protocol upgrade (in the area marked with a blue circle in Image 4) you will also need to copy this over to IR. You can use the button in the upper left hand corner or you can use the manual ‘copy' function. Then in IR you will need to go to the Protocols tab. Click the ‘Add' button and then paste the protocol code into the pop-up window. The Protocol Id field will be populated automatically.
Don't forget to assign the new setup code that you created to an actual device button!
How Do You Create An Upgrade From Scratch
If you have an unsupported device, and you you can't find an upgrade file for it in the file section, your next step is to create one yourself. If you have a JP1 remote with learning, this is easy to do. If you don't have a learning remote, all is not lost. I'll discuss what you can do in that situation a little later.
To create an upgrade yourself, here's what you do. First, download your remote's current memory and save it. You can always use this file to restore the remote to it's current condition later, if needed. Next, delete any learned signals that are already in the remote. The easiest way to do this is to go to the "Learned Signals" tab in IR and click the "Delete All" button, then reload. To do it using the remote itself, for non LCD remotes, you can use the 980 command, and for LCD remotes, you can select "OPS RESET" from the LCD menu screens.
Next up, you'll need to learn as many buttons from your original remote as you can. Most JP1 learning remotes can only learn about 24 buttons before the memory is full, so it's probably going to take a couple of passes to capture all the buttons from the original remote. I recommend that you start off learning all the buttons that have equivilent buttons on the JP1 learning remote (eg, the numeric buttons, volume and channel buttons, etc). When you reach the memory limit, download the memory and save the file. Then delete all the learned signals like you did before and continue learning. As soon as you reach the memory limit again, or you run out of buttons to learn, download and save the file. When you start learning the more unusual buttons from your original remote (eg, ANGLE, ZOOM, etc) be sure to make a note of which button you learned them to on your JP1 remote.
Once all the buttons are learned, you can start the process of decoding them. To do this, go to the "Learned Signals" tab in IR. You will see all your learned buttons listed in the column on the left. When you click on one of these entries, the infra red info will be displayed on the right, as shown in Image 9.
In image 9 you can see that the RECORD button in AUX1 mode has been selected. In this case, IR was successfully able to decode the signal and has displayed the IR info. This signal uses the NECx2 protocol, with a device code of 5 and a sub-device code also of 5. Chances are, all of the buttons for this device with use the same protocol and device codes, what will change for each button are the OBC and EFC codes. Just FYI, this is the ‘record' button for a Samsung VCR, which responds to the VCR/0240 setup code.
To start creating an upgrade for this device, you should fire up the KM spreadsheet. Then in the Setup tab, you should make the entries described in the following table. Image 10 shows KM's Setup tab after all the correct entries have been made.
|Remote||Select the remote you are programming.|
|Device Type||Select the type that most closely matches the device you are programming. In this case we'll select VCR.|
|Setup Code||As we already know that this VCR responds to the VCR/0240 code, the standard convention for upgrades is to add 1000 to that, giving us VCR/1240. If there's no official code that works your device (as far as your know), use 2000 or greater for this entry. (The max value is 2047)|
|Button Codes||Select either OBC or EFC. This determines which style of code you will use to enter the functions. In most cases it doesn't matter which you select.|
|Protocol Name||Select the protocol displayed in IR. In this case we'll select NECx2. If you're unsure which protocol to use, consult the readme file that's in the KM zip file.|
|Main/Sub device||Enter the values displayed in IR, in this case we'll enter 5 in both. The displayed labels for these boxes varies based on the selected protocol.|
|Upgrade Description||This is the box above the row of buttons, enter a brief description of the device being programmed. In this case we'll enter "Samsung VCR"|
|Notes||This is the data block to the right of the screen. You can use this space to enter any notes about this upgrade that might be useful to you or to someone else who later uses this upgrade.|
So far so good, now you need to go to the Functions tab and enter the data for all the buttons that you learned. It's a good idea to understand KM's terminology at this point. The word "Functions" refers to the buttons that you learned from your original remote, you can use the exact names as printed on your original remote, or you can expand it a little to make it easier to understand. For example, you might have a button labelled "CHP/TME" but it might be a good idea to enter it as "Chapter/Time". Alternatively, you could enter it as "CHP/TME" then make an entry in the Notes column to describe what it does. When KM refers to "Buttons", it's referring to the buttons on your JP1 remote, not your original remote.
When you first go to the Functions tab, you will see a lot of function names already entered, as shown in image 11. These entries are just defaults designed to save you some typing, you are under no obligation to use them. You can delete them all if you like.
Using the example of the RECORD button for my Samsung VCR, I can now enter the OBC code (as that's the Button Style I selected in the Setup tab) of 20 next to the default entry for the RECORD button. Once you've entered all the standard buttons for your device, you can delete all the remaining entries. For the more unusual buttons, you will need to create new entries for them. Please enter the data for all the buttons on your original remote, even if you have no intention of programming them to physical buttons.
Once you have entered all the info for your learned buttons, your next step is to go to the Buttons tab. Here you will find that several of the functions you entered have already been assigned to buttons. The ones that get assigned automatically are the ones where you used the default function names and there's an equivilent button on your JP1 remote for that function. You are under no obligation to accept these default assignments, you can use the drop down menu items to re-arrange them as you see fit. You can also use the drop down menu items to assign the rest of your functions to physical buttons.
Image 12 shows the Buttons tab. You'll notice that the list of functions that you entered in the Functions sheet is displayed in the column F. Once a function has been assigned to a button, the entry for that function is shaded out. In image 12 you'll notice that the TAPE SPEED function has not been assigned and I am using the drop down menu item to assign it to the TV/VCR button.
If the button name in column B is greyed out, it means this button is not available on your remote. If the button is preceeded by a "@", it means that it cannot be included in the upgrade and will be programmed using a keymove instead. All functions assigned to shifted buttons (in column D) will be programmed using keymoves.
If you find that many of the buttons that you want to program are preceeded by the "@" symbol, it might be a good idea to try using a different Device Type. If you go to the "Layout" tab, you will see all the available Device Types and which buttons are available in each of them. Maybe there's a device mode available that has more buttons included that you can use. You won't always want to pick the mode with the most buttons, just pick the mode that has the most buttons that you wish to program included. There are a couple of things to consider before you chose a different device type though. First off, if you use a device type that is different to the default device type for the device button that you're intending to program, it will break VPT (Volume Punch Through). This may or may not be of concern to you. Secondly, if you are programming a remote with an LCD screen (like the 15-2116, URC-8910, etc), the mode you pick is what will be displayed on the screen when you select this device. So for example, if you are creating an upgrade for a VCR and you use CBL as your device type, "CBL" or "CBL2" is what will appear on the screen when you press the VCR device button. Again, this may or may not be an issue for you.
Once you've finished entering all the functions and assigning them to buttons, you should return to KM's Setup tab. Here you should press the SAVE button, which will enable you to save all of your work in a text file. In order to be a good citizen, you should then load this file into the appropiate folder in the Yahoo group for others to share.
Finally, you should copy this upgrade over to IR following the same procedures outlined in section 5 of this document. Don't forget to assign the new setup code that you created to an actual device button!
If you don't have a learning remote
There are sometimes other ways to get the required data. If you have found a setup code that works some of the functions, post a message in the forums mentioning what that setup code is and one of us will give you the data you need.
Another good source for this data in the Pronto file section at Remote Central. If you can find a file there for your device (remember, you don't necessary need to find an exact match for the model number of your device), you can download the file and run the DecodeCCF program against it. This program will create a text file, that you can open with a spreadsheet program such as Excel, that lists the protocol and other codes for all the learned signals contained within the CCF file.
I hope this document has helped show you how easy using JP1 can really be. I was inspired to write is because of the numerous posts I have seen in the forums where people say "I know I can do it with JP1, but that looks too difficult for me".
I hope to see you in the forums: http://www.hifi-remote.com/forums/
Summary 1 - Loading an Upgrade
- Download the upgrade file from the File Section.
- Load it into KM using KM's "LOAD" button (in the Setup sheet)
- Change the remote to your remote.
- Enter any addition functions that you have codes for in the Functions sheet.
- Re-arrange the buttons as you see fit in the Buttons sheet.
- Copy the code blocks from the Setup sheet over to IR.
- Assign the new setup code to a device button in IR and re-load into your remote.
Summary 2 - Creating an Upgrade
- Learn the buttons from your original remote and download using IR.
- Go to KM's Setup sheet, click "NEW" if there's old data there.
- Select your remote, pick a device type, chose a setup code, select the correct protocol and enter the correct device codes.
- Go to the Functions sheet and enter the OBCs or EFCs for all the functions that you learned.
- Go to the Buttons sheet and assign the buttons as you see fit.
- Copy the code blocks from the Setup sheet over to IR.
- Assign the new setup code to a device button in IR and re-load into your remote.
We hope this document has helped show you how easy using JP1 can really be.
We hope to see you in the forums: http://www.hifi-remote.com/forums/