Page 1 of 1
Device Specific Macro w/o Extender
Posted: Tue May 17, 2016 2:05 pm
by Jim978
I wanted to create a device specific macro (DSM). Right now, there is just one such macro that I want/need. I know extenders provide a great deal of flexibility and additional programming options, but what I really wanted at the moment was a way to create a single DSM quickly and easily. I think I have figured out a way to add the functionality I want without installing an extender (and my apologies if others have posted this tip/trick before ... or if it doesn't really work the way I think it does).
In this case, I wanted to be able to launch a macro from the CBL device mode only. The details of this macro are unimportant. I knew the key I originally wanted to use to launch the macro, and I didn't want this macro to run when I was in any other device mode. So, this is what I came up with.
None of my remotes (I have four different models) have functions assigned to shifted keys, leaving lots of places to store macros. Using shifted keys also means it is unlikely the macro would ever be launched inadvertently. So, I programmed a shifted key with the macro I wanted. Next, I programmed a key move so that the CBL key I originally wanted to use to launch the macro calls the shifted key that holds the macro instead.
Now when I press the CBL key with the key move, I get the desired macro, but only in CBL mode. Since the key move programmed only operates in CBL mode, the macro isn't called from any other device mode. Keep in mind that the same key I used for the CBL macro could launch a different macro from another device mode. To do this, simply create a new macro on a different shifted key, and program another key move in another device mode for the new macro.
It seems to work, so I wanted to pass this along to others.
Re: Device Specific Macro w/o Extender
Posted: Tue May 17, 2016 3:59 pm
by The Robman
Jim978 wrote:Next, I programmed a key move so that the CBL key I originally wanted to use to launch the macro calls the shifted key that holds the macro instead.
I am not following this part, how does a keymove trigger a macro?
Anyway, you don't need to install an extender to get DSMs as you can add them as a special protocol:
https://www.hifi-remote.com/forums/dload ... le_id=4921
If your remote is not supported, or you just don't want to deal with special protocols, the poor man's way of doing a DSM is to program a macro to a button, and then overlay it with keymoves or learned signals in all the other modes.
Posted: Tue May 17, 2016 6:15 pm
by Jim978
Robman,
Here's an example. Let's say you want to launch a macro in CBL mode using the PIP swap button. You could create the macro on the Shift-swap button. Then using keymover, program the remote to copy the Shift-swap key to the normal swap key.
Pressing CBL swap launches the macro. When not in CBL mode, the swap key does whatever it would normally do in that mode.
Posted: Tue May 17, 2016 9:55 pm
by The Robman
Normally, when you keymove a button from one location to another, all it does it copy the code to the new button, which wouldn't trigger a macro. Could I see your RMIR file to see what's really going on?
Posted: Wed May 18, 2016 4:20 am
by Jim978
Rob,
I think how/why this works can be explained based on what I found under the title Remote Basics at hifi-remote.com.
The remote in question (and every remote I use, for that matter) is made by UEI. They operate according to a hierarchy of functions. The shorthand description for this hierarchy is LKMS.
When a key is pressed, first the remote searches to see if there is a learned signal on the button. If there is (there isn't on the remote in question which doesn't have learning), it executes that function then exits. Next, the remote searches to see if there is a keymove associated with the button. In this case there is a keymove from a shifted button with a macro, so it executes and exits. Next, the remote searches for a macro on that button. If there is a macro (there isn't one ... at least not any more), it executes and exits. Next, the remote searches for a function in the device index. If there is an associated function, it executes and exits. Otherwise it just exits.
It seems that a kemove that copies a macro must be "seen" by the remote as a button with a keymove and not as a button with a macro. If that is the case, the macro would only execute when in the device mode with the keymove.
I will post the RMIR file. The key in question is Last, located just below the channel up/down rocker on the remote. In case you're wondering, my cable service covers the bottom third or so of the screen with program info when Last is pressed, and it remains there hiding part of the programming way too long for my taste. So the macro switches channels then clears the info from the screen immediately (blessed relief). In TV mode I don't have this problem, so the key functions normally. In DVD mode, Last backs up the video to replay the last 10 seconds.
Does this make sense?
Posted: Wed May 18, 2016 6:50 am
by The Robman
I probably wrote that info on hifi-remote.com (this is my site), so it won't make sense until I see your RMIR file, because what you describe is not how keymoves work.
Posted: Wed May 18, 2016 12:50 pm
by Jim978
Posted: Thu May 19, 2016 9:15 am
by The Robman
Thanks Jim.
For others looking, here's what Jim did:
1. The CBL button uses CBL/1476 (via an upgrade)
2. In CBL mode, there is a keymove on LAST that invokes key Shift/LAST from CBL/1476
3. There is a macro on Shift/LAST with steps: Shift-1, EXIT
4. In CBL mode, there is a keymove on Shift-1 that invokes LAST (which comes from the upgrade).
The part that I am not understanding is, why does the keymove in step 2 above trigger the macro on Shift/Last rather than the function assigned to Shift/Last (and in this case, there isn't a function assigned to Shift/Last either from the upgrade or from a keymove).
I have never heard of a keymove being able to trigger a macro before, other than via a special protocol.
Posted: Thu May 19, 2016 1:52 pm
by Jim978
Rob,
Thanks for taking a look at this.
I wish I could help, but I'm not that knowledgeable about the inner workings of these remotes. As proof, please note that I only programmed this into my remote because I didn't know it's not supposed to work.
Whenever I find myself with a few minutes to spare I will play with this and other remotes to see what happens. Maybe I'll discover that it only works when (to be determined). Regardless of how this goes, I will be sure to pass along whatever (if anything) I learn.
Thanks again for taking the time to study this.
Posted: Thu May 19, 2016 3:01 pm
by The Robman
Yeah, I get that, I am hoping for other experts, who have maybe been paying closer attention that I have for the last couple of years, to chime in and say that this is a new feature, perhaps.
Another way of doing it might be like this, assuming that you have the LAST function properly programmed to the LAST button (via a built in code or an upgrade), you could program a macro to the LAST button that has 2 steps:
1. shift/LAST
2. some phantom key (or an obscure shifted button)
and program the EXIT function to the phantom key in CBL mode, but don't program anything to it in the other modes.
The shift/LAST button will still work the last function due to "shift cloaking" (which means that shifted buttons will always to the same thing as un-shifted buttons, until you program them to do something different), so in all modes, the macro will fire LAST followed by the phantom, but in all other cases, the phantom won't do anything.
Posted: Fri May 20, 2016 4:00 am
by Jim978
Rob,
Tried a couple things, and here's what I've learned.
First, I had not assigned a function to Last on the Atlas 1056B01 remote, since I planned to create a keymove. So, I went into the device upgrade and assigned Last to Last. When I pressed the Last key it still executed the macro as before (CBL device specific).
Next, I wondered whether the fact that Shift-Last also had no function assigned to it was a factor (though that didn't sound very likely, to me at least). So I added a function to that key to see if the macro would still execute when Last was pressed. It did.
Finally, I wondered if this new DSM technique would work on a different remote. So I modified the programming on a URC8820 that can control the same equipment. Using the identical keys, I recreated the keymoves and macro that worked on the Atlas. This time when I pressed Last in CBL mode nothing happened ... absolutely nothing. The remote did not even flash to indicate a signal being sent.
There is one significant difference between the two remotes (other than their physical appearance, off course). The URC8820 Is a JP1.2 remote while the Atlas is JP1.3.
I have no other JP1.3 remotes, so I can't test to see whether that is why this new DSM works when it's not supposed to. Maybe someone else has a non-Atlas JP1.3 and the time to give it a try.
Hope this helps.