10.7 The Inbuilt Device Specific Macro..........................................................................18
10.8 Global use of Special Protocols...............................................................................18
10.9 A Composite Example.............................................................................................19
11. Exiting the Extender to use Magic Setup ..........................................................................20
12. Changing the batteries.......................................................................................................21
13. A few Technical Notes......................................................................................................22
Appendix 1: Key Codes for the Extender...............................................................................23
Appendix 2: Preparing to Upgrade an Existing Installation ...................................................25
1
1. Basic Features
This extender is provided in two different versions, one for the URC-7781 and the other for the earlier
model URC-7780. The features in the two versions are identical and this manual covers both versions.
For each remote the extender is provided in three forms, a “.ir” file for a clean installation and two
slightly different “.hex” files for two alternative methods of upgrading from an existing setup of the
unextended remote.
The main features provided by the extender are:
• every device becomes its own version of Home Theatre
• ability to create dedicated device selection buttons, e.g. on Shift/digit keys
• the Light key now works as one would expect, rather than the counter-intuitive way it does in the
unextended remote
•the following Special Protocols are included
o Long/Double Keypress
o ToadTog
o Device Specific Macros
o Device Multiplexer
o Pause
• ToadTog toggles can be set to time out
• macro format is compatible with IR.exe (current version 7.15), which the macro format of the
unextended remote is not
•macros are fast and can be nested, giving huge flexibility when used with the included Special
Protocols
• it has three ‘phantom’ keys and an optional second shift key
• ability to return to the unextended remote for (limited) use of long Magic keypress setup facilities
These facilities are provided at the expense of
• no learning capability
• no specific HT (Home Theatre) device – no loss, since every device becomes a version of Home
Theatre
• no upgrading via modem downloads – you must use IR.exe with Remote Master for upgrading
• no timed macros
• no direct entry of EFCs (which is possible, but undocumented, in the unextended remote)
Compared with the unextended remote, the Special Protocols take up some upgrade space, reducing the
available space from 1022 bytes to 774 for the URC-7781 (780 for the URC-7780), but there is an
increase in the space for key moves and macros, from 850 bytes to 1022 for the URC-7781 and to the
substantially larger 2046 for the URC-7780.
2. Installing the extender
2.1 Choosing an installation method
Three distinct methods of installing the extender are described below. These are
•Clean installation. This method completely overwrites the existing setup of your unextended
remote. It enables you to plan your setup of the extender from scratch.
2
•“Almost Clean” installation. This method preserves any device setup codes that you have
installed through downloads of internet or phone upgrades but it overwrites all other setup
information. As with a clean installation, it enables you to plan your setup of the extender from
scratch.
•Upgrading an existing installation. This method allows you to choose which features of your
existing setup you wish to preserve in the extended remote. Not everything can be preserved, but
you can choose any or all of devices, device labels, device code upgrades, key moves and the
volume lock device. Indeed, the only feature available in the extender that cannot be preserved is
Key Macros, for reasons explained in Appendix 2. This is certainly the most flexible installation
method but it needs particular care, as it is easy to carry forward errors from the existing setup to
that of the extender.
It is likely that you will want to set up your extended remote in a way that is very different from your
existing setup for the unextended remote. Indeed, if this were not the case then you would probably see
little point in installing the extender. In this case you should choose a clean installation if your present
setup does not include any device codes from internet or phone upgrades, or an “almost clean” installation
if it does include such upgrades. If, however, you have put a lot of effort into creating key moves (“Key
Magic”) that you want to retain with the extender, then you may prefer to upgrade your existing
installation.
If you have already installed an extender on your remote, so are making a re-installation, your choice is
slightly different. If you have saved your original unextended remote setup as a .ir file, you may of
course re-upload it to your remote and use any of the above methods. If you no longer have a .ir file for
an unextended setup then you can always make a clean installation, exactly as if it were an unextended
remote. If you can exit the extender – for this extender the exit procedure is described in section 11 –
then you can also make an “almost clean” installation and preserve any internet or phone upgrades. At
least, you can if your existing extender is this one, success is not guaranteed if it is a different one. What
you cannot do is the third choice above, a general upgrade that preserves other setup data.
Be prepared for some unusual steps in the installation procedure. These are a result of incompatibilities
between the two remotes and the current version (7.15) of IR.exe that are explained in detail in Appendix
2. If you plan a clean, or almost clean, installation then these details need not concern you as they are
taken care of by the installation methods. If you plan to upgrade an existing installation then you must
read Appendix 2, Preparing to Upgrade an Existing Installation, as you will need to take care of these
incompatibilities yourself, before commencing the upgrade, by following the instructions given in that
appendix.
2.2 Before you begin
Before you do anything else, you need to copy the two RDF files that are included in the extender
package into the same folder as your other RDF files used by IR.exe. For the URC-7781 these files are
11311131 (URC-7781 Digital 12).rdf
and 113A113A (URC-7781 Extender A1).rdf.
For the URC-7780 they are
10621062 (URC-7780 Stealth 12).rdf
and 106A106A (URC-7780 Extender A1).rdf.
You probably already have in that folder an RDF file for your unextended remote. Please move this to another folder to preserve it and then copy both files as explained above. This is important as it ensures
that the RDF files for the unextended and extended remote are mutually consistent. After you have
installed the extender, you should have no further need for the RDF file for the unextended remote. You
3
may then leave this new one (recommended) or reinstate your original one as you wish, as it plays no part
in the use of IR.exe to customise the extended remote to your needs.
Next, you should open IR.exe, download your existing setup to it and save it as a “.ir” file, so that you can
recover a functioning setup if anything goes wrong. Remember, it is impossible to damage your remote
through installing the extender. Even if the installation goes wrong, you can return to a functioning
unextended setup by re-uploading this saved file with IR.exe. You can then try again.
If you plan an “almost clean” installation or to upgrade an existing installation, you need to have
Extinstall installed on your computer. This is available under Tools/Programs in the File Section of the
JP1 Forum. The latest version at the time of writing is
Extinstall Version 2.0
dated Sept 10, 2007. Download the .zip file and copy the file extinstall.exe from it into any desired
folder. Then open IR.exe, go to File/Set Directory and select the menu item “ExtInstall Path...”. Specify
the folder into which you have copied extinstall.exe and press OK. IR.exe is now set up to install
extenders as upgrades. Note that an “almost clean” installation is in fact a form of upgrade.
It is also wise to make sure you have Remote Master installed and set up with the RDF, map and image
files needed for its use with your remote. Remote Master provides the only way of installing new device
updates on the extended remote. Internet and phone downloads are not available with the extender, and
these remotes are not supported by Keymap Master. The files needed to use Remote Master with these
remotes are available under Tools/RDF Files in the File Section of the JP1 Forum. For the URC-7781
they are there as a .zip file under the entry
11311131 URC-7781 map jpg rdf
with the latest version at the time of writing being submitted by me (mathdon) and dated Aug 07, 2008.
For the URC-7780 there are several entries but the best at the time of writing is the .zip file under the
entry
10621062 (URC-7780 Stealth 12) - fixed
submitted by kevis1982 and dated Apr 09, 2008. In both cases I recommend that you use the RDF file
included with the extender package and take only the .map and .jpg files from these zip packages.
Now proceed with your choice of installation method as described below.
2.3 Clean installation
Before you start a clean installation, make sure that you have Remote Master upgrade files for any device
setup codes you need that are not built into the remote. If you have device codes installed either as an
internet or a phone upgrade, you need to create an equivalent Remote Master upgrade, but you may find it
easier in this case to make an “almost clean” installation as described in the next section.
When you are ready to begin, start up IR.exe and load the file
URC-7781 Extender A1.ir
or URC-7780 Extender A1.ir.
as appropriate. Upload this to your remote. You will receive a warning that the signature of the upload
differs from that of the remote, asking if you want to proceed. Say yes.
The remote will then take you through its usual startup procedure, asking you to set Language, Day and
Time. Do so. You will then find that there is one installed device, TV. Next enter the long Magic
keypress setup procedure on the remote and use Add Device to add the devices you want to use. If the
setup code you need is a built-in one, use it. If not, just accept the default value for now.
The order in which you add devices is important. TV is Device 1 and further devices become Device 2,
Device 3 etc. in the order in which they are added. The device numbers are irrelevant in the unextended
remote, but they are used by IR.exe setup procedures and cannot be changed after they are added. You
4
may use Change Device Label to set your desired labels for the LCD display, and Move Device to change
their order on the display, but note that this does not change the Device Numbers.
Next, scroll to the TV device and press the Record key (once – double keypress not required). The LED
should flash four times. You have now entered the extender!
Now download the device setup to IR.exe and save it as a .ir file (in case of accidents!). Use IR.exe with
Remote Master to install any device or protocol upgrades. If the upgrades include key moves, you will be
told that no device has yet been assigned to this setup code – do you want to assign it now? Yes you do,
assign it to Device n, where n is the number of the device concerned in your initial setup. You will have
used the default setup code for this device type in that initial setup, this will change it to the code you are
currently installing.
When you have installed all your upgrades, go to the General tab of IR.exe and check the Device Buttons
table, which lists the buttons as Dev1 to Dev12, to see if they are now all assigned to the correct codes. If
you installed a device code from Remote Master that did not include key moves, this will not yet have
been assigned to the correct device. Also, the TV device will need to be changed to the code for your TV.
Just change the code in the Device Buttons list. If you want to use Volume PunchThrough, go to the
Other Settings table on the General tab, set VPT Device to the device you want Volume to use – the
choice is Dev1 to Dev12, and change VPT Status from Off to On. All devices are automatically included
in the volume lock. To remove a device from volume lock you need to set up a macro – more on this
below.
After this, go to File/Save to update the initial .ir file you saved, or use Save As to give a different name if
you want to preserve the initial one.
Upload this setup to the remote. You won’t get the warning this time about different signatures, as both
the upload and the device will have the signature of the exender. Go again through setting Language, Day
and Time. You will then enter normal operation with the TV device selected. Press the Record key as
before. You have now completed the basic installation of the extender for your devices and should
continue reading at section 3.
2.4 “Almost Clean” installation
An “almost clean” installation is a special type of upgrade installation. It enables you to carry device
upgrades forward from the unextended remote to the extender. Any device upgrades can be preserved in
this way, whether they were installed through an internet or a phone upgrade or with Remote Master and
IR.exe. Note, however, that many device upgrades created with Remote Master (but not those installed
through an internet or phone upgrade) include Key Moves (“Key Magic” entries) and Key Moves are not
preserved. These upgrades need to be deleted before the upgrade step of the installation and re-installed
afterwards, so make sure you still have the Remote Master upgrade files for them before you start.
The first step involves deleting all the devices that you have currently installed in your remote. If you are
happy with these devices, the labels for them and the order in which these labels appear in the LCD
window, make a note of these labels and their order, starting with TV. Use this when you come to
reinstall the devices as part of the installation procedure, but do not omit this first step.
To perform this first step, make a long keypress of the Magic key to enter device setup. Then press Enter
twice followed by LCDLeft to select Initial Setup/Device/Delete Device. Press Enter. The LCD display
will change to show a device label with its device code underneath, or possibly HT (Home Theatre) which
displays without a device code. If it shows HT, press LCDRight to navigate to the next device.
Otherwise, just continue with the default device displayed. Press Enter again. This will delete that device
and return the display to Delete Device. Repeatedly press Enter twice to delete all devices, skipping HT
as above if necessary. After the final deletion the display will read Add Device, rather than Delete
Device. Press Enter four times. The first press displays the list of devices that can be added, with the
pointer at TV. The second selects the TV device and displays Code Setup. The third displays TV with its
5
default setup code. The fourth press completes the addition of the TV device with this default setup code.
If you had Home Theatre set up, that will have been deleted automatically when the last “ordinary” device
was deleted.
Let the LCD display time out (go blank) and make another long keypress of the Magic key to re-enter
device setup. This time press LCDRight, Enter and LCDLeft to select the menu item Advanced
Setup/Reset. With Reset displayed, press Enter once so that User Reset is displayed, and then Enter a
second time to perform a User Reset. The LED should flash twice, then twice more, and the LCD display
should return to Reset.
Next, start up IR.exe, connect your remote and download the setup as it currently is. You should see on
the General tab that you have exactly one device set up, Dev1 with type TV. Go to the Devices tab and
select, in turn, each devicesetupcode that needs to be deleted. Note that neither of the steps you have
taken so far remove or modify in any way any device setup codes you have installed as upgrades. As
mentioned above, the device setup codes you need to delete are any installed from Remote Master that
include Key Moves, as the Key Moves have already been deleted by the User Reset so that these codes
will need to be re-installed later on. If you are making a re-installation of the extender on top of an
existing extender, you also need to delete the device setup codes that correspond to the extender and its
special protocols. With the present extender, and probably most others, these are:
TV/1800, VCR/1800, TV/1101, TV/1103, TV/1104 and TV/1106.
For each device code that needs to be deleted, make a note of the Protocol ID shown in the Device
Information pane of the IR.exe display. Similarly select in turn each device that you do not want to
delete. Look at its Protocol ID. If that ID is one that you have noted down, cross it off your note. Then
go to the Protocols tab and see which of those remaining on your note are listed in the left-hand pane, in
the form Protocol: $xxxx, where xxxx is the Protocol ID you have noted down, padded on the left with
zeroes to give four characters. Those remaining on your note and which are listed must be deleted. This
will certainly include the protocols for the devices just mentioned that correspond to any existing extender
and its special protocols. To delete a protocol, simply select it in the left-hand pane of the Protocols tab
and press the Delete button at the bottom of the display (not the other one marked Delete that is in the
Data Addresses pane). You will be asked, for each one, “Are you sure you want to delete this upgrade
protocol?” Answer Yes to each. Repeat this process on the Devices tab to delete each of the devices that
need deletion. Again there is a corresponding confirmation question.
When you have deleted all the protocols and devices that need deletion, select the Advanced menu from
the top line of the IR.exe display and click on Clean Upper Memory. This removes any garbage left over
by the device and protocol deletion. When IR.exe “deletes” a device or protocol it actually only deletes
its reference from a lookup directory, in the same way that “deleting” a file on a PC actually only deletes
its directory entry, not the file data itself. The Clean Upper Memory process removes any device and
protocol data that is no longer referenced by the relevant lookup directory.
If you have followed this carefully, IR.exe now contains a setup for an unextended remote (even if you
are re-installing over an existing extender) that contains one device (TV), any device setup codes (with
corresponding protocols if required) that you installed through internet or phone downloads and any
installed from Remote Master that do not have associated Key Moves. Nothing else is present, except
possibly for a little remaining garbage in the area that manages device labels. Even this garbage will be
removed in the next step, which is to merge this setup with the extender. This merge process will create a
“.ir” file that is your own version of the file
URC-7781 Extender A1.ir
or URC-7780 Extender A1.ir
supplied in the extender package, personalised by the inclusion of the device setup code upgrades that you
have retained and completely free of any garbage left over from your original setup.
6
To perform this merge, open the File menu of IR.exe and select Merge Using ExtInstall. If a prompt
appears saying that the data has changed and asking if you want to save it, say yes and save this premerge version where you wish. A window will then open headed “Select a .HEX File”. Navigate to the
folder that contains the files you extracted from the extender package, select
URC-7781 Almost Clean A1.hex
or URC-7780 Almost Clean A1.hex
as appropriate and then press the Open button. A new window will open, headed “Save”. Navigate to the
folder in which you want to save your personalised .ir file, and enter your choice of name in the “File
Name” box. Press the Save button. The merge will take place, the merged file will be saved with the
location and name that you chose and you will be left in IR.exe with this file open.
You continue by following the instructions for a “Clean installation” given in section 2.3, but using your
personalised .ir file instead of the supplied one. You already have this file loaded into IR.exe, so you pick
up the instructions of section 2.3 with the second sentence of its second paragraph, “Upload this to your
remote.” The only difference is that when you come to add devices as described in the third paragraph,
you have available your retained setup codes in addition to the built-in ones. If you have recorded the list
of your original device labels and want to re-create them, this third paragraph is the point at which you do
so. The TV device is already present. Add the remaining devices in the order they appear on your list,
accepting for now the default labels. Then use Change Device Label to make any changes to the labels
that you desire. You should not need to use Move Device, as the LCD display will show the devices in
the order in which you added them. Continue to the end of the “Clean installation” instructions. You
have then completed the basic installation of the extender for your devices and should continue reading at
section 3.
2.5 Upgrading an existing installation
Do not be fooled by the fact that these instructions are much shorter than those for a Clean or Almost
Clean installation. They are shorter because those instructions spelled out in detail the preparation
required. They ensured that no garbage was left over in the EEPROM data from your original installation
and they removed any data errors that may have been present as a result of incompatibilities between
IR.exe (version 7.15 or earlier) and the operating system of the URC-7780 and URC-7781 remotes.
When you upgrade an existing installation, it is up to you what preparation to make. Appendix 2 of these
instructions provides the information you will need, but it does not and cannot tell you what to do. It all
depends on what your current setup data contains, what of it you wish to retain, and what data corruption
may have been caused by previous use of IR.exe due to the incompatibilities just mentioned.
So here are the instructions. First read Appendix 2 and make any preparations to your existing setup that
you decide are necessary. Open IR.exe, connect your remote and download its setup to IR.exe.
The next step merges this setup with the extender data, resulting in a “.ir” file for the extended remote that
includes whatever setup data you preserved during your preparation. Open the File menu of IR.exe and
select Merge Using ExtInstall. A window will open headed “Select a .HEX File”. Navigate to the folder
that contains the files you extracted from the extender package, select
URC-7781 Extender A1.hex
or URC-7780 Extender A1.hex
as appropriate and then press the Open button. A new window will open, headed “Save”. Navigate to the
folder in which you want to save the .ir file, and enter your choice of name in the “File Name” box. Press
the Save button. The merge will take place, the merged file will be saved with the location and name that
you chose and you will be left in IR.exe with this file open.
Upload this to your remote. You will receive a warning that the signature of the upload differs from that
of the remote, asking if you want to proceed. Say yes. The remote will then take you through its usual
7
startup procedure, asking you to set Language, Day and Time. Do so. You will then enter normal
operation of the remote. Select the TV device and press the Record key (once – double keypress not
required). The LED should flash four times.
You have now completed the basic installation of the extender for your devices, have installed and
entered it on your remote and have it saved as a .ir file. You should continue reading at section 3.
3. Default operation and button groups
No further customisation is needed for the extender to work. In contrast to most, if not all, other
extenders there is a default device configuration that does not need macros. The Macros tab in IR.exe
will show you that there are no macros yet installed. Devices may be selected through the LCD and its
left and right scrolling buttons and the selected device will work, with a default setting for its Home
Theatre action.
The physical buttons on the device are divided into six groups for device setup, each group being labelled
by a single letter. These are:
C (Channel): Digits, Ch+, Ch−, -/--, AV
T (Transport): Ffwd, Pause, Play, Record, Rew, Stop, Skip−, Skip+
V (Volume): Vol+, Vol−, Mute
M (Menu): Menu, Up, Down, Left, Right, OK, Exit
A (Aspect): 16:9, Bri+, Bri−, Col+, Col−
O (Other): Power, Guide, Red, Green, Yellow, Blue, A, B, C, D,
Sleep, Magic, Enter, Light
As with the unextended remote, the Record button must be pressed twice to have an effect. This property
is linked to the Record function being sent for output as an IR signal, so if you include the Record key in
a macro, it again must be put in twice but if you assign a macro or key move to the Record button, it only
needs to be pressed once.
The buttons Brightness+/−, Colour+/− and Sleep are pseudo-physical buttons, in that these actions are
produced by Magic followed by Channel+/−, Volume+/− and Power but they have special handling in
both the unextended remote and the extender. First, they may be mapped to IR signals in setup codes,
though for obvious reasons the Brightness and Colour buttons only apply to setup codes for TV.
Secondly these are functions that one frequently wants to press several times in succession. To meet this
end, the shift action of the Magic button latches on as applied to these, but no other, buttons. After one of
these buttons is pressed, any further press of Channel+/−, Volume+/− or Power within about 5 seconds is
treated as Brightness+/−, Colour+/− or Sleep and it also resets the timer, so any number of button presses
in succession may be made from this group without pressing Magic again, provided that not more than
about 5 seconds elapses between them. Other buttons will behave as unshifted after the first press. The
visible sign of expiry of the time period is that it lasts until the LCD status changes – if the backlight is
on, it goes off at the end of the period and if the light is off, the LCD goes blank.
The button groupings are similar to those of Home Theatre in the unextended remote, but a little less
refined than those 10 groups as the Power, Guide, Fastext and ABCD groups are put together in the Other
group. The Other group also includes Magic, Enter and Light, which are not available as signal buttons in
the unextended remote. There, those are dedicated buttons that cannot have assigned functions. In the
extender, Enter behaves as an ordinary, assignable button. The Magic and Light buttons have dedicated
actions, though that for Magic is changeable as described in section 7.5, but you can assign them to a
function that is performed in addition to the dedicated action. Only the LCD Left and Right scrolling
buttons are outside of any group, as these retain their dedicated action of scrolling the display. Even so,
these two buttons do behave as keystrokes to which functions can be assigned, but the keystroke
corresponds to the device that becomes selected on the LCD display, not to which scroll button is pressed.
8
In one important respect the new groupings correct a deficiency in the construction of the unextended
remote. There, the Brightness buttons are in the Channel group and the Colour buttons in the Volume
group, corresponding to their unshifted assignments. Since these pseudo-physical buttons only apply to
the TV device, this appears to be a simple oversight when these buttons were added to the software. In
the extender they have a natural grouping in the Aspect group with the 16:9 button so that they can all be
assigned to the TV device.
By default, when Device n is selected on the LCD, the buttons of the various groupings send the
corresponding IR signal for the following device:
A (Aspect): Device 1 (TV)
V (Volume): The VPT Device, if set and turned on, otherwise Device n
All other groups: Device n.
This gives every device a default Home Theatre operation.
4. Creating key moves and macros
4.1 Key moves
Key moves enable you to change the function performed by a button, or to add a function to a button that
has no function within the setup code for the device concerned. They have the same functionality in the
extender as IR.exe provides for them in the unextended remote. This is somewhat more than is available
through the long Magic keypress setup for Key Magic, as the assigned function can use any setup code,
while Key Magic restricts you to the setup codes that have already been assigned to devices.
You create key moves through the Key Moves tab of IR.exe by pressing Add. In the Bound Key section
of the form that appears, you choose the device and key to which you want to assign the new function.
You specify this function through the Function to Perform section of the form. First choose the device
that the new function operates. If it is a device already set up, just double click its entry in the Device list.
For greater flexibility you can specify the Device Type (e.g. DVD) and Setup Code (e.g. 0788) just as if
you were setting up a new device. Finally you specify the function for that device. By selecting the
appropriate radio button, this can either be a key (chosen from a drop-down list, as allocated in the setup
code), an EFC (the 5-digit value that you would enter as a Key Magic code in the unextended remote) or,
if you know it, the Hex Command (one or two bytes, specified as hex values preceded by $, e.g. $1A
$B3).
The function assigned to a key move is output directly as an IR (infra-red, not IR.exe) signal. Its
processing makes direct use of the setup code specified in the key move, regardless of whether that code
is or is not assigned to any device. Also, when you press a button, the processing checks whether there is
a key move assigned to that button before it checks whether there is a macro assigned to it. An important
consequence of these two features is that there is no nesting or recursive action in a key move. It does not
matter whether a macro or another key move is assigned to the button, if any, that would perform the
assigned function – that function will be performed. For example, I have what at first sight seems to be
an unnecessary key move: the device/button combination ‘Device 1 power key’ is bound to the function
‘Device 1 power key’. But I also have a macro bound to the power key and I do not want it to operate
with Device 1. This key move ensures that with Device 1, the power key has its normal function
regardless of the presence of the macro.
I also have key moves assigned to the Enter button, separately for each device. These change the input
selector of my AV receiver to that for the device concerned. This provides the Enter button with a
common function across all devices.
9
4.2 Macros
Macros are central to the exploitation of the facilities of the extender. They are created through the
Macros IR.exe tab by pressing Add. As with a key move, you first select the device/key combination to
which you want to assign the macro. Then use the Macro Definition section of the form to create the list
of keys you desire in the macro. You select a key in the Available Keys list and then press Add, Add
Shift, or Add XShift to add that key in its unshifted, shifted or X-shifted version (X-shift is described in
section 7 below). Use the Insert buttons rather than the Add buttons to add the key into the middle of a
partly created list. When done, press OK.
Macros can be nested, to virtually any length. They are expanded dynamically, so the list of macro keys
does not replace the bound key in the keystroke queue until it is its turn to be processed. Since the
keystroke queue can hold up to 180 characters, you are unlikely to run out of queue space. In particular,
though it is more likely to happen by accident than design, you can create an infinite loop that will run
until you remove the batteries, or they go flat! It is this nesting capability of macros, combined with the
Special Protocols, that give the extender its great power.
If you hold down a button that has an assigned macro, it will perform a repeat action, just like any other
key. But it is not the whole macro that repeats, it is only the final keystroke in its expansion. If, for some
particular macro, you want to prevent such a repeat action, put the Null key after the last ‘real’ key of the
macro.
Macros are fast – much faster than in the unextended remote, though the actual maximum speed is
dependent on the IR protocol in use. This is fine if you do not want to send two keystrokes to the same
device in one macro, but if you do then the device may need a minimum time between them. This can be
achieved in one of two ways.
The time between successive keystrokes being output can be adjusted for all macros through the entries
Macro Delay Hi and Macro Delay Lo in the Other Settings section of the General tab of IR.exe. These
values are the decimal forms of the high and low bytes of a two-byte value that is, roughly, a delay time
in milliseconds. Note that this delay is additional to the native protocol-dependent delay inherent in
sending the IR signals. Suppose you want a delay of 1 second. This is 1000 milliseconds, or in hex,
$03E8 milliseconds. The conversion is easily done using the Scientific view in the Windows Calculator.
To create this delay, enter $03 in Macro Delay Hi and $E8 in Macro Delay Lo. These will change to their
decimal forms 3 and 232 respectively, which you could have entered directly, but the hex form avoids a
second conversion. There is one strange proviso. Do not enter a Lo value of zero. It is interpreted as
256, i.e. the Hi value becomes effectively one more than the entered (and displayed) value. The default
value present when you first start the extender is Hi = 0, Lo = 128, i.e. about one eighth of a second.
The other way of creating a delay is to use Pause, a Special Protocol described in section 10.5 below.
This enables you to insert a pause between two macro keystrokes without affecting the overall speed set
by the Hi and Lo values as above. The delay caused by a Pause is specified in just the same way as these
Hi and Lo values, as two bytes in hexadecimal form giving the delay in milliseconds, with the same
proviso about the use of zero as a low byte.
5. Modifying the default Home Theatre assignments
To modify the default Home Theatre assignments you create a macro with IR.exe as described in section
4.2. At the bottom of the drop-down box for Bound Key, you will see Dev1 through Dev12. When you
scroll through the list of devices in the LCD of the remote using the Left and Right scroll keys, the
extender first makes the default assignments described in section 3 for the device that becomes selected
and then generates a keystroke Dev1 through Dev12 corresponding to this device. To modify the default
assignments for Device n you create a macro with bound key Devn.
In the list of macro Available Keys, below Dev1 through Dev12 you will find 73 entries not present in the
Bound Key list. The first 72 have the form Z_Devn where Z is one of the letters C, T, V, M A or X and n
10
is 1 through 12. The 73rd is X_CANCEL. Prefix letter X is explained in section 8. The other five letters
select a button grouping and assign it to Device n.
As an example, suppose that we have set up four devices
Device 1 = TV, Device 2 = SAT, Device 3 = RCV, Device 4 = DVD.
and have set VPT On and VPT Device to Device 3. Then SAT will have the following defaults:
C = Device 2, T = Device 2, V = Device 3, M = Device 2, A = Device 1, O = Device 2.
We want to change the Transport buttons to DVD and take the SAT device out of volume lock. Then we
create the macro
Dev2 = T_DEV4, V_DEV2.
Note that we are assigning the Volume grouping to the device of the bound key. This has the effect of
removing the device from Volume Lock but equally we could have reassigned the Volume grouping to
any other device, so this gives greater flexibility than merely turning Volume Lock on or off for a
particular device.
It is possible to view which device is active for any button. If it is other than the device currently selected
on the LCD screen, when you hold down a button then the device displayed in the centre of line 2 of the
LCD screen changes to that of the active device. So in the above example, if SAT is selected on the LCD,
pressing and holding the Play button will change SAT to DVD until you release the button. This works,
of course, also for the default assignments, so pressing 16:9 will change SAT to TV. This feature
considers the Record key, which needs to be pressed twice to have an effect, to be held throughout from
its first press to its second. So the first press will change the centre device to that of the Transport
grouping and it will remain changed until you press Record again, or any other key for that matter, but if
it is a different key then Record will not have taken effect.
6. Device switching
The keys Dev1 through Dev12 are also available as keys that can be included in a macro. You could, for
example, set up a macro
A = Dev2, M_DEV1.
The effect of Devn as a key in a macro is exactly the same as if that device had been selected through
scrolling the LCD. It will, indeed, change the LCD display to show Devn as the selected device and will
include any permanent reassignments of button groupings made as explained in section 4. So with the
setup described in that section, pressing key A will switch the LCD display to SAT and assign the button
groups as follows:
C = Device 2, T = Device 4, V = Device 2, M = Device 1, A = Device 1, O = Device 2.
This is an example of a nested macro. After the default reassignment made by the Dev2 key it then runs
the Dev2 macro to make the original reassignments, followed by the further reassignment by the
additional M_DEV1 key included in the key A macro.
Note that section 5 did not provide any means of changing the assignment of the Other buttons. It is not
possible to do so, this group is taken as characterising the device. If you need two devices with the same
assignment of the Other group, however, this device switching mechanism allows you to achieve it
through a button press. With the setup just described, selecting SAT through the LCD and through
pressing button A give two different Home Theatre settings with the same Other group assignment. The
LCD screen shows SAT as the selected device in both cases.
I have macros set up that map Shift/n to Devn for n = 1,2,…,7. These turn the shifted digit keys 1
through 7 into device selection keys for my seven devices. There is more on shift actions in the next
section.
11
7. Shift, X-Shift, T-Shift, Shift Cloaking and ESC
7.1 Shift and X-Shift
In the unextended device, pressing Magic gives a shift action except on digit keys, where it needs to be
pressed twice as one press of Magic followed by five digits sends the IR signal corresponding to that 5digit EFC (Key Magic code). The extender provides two shift keys, Shift achieved by pressing Magic
once and X-Shift (eXtra Shift) achieved by pressing Magic twice, i.e. by pressing Shift/Magic. The
extender does not require Magic to be pressed twice to achieve shift action on the digit keys, as the
unextended facility to enter an EFC after a single press of Magic is not present in the extender. The digit
keys are just like any other, a double press of Magic giving the X-Shifted digit.
When you use shifted keys in macros, do not put in Magic followed by the key concerned. There are tick
boxes in the Add panel for adding Key Moves or Macros with IR.exe that select the bound key as the
Shifted or X-Shifted key and alternative Add and Insert buttons to put the Shifted or X-Shifted key into a
macro.
Note that Brightness+/−, Colour+/− and Sleep are available as both bound keys and macro keys, as are
Channel+/−, Volume+/− and Power with Shift selected. These are synonymous – both ways are equally
valid for using these keys in key moves and macros. With the exception of these five pseudo-physical
buttons, Shifted and X-Shifted buttons are all in the same button groupings as their unshifted
counterparts.
As in the unextended remote, a press of a Shift key ‘times out’, so that if a key to be shifted is not pressed
within about 5 seconds, the shift action is cancelled. In the extender, this applies both to Shift and XShift.
7.2 Timed Shift (T-Shift)
The unextended device in fact contains a hidden second shift, the T-Shift (Timed Shift). When turned on,
it acts as Shift on the Channel+/−, Volume+/− and Power keys but on no other keys. When you press
Magic followed by any of Channel+/−, Volume+/− and Power, then it has the same effect as any other
key of cancelling the Shift action of Magic, but it turns on the T-Shift. This remains on for a timed period
of about 5 seconds, when it is turned off – the same point at which a Shift action would be timed out if
not already acted upon. But a press within the time period of any key that recognises T-Shift restarts the
timer. This is the internal mechanism that creates the special handling of Shift to provide the pseudophysical keys Brightness+/−, Colour+/− and Sleep. In the extender, T-Shift is available as a key that can
be included in a macro, though it is not available as a bound key. An example of its use is in section 8.
7.3 Shift Cloaking
If you include a Shifted or X-Shifted key in a macro and that key has not been bound to any function, it
performs the action of the unshifted key. This is known as Shift Cloaking. It enables you to access the
function of the unbound key when you have bound that key in a key move or macro. In particular it
enables you to create a macro on a key that includes the action of the unbound key. Well, usually. There
is one exception. To maintain the behaviour of Brightness+/−, Colour+/− and Sleep as pseudo-physical
keys that can have functions attached to them through a device setup code, these are not cloaked. X-Shift
with Channel+/−, Volume+/− and Power are cloaked so that if these are not bound then they give the
actions of unshifted Channel+/−, Volume+/− and Power. If Brightness+/−, Colour+/− or Sleep are bound
keys, however, then the only way to access the function of the unbound key is to create a key move to
map some other key to that function. There is an example of shift cloaking in section 10.8.
12
7.4 Escaping from a Shift
Suppose you have pressed Magic but then want to cancel it, you have pressed Brightness+ and want to
access Channel+/− before the T-Shift timeout, or your finger has slipped and you are not sure whether or
not you have pressed Magic. In the unextended remote there is nothing you can do about this. Repeated
keypresses of Magic have the same effect as a single one except for the special treatment of digit keys for
EFC entry. In the extender, just press the Light/ESC key. This cancels any Shift, X-Shift or T-Shift and,
if any of these were set, the LED flashes twice to indicate the cancellation and the keypress has no effect
on the backlight. If there was nothing to cancel, no harm is done as it just acts as the normal Light key –
but more on that below as the extender ‘corrects’ the action of the Light key.
7.5 Changing the Shift buttons and the optional nature of X-Shift
Although the button that provides the Shift action is by default Magic, and the one that provides X-Shift
is Shift/Magic, these can be changed with IR.exe. In the Other Settings panel of the General tab there are
entries for Shift Key (default 2) and Alt Shift Key (default 130, = $82). These can be changed to the
keycodes for any other desired keys – a table of keycodes is given in the Appendix. There is also an entry
for Alt Shift, which can be chosen to be either XShift or Shift. If you change Alt Shift value to Shift then
the Shift and Alt Shift keys will have the same effect. If Shift Key and Alt Shift Key are left at their
defaults and Alt Shift changed to Shift then repeated keypresses of Magic will have the same effect as a
single keypress, as the first press makes the second press be of the Alt Shift Key, but this just has Shift
action so the second, and any further, presses will again be of the Alt Shift Key and have a Shift action.
If, however, you leave Shift Key and Alt Shift at their defaults and change Alt Shift Key to 2 (same as
Shift Key), then repeated keypresses of Magic will toggle Shift on and off as the second press will be of
Shift/Magic which no longer has an assigned action but, like any other key, its pressing cancels the Shift
action. There are therefore two ways of turning off the ability to access X-Shift from physical buttons,
one giving repeated keypresses of Magic always acting as Shift and the other giving repeated keypresses a
toggle action.
Why should one want to turn off X-Shift access from the physical buttons? I do so to provide many more
‘phantom’ keys to which I can assign special protocol functions to use in macros. A phantom key is one
to which one can bind a function but which has no direct access from the physical buttons. The extender
provides three phantom keys that appear simply as Phantom1, Phantom2 and Phantom3 within IR.exe
lists. With Shift and X-Shift these provide nine such keys, but I do not find that to be enough. A
phantom key is effectively a name for a subroutine and its inclusion in a macro is a call to that subroutine.
The combination of special protocols and phantom keys enables the construction of very powerful
macros, as illustrated in section 10.9. In any case I find it annoying to have to make three keypresses to
access the third function on a key. Instead, when I want three functions I use the Long Keypress special
protocol. My three functions are then accessed through a short keypress, a long keypress and (singly)
shifted keypress.
7.6 Adding further actions to the Shift keys
Whatever button assignments are made to provide Shift and X-Shift actions, after they have set their shift
action these buttons are then passed through for normal processing so that macros can be bound to them.
The shift key could, for example, be made also to set a ToadTog toggle. As will be seen in the section on
the ToadTog special protocol, this can be used to emulate X-Shift on one or more particular keys when XShift access from the physical buttons has been turned off.
13
8. Temporary device reassignment
Section 5 showed the use of the Z_Devn keys to achieve permanent Home Theatre reassignment in a
macro assigned to a physical button. It is more likely, however, that you will want only a temporary
change of device. This is achieved with the X_DEVn keys that were not covered in section 4.
The key X_DEVn switches to Device n for all subsequent keys in the macro, regardless of their Home
Theatre grouping, but does not change any of the permanent Home Theatre assignments of the current
device. This switch of device continues until there is either another device assignment key Z_Devn,
permanent or temporary, or the macro terminates, or the temporary assignment is explicitly cancelled.
Cancellation is performed by the key X_CANCEL, which is the 73rd device reassignment key mentioned
in section 5. Note that in a nested macro the temporary device switch continues until the entire macro
ends, even if the X_DEVn key is in an inner macro.
As an example, suppose I want to put a macro on key A that turns on both the current device and Device
1, which is set as the TV. Then either of the following macros will achieve this:
A = Power, X_DEV1, Power
or A = X_DEV1, Power, X_CANCEL, Power.
They differ only in the order in which the devices are turned on.
A second example also illustrates the use of T-Shift. The setup code for my TV assigns functions to two
of the Aspect keys. Repeated pressing of Brightness+ cycles through a number of preset picture settings.
The 16:9 button opens a list of various aspect ratio settings that you need to scroll through with the TV
navigation pad Up and Down buttons and then press OK on the desired one. I have therefore created key
moves for Device 1 on the Colour+/− and Brightness− buttons that map to Device 1 Up, Down and OK.
When any device is selected I can now press 16:9 to open the aspect ratio list on the TV, then Magic
followed by Volume+/− (i.e. Colour+/− ) to scroll the list and finally Channel− (i.e. Brightness−) to
select. But I do not find this natural. I want to press Magic before I press 16:9, i.e. before I start the
whole aspect adjustment process. I have achieved this with the macro
Shift/16:9 = X_DEV1, 16:9, T-Shift.
The first two macro keys open the aspect ratio list on the TV, but on their own they would leave
Volume+/− and Channel− performing their volume and channel actions. The T-Shift turns them into
Colour+/− and Brightness−, which are in the Aspect grouping and so operate Device 1 and which in turn
pick up the key moves assigned to these keys to perform the required scrolling and OK actions.
9. The Light button
To me, the behaviour of the Light button in the unextended device is the most irritating feature of the
URC-7781. The backlight is on a timer. When you press any button, the backlight comes on and remains
on for about 7 seconds. You want to turn it back on without performing any function. So you press the
Light button – obviously! But the light doesn’t come on. Moreover, it no longer comes on when you
press any other button. The only way to turn the light back on now is to press the Light button again!
What on earth is happening? Well, the backlight behaves as though there are two switches between the
light and its power source. One is a timeswitch that is turned on by any button press. The other is a
toggle switch that is toggled by the Light button. When the light is on, both the toggle and the timeswitch
are on. When the timeswitch goes off, the light goes off. You press the Light button. Like any other
button it turns the timeswitch back on but it also turns the toggle off – and groan, still no light, not until
you press Light again to turn the toggle back on! The Light button performs this toggle action regardless
of the reason that you are pressing it, and since it is also the Escape key in long Magic keypress setup
operations this is, to say the least, irritating.
14
The Light key still has an Escape action in the extender, as described in section 7.4, but when it is pressed
as an Escape key it has no effect on the backlight. Instead it gives two flashes of the LED to show that it
has performed an Escape action. Also, if it is pressed when the backlight is off but the toggle is on then it
does not toggle the toggle switch. Bingo, the Light button does what you expect – when the light times
out and you press the Light button, the light comes on! The extender is worth installing just for this
improvement!
One further feature of the Light button is that when it toggles the toggle switch, but not otherwise, the
keystroke gets passed through for key processing. This key is available in IR.exe lists as LightTog. I
must admit that I cannot see a use for this facility, in contrast to the similar passing of Shift keys for key
processing described in section 7.6, but my design philosophy was to give maximum flexibility for
customisation and this is part of that philosophy.
10. The Special Protocols
The most powerful uses of the extender come from combining the nested macro facility with the Special
Protocols. Each of these protocols enables you to assign to a device/key combination a function that is
not available in the unextended remote.
If you select the Special Protocols tab in IR.exe, and press Add, you get a form in which you select in the
first section the device/key combination you want to bind. The next section is headed Parameters. If you
drop down the Type box you get a cryptic list: DSM, LKP, DKP, Multiplex, Pause, ToadTog. These are
shorthand names that in full are as follows:
Some of these names are not much more informative than their shorthand versions, but at least they are
pronounceable names! When you select one, the rest of the form changes to allow entry of the additional
information needed for the chosen function.
You will see that the drop-down box also lists a device and setup code in parentheses, e.g. (TV:1103) for
Device Specific Macro. You can find this device under the Devices tab. If you select it, the Protocol ID
displays a hexadecimal value, in this case 1FC. You can find this protocol, listed as $01FC, under the
Protocols tab. It is this protocol that actually performs the special function. Do not delete either the device or the protocol. Indeed, with the exception of the protocol $01F9 that provides the Long and
Double Keypress functions you will see under the Protocol Information display that the protocol data is
very short, so you would recover little space in deleting it. If you were desperate for space and knew you
would never want to use the Long and Double Keypress functions you could delete this protocol, but be
aware that you cannot re-install it without completely re-installing the extender from scratch.
For the technically minded, the ‘real’ code for the other special protocols is elsewhere, to maximise the
Move/Macro space available to users and to make greatest possible use of the EEPROM block occupied
by the extender.
Each of the special functions will now be described separately.
10.1 Device Specific Macro
This one is fairly self-explanatory. An ordinary macro, available through the Macros tab of IR.exe as
described in section 4.2, is device-independent in that it sends its key sequence whatever device may be
currently selected. A device-specific macro is one that takes effect only when a particular device is
15
selected. You set it up in the obvious way. You choose the device and key in the Bound Key section of
the form and then specify the macro keys as you do for a device-independent macro.
There is one important proviso. A device specific macro must contain at least two keys or it will not take
effect, If you only want one key in your macro you must add the Null key from the list of available keys.
This is a key with no effect, and of course for obvious reasons it cannot be chosen as a bound key.
The tick box labelled Hex, in the Parameters section of the form, is for advanced use. It enables those
familiar with the internal coding of the special protocols to enter that coding manually. It will not be
described further here. This holds also for all other special protocols other than Pause, for which Hex is
the only means of entering parameter data.
There is a second method for creating a Device Specific Macro that uses two fewer bytes. It is described
in section 10.7 below.
10.2 Long Keypress
This function enables you to put two device-specific macros on one key. The first is selected by a short
press of the corresponding button, the second by a longer keypress. You enter the two macros separately
in the Macro Definition section, into the boxes for Short Keys and Long Keys. The only limitation is that
the short press macro cannot be longer than seven keystrokes.
There is one other parameter to be entered. The Parameters section now has a box labelled Duration.
You select a value 1 to 15 here that controls the time division between short and long keypresses.
Roughly speaking, this value is in increments of an eighth of a second, so a value of 4 gives about half a
second, which is a typical value to use.
10.3 Double Keypress
This is very similar to Long Keypress, except the distinction is between the button being pressed once or
twice within the time selected by Duration. With a single keypress you will see a short delay, as the
function must wait for expiry of the time before it can confirm there has only been a single keypress.
10.4 Device Multiplexer
This function enables you to create a button that changes the setup code for a particular device. It is not a
toggle. If you want to be able to return to the original setup code then you need to define a second button
to do that. But you can create a toggle action if you wish, by combining this function with ToadTog,
explained below.
The device whose code is changed is the currently active device for the assigned button. This is
dependent both on the device selected on the LCD screen and the Home Theatre settings for that device,
so the safest thing is to put this function on a key in the Other button grouping. This will ensure that the
change affects the currently selected device. You can also put it on a phantom key and then create a
macro (global or device-specific) with an X_DEVn temporary device switch followed by the phantom
key, to change the code for device n regardless of which device is currently selected,
The rest of the setup is self-explanatory. The Parameters section has a drop-down box for Device Type
and Seup Code. These are exactly the same as you would enter in adding a new device, or as displayed in
the Device Buttons section of the General tab. Note that there is no need for the new device to be the
same type as the original – you could change the code for the SAT device into a CBL code, to switch
between satellite and cable boxes under the SAT device on the LCD screen.
The change is permanent. It is remembered if you change the currently selected device and then return to
it, and if you leave the remote so it enters its dormant sleep state. To restore the original value you need
either to have set up a second button to change the code back again, or else to re-start the extender.
16
10.5 Pause
As described in section 4.2, the Pause function enables you to create a delay between two specific
keystrokes in a macro without slowing down the processing of macros in general. You will normally
bind a Pause to a phantom key, so that you can insert that key wherever you need a pause in your macros
without having it taking up unnecessarily some physical button.
For this function you have to enter the required delay in the box marked Hex, as a two-byte hexadecimal
value. This value has exactly the same form and meaning as was described in section 4.2 for setting a
general macro delay, and with the same proviso about the meaning of zero as the low byte value. To use
the example given there, a delay of 1 second is 1000 milliseconds, or in hexadecimal, $03E8
milliseconds. You enter this as the two-byte value $03 $E8. There are no other parameters.
10.6 ToadTog
TOAD stands for Toggle-Only Actuated Devices. This function takes its name from its ability to create
separate On and Off buttons for a device whose native On/Off action is only through a toggle button.
This comes into its own when you want to create a macro to turn on several devices at once. If any of
them were already on, a straightforward macro would turn on those that were off, but would also turn off
those that were on. ToadTog circumvents this by ‘remembering’ whether the devices were on or off, and
only turning on those that were off. It relies, of course, on the devices concerned never being turned on or
off in any other way than through this remote control, as it has no way of keeping track of any other
activations.
ToadTog has eight independent toggle memories, numbered 0 to 7. You choose the toggle number to use
in the box marked Toggle #. They are all initially Off, but they retain their new value even when the
remote enters its dormant sleep state.
The action of the bound key can be chosen, in the Condition box, to Toggle (Off -> On, On -> Off), Test
Only (Off -> Off, On -> On), Force Off (Off -> Off, On -> Off) or Force On (Off -> On, On -> On).
Whichever option you choose, you can assign two macros, one for each of the two actions. The headings
of the two macro definition boxes change to reflect the choice of condition. Note that you must assign
one of the two macros, as if both are empty then the toggle action will not take place. If you want a key
that does nothing other than one of the toggle actions, assign the Null key as one of the macros.
The simplest example is the original one, to create separate On and Off buttons from a toggle-only power
switch. Assume that the device is to be off when we first start using the new buttons, and that we will use
toggle 2 to remember its state. Then we set
‘On’ button: Toggle # = 2
Condition = Force On
Off->On macro = Power
Already On macro = <empty>
‘Off’ button: Toggle # = 2
Condition = Force Off
On->Off macro = Power
Already Off macro = <empty>.
A composite example that uses several different Special Protocols is given in section 10.8.
You can use ToadTog to emulate an X-Shift for a particular key if you have turned off direct X-Shift
action from the keypad by changing Alt Shift from XShift to Shift, as described in section 7.5. Suppose
you want to use toggle 7 for this. Bind a macro to the Magic key to force toggle 7 off, and one to
Shift/Magic to force toggle 7 on. One press of Magic will then set a Shift state with toggle 7 off, the
second (and subsequent) presses of the Magic button will be of the Shift/Magic key, which again sets a
17
Shift state but this time with toggle 7 on. On the key on which you wish to emulate an X-Shift, bind the
shifted key to a ToadTog function that tests toggle 7 and if off, performs what you want as a Shift
function and if on, performs what you want as an X-Shift function.
A ToadTog toggle can be set to ‘time out’ – to turn off after about 5 seconds. This uses the same timer as
times out a Shift not acted upon, as described in section 7.1. You specify the toggles you want to time out
in the Other Settings section of the General tab of IR.exe. The entry Timed TogBits is the decimal form
of a binary bitmask that selects the timeout bits. Suppose you want bits 1 and 7 to time out. The binary
mask is 10000010, which is $82 hexadecimal or 130 decimal. You can enter either $82 or 130 as the
Timed TogBits value, but the display will show 130 in either case. A timed toggle can be turned off
before expiry of the time period by pressing Light/ESC, as described for escaping from a Shift in section
7.4. The LED will flash twice and the keypress will have no effect on the backlight status.
You can use a timed toggle to create an effect similar, but not identical, to that of T-Shift on a key that
does not recognise T-Shift. Suppose you set toggle 6 to time out. You have two functions, x and y say,
and you want key B to perform x when unshifted but y with a timed latching shift. Set key Shift/B as a
device-specific macro that performs y and then forces toggle 6 on. Pressing Magic then B will perform
function y, will cancel the shift state but leave toggle 6 on. So you put a ToadTog function on unshifted B
that performs x when toggle 6 is off, y when toggle 6 is on. Your second press of B after Magic will then
still perform y, but this time because toggle 6 is on. Pressing any key, and B in particular, before timer
expiry will reset the timer and so you can continue to press B, at intervals of not more than 5 seconds, to
perform function y. When about 5 seconds has elapsed after the last keypress, the timer will turn toggle 6
off and leave B performing function x. The difference between this and the T-Shift behaviour lies only in
the resetting of the timer. A T-Shift is cancelled if any key is pressed that does not recognise a T-Shift.
With the timed toggle, pressing another key will extend the time without cancelling the toggle.
10.7 The Inbuilt Device Specific Macro
This is not a Special Protocol, but it serves the same purpose as the Device Specific Macro special
protocol and takes two fewer bytes of the Move/Macro area. It is a method built directly into the
extender. It is not directly supported by IR.exe but nevertheless can be created using it.
Before creating this macro, look at the Raw Data tab. Any changes to the data that have been made since
you loaded a setup into IR.exe will be shown in bold type. If there are any such changes, either make a
note, mental or otherwise, of where they are or save and reload the file, so that you start off with a ‘clean
sheet’.
Then create an ordinary macro through the Macros tab, bound to the key that you want to use. Go to the
Raw Data tab. You will see the raw data of the macro in bold type. The second byte should be 8F.
Change this to 8n, where n is one less that the (hexadecimal) number of the device to which you want to
restrict the macro. So it would be 83 if you wanted Device 4, say. Then press Apply. It is done. It will
still appear as a macro under the Macros tab, but IR.exe will not know that it is now device specific. I
suggest you make a note of the device restriction in the Note area of the macro definition.
There is one consequence of the inability of IR.exe to recognise this as a device specific macro. You
cannot also assign a device non-specific macro to the same key. The extender checks for device specific
macros of this form before it checks for device non-specific macros, so the extender would handle this
correctly. It is only IR.exe that prevents you from creating such a pairing.
10.8 Global use of Special Protocols
In their raw form, all the functions provided by the Special Protocols are bound to a particular device/key
combination. But just as there is a Device Specific Macro protocol to enable a macro to be restricted to a
particular device, so you may want to create a device non-specific Long Key Press, for example.
18
To illustrate how you do this, suppose you want to put a global Long Key Press on button A. First create
a Long Key Press on button A for any device (say device 2 for this illustration), with the desired actions.
Then create a macro on key A with macro keys
X_DEV2, A.
Now if you press key A with Device 2 selected, the original Long Key Press will be found first and acted
upon. If you press key A with any other device selected, the macro will be found, key A will be replaced
in the keystroke queue by X_DEV2, A, the X_DEV2 will switch the active device to Device 2, the
(second) key A will then be acted upon with Device 2 selected and the Long Key Press will again be
found and acted upon.
Note that provided a key bound to a Long or Double Key Press is the last keystroke in a macro, the
Long/Short or Double/Single selection will apply to the macro bound key, even if the Long or Double
Key Press is bound to a different key. In our illustration we could have put the Long Key Press on a
phantom key and put that key into the macro instead of key A. It would still be a long or short keypress
of key A, the key bound to the macro, that would determine the function performed.
I have used this ability as follows. In section 8 there was an example of how key A could be set to turn
on both the currently selected device and the TV. But key A is not a natural power switch. I want to use
the Power button, with a short keypress to turn on the selected device and a long keypress to turn on both
it and the TV. I first set an LKP for a phantom key on Device 1:
Dev1 Phantom1 = LKP, Duration 4,
Short = X_CANCEL, XShift-Power,
Long = X_CANCEL, XShift-Power, X_DEV1, XShift-Power
I then created a macro on the Power button:
Power = X_DEV1, Phantom1.
The X_CANCEL in the LKP ensures that the XShift-Power acts with the currently selected device. Since
XShift-Power is not bound, shift cloaking operates to perform the power button action without causing
recursion.
As a refinement, I do not want a long keypress to act in this way when the selected device is Device 1, in
case it turns the TV first on, then off. So I created the key move described in section 4.1 that maps
Device 1 Power to itself. When the selected device is Device 1, this is found before the macro and so preempts the macro action.
Any Special Protocol can be given a global action in this way.
10.9 A Composite Example
Here is an example from my own setup that illustrates a combination of several Special Protocols. I have
an Onkyo TX-SR606 AV Receiver that has two zones. The original remote has dedicated buttons to
switch it between controlling Zone 1 and Zone 2. I wanted to emulate this on my URC-7781, and in
addition have a short keypress of the digit buttons acting as the digits of the original remote, but a long
keypress of buttons 1-9 acting as input selection keys for the nine devices of the receiver for the current
zone.
I have created two devices in Remote Master for the two zones, with setup codes 2000 for Zone 1 and
2001 for Zone 2. Code 2000 is assigned to the RCV device, which is Device 3. Code 2001 is not
assigned to any device. In both codes the digit buttons are bound to the digit functions of the original
remote. The device selection functions of the original remote are not assigned to any buttons in these
setup codes.
To begin, I created the ‘subroutines’ I would need, assigning functions to phantom keys. I first created 18
key moves, on X-Shift/1-9 for each of devices 1 and 2. These are being used as phantom keys – I have
disabled keypad access to X-Shift as described in section 7.5. The key moves on Device 1 are assigned to
19
the device selection functions for Zone 1, the move being constructed with setup code 2000 and the
appropriate hex command. Those on Device 2 do the same for Zone 2, using setup code 2001.
I next used the Device Multiplexer to create switches between the two setup codes:
Dev3 XShift-A = Multiplex, Device type RCV, Setup Code 2000
Dev3 XShift-B = Multiplex, Device type RCV, Setup Code 2001.
Again these are phantom keys. The final phantom key to be set up selects temporary device 1 or 2
according to the state of toggle 1 of ToadTog:
Dev3 Phantom1 = Toggle1, Test Only, On=X_DEV2, Off=X_DEV1
The first physical buttons to be setup were buttons A and B for Device 3, which are to be the switches for
Zone 1 and Zone 2. These use ToadTog:
Dev3 A = Toggle 1, Force Off, On->Off = XShift-A, Already Off = XShift-A
Dev3 B = Toggle 1, Force On, Off->On = XShift-B, Already On = XShift-B.
Button A then sets the RCV setup code to 2000 for Zone 1 and turns toggle 1 off, button B sets the setup
code to 2001 for Zone 2 and turns toggle 1 on.
Finally, each of Device 3 buttons 1-9 were set up with Long Key Press:
Dev 3 key n = LKP, Duration 4, Short = XShift-n, Long=Phantom1, XShift-n.
Since the keys XShift-n, for n = 1 to 9, have been left unbound then a short keypress uses shift cloaking to
perform the action of key n in the setup code for Device 3. This setup code is that for Zone 1 or Zone 2
according to which of buttons A or B was last pressed. A long keypress first tests toggle 1 and sets
temporary device 1 or 2, again depending on which of buttons A or B was last pressed. The key XShift-n
is then acted upon in the context of this temporary device, as the temporary selection lasts until the end of
the enclosing macro. In this context XShift-n has an assigned key move, which gives a device selection
function for Zone 1 or Zone 2 according as the temporary device is device 1 or 2. Clearly, all non-digit
keys also switch between zones 1 and 2 as their action is determined by the setup code set by the
multiplex action of keys A and B.
11. Exiting the Extender to use Magic Setup
You can exit the extender and return to the unextended operation of the remote by pressing Magic and
Record simultaneously, regardless of the selected device. Note that this does not mean pressing one of
them and holding it while pressing the other. They must both be pressed together. The leeway in time is
very small, about one twentieth of a second, which means that you are unlikely to do it accidentally but
there is no difficulty in doing it deliberately. When you do this, the LED flashes four times but you see
no change on the LCD screen. Nevertheless, you are now back in the unextended remote.
The unextended remote ‘sees’ all the devices that are set up, all the device and protocol upgrades, exactly
one key move (the Record key on Device 1 that starts the extender) and no Key Magic or Macros. You
could use it as a remote control, if you wished, provided you did not want to use the key moves, etc. set
up in the extender. The Record key that is used to enter the extender is not available in TV setup codes,
so this key move does not prevent access to any of the TV functions of its setup code. But there is little
point in using the remote in this way. The only serious reason for exiting the extender is to use the setup
facilities available through a long press of the Magic key.
Not all the functionality of Magic setup is safe to use, but much of it is safe. For obvious reasons you
should not use Download, User Reset or anything under Advanced Setup/Function or Macro. You should
not use anything under Advanced Setup/Home Theatre as the HT device is not acceptable to the extender.
The functions Add Device to Volume Lock, Remove Device from Volume Lock are safe but pointless, as
they have no effect on operation of the extender. But this leaves the following, all of which are safe.
Moreover, with the exception of the two listed Volume Lock functions that can also be performed from
20
IR.exe, they are the only way to perform these functions that maintain the integrity of the device setup.
Initial Setup
Device
Add Device
Replace Device
Change Device Code
Move Device
View Code
Delete Device
Day/Time
Set Day
Set Time
Volume Lock
Set Volume Lock
Reset All Volume Controls
There is one proviso. Do not delete or replace the TV device, as the extender expects Device 1 to remain
as TV. You can, of course, change its code if you change your TV.
The two Volume Lock functions may need some explanation in this context. Set Volume Lock lets you
choose the Volume Lock source device and it turns Volume Lock on. This source device then becomes
the default device for the Volume button grouping, as described in section 3. Reset All Volume Controls
turns Volume Lock off, so that the extender uses each device’s own setup code for the Volume grouping.
When you have made any desired changes, re-enter the extender by selecting the TV device and pressing
Record.
It is strongly recommended that you then download the new setup to IR.exe and save it. You will find
that the download process exits the extender and leaves it asking you to set the Language, Day and Time.
Do not fear that you have destroyed the extender. This is normal behaviour. After you have made these
entries, you should then be left with the LCD pointing to the TV device. Just press Record to get back to
the extender, with the new settings.
If you delete or replace a device or change a device code, you will probably want to modify the key
moves, macros and special protocol functions that you have created. You need to use IR.exe to do this, in
the same way that you set up the extender in the first place.
12. Changing the batteries
If you are quick, you may be able to change the batteries without losing the current state in the extender.
I would advise changing those on one side first, then the other, rather than taking all four batteries out at
once, but it seems unpredictable whether or not this will work.
If you are too slow, all that happens is that you are returned to the unextended remote and asked to set the
Language, Day and Time. After doing so you will find the TV device selected. Press Record, the LED
will flash four times and you will be back in the extender.
21
13. A few Technical Notes
The extender image in the “.ir” file and in the upgrade “.hex” files has a different signature from that of
the unextended remote. The 4th and 8th characters are changed to “A” for the extender. But when you
upload the extender to the remote, you are required to set the Language. Doing so rewrites the signature
in the remote’s EEPROM (strictly, in its flash memory), returning it to its unextended value. When you
enter the extender by pressing TV/Record, the extender again rewrites the signature, returning it to the
correct form for the extender. It is this dynamic rewriting of the signature that enables you to exit and reenter the extender. If you do a download from the remote to IR.exe, it will recognise whether you are in
the extender or unextended remote and will use the appropriate .rdf file.
To the extender, keys bound to Special Protocols are seen as key moves to a (fictitious) device that uses
the special protocol concerned. For DSM, LKP, DKP and ToadTog the coding of the special protocol
transforms the key move into the appropriate macro, that is then executed just as any other macro. The
coding of the Device Multiplexer and Pause protocols performs the actions of their special functions
directly.
Edition 2
mathdon
27 December 2008
22
Appendix 1: Key Codes for the Extender
This appendix provides three tables that between them give all the key codes used in the extender. Table
1 gives the codes for the physical buttons and phantom keys, all of which are available either unshifted
(plain) or with Shift or X-Shift. To this table should be added the following aliases:
Table 2 gives the device assignment keys, and the Null key, available for use macro definitions but to
which functions cannot be bound. Table 3 gives the device selection keys, available for use in macros
both as bound keys and definition keys. All key codes are hexadecimal values.
Table 1 – Physical buttons and phantom keys
Plain Shift X-Shift Key Plain Shift X_Shift Key
00 80 C0 Phantom3 19 99 D9 4
01 81 C1 LightTog 1A 9A DA 5
02 82 C2 Magic 1B 9B DB 6
03 83 C3 Power 1C 9C DC 7
04 84 C4 Vol+ 1D 9D DD 8
05 85 C5 Vol− 1E 9E DE 9
06 86 C6 Ch+ 1F 9F DF 0
07 87 C7 Ch− 20 A0 E0 -/-08 88 C8 Mute 21 A1 E1 Guide
09 89 C9 Skip+ 22 A2 E2 AV
0A 8A CA Skip− 23 A3 E3 Exit
0B 8B CB Rew 24 A4 E4 Up
0C 8C CC Play 25 A5 E5 Down
0D 8D CD Ffwd 26 A6 E6 Left
0E 8E CE Stop 27 A7 E7 Right
0F 8F CF Pause 28 A8 E8 Menu
10 90 D0 Rec 29 A9 E9 Red
11 91 D1 Phantom1 2A AA EA Green
12 92 D2 Phantom2 2B AB EB Yellow
13 93 D3 Enter 2C AC EC Blue
14 94 D4 OK 2D AD ED A
15 95 D5 1 2E AE EE B
16 96 D6 2 2F AF EF C
17 97 D7 3 30 B0 F0 D
18 98 D8 16:9
23
Table 2 – Device assignment keys and the T-Shift and Null keys
Code Key Code Key
F1 Dev1 F7 Dev7
F2 Dev2 F8 Dev8
F3 Dev3 F9 Dev9
F4 Dev4 FA Dev10
F5 Dev5 FB Dev11
F6 Dev6 FC Dev12
Key codes 7B-7E, B1-BF and FD-FE are not used. Value FF is not available for use as a key code as it is
used as data terminator.
24
Appendix 2: Preparing to Upgrade an Existing Installation
A setup of the unextended remote contains some or all of the following elements:
• Devices
• Home Theatre
• Device Labels
• Device Code Upgrades
• Volume Lock
• Learning
• Key Moves (“Key Magic”)
• Timed and Key Macros
This Appendix provides the information needed for you to decide what changes, if any, you need to make
to each of these setup elements before you install the extender as an upgrade in accordance with section
2.5. In your decisions, please be aware of a feature of IR.exe that can cause unexpected problems. If
IR.exe finds data in a setup that it believes to be in error, it will “correct” this data without notifying you.
So when there are incompatibilities between a remote and IR.exe, as there are between the URC-7780 and
URC-7781 and the current version 7.15 and earlier of IR.exe, this hidden “correction” can actually be a
corruption that will become incorporated into your remote when you upload the setup. So merely
downloading a setup to IR.exe and then uploading it back to your remote has the potential to corrupt your
setup, even if you believe you have made no changes.
The preparations described in the Appendix should remove any corruption caused in this way. To the
best of my knowledge a remote with this extender and the accompanying RDF file is completely
compatible with IR.exe 7.15, so no further corruption should occur once you have installed the extender.
Devices and Home Theatre
If you delete all the devices, this will automatically delete all the other setup elements except Device
Code Upgrades. This corresponds to making an “Almost Clean” installation, so you should follow the
instructions for this in section 2.4, rather than continuing with those of section 2.5. This Appendix will
therefore assume that you wish to retain at least some of your current devices.
Start up IR.exe, connect your remote and download your current setup. Look at the Device Buttons pane
of the General tab. This shows how your current devices, identified by their type and code, are assigned
to device buttons Dev1 to Dev13. A type HT and code 2047 means that device button is not assigned. A
type HT and code 1011 means that device button is assigned to Home Theatre. The device button
numbers are irrelevant to the normal usage of the unextended remote, but they play a central role in
setting up the extender.
When a device is added to the remote, it will be assigned to the first available device button. It will
remain assigned to that button until it is deleted. The order in which devices appear on the LCD display
is determined by the settings 1st Dev, 2nd Dev, etc. shown in the Other Settings pane. It is these values
that are changed by the Move Device item of the remote’s setup menus.
The Clean and Almost Clean installation methods ensure that devices are added in the order in which you
want them to be displayed, so that 1st Dev is Dev1, 2nd Dev is Dev2 etc. This is a convenience, but it is
not essential. These methods also ensure that Dev1 is the TV device. This is highly desirable but not
absolutely essential. If Dev1 is anything other than TV, it is the Dev1 device rather than TV that must be
selected in order to enter the extender, and you will need to press the Record key twice, not once.
25
What is essential is that Dev13 is unassigned, as it is not supported by the extender. The existence of
Dev13 is because of the Home Theatre facility of the unextended remote. Its operating system supports
up to 12 devices plus Home Theatre – it will not allow you to install 13 “ordinary” devices. If you have a
device assigned to Dev13, you must delete it before installing the extender. You must also delete Home
Theatre (which may or may not be Dev13) as it too is not supported by the extender, its features being
provided in other and more powerful ways.
If you need, or wish, to make changes to your current devices in the light of this information, now is the
time to do it. Do not use IR.exe for that purpose. Disconnect your remote from it and use instead the
setup procedures of the remote, accessed through a long Magic keypress. Devices are deleted through the
menu item Initial Setup/Devices/Delete Device, and Home Theatre is deleted through Advanced
Setup/Home Theatre/Delete Home Theatre. Note, however, that deleting a device also deletes any Key
Moves assigned to that device and these are not reinstated if you then add that same device back under a
different device button.
Device Labels
The device labels that display on the LCD screen are user modifiable through the menu item Advanced
Setup/Device Label/Change Device Label. They are also displayed, and may be edited, through the Other
Settings pane of IR.exe if the RDF file contains the entry
Labels=$0038,4
in its [General] section. But BEWARE, the current version 7.15 of IR.exe is not completely compatible
with the label handling of the native operating system of the remote. There are two problems:
• IR.exe pads labels of fewer than four characters with ASCII spaces ($20) while the OS of the
remote pads them with $FF. This causes labels to be misaligned on the LCD display, e.g. the
label TV, when selected, has both letters to the left of the central pointer rather than one letter on
each side. This is a minor issue.
• IR.exe is unaware of the presence of a second set of labels, the default labels, stored in the
EEPROM and which cannot be edited by the user. So if you add or delete a device through
IR.exe and insert or delete the user label through the Other Settings pane, the corresponding
default label should, but will not, be added or deleted. Like a time-bomb, this problem remains
invisible to the user until certain actions are taken. Any action that deliberately or incidentally
causes the user labels to be reset from the default labels can then be catastrophic. I have
performed a User Reset that left the remote unusable until I uploaded a valid setup from IR.exe.
It just asked Language, Set Day, Set Time, then back to Language again, with no means of
escape.
Because of this, I have decided that the risks of having this setting in the RDF outweigh the benefits.
This setting is absent from all the RDF files packaged with this extender. It is present in the RDF file for
the URC-7781 dated Aug 07, 2008 which I put in the Tools/RDF Files of the JP1 Forum but it is absent
from all versions of the RDF file for the URC-7780 posted there.
I recommend all installers of the extender to check the integrity of the label entries in the EEPROM, and
to amend them if necessary, although for the reason just explained, this problem is more likely to affect
users of the URC-7781 rather than the URC-7780. You make the check, and any necessary amendments,
in the Raw Data tab of IR.exe. The User Labels occupy the address area F038–F06B for the URC-7781
(EC38–EC6B for the URC-7780) and the Default Labels occupy the area F06C–F09F (EC6C–EC9F).
Each of these areas consists of 13 4-byte entries in succession, containing the ASCII coding of the
appropriate label for Dev1 through Dev13. The User Labels should encode the label text that is displayed
on the LCD screen, the Default Labels (for assigned buttons) should encode the Type as shown in the
Device Buttons pane of the General tab. In all cases a label of fewer than four characters should be
padded to four on the right with the hexadecimal value FF. Both labels of an unassigned device button
26
should consist of four FFs (even though the default label shows as HT in the Device Buttons pane). The
characters that can appear in a device label, with their hexadecimal ASCII codes, are:
A 41 F 46 K 4B P 50 U 55 Z 5A 4 34 9 39
B 42 G 47 L 4C Q 51 V 56 0 30 5 35 . 2E
C 43 H 48 M 4D R 52 W 57 1 31 6 36 SP 20
D 44 I 49 N 4E S 53 X 58 2 32 7 37
E 45 J 4A O 4F T 54 Y 59 3 33 8 38
where SP means the SPACE character. Note that SPACE can be used in a label, it is just that it should
not be the padding character, and that IR.exe considers the Full Stop (2E) to be illegal and changes it to a
SPACE. To correct a character, highlight the hex value in the Raw Data display and enter the correct
value. When you have made all the corrections, press the Apply button. Until you do so, you can undo
your amendments by pressing the Undo button, but once they are applied they cannot be undone.
Device Code Upgrades
Device code upgrades, and any associated protocol upgrades, will be carried across to the extender. No
action is necessary.
Volume Lock
Volume Lock settings can be viewed and changed in the Other Settings pane of the General tab of IR.exe,
where they are referred to as VPT (Volume Punch Through) settings. They are active in the unextended
device only when VPT Status is “On”. The VPT Device (the device controlled by the Volume buttons
when Volume Lock is on) is displayed there and Volume Lock is applied only to those devices where
“Xth Dev uses VPT” is also “On”.
All these settings will be carried across to the extender but it is only the settings of VPT Status and VPT
Device that it uses. When set On, by default Volume Lock is applied by the extender to all devices. The
extender uses a different method to exclude a device from Volume Lock. This is explained in section 5 of
this manual.
Learning
The learning facility is the one major feature sacrificed in the use of extenders – all extenders, not just this
one. The memory area for learning in the unextended remote is used in the extender for Key Moves and
Macros, since the memory area that these occupy in the unextended remote is used to hold the extender
code.
This lack of learning capability is rarely a serious drawback, however, since IR.exe enables you to
identify the hexadecimal code or EFC value corresponding to a learned signal, so that it can be set up
instead as a Key Move. If you need to learn a signal and discover the corresponding code after you have
installed the extender, you can always exit the extender to return to the unextended remote as explained in
section 11. This will restore the learning capability. When you have finished you need simply to reupload to the remote the “.ir” file of your extender setup and re-enter the extender.
It is not necessary to take any action to delete any learned signals currently set up in your remote.
Learning will be automatically disabled and the learned signals over-written, at least in part, by
installation of the extender upgrade. However, there may still be garbage left behind in the EEPROM
from learned signals that do not get over-written. A cleaner installation is therefore obtained by deleting
all learning with the menu item Advanced Setup/Function/Delete Function/Delete Learning/Delete
Learning From All Modes.
27
Key Moves, Timed and Key Macros
These three setup features are best considered together since in the unextended remote they occupy the
same region of EEPROM memory, namely F0AD–F3FE in the URC-7781 and ECAD–EFFE in the URC-
7780. The installation process for the extender copies the content of this area to its new location
described above in the discussion of learning, making all necessary changes to internal address tables etc.
In doing so it does not distinguish between these features, although they differ from one another in their
relationship both to the extender and to the current version of IR.exe (version 7.15).
Key Moves are fully supported by IR.exe and the extender. They are carried over automatically by the
installation process. No preparation is necessary.
Timed Macros are not supported by the extender and their format in the unextended remote is
incompatible with IR.exe. If they are present in a setup for the unextended remote that is downloaded to
IR.exe then they are interpreted as key macros, possibly as corrupt ones. They will show up under the
Macro tab as assigned to some inappropriate key and they may have been “corrected”, which of course in
reality means they have been corrupted. The same happens if they are still present when a setup is
upgraded with the extender. It is therefore necessary to delete any Timed Macros before undertaking the
upgrade.
Key Macros are supported by the extender but their format in the unextended remote is incompatible with
IR.exe. If they are present in a setup for the unextended remote that is downloaded to IR.exe then they
either do not show up under any tab or else they are interpreted as Key Moves with some inappropriate
destination. Which of these happens depends on the content of the macro. In either case this content may
become corrupted. The extender uses the Key Macro format of IR.exe, as otherwise it would not be
possible to use IR.exe to create macros, and since the ability to create macros of great power is virtually
the raison d’être of extenders, this would be totally unacceptable. Because of the possibility of corruption
it is not wise to try to convert macros from one format to the other. Key Macros, too, therefore need to be
deleted. They may be re-created after the upgrade but with the greater power of macros in the extender it
is likely you will instead want to create new ones.
So how do you delete your macros? Timed Macros are easy. When you have timed macros, an asterisk
precedes the time shown in the normal LCD display. The menu item Advanced Setup/Macro/Delete
Macro/Delete Timed Macro presents you with a scrollable list of timed macros so that you can delete
them one by one. You can also delete them with IR.exe as they are the only things that appear under the
Macros tab. Just delete everything under this tab, one by one.
Key Macros are easy to delete if you know what keys have assigned macros. You can use the menu item
Advanced Setup/Macro/Delete Macro/Delete Key Macro. But this does not show you what macros are
set up, neither does IR.exe as many macros do not show up there under any tab. You can use Delete Key
Macro to delete from every key in turn, but it is better if you are prepared to examine the relevant
memory area as displayed under the Raw Data tab of IR.exe. If you do this, you can assure yourself that
nothing has got through the net that can potentially cause trouble later on.
To do this, or to understand the issues in more detail, you need to know the basic format of these features.
They share a common format, namely a 3-byte header followed by a body of variable length. Indeed,
learned signals also share this format although they occupy a different region of the EEPROM. Byte 3 of
the header is the number of bytes in the body, as a hexadecimal value. The first byte of the first header is
at F0AD or ECAD, its length byte enables the first byte of the next header to be located and the chain of
headers is terminated by a first byte of value FF. Armed with this information, you can look at each
header in turn. There may be more data after the terminating FF but if so, it is left-over garbage that you
will delete, easily, later on.
The various setup features are distinguished from one another by bits 4–7 of header byte 2. In the
operating system of the remote the identifying values are:
28
Key Move: 0001 (nibble value 1)
Learning: 0010 (nibble value 2)
Key Macro: 0011 (nibble value 3)
Timed Macro: 1xxx (nibble values 8 to F)
where xxx for the Timed Macro can take any value as it forms part of the timing data.
Key Moves and Learning have the same format in IR.exe, but Key Macros and Timed Macros do not.
There, these bits for Key Macros have the value 1000 (nibble value 8). IR.exe does not expect Timed
Macros to share memory area with these other features, so Timed Macros are not enabled in any RDF
issued for either of the two remotes. The leading bit value 1 in the Timed Macro identifier of these
remotes causes IR.exe to interpret it as a Key Macro, but of course the rest of the macro data will be
misinterpreted and may be considered invalid, resulting in it being “corrected”. The identifying bits in the
Key Macro identifier of the remotes shares a bit 4 value of 1 with a Key Move, which appears to make
IR.exe sometimes, but not always, try to interpret the Key Macro as some form of Key Move.
The action you need to take is to make all Key Macros, and any Timed Macros that may have escaped
deletion so far, become visible to IR.exe so that you may delete them. To do this, change byte 2 of the
header to the value 8F. When you have made this change to all headers needing it, press the Apply
button. Until you do so, you can undo your changes by pressing the Undo button, but once they are
applied they cannot be undone. After pressing Apply, the amended macros will all be visible under the
Macros tab of IR.exe, where you can delete them one by one.
Getting rid of garbage
After making these changes, there may still be garbage left in areas of the EEPROM that are beyond the
relevant terminator byte for that area. To clear this out and replace all garbage bytes by FF, open the
Advanced menu on the menu bar of IR.exe and select Clean Upper Memory. If you do this with the Raw
Data tab open, you will witness the clean-out as it happens. But whatever you do, DO NOT use Clean
Upper Memory after you have installed the extender, as it will treat the extender as garbage and delete it!
You are now ready to install the extender as an upgrade, so return to section 2.5 and follow the
instructions given there.
29
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.