General Notes

Remote Master (aka RM/RMIR) was originally designed and developed primarily by Greg Bush, with significant contributions from John S Fine, Nils Ekberg, Graham Dixon and others. It is currently maintained by Graham Dixon (mathdon).

RM/RMIR is a Java application. That means that in order to run it, you must have either the Java Developer Kit (JDK) or the Java Runtime Environment (JRE) installed, version 6.0 or later. Either of these can be downloaded for free from the J2SE Downloads page.

The Remote Master user interface makes extensive use of context menus. Context menus are accessed by clicking the right mouse button in an area when you want to do something. RemoteMaster also often provides multiple ways to accomplish the same task.

Take, for example, the Layout panel, which shows an image of the remote being used on the left, and a list of the available functions on the right. There are 3 different ways to assign a function to a button:

  1. Drag and drop the desired function onto the desired button.
  2. Double-click on a button and select the desired function from the context menu
  3. Highlight a button by clicking on it. Then double-click on the function you want assigned to it.

Getting Started

  1. If you haven't already, download and install Java version 6.0 or later. You can download it from the J2SE Download page. Either the Java Developer Kit (JDK) or the Java Runtime Environment (JRE) will do.
  2. Download the latest version of Remote Master from SourceForge, and unzip it to the directory of your choice, preserving directory names. The directory should not be read-only, as certain processes write files to this installation directory or a sub-directory of it. As of version 2.03 there are two zip packages, a full one and an update one. If this is a new installation of RM/RMIR then you should download the full package. If you are updating an existing installation with a later build of the same version then you may instead download the (much smaller) update package and unzip it to the existing installation folder, overwriting any files of the same names.

  3. As of RM/RMIR version 2.03, it is no longer necessary to download RDF files or Maps and Images as these are included in the full RM/RMIR zip package and updates for them are included in the update package.

  4. If you are using a version of Windows (XP/Vista/Windows 7,8,8.1 or 10), double-click on Setup.vbs.

    This will create shortcuts in Start > Programs > Remote Master for your use. Feel free to send them to you Desktop or copy them to your Quick Launch toolbar. File associations are also created for .rmdu and .rmir file, so you can just double-click on them directly.

  5. If you are using Linux, run setup.sh from Terminal as a shell script.

    This creates two .desktop shortcuts, one for RMIR and the other (named RemoteMaster) for RM. They will be created in your installation folder, but they are also copied to your $HOME/.local/share/applications folder to ensure that they appear on your Dash. Setup.sh will also add you to the dialout group of users, if you are not already in it. If you need to be added, then it will ask you for your sudo password as this step needs to be run with root privileges. This step is needed to enable RMIR to access USB serial ports without RMIR itself being run as root.

  6. If you are using Mac OS X, there is no setup script to run.

That's it, RM and RMIR are now ready for your use! There are a few different ways to start them:

  1. With all three OS's, RMIR can be opened without using a shortcut by double-clicking or otherwise running the Java file RemoteMaster.jar. RM can be opened from RMIR with the menu item File > New > Device Upgrade.
  2. Windows and Linux users can use the shortcuts created when the setup script was run.

  3. Windows users can double-click on a .rmdu or .rmir file.

There is a short tutorial available for RMIR. See JP1 - Just How Easy Is It? - RMIR version. Tutorial information on RM is given in the remainder of this article.

Using Remote Master

Remote Master (RM) was loosely based on Keymap Master, so there are many similarities between the two. Anyone familiar with Keymap Master will have no trouble using Remote Master. Similarly RMIR was loosely based on IR.exe and has a similar user interface.

However, because Remote Master is a true application, while Keymap Master is a spreadsheet that behaves like an application, the Remote Master user interface does have some significant differences from Keymap Master. Although IR.exe is a true (Windows-only) application, its design prevented it from being extended to the interfaces used by UEI for recent remotes. So IR.exe supports remotes only up to the JP1.3 interface. RMIR supports all these but adds JP1.4, JP2, JP2.1, JP3, XSight and Simpleset remotes to its support.

Note that the remainder of this article concerns only RM. For further information about RMIR, see the article "JP1 - Just How Easy Is it? - RMIR version" referenced above.

The Menu Bar

The Remote Master menu bar provides access to general functions and options.

The File Menu

