broken wrote:Remote still worked after the new protocol
So the device isn't picky about a 4Khz increase in frequency. It probably also isn't picky about the 4Khz decrease in frequency apparently caused by some problem in the MX-500 learning.
The 42Khz signals were retransmitted by the MX-500 at 38Khz, just as the 38Khz signals were retransmitted at 34Khz.
I wonder if all MX-500's have this defect.
broken wrote:but the issue is the same, the 8811 learns it and works,
That's still quite confusing, because I now have a very good understanding of this protocol and the 8811 learns it wrong and it shouldn't have worked.
The correct version of this command has eight different durations: 7, 8, 11, 15, 16, 17, 21 and 22.
I'm not sure of the time scale of the 8811 exactly enough for a signal of this precision. But I can get some informative results by pretending to know that the 11 burst is exactly right, then using that to define the time scale. Then the 8811 and MX-500 versions are:
Code: Select all
True- 8811 - MX-500
7 - 7.05 - 6.88
8 - 8.04 - 7.84
11 - 11.00 - 10.71
15 - 14.96 - 14.73
16 - 16.5 - 16.85
17 - 16.5 - 16.85
21 - 21.55 - 20.66
22 - 21.55 - 20.66
The key to understanding this is to see that the 8811 did a decent job of learning the 7, 8, 11 and 15 values. But it does some "cleanup" so it saw the 16 and 17 values and decided they were so close together that the difference was an error, which it "fixed" so both 16 and 17 became 16.5. Similarly both 21 and 22 became 21.55.
Now, looking at the double learned values, I can assume that the 8811 is responsible for most of the distortion in the 16, 17, 21 and 22. But the MX-500 is responsible for almost all the distortion in the 7, 8, 11 and 15.
I noticed early on that the 7, 8 and 11 are all very close to 2.5% shorter in the MX-500 than in the 8811 (I'm computing that from more significant digits than I posted above). But I was worried that the pattern didn't hold for the larger values. Especially notice the value for 16 and 17 is 2.1% longer in the MX-500 than in the 8811.
But now I suspect that anomoly is something that happens when the 8811 combines the 16 and 17 values into one "average" rather than something that happens in the MX-500. I'm guessing the MX-500's 16 and 17 are both 2.5% too short but the 8811 somehow averages them to something 2.1% the other way.
broken wrote:
the MX-500 does not,
So now I need to figure out how to tweak that protocol in the Dreambox to make all the durations 2.5% slower. That's a little trickier than adjusting the frequency. But I think I can figure it out.
Note that a 2.5% change is so tiny that in most protocols it makes no difference at all. But in this protocol a 22 needs to be seen as a 22. Note that the 8811's 22 is sent as a 21.55 which is closer to 22 than to 21 so it's probably OK. The MX-500's 22 seems to be 20.66 (but that is an ilusion caused by the double learning). More likely the MX-500's 22 is 2.5% low, which would be 21.45, which is closer to 21 than to 22 and probably is the reason this signal is missed by the real device.