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 7.0 or later. Either of these can be downloaded for free from the J2SE Downloads page. Prior to RM/RMIR v2.04, only version 6.0 of Java was required but RM/RMIR v2.04 and later requires Java version 7.0 or later.
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:
- Drag and drop the desired function onto the desired button.
- Double-click on a button and select the desired function from the context menu
- Highlight a button by clicking on it. Then double-click on the function you want assigned to it.
Getting Started
- If you haven't already, download and install Java version 7.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.
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, except that the first build of any new version is only available as a full package. 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. If you use the full package and want to preserve your settings from an existing installation of RM/RMIR then copy the file RemoteMaster.properties from the old to the new installation.
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.
- 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 your Desktop or copy them to your Quick Launch toolbar. File associations are also created for .rmdu, .rmir and .rmpb files, so you can just double-click on them directly.
- If you are using Linux, run setup.sh from Terminal as a shell script.
This creates three .desktop shortcuts, one for RMIR, one (named RemoteMaster) for RM and the third for the latest addition RMPB (RM Protocol Builder). 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.
There is also a file linux_xsight.rules in the installation package. Linux users with XSight or Nevo remotes may need to copy this file to the directory /etc/udev/rules.d/ of their Linux installation. For more about this point, see this JP1 posting and the following discussion.
- If you are using Mac OS X, there is no setup script to run.
That's it, RM, RMIR and RMPB are now ready for your use! There are a few different ways to start them:
- 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 and RMPB with File > New > Protocol.
Windows and Linux users can use the shortcuts created when the setup script was run.
Windows users can double-click on a .rmdu, .rmir or .rmpb file.
There is a short tutorial available for RMIR. See JP1 - Just How Easy Is It? - RMIR version. Tutorial information on RMPB is given in the RMIR menu item Help > Using RMPB while that for 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 while RMPB is closely related to Protocol Builder (PB).
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, JP1.4N, JP2, JP2N, JP2.1, JP3, JP3.1, 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:
|
||||||
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.
|
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
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:
|
||||||||||
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:
- 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. - 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
- a builtin setup code
- installed in your remote.
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.
|
||||
EFC/Hex | Enter the command data. The format is determined by the Type value.
|
||||
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:
- Use the Auto assign button to automatically match functions to buttons by name. Buttons that already have functions assigned will not get reassigned.
- Double-click in a cell where you want to assign a function, then click the desired function from the list.
- Drag-n-drop a function onto the desired cell.
- 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.
- Use the Delete key or the Remove button to remove an assigned function from a cell.
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:
- Buttons will display their names (and any assigned function) in a fly-over window when you hold the mouse pointer over them.
- Buttons with functions assigned will be drawn in yellow.
- Buttons in the keymap for the current device type will be outlined in orange.
- The selected button will be outlined in white. The Button: field will show the name of the selected button, and the Function: field will show the name of the assigned function.
There are a number of different ways to assign functions to buttons. Use whichever you like:
- Use the Auto assign button to automatically match functions to buttons by name. Buttons that already have functions assigned will not get reassigned.
- 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.
- Drag-n-drop a function onto the desired cell.
- 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.
- 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.
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 textUpgrade 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). |