The File menu provides ways to load and save Device Upgrade files. Below are the menu items available, and what they do:

New Set all upgrade information to default values, as though starting from scratch.
Open... Bring up a file dialog allowing you to load an existing RemoteMaster Device Upgrade file (*.rmdu). To load a KeymapMaster Device Upgrade file (*.txt), change the Files of type: field to KeyMapMaster device upgrade files.
Save This menu will save the device upgrade to a file. This item will be diabled unless a RemoteMaster Device Upgrade file was loaded, or the "Save as..." item has been used.
Save as... Save the device upgrade to a different file name. The default file name will be the name of the file loaded, or the name used for "Save as...", or the contents of the Description field.
Import from Clipboard Imports a device upgrade from the clipboard. This is useful if you click on a link to a device upgrade (either KM or RM), and your browser simply displays the text of the upgrade. Simply use the context-menu (right-click) to Select All and then Copy the entire upgrade to the clipboard.
Recent Lists up to the 10 most recently opened, or saved, RM device upgrade files.
Exit Exit Remote Master

The Options Menu

The Options menu provides ways to customize Remote Master

Look and Feel Allows you to select the over all look and feel used by RemoteMaster. Most Windows users will want to use the Windows Look and Feel, but I recommend the Metal Look and Feel. The reason for this is simple: the Windows Look and Feel does not highlight the current cell in the Functions panel.
Font size Allows you to increase or decrease the size of the fonts used by RemoteMaster.
Prompt to Save Allows you to specify when Remote Master will prompt you to save your Device Upgrade. The valid values are:
Always Whenever an action you perform might cause you to lose the contents of the Device Ugrade.
On Exit Whenever you exit Remote Master
Never You will never be prompted to save a Device Upgrade; you will remember to do it yourself.
Remotes Allows you to choose the set of remotes that RemoteMaster will display. Your choices are All, meaning all remotes for which RemoteMaster can find Remote Definition Files (RDFs), or Preferred, meaning only those remotes that are in your preferred list.

You can manage the list of preferred remotes using Edit Preferred.

Function names Allows you to choose the function names used when creating a new upgrade. Your choices are Default, meaning the same as KM, or Custom, meaning your own custom list.

You can edit the list of custom names using Edit custom names.... When editing the custom names, there is a button to import the names of the buttons on the current remote.

Advanced

The Advanced menu provides advanced functions for expert users

Manual Settings... Allows you to define and edit a new protocol that uses Manual Settings.
Protocol ID Enter the PID for the manual protocol
Protocol Code Enter or modify the protocol code for each processor type. If you have a formatted protocol code upgrade as generated by Protocol Builder already copied into the system clipboard, simply press the Import Protocol Upgrade button.

When protocol code is entered, the appropriate number of device and command parameters will be create automatically, which can then be tweaked as needed.

Device Parameters Set the properties of the device parameters for this protocol. You can change the name, the number of bits and whether or not the parameter should be encoded using LSB (rather then MSB), or Comp.
Raw Fixed Data Only for imported KM upgrades. Edit the raw hex data that is appended after the device parameters to generate the fixed data.
Command Parameters Set the properties of the device parameters for this protocol. You can change the name, the number of bits and whether or not the parameter should be encoded using LSB (rather then MSB), or Comp.
Import Raw Upgrade... Imports a raw hex device upgrade. This is useful when a remote is sent back to UEI to have a device upgrade added.

Use the following procedure to import a raw device upgrade:

  • In IR
    • Go to the Devices tab, and select the device upgrade you want to copy.
    • Press the Edit button.
    • Right click on the highlighted text in the Device Upgrade field and select Copy.
  • In RM
    • Go to Advanced -> Import Raw Upgrade
    • Select the correct remote in the Remote combo box
    • Select the correct device type in the Device Type combo box
    • If the Protocol > FF box is checked in IR, check the Protocol > FF box in RM
    • Right-click in the Upgrade Code field in RM and select Paste.
  • If the device upgrade uses a custom protocol (the OK is still disabled after you've pasted)
    • In IR
      • Press the Cancel button
      • Goto the Protocol tab
      • Select the protocol that you need
      • Press the Edit button
      • Right-click in the Protocol Code fiels and select Copy
    • In RM
      • Right click in the Protocol Code field and select Paste
  • Press the OK button
  • On the Setup tab, change the Setup Code field to match the setup code of the imported upgrade.
Import Binary Upgrade... Imports a binary device upgrade. This is for use with consumer electronic devices that use UEI chips, such as the Slingbox™.
Export Binary Upgrade... Exports a binary device upgrade. This is for use with consumer electronic devices that use UEI chips, such as the Slingbox™.

Basic Information

Some of basic information about the current Device Upgrade is always visible:

Description Enter a brief descriptive name for your upgrade. Something as simple as "My Cable Box" will work, but since we encourage sharing upgrades with the group, a more descriptive entry like "General Instruments Digital Cable CBL/0476" is best. The Description will be used as the default proposed filename when the Device Upgrade is saved using Save As....
Remote Use the drop-down list to select the desired remote you want to build an upgrade for. A Device Upgrade for one model remote will NOT work on another. Selecting the proper remote here is important.
Device Type Use the drop-down list to select the desired type of device. Note that an upgrade can utilize ANY device regardless of what device button it will be assigned to on the remote. Also, different device types use different key maps. If you'd like to see what buttons are available in a given device mode for the selected remote, view the Layout panel, which shows a picture of the remote with the buttons that are in the key map outlined in orange.

The Setup Panel

Use the Setup panel to enter key information about the device upgrade:

Setup Code Enter a 4-digit number between 0000 and 2047. If creating an upgrade of an existing code, the JP1 convention is to add 1000 to the existing number. For example, if you're creating an upgrade for Cable/0476, you might use 1476 as the Setup Code. It's acceptable to use the same number as a built-in code, however, this precludes using the built-in code on the remote itself, since upgrades in EEPROM are used before those built-in.
Upgrade Notes You can use this area to more accurately describe what your upgrade is, what it does, how it does it, etc. Again, this is useful as we share these files with others. Want to leave it blank? Go ahead, that's ok, too.
Protocol Use the drop-down list to select the desired protocol to be used by the upgrade. If a protocol has been recognized, it's probably available in Remote Master (the vast majority of devices use only a handful of protocols).

The Device Combiner protocol is a special protocol that is included in RM. It allows you to combine up to 16 devices into one Device Upgrade. For details on using Device Combiner, please read the Device Combiner section of this document.

Protocol ID Shows the Protocol ID (PID) of the protocol selected above. This value cannot be changed directly.
Protocol Parameters Protocols generally require some device level parameters (some don't require any). These are the codes sent at the start of every IR (infrared) data stream, sort of like a "header". RM will provide hints as to what needs to be entered for a given protocol. These hints will appear as fly-over help when the mouse pointer is held over the input area for a short period of time.
Protocol Notes Provides a brief description and help notes for certain selected protocols.

The Device Combiner Panel

This panel is only available when the Device Combiner protocol has been selected on the Setup Panel.

The Device Combiner allows you to combine up to 16 different protocols into one Device Upgrade.

Any protocols specified in the Device Combiner MUST use 1-byte function commands.

NOTE: When using an upgraded protocol, the user MUST ensure that the protocol code is installed on the remote (using IR), as RemoteMaster has no way to verify this.

There is also an optional Duration Control setting that can be used for each function.

Setting up the Device Combiner:

There are 2 ways to add devices:

  1. Importing from an existing RM or KM device upgrade:
    On the "Device Combiner" panel, press the Import button and open the device upgrade file you want to import. Once RM has verified that the protocol used by the imported upgrade file is compatible, you will be asked to choose the functions to import from the upgrade.
  2. Manually adding a protocol:
    On the "Device Combiner" panel, press the Add button to display the "Combiner Device" dialog. Select the protocol to use, and enter the desired values for the protocol parameters, then press the OK button

Then, go to the Functions sheet and enter the EFC's (EFC-style Button Codes MUST be used) for all of the various functions. In the "Cominer Device" column, select the entry corresponding to the protocol and parameters entered above.

To enable Duration Control for the function, select the duration multiple to be used in the "Duration" column (default = 0 = none).

The Functions Panel

Use this panel to define all the functions available for the device you are going to control. This is where you can enter the EFCs, OBCs, and other parameters specific to each command. Note that some of the command parameters are protocol specific, so not all of the columns available in each protocol will be documented here, only the ones that are used by all protocols.

The command parameter columns are often interdependent, so that entering a value in one column will often cause changes in other columns.

You can sort the table by any of the columns by clicking on the column header. This is useful for seeing if there are any missing EFCs or OBCs that you might want to try if you are searching for discrete codes. Click on the "#" column to restore the table to its natural order.

You can reorder the columns by simply dragging a column header to the desired location. Note, however that this reordering will not be preserved if you switch to another panel.

You can do some limited resizing of the columns by dragging the dividers between column headers. Note, however, that the resizing will not be preserved if you swtich to another panel.

# This is the function number, which is the order the functions have been defined. You cannot edit this value, however, you can drag the number up or down to change the function's position in the list.
Name This column contains some pre-defined function names. These can be used as is, or you can rename them to something more appropriate.
EFC Enter the EFC (usually a 3-digit number from 000-255) for the corresponding function.
OBC Enter the OBC (usually a 3-digit number from 000-255) for the corresponding function.
Hex Enter the raw hex for the command, as groups of 2 hex digits separated by spaces. For examaple "0C A9". You usually won't edit this field, you will let RM compute the value based on information entered in the other columns.
Description Here, you can enter a brief description of the corresponding function for more clarity (and to help others who may use the file)

In addition to entering data in the various cells of the table, you can manipulate the table using the buttons at the bottom, or by using the context menu.

New Add a new empty function. If no function is currently selected, the new function will be added at the bottom. If a function is selected, the new function will be inserted above the selected function. This can also be accomplished by using the context menu. Just right click where you want to add the new function, and select New.
Delete Delete the currently selected function(s). Functions that have been assigned to buttons cannot be deleted. You can select multile functions. This can also be accomplished using the context menu. Simply right-click on the function you want to delete and select Delete. If the function you right-clicked on is one of many selected functions, all the functions will be deleted.
Move up Move the selected function one position up the list. This can also be accomplished by dragging the function number. Only one function can be moved at a time.
Move down Move the selected function one position down the list. This can also be accomplished by dragging the function number. Only one function can be moved at a time.
Copy Copy the contents of the selected cells to the clipboard. This can also be accomplished using the context menu, by right-clicking on a groups of selected cells and selecting Copy
Paste Paste the contents of the clipboard into the selected cell. This can also be accomplished using the context menu, by right-clicking on the cell in which you want to pasted, and selecting Paste. This can be useful for copying columns of information from KM to RM.

The External Functions Panel

NOTE: This feature requires IR v3.12 or later. Key Moves will not be bound properly with earlier versions.

You may define functions that are actually commands from another Setup Code. For example, if you're creating an upgrade for TV/1000 and need a function or two from VCR/2000, you can specify the function parameters on the External Functions panel.

Other than the difference in the data required to define an external function, the External Function panel is used in exactly the same way as the Functions panel. Refer to the Functions Panel for more information.

You can also import functions from an RM or KM device upgrade file. Use the Import button or the Import item on the context menu. Note that the imported functions will only work if the source device upgrade is either

Name Enter a name for the function you are defining
Device Type Choose the device type of the setup code you want to use.
Setup Code Enter the 4-digit decimal Setup Code for the setup code you want to use
Type Choose the type of data you are going to use to enter the command for the function.
EFCYou will be entering the EFC for the command
HexYou will be entering the raw hex command
EFC/Hex Enter the command data. The format is determined by the Type value.
EFCEnter a decimal value in the range 0 - 255.
HexEnter a sequence of hex numbers, separated by spaces. Each hex number should be no more that 2 digits.
Notes Enter a description of the function, if desired.

The Buttons Panel

The last step (in theory anyway) to building a Device Upgrade is to assign the defined Functions to specific Buttons. You do this on the Buttons panel.

The Buttons panel is split in two parts. On the left is a table listing the buttons available on the remote. This table consists of 3 columns:

Button The name of the button. If the name is displayed in red, it means that no functions have been assigned to it. If the name has an asterisk (*) at the end, it means that the button is NOT in the keymap for the current device type, and any function assigned to the button will generate a keymove.
Function The name of the function assigned to the normal state of the button. If the cell for a particular button is grey, assignment in not allowed.
Shift The name of the function assgined to the shifted state of the button. If the cell for a particular button is grey, assignment in not allowed. Functions assigned to shifted buttons are almost always turned into keymoves, since very few keymaps have shifted buttons in them.
XShift The name of the function assgined to the XShifted state of the button. If the cell for a particular button is grey, assignment in not allowed. This column is only shown for this remotes that support it, and it may have a different name, depending on the remote.

On the right is the list of functions (normal or external) that are available. Functions with red names have not been assigned to any button.

There are a number of different ways to assign functions to buttons. Use whichever you like better:

  1. Use the Auto assign button to automatically match functions to buttons by name. Buttons that already have functions assigned will not get reassigned.
  2. Double-click in a cell where you want to assign a function, then click the desired function from the list.
  3. Drag-n-drop a function onto the desired cell.
  4. Highlight the cell where you want to assing a function by clicking on it, then double-click the function you want to assign to it.
  5. Use the Delete key or the Remove button to remove an assigned function from a cell.
At the top of the [Buttons] sheet (cell G2) is an unlabeled check box. This is the "DISABLE Combined Key Move Code" setting. When checked (it mirrors the check box on the [Setup] sheet), any buttons that are NOT part of the default "key map" (Normal Functions assigned to any button preceded by "@" i.e. "@setup", and ALL Shifted Functions) and would normally create Key Moves, will not. *** Special note for remotes using a P8/740 processor: ------------------------------------------------------ There is a bug in the firmware for ALL P8/740 remotes that limits the TOTAL length of a Device Upgrade to 50 bytes max. KM will warn you if this limit is exceeded with the following message: "P8/740 remotes cannot handle upgrades greater than 50 bytes. Please remove ?? button assignments." Unfortunately, the only known workaround for this limitation is to create multiple upgrades of less than 50 bytes each. When you see this message, you will need to delete at least as many button assignments as indicated in the message ("??"). To do this, select a cell in the Normal Function column and press the Delete key. Using the [Key Moves] worksheet: ================================ This feature allows you to define Key Moves based on the functions defined in the current Device Upgrade. The [Key Moves] sheet displays all the currently defined Functions by default. Functions that appear in gray italic have been assigned to a button on the [Buttons] sheet (either as part of the key map or as a Key Move). Functions that appear in red have not yet been assigned to any button. A Function can be used multiple times by selecting it in the in- cell drop-downs of the Function column. You can modify the Function column by adding to and deleting from the default list. This is how you would assign multiple Key Moves for the same Function (i.e. you have a function that you want to make available in all device modes). NOTE: In order to use the code generated by the [Key Moves] sheet in IR, you MUST be running IR v3.10 or later. Prior versions DO NOT support importing Key Move code. For each Function that you want to create a Key Move for, specify the following: Bound Device: ------------- This is the Device button that the Key Move will be assigned to. Select the appropriate Bound Device from the in-cell drop-down list. To assign the Key Move to the SAME device button as the Device Upgrade, select "(upgrade)" from the list. When the code gets pasted into IR, it will automatically assign the Key Move to the same Device Button as the upgrade. Bound Key: ---------- This is the button on the remote that the Key Move is assigned to. Almost any button (including Shifted, Phantoms, etc) can be assigned Key Moves. Select the desired key from the in-cell drop- down. A Bound Key name preceded by "$-" indicates that the button is "shifted" (either because the button has been pre-defined as being "shifted", or the Shift setting = "Yes"). NOTE: A hex button code may be directly entered in the Bound Key cell by using the standard JP1 hex notation of "$XX". Simply preceded the 2-digit hex code with a dollar sign ($). This is useful for assigning additional phantoms, extender buttons, etc, which are not currently defined by KM. Shifted: --------- Select "Yes" if you want the Key Move to be on a shifted button. If a button is pre-defined as being "shifted", selecting "Yes" will have no effect (there will be a "$-" preceding the button name). Max Key Move Bytes: ------------------- Available Key Move space varies from remote to remote. Out of the box, most JP1 remotes can hold approximately 40 to 45 Key Moves. Extended remotes usually allow substantially more. Since it is not easily possible for KM to know the actual amount of Key Move space available for the selected remote when using extenders, etc, nor can it tell what might already be included in your current IR configuration, Key Move code length is defaulted to the known length of the Key Move space designated by the standard RDF for the selected remote. If you know that your remote can accommodate more than the specified Key Move bytes, simply enter a larger number in the "Max Key Moves Bytes" cell on the Key Moves sheet. NOTE: Just because you can specify a larger Max Key Move Bytes and create Key Moves to that limit, it doesn't mean that IR (or your remote) will accept them. If the generated Key Move Code exceeds the amount defined by the RDF, IR will display an error indicating that you have exceeded the Key Move limit. It will NOT accept ANY of the imported Key Moves until enough have been deleted to fit in the available space. At the top of the [Key Moves] sheet (cell I1) is an unlabeled check box. This is the "DISABLE Combined Key Move Code" setting. When checked (it mirrors the check box on the [Setup] sheet), any buttons that are NOT part of the default "key map" (Normal Functions assigned to any button preceded by "@" i.e. "@setup", and ALL Shifted Functions) and would normally create Key Moves, will not. The "DISABLE Combined Key Move Code" setting only affects the [Key Moves] sheet IF the "Max Key Moves Bytes" limit is exceeded by Key Moves created on the [Buttons] sheet. Once all your Key Moves have been entered, the Key Move Code block on the [Setup] sheet will contain the required code for pasting into IR's [Key Moves] tab using the [Import] button.

The Layout Panel

The Layout panel works very much like the Buttons panel, except that instead of presenting the buttons in a table, the Layout panel presents them visually, using an image of the selected remote. Rather than indicate the buttons that are NOT in the keymap for the current device type using an asterisk, the Layout panel shows you than buttons that ARE in the keymap by outlining them in orange. Since there aren't multiple physical buttons to represent the shift states of the buttons, you choose the shift state by selecting one of the Mode radio buttons.

The Layout panel shows information about the buttons in various ways:

There are a number of different ways to assign functions to buttons. Use whichever you like:

  1. Use the Auto assign button to automatically match functions to buttons by name. Buttons that already have functions assigned will not get reassigned.
  2. Use the context menu (right-click) in a cell where you want to assign a function, then click the desired function in the context menu.
  3. Drag-n-drop a function onto the desired cell.
  4. Highlight the cell where you want to assing a function by clicking on it, then double-click the function you want to assign to it.
  5. Use the Delete key or the Remove button to remove the an assigned function from a button.

The Key Map Panel

The Key Map panel is designed to be printed as a hard copy reference for the current device upgrade. It lists all the buttons that have functions assigned in the Normal, Shifted, and XShifted (if supported by the remote) states.

The Output Panel

This panel contains the upgrade code to be pasted into IR.

DISABLE Combined Key Move Code check box: ----------------------------------------- You can temporarily exclude Key Moves (created on the [Buttons] sheet) from the combined Device Upgrade/Key Move code by using the "DISABLE Combined Key Move Code" check box directly below the Device Upgrade Code block. This will allow only the Device Upgrade Code to be displayed and selected for copying. This has no effect on the Key Move Code block (for Key Moves created on the [Key Moves] sheet). There are also check boxes for this setting on the [Buttons] (cell G2), and [Key Moves] (cell I1) sheets so that you can quickly ENABLE or DISABLE and see how it affects the current mapping.
Device Upgrade Code This text area doesn't allow any data entry, and for good reason. It's where the calculated Device Upgrade Code is displayed. Once you've entered all the necessary information on the Setup, Functions, and Buttons panels, this will be the code that you copy and paste into IR's Devices tab.

The Key Move feature of RM can combine Key Move code as part of the Device Upgrade Code. This occurs when buttons that are not part of the selected device's "key map" are assigned functions on the Buttons or Layout panels.

To copy the Device Upgrade Code to the Windows clipboard for pasting into the IR Devices tab, press the Copy button or use the context menu (right-click and select Copy).

Upgrade Protocol Code Again, no data entry is allowed here. As RM works its magic, if it determines that the selected remote also requires a protocol upgrade, it will display the necessary code here. In that case, you will see the text

Upgrade Protocol Code *** REQUIRED ***

This is a reminder to copy and paste this code into IR's Protocols tab. If you create a Device Upgrade that requires Protocol Code as well, and don't add it into IR, your upgrade most likely won't work.

If no protocol upgrade is needed, you will see the text

Upgrade Protocol Code NOT REQUIRED

To copy the Protocol Code to the Windows clipboard for pasting into the IR Protocols tab, press the Copy button or use the the context menu (right-click and select Copy).