How to Create Custom Remote Controls and use them on your Slingbox

From JP1 Remotes
Jump to: navigation, search

Written by: Al Richey

One of the most common posts on the support site is about remote codes for unsupported devices. So if you find yourself in this situation I hope this will help. Before detailing the steps to go through there are some basic things you need to understand (this isn't essential reading but everything will make much more sense if you do know the details)


Background information

Different UEI Chips

There were five different chips used in Slingboxes. These are designated as JU, PK, PL, RV & JB. If you want to check your type you can verify your IR blaster version in the Slingbox Properties dialog. Then match the IR version number with the chip type using the chart below.
  1. JU (VERY old US boxes)
  2. PL (current US boxes)
  3. PK (never used)
  4. RV (old European boxes)
  5. JB (All modern Slingboxes, but compatible with PL files)

So unless you have an old European Solo all you need is the PL file.

Slingplayer Compatibility

In older versions of Slingplayer it was possible to change the look of the Custom Remote skin‟. Since Slingplayer V1.5 this functionality has been removed and as far as the look of the Remote is concerned you are stuck with the Generic design produced by Sling Media. All we can do is change the codes that are sent when a specific button is pressed. One drawback of the Generic Remote is that it has only the main buttons, so extra buttons on other remotes (such as Audio/Setup…) can not be mapped directly. What we have to do is put them into a Custom Menu which is accessed by tapping on the Menu button on the Generic Remote or right-clicking on the image. (Note: If a remote image has already been produced by Sling it is possible to use that image instead of the generic image, just contact me at

Setup Code Nomenclature

When you run the Configure Inputs routines in the various Slingplayers and select a supported device, what actually happens is that a Binary Code is downloaded to the Slingbox.

This Binary Code details the IR codes that are sent when a specific button is pressed on the remote. Unfortunately the native Slingbox software doesn't use separate binary files that we can edit, their codes are apparently compressed and packaged into special files that we can't do anything with (that I know of). But what we can do instead of editing the built-in codes is to use a separate external upgrade code file. These files have the format such as "C1234_PL.BIN".

The first letter of the file describes the type of device, the main ones we are interested in are:
V which is for VCRs, which encompasses PVRs, DVRs and other recorders
S which is for Satellite and FTA set top boxes
C which is for Cable boxes
Y which is for DVD Players
This is followed by a 4-digit code number. For Slingboxes the code numbers can be between 0000-2047 (actually higher in newer Slingboxes but to stay safe we are better staying below 2047). In general, codes below 2000 actually relate to specific boxes, for example V0618 is the code for a TIVO and D0032 is the code for a Pioneer CD Player. But we can feel fairly safe using 2000-2047 for our own codes. The final part of the filename defines the chip for which it will run.

So if you were looking for the binary file for a PVR with a code number allocated 1234, designed to run on a PL-equipped Slingbox, you would be searching for a file called V1234_PL.BIN. Note: You must NEVER change the name of the file, as the letter, code number and chip type are also defined inside the file itself.


You will hear a lot about "JP1". Basically this is a process whereby people using "One For All‟ (OFA) remote controls can add new codes to their remotes from their PC. The remote control processor inside the Slingbox is made by the same company that makes OFA remotes, so the upgrades are similar. The JP1 tools have been upgraded so that we can now use them to create and modify upgrades for the Slingbox.

The Basic Procedure.

The official procedure to follow is to report the Lack of a Supported Remote to SlingMedia and they will add it to the database. In practice, they are not quick at doing this (I have been asking for a remote for over 4 years now), and the updated remote list seems to be only occasionally updated. That may change in the future but for now it is really not a practical quick solution.

So for a short term fix what you need to do is to create or acquire the correct Binary code file for your A/V device, and then install it into your Slingbox. This installation process is covered in detail in Section 4, so first let‟s see where you can look for these files.

Obtaining the Binary file for the Custom Remote

  1. Before starting, make sure in the setup wizard you have tried all the devices by that same manufacturer, even if the model number does not match, and all the associated code numbers. It's also worth trying your TV Provider in case they have 'badged' someone else's box. You might be lucky and find one that works and that will save a lot of work. If that doesn't solve the problem here is the step by step approach to getting hold of your binary file:

  2. Go to the JP1 forum. This has a specific Download area for Slingbox Custom Remotes, so go through all those to see if your device has already been done.

  3. If it isn't there the JP1 forum also has a more general File Download Area. From this page you select the download area for the specific type of device and check there. If you are lucky you will find a source file for using in the program RemoteMaster (RM or KM files), the use of which is discussed in Section 6.

  4. Have a look on the Hava forums. They are also using the same chips and the files might be there. Check out this forum. You‟re looking for a PK or PL file. They can be imported into Remote Master and then converted to the PK, PL, RV or JU files for the Slingbox. Again this is discussed in Section 6.

  5. Do it yourself by buying a Nevo C2, or an IR Widget, and learn the codes needed to control the device. How to do this is covered in Section 5 & Section 6.

  6. Ask someone else to do the work for you. You can try this by posting a request for help in either:
    1. The Slingbox Answers Forum.
    2. The JP1 forum.

I can normally install your device on my Harmony Universal Remote to mimic the original Remote and learn the codes for you (unless I am away on holiday).

Installing the Binary file to the Slingbox.

I have written a comprehensive Installation Guide at

Once you have completed the setup and the BIN files have been downloaded to the Slingbox they are not used any more and can be deleted.

Learning the IR codes from your own remote.


Assuming you have decided to create the Remote Binary File yourself, the first stage is to learn the codes from your original Remote. This is what you need:


  1. A computer with a USB port.

  2. A A Nevo C2 Learning Remote (Available on E-Bay for $20 or so) or alternatively
An IR learning "widget". I got mine from Tommy Tyler through (My preferred solution).


If you are using the Nevo C2:

RDF Files These are support files for the program.

If you are using an IR Widget:

The drivers
The IR decode DLL

Or download my full IRSCOPE/REMOTEMASTER package.

Much of the JP1 software needs the java runtime environment (JRE) as well. A lot of computers will already have it installed already, but if you need it you can download

Now we can learn the codes. First we will cover the procedure using a Learning Remote, then cover it using an IR Widget.


Getting the Codes from your Remote

Follow the instructions to learn your remote codes so the Nevo C2 operates your device. Then download the settings file onto your PC.

Getting the Codes onto your PC.

  1. Install RMIR.EXE onto your PC. It comes as a ZIP file rather than an installation package, which you need to unzip to your PC. The files can actually go anywhere but as a bit of tidy person (geek?) I created a C:\Program Files\IR\ folder and put the files in there. Now go into the folder and click on Setup.vbs and that will produce shortcuts to run RMIR and RM (Full instructions are at
  2. You will need to create a sub folder called \RDF\ in whatever folder you have put the IR program and extract the RDF support files into that folder. Again, refer to the instructions.

Now plug your Nevo into the PC and start RMIR. Use the Remote > Download Remote menu option to get the data from the Nevo to the PC.

Under the Devices Tab you should now see the device. Select it, then use the Edit Device button and then the Save As button to produce the required RMDU file.

You can now post that file to the forum where you requested the remote, or if you want to do it yourself then go to the next Section.


If you are using an IR Widget there is an excellent guide here on the Tindle site. So I suggest you download that and read it thoroughly. There is no point in repeating it here, but just to emphasise a few points:

  1. You will want to regularly check for updates to the decodeir.dll. As new protocols are recognized, this dll will change.

  2. There is no way to save the learned values for importing into RemoteMaster (where you will make the remote) so you will need to write them down.

  3. Although I tend to put programs into C:\Program Files\.... this can be a bit dodgy in Windows as programs cannot save files to this area because of security limitations. So it might be safer to install it under \Documents\

  4. The Guide has a very useful section comparing using a Learning Remotes and the IR Widget and highlighting the differences, (For example "Key" is equivalent to "OBC") so you could check out the previous sub-section covering using IR.EXE and the Learning Remote. And then you will understand this section. When complete you can move onto Section 6 to create the Binary file.

Creating your own Binary files using RemoteMaster

  1. To make life easier I have packaged a full set of the latest files required and uploaded them to my site. Just download them from here and unzip them onto your computer.

  2. Start RemoteMaster.EXE. You may be promoted to highlight the folder the folder that contains the RDF files (Highlight the \RDF\ folder in the folder where you placed Remotemaster). You may also have to do the same for the Images folder. The display will now look something like this:RM-setup.jpg

  3. If you have obtained an .rmdu file then use the File > Open menu option to load the file. If you have obtained a .bin file then use the Advanced > Import Binary Upgrade to load up the details. If you have not obtained a file then you will have to input the codes manually.

  4. Now to explain the main Setup Tab:

    Description : Use anything you like, I tend to use the device name.
    Remote: Select the one appropriate for your chip.
    Device Type: Should be set to the correct type of device (as covered in Paragraph 3 of Section 1).
    Setup Code: This is where you put the 4-digit code. In theory it can be any number between 0000 and 2047, but as explained in Section 1 Paragraph 3, numbers below 2000 may actually be already allocated to specific devices, so to be safe I personally use 2010. Fell free to use your own value.
    Protocol: From the dropdown list select the Protocol you discovered when you used IR.EXE/IRSCOPE.EXE.
    Device: Type in the Device code you recorded from IR.EXE/IRSCOPE.EXE.
    Sub-Device: If applicable type in the Sub-Device code you recorded from IR.EXE/ IRSCOPE.EXE.

  5. Now tap on the Functions Tab
    This picture shows the program with an .rmdu file or .bin file already imported; otherwise the code columns will be blank.

    The entries are fully configurable, so if there are pre-defined functions that you do not need (pip swap, pipmove..) then you highlight them and tap the "Delete" button. If you have a function that is not pre-defined (Audio, Setup…) then tap the "New" button and enter them.

    Now fill in the codes for each button that you recorded. You just put in the OBC value and press <Enter>, the other 2 values will be generated automatically based on the protocol you selected. Also, if you used a JP1 learning remote, there's a way to cut and paste all the codes which saves needing to enter them all. In IR, if you select File > Summary you get a page listing lots of stuff. If you scroll down, you'll see a list of learn decodes. You can cut and paste this list into Excel, then you can re-arrange the columns and just select the button names and OBC codes to cut and paste into RM. You can move the RM columns, so if the OBC column isn't the one next to the button names, you can move it there.

  6. Now tap on the Buttons Tab
    This is where you map the defined functions onto the available buttons. Simply tap the Auto-Assign button which should allocate most of the buttons. For any buttons left in red drag the function name from the table on the left to the function column on the right. But note that not all these buttons are available on a Slingplayer Generic Remote. For example the 'Slow' and 'Eject' buttons do not exist on a Generic Remote. So only map the functions onto the buttons that actually exist (You will see that when you check out the Layout Tab, and from experience when you have done this a few times).

    The important ones to note are the Custom 10-29 buttons. These are the ones you use for the functions you need that aren't on the generic remote and they subsequently appear in the drop down menu of the remote as Custom options (except for Custom 22-26 which are pre-allocated to the colour buttons).

  7. Now tap on the Layout Tab.
    This shows the generic Slingplayer remote and shows the buttons you can actually use in the Buttons Tab. If a button shows yellow then that means it is in use. If it shows black (the PgUp/PgDn in the picture) then has not been allocated a function.

    Again you can drag and drop functions onto a button.

  8. Once you have finished experimenting go back to the Setup tab. Select the appropriate Slingbox remote, go to the 'Advanced' menu at the top and select 'Export Binary Upgrade'. This will produce the BIN file that we have discussed in previous Sections. If you aren‟t sure which Slingbox Chip you have then create a BIN file for the main 2 chips, so that would give you something like

So now you can go back to Section 4 and install the new Custom Remote onto your Slingbox.

Finding Missing Codes

You can often find yourself in the position where the Custom Remote generally works OK but some of the functions are missing or some are sending the wrong code. This is relatively easy to fix by trial and error. The OBC codes must lie between 0-255, so the first thing to do is make a list of the OBC codes that are not being used in the Remote Control. Now use Remotemaster to allocate those codes to the 0-9 buttons and the 15 Custom buttons.

Now build a new BIN files, replace the one in your \SBAV\ folder and rerun the "Setup Video Sources" routine. Now try those buttons and see if any of them action the missing function. If you find the missing codes then you can update the original remote file. You may have to repeat this operation 10 times to cover all the missing codes, although you can cut down the number of times by also using the Transport buttons (Play/Pause…) and Channel, Page +/- buttons as well.

Give your Binary file back to the Community

Finally, remember that it is good to payback. If you find a remote file that works for you then upload it to the JP1 Forums. The way to do this is:

  1. Put the 4 Binary files and the Remote Master RMDU file into a ZIP file. I also tend to add a Readme file in case users are unsure how to use the files. Although hopefully they will have read this article and will know what to do.

  2. To be really helpful, you should upload your files in 3 different places:
    1. Upload your ZIP file to the Slingbox Binary Files area.
    2. Upload the Remote Master RMDU source file to the Slingbox RM Files area.
    3. Upload the RMDU file to the appropriate area in the Device Upgrades area.

I hope these instructions have been helpful. If you have any suggestions for changes or improvements please E-mail me at alan (at) rmrsoft (dot) com

Personal tools