DecodeIR, RM and KM request: Yamaha extended NEC gap signals
Posted: Fri Aug 06, 2010 8:52 am
Yamaha is now using an "extended" version of the NEC1 protocol where bit0 (ie, the rightmost bit) of the OBC complement is flipped. These signals are currently being reported as a "gap" protocol by DecodeIR.
The first challenge is deciding how to report these signals from DecodeIR and the next one is deciding how to include them in RM and KM.
Unless anyone has a better idea, I would suggest that we suffix a "-y" (for "Yamaha") onto the protocol name, so in this case NEC1 would become NEC1-y. In theory, if anyone else were to start doing this with the other variations of NEC we could also see NEC2-y, NECx1-y and NECx2y.
As this protocol variant only seems to be used for additional discrete code type signals, I don't see any need to make a stand alone executor to handle it. Instead, I have modified the NEC 4Dev Combo executor so that it can generate this NEC variant in addition to all the standard NEC variants.
To make my executor send the Yamaha variant, you need to set bit1.
When I examined the official UEI executor for the 4Dev combo, I noticed that it uses bit5 to determine whether to get the sub-device from the data or to make it the complement of the device code. Obviously, as the data is supplied anyway, this code isn't really necessary, and both KM and RM set this bit regardless and supply the data for the sub-device, even if it's the complement of the device code. So I eliminated this code in my executor and replaced it with the new code to handle the Yamaha signals. The net result is that the new executor is actually smaller.
For the KM implementation, I would suggest that the last character of byte2 should be a "y" to generate this signal, so some examples of byte2 would be:
1 1 = use dev1, NEC1
1 2 = use dev1, NEC2
1 x1 = use dev1, NECx1
1 x2 = use dev1, NECx2
1 1 y = use dev1, NEC1y (the new signal)
the following signals are also possible (though not in use at this time):
1 2 y = use dev1, NEC2y
1 x1 y = use dev1, NECx1y
1 x2 y = use dev1, NECx2y
For RM, the most complete approach would be to double the number of entries in the "Style" column, so the total selections would be:
NEC1
NEC2
NECx1
NECx2
NEC1-y
NEC2-y
NECx1-y
NECx2-y
However, as the NEC1-y is the only "y" variant in use at this time, it might be less confusing to only add that option for now. We can always add the other options if and when the need arises.
For both the KM and RM implementations, if the users remote has the 4Dev executor built in, it would be a good idea to only supply a protocol upgrade if they assign a function that uses the "y" variant to one of their buttons.
I would also suggest that KM and RM continue to set bit5 to retain compatibility with the UEI executor.
The PB file for my new executor is here:
http://www.hifi-remote.com/forums/dload ... le_id=8742
A working upgrade that uses it (currently using "Manual Settings") is here:
http://www.hifi-remote.com/forums/dload ... le_id=8740
The Yamaha signals have been discussed here:
http://www.hifi-remote.com/forums/viewtopic.php?t=12373
http://www.hifi-remote.com/forums/viewt ... 5687#85687
http://www.hifi-remote.com/forums/viewtopic.php?t=11604
http://www.hifi-remote.com/forums/viewtopic.php?t=11789
The first challenge is deciding how to report these signals from DecodeIR and the next one is deciding how to include them in RM and KM.
Unless anyone has a better idea, I would suggest that we suffix a "-y" (for "Yamaha") onto the protocol name, so in this case NEC1 would become NEC1-y. In theory, if anyone else were to start doing this with the other variations of NEC we could also see NEC2-y, NECx1-y and NECx2y.
As this protocol variant only seems to be used for additional discrete code type signals, I don't see any need to make a stand alone executor to handle it. Instead, I have modified the NEC 4Dev Combo executor so that it can generate this NEC variant in addition to all the standard NEC variants.
To make my executor send the Yamaha variant, you need to set bit1.
When I examined the official UEI executor for the 4Dev combo, I noticed that it uses bit5 to determine whether to get the sub-device from the data or to make it the complement of the device code. Obviously, as the data is supplied anyway, this code isn't really necessary, and both KM and RM set this bit regardless and supply the data for the sub-device, even if it's the complement of the device code. So I eliminated this code in my executor and replaced it with the new code to handle the Yamaha signals. The net result is that the new executor is actually smaller.
For the KM implementation, I would suggest that the last character of byte2 should be a "y" to generate this signal, so some examples of byte2 would be:
1 1 = use dev1, NEC1
1 2 = use dev1, NEC2
1 x1 = use dev1, NECx1
1 x2 = use dev1, NECx2
1 1 y = use dev1, NEC1y (the new signal)
the following signals are also possible (though not in use at this time):
1 2 y = use dev1, NEC2y
1 x1 y = use dev1, NECx1y
1 x2 y = use dev1, NECx2y
For RM, the most complete approach would be to double the number of entries in the "Style" column, so the total selections would be:
NEC1
NEC2
NECx1
NECx2
NEC1-y
NEC2-y
NECx1-y
NECx2-y
However, as the NEC1-y is the only "y" variant in use at this time, it might be less confusing to only add that option for now. We can always add the other options if and when the need arises.
For both the KM and RM implementations, if the users remote has the 4Dev executor built in, it would be a good idea to only supply a protocol upgrade if they assign a function that uses the "y" variant to one of their buttons.
I would also suggest that KM and RM continue to set bit5 to retain compatibility with the UEI executor.
The PB file for my new executor is here:
http://www.hifi-remote.com/forums/dload ... le_id=8742
A working upgrade that uses it (currently using "Manual Settings") is here:
http://www.hifi-remote.com/forums/dload ... le_id=8740
The Yamaha signals have been discussed here:
http://www.hifi-remote.com/forums/viewtopic.php?t=12373
http://www.hifi-remote.com/forums/viewt ... 5687#85687
http://www.hifi-remote.com/forums/viewtopic.php?t=11604
http://www.hifi-remote.com/forums/viewtopic.php?t=11789