Home arrow Consumer Electronics arrow Tivo arrow The JP1 Interace - Hacking Your Remote 02 December 2008  
Main Menu
Home
News
Forums
Downloads
Contact Us
Search i-hacked
Become a Member
- - - - - - -
Computer Components
Consumer Electronics
Electronic Projects
Game Systems
Cell / Phone
Car / Home
Misc
- - - - - - -
Info and Contests
Reviews
Login Form





Lost Password?
Latest Edge
Advertisement
Privacy Policy
Vote for us in Top 100 Security Sites
Click here to Vote!
Newsflash
The JP1 Interace - Hacking Your Remote Print E-mail
Written by http://www.hifi-remote.com   
Monday, 27 September 2004

{mos_sb_discuss:18}



The JP1 Interface - Intro

Information obtained from & Special thanks to: http://www.hifi-remote.com

1. What is JP1?

JP1 is a home-made process that you can use to re-program your UEI remote (ie, One For All and Radio Shack 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 overcode some of the silly restrictions that are programmed into these remotes and it lets you add upgrades which let the remote to control devices it would not otherwise control.

2. 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 equiped 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.

3. 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. I personally recommend the Radio Shack 15-2117 / 15-2116 IR/RF remote, because it sends both IR and RF signals so you can control all your devices from anywhere in your house. However they are becoming hard to find, because Radio Shack discontinued them. However, any JP1 enabled remote will work just fine.

The JP1 interface can be either a box or a cable which you can use to hook up your universal remote to your PC (sorry, you can't use a MAC at this point). Then using some of our custom software you can make a backup of your current configuration, which you can then transfer to another similar remote if you wish. You can add device codes for any equipment that you may have that doesn't have a working code in the remote. If you had to use many advanced code to get a particular device programmed to your satisfaction, you can simply create a new device code for it with all the buttons mapped out just how you like them, which will free up all that memory that you were using for the advanced codes, for other things, such as macros.

People using the Radio Shack 15-1994 remote can use the 'Plug & Power' device button for any device they like, not just X10 and CD devices. They can set the volume punch through to any device, not just to the TV. You can program functions or macros to the shifted versions of the device keys.

Several devices use codes from multiple device codes, so when possible we will create sprecial protocols which will allow you to combine these codes into one code for your remote.

And when you are finished re-programming your remote, you can look at your configuration using our software and you will be able to see exactly what you have programmed, something you definitely can't do without the JP1 interface. Then if you wish to tweek the setup later, it's easy. For example, if you decide that you need to add one single step at the beginning of a long macro that you have programmed, without the JP1 you would have to delete the macro and start over, but with it you can simply add the step, re-load and go!

Tempted yet?

The next step is to join the JP1 group at Yahoo Groups, this is where we discuss our findings and where we store all of our files. There is a huge file section here where you will find many upgrade codes that have been pre-prepared by other members, so the chances are good that all the codes you need are already there, but even if they are not all there, we can help you create a new one for the rest of your equipment.

After you have joined the JP1 yahoo group, we need to make the JP1 Interface..




The JP1 Interface - Building it

Information obtained from & Special thanks to: http://www.hifi-remote.com

GENERAL DESCRIPTION. The Simple interface eliminates the buffer amplifiers of previous designs and instead connects signal lines to/from the PC's parallel port directly to the remote control. It is fully compatible with all existing software (IR.exe and RemoteIf.exe) and works with either 3-volt or 6-volt remotes. The interface will pass the "Check interface" test with or without batteries installed, but to upload or download memory requires batteries. Under certain circumstances you may not be able to operate the remote control while it is connected to the interface. This won't make any difference if all you want is the capability to upload or download, and don't mind unplugging JP1 to test your programming. Section 5 explains why this might occur and what you can do about it.

 

ASSEMBLY. The following parts are required:

ITEMQTYDESCRIPTION
1.1DB25 male connector with either solder pins or crimp connections
2.1DB25 connector hood, any size or shape
3.1Signal diode, 1N4148 or equiv. (Radio Shack 276-1122)
4.2Resistor, 10K 1/4W (Radio Shack 271-1335)

Although not listed above, you will also need a 6-pin JP1 mating connector with cable. Various sources and methods for making this have been described in previous messages. One popular approach is to use a surplus ribbon cable assembly with IDC connectors, such as an IDE disk drive cable, saw off a 1/2-inch length of connector and leave contacts for just six wires in the center. Refer to the file entitled "6PinConnector.zip" in the Files/Interface Designs section at the JP1 site. The cable should be no longer than six feet.

Step 1
Trim away about 3/4 inch of the cable coating from one end (image 1) and about 1.5 inch from the other end and cut short the black and white wires (image 2). Using wire stippers, strip back about 1/4 inch of the coating on each of the individual wires, then twist the black and white wires together (image 3).

 


Image 1

Image 2

Image 3

Image 4

Step 2
Cut down the two resistors to size, and bend the diode into shape to fit between pins 2 and 11 of the DB25 connector (image 4 - above). See the connections diagram below (image 5) to see how these will all fit together.

 


Image 5

Step 3
1. Solder the black and white wires together.
2. Put some melted solder into cups 2, 3, 4 and 11 of the DB25 connector.
3. Solder the two resistors into cups 3 and 4.
4. Solder the green wire into cup 11.
5. Solder the diode into cups 2 and 11. Note that the solid black bar on the diode should be closest to cup 2. Also, shape the diode so that the part that connects to cup 2 crosses the solid portion of the two resistors, so that no electrical contact is made.
6. Put some melted solder onto the free ends of the two resistors, then solder the yellow and blue wires to them. The blue wire connecting to the resistor in cup 3 and the yellow wire connecting to the resistor in cup 4. 7. Turn the DB25 connector over and put some melted solder in cup 25, then solder red wire red wire into this cup.

When this step is complete, your cable should look like this....

 


Image 6

Step 4
You should now use electrical tape to close off the black and white wires that have been soldered together and to make sure that all the other parts cannot touch each other. You should now take the two wire holders and clamp them onto the cable, you should turn one of them the wrong way around so that they can effectively clamp this cable, as it's much thinner than the cable they were intended for. Then you can fit the DB25 connector into one half of the DB25 shell (as seen in image 7). Before you close up the DB25 shell, take the two screws that have a ridge in the middle and insert them into the two square shaped washers, then position these two screws into the holes on either side of the DB25 connector. Now position the other half of the DB25 shell in place and use the remaining two screws and nuts finish it.

 


Image 7

Step 5
The final step is attaching the IDC connector. First, pop off the clamping bridge from the IDC connector. Then position the wires onto the groves for each pin, be sure to have the side of the IDC that has the groove cut away facing you, then you can see the triangle arrow that indicates pin 1. Be sure to position the white wire on pin 1, and have the cut end of the wires facing you at this point also. Then re-attaching the clamping bridge and push it down until it clicks into place (making sure that you don't dislodge any of the wires from their position while doing this).

Now, bend the wires back across the top of the clamping bridge and attach the strain relief over them, and push this down until it clicks into place. (images for this part coming soon). Congratulations, you have now built your interface cable, now it's time to test it!

If it doesn't work, refer to the troubleshooting guide in Tommy Tyler's "Simple Interface" instructions.

Ok, so now we have a working interface, lets talk about how to use it!

The JP1 Interface - Using It

Information obtained from & Special thanks to: http://www.hifi-remote.com

4. 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.

 


Image 2 - IR.exe's General Tab

General Tab.
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.

Macros 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.

 

5. How Do You Load 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://groups.yahoo.com/group/jp1/files/3. Device Codes/

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. 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 - KM's initial screen.

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!

 


Image 4 - KM with an upgrade loaded.

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.

 


Image 5 - KM's Functions Tab

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.

 


Image 6 - KM's Buttons Tab

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.

 


Image 7 - IR's Devices Tab - Add pop-up Screen.

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!

 


Image 8 - IR's Protocols - Add Pop-Up Screen

6. 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.

 


Image 9 - IR's Learned Signals Tab

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.

 

RemoteSelect the remote you are programming.
Device TypeSelect the type that most closely matches the device you are programming. In this case we'll select VCR.
Setup CodeAs 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 CodesSelect 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 NameSelect 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 deviceEnter 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 DescriptionThis 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"
NotesThis 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.

 


Image 10 - The beginnings of an 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.

 


Image 11 - KM's Functions Tab - default screen

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.

 


Image 12 - Assigning functions to buttons in KM's Buttons screen

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 (available in the Yahoo file section) 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.

In Closing

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".

Good luck,
Rob
http://www.hifi-remote.com

Summary 1 - Loading an Upgrade

  1. Download the upgrade file from the Yahoo group.
  2. Load it into KM using KM's "LOAD" button (in the Setup sheet)
  3. Change the remote to your remote.
  4. Enter any addition functions that you have codes for in the Functions sheet.
  5. Re-arrange the buttons as you see fit in the Buttons sheet.
  6. Copy the code blocks from the Setup sheet over to IR.
  7. Assign the new setup code to a device button in IR and re-load into your remote.

Summary 2 - Creating an Upgrade

  1. Learn the buttons from your original remote and download using IR.
  2. Go to KM's Setup sheet, click "NEW" if there's old data there.
  3. Select your remote, pick a device type, chose a setup code, select the correct protocol and enter the correct device codes.
  4. Go to the Functions sheet and enter the OBCs or EFCs for all the functions that you learned.
  5. Go to the Buttons sheet and assign the buttons as you see fit.
  6. Copy the code blocks from the Setup sheet over to IR.
  7. Assign the new setup code to a device button in IR and re-load into your remote.

{mos_sb_discuss:18}

Last Updated ( Sunday, 31 October 2004 )
 
Related Items
I-Hacked's Most Popular
2006 I-Hacked T-Shirts
 I-Hacked T-Shirts
Have been released, Now with
3 versions!

Check them out here

Latest Articles
Top of Page

If you see information here that you know is inaccurate, out of date, misleading, confusing, or just blatantly wrong, please let us know. Updates and corrections are reviewed and updated as they are received.

 
Disclaimer
I-hacked.com does not take any responsibility with the information presented. Any information provided on this site is not guaranteed in any way. Some articles may discuss topics that are illegal, so this information is provided for educational purposes only, use at your own risk. If you blow up your car, home, computer, or anything else -- it's not our fault, use good judgement and play nice.


© I-Hacked.com LLC