XMP: Getting a Protocol from IRScope

Discussion forum for JP1 software tools currently in use, or being developed, such as IR, KM, RemoteMaster, and other misc apps/tools.

Moderator: Moderators

alanrichey
Expert
Posts: 3533
Joined: Mon Mar 24, 2008 7:14 am
Location: UK/USA

XMP: Getting a Protocol from IRScope

Post by alanrichey »

Hi

I am trying to learn the codes for a Grundig DTR-8720 using an IR Widget and IRSCOPE. The key codes are being recognised, as is the Device Number (42.17), but the protocol displayed is :

XMP:139.xxx-0B1F442A14810200

where xxx seems to vary (The Harmony remote defaults to sending a code 5 times, so I get 5 values.)

All the documentation I have read seems to assume you have a proper JP1 Remote and are using IR.EXE. Is there any way of decoding a protocol to use in RemoteMaster using those values or the waveform readout ?

Al
johnsfine
Site Admin
Posts: 4766
Joined: Sun Aug 10, 2003 5:00 pm
Location: Bedford, MA
Contact:

Post by johnsfine »

I hope that happened because you're using an obsolete version of DecodeIr.dll, because otherwise it probably represents a bug in DecodeIr.dll

XMP signals are very hard for learning remotes to capture correctly, and with a learning remote it is common to have XMP signals only partially decoded as that one was. But the IR Widget should do a much better job than a learning remote.

From the overall format of that string, I can see DecodeIr thinks that XMP signal was learned with an error in it.

From the "0B1F442A14810200" portion, I can tell the signal is either correct or has an unusual kind of large error. More likely correct.

That whole string XMP:139.xxx-0B1F442A14810200 represents just the second half of one XMP signal. You didn't give enough info for me to guess what happened to the first half. (But each half of an XMP signal has all the information if learned correctly. Looking at the other half is only important if the learn is bad and you need redundant info to interpret it.)

Does just that xxx vary or do some of the hex digits vary as well?

The xxx is DecodeIr.dll's estimate of the timing distortion in the learn. Despite the "." it is an integer value, not a fraction. I would have expected a two digit xx not three digit. A three digit value would represent a high level of timing distortion, which I would not expect from IR Widget.

Anyway, the correct protocol is "XMP". I assume you want a Slingbox upgrade. I think that might be tricky (upgrade size issues). Hopefully, Rob will give you some guidance on that.

After I see what Rob suggests (or find his old posts on XMP for Slingbox if he doesn't join this thread soon), I probably can tell you how to interpret any problem decodes you get from IR Widget well enough to include them in an upgrade.
alanrichey
Expert
Posts: 3533
Joined: Mon Mar 24, 2008 7:14 am
Location: UK/USA

Post by alanrichey »

Hi John

Thanks for the swift reply. Always good to hear from the author :-)

I'm using V2.36 downloaded from the JP1 Tools. Is there a newer one?

I've just done a lot more learns, and have a better handle on what is happening. For any key I get the following 6 readings (The Device is always 42.17):

XMP
XMP.xxx.yyy-0B1F442A1z81qq00
XMP.xxx.yyy-0B1F442A1z81qq00
XMP.xxx.yyy-0B1F442A1z81qq00
XMP.xxx.yyy-0B1F442A1z81qq00
XMP.xxx.yyy-0B1F442A1z81qq00

The xxx is always 139 or 140
The yyy varies between 120 and 300
The q is the hex value of the key
The z seems to vary and I can't see any correlation.

I note from your upgrade notes that the XMP used to be the Dreambox protocol, which is supported by RemoteMaster ?

Cheers

Al
johnsfine
Site Admin
Posts: 4766
Joined: Sun Aug 10, 2003 5:00 pm
Location: Bedford, MA
Contact:

Post by johnsfine »

I know what z is. Don't worry about it.

I don't know why yyy would be so big on what are obviously very good captures. But it doesn't seem worth worrying about.
Kevin Timmerman
Expert
Posts: 142
Joined: Tue Jan 09, 2007 5:52 pm
Location: West Michigan

Post by Kevin Timmerman »

Could you post an *.ict file or a screen capture? I have some ideas about what the problem may be.
alanrichey
Expert
Posts: 3533
Joined: Mon Mar 24, 2008 7:14 am
Location: UK/USA

Post by alanrichey »

Hi Kevin

Done them both, while learning the '5' key.

https://www.hifi-remote.com/forums/dload ... le_id=6555

Cheers

Al
The Robman
Site Owner
Posts: 21945
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

The XMP protocol is a major PITA! It's UEI's $016C executor and it's called "Dreambox" in RM.

Looking at your "0B1F442A14810200" string, "0B1F442A" is the fixed data for the executor. Just FYI, the 2nd character "B" is the first checksum, it's a ADD of all the other characters in the fixed data. This data would give a checksum value of "C", so there's an error in the data. The "F44" portion is the same in every XMP sample that I've ever seen. Apart from the checksum, the only data that really varies by device is the first byte and the last 2 bytes.

The first character of the 2nd half of the string (ie, "14810200") is supposed to be the same as the first character of the 1st half of the string. Your data doesn't match, so either the 1 in the 2nd half is wrong or the 0 in the first half is wrong. If you change the 0 in the first half to a 1, the checksum calculates to a "B", so I'm going to assume that the fixed data should really be "1B1F442A".

The 2nd character in the 2nd half is another checksum, also calculated by ADD'ing all the other characters. You show a "4" but I calculate a "C" so something's wrong here too. Looking at the part2 string in your screen shot "12810400" the checksum is wrong also (you have a "2", I calculate an "A")

There is a toggle in the signal, which turns up in bit3 of the 3rd character of the 2nd string, so this character should alternate between 0 and 8 as the signal repeats.

Depending on the device, either the last 2 bytes, or the next 2 bytes in, are the "OBC" bytes. In this case it's the latter.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Kevin Timmerman
Expert
Posts: 142
Joined: Tue Jan 09, 2007 5:52 pm
Location: West Michigan

Post by Kevin Timmerman »

Thanks for the files. The IR Widget likes to have on durations of at least 300 uS and requires on durations of greater than 200 uS. The XMP protocol is right on the edge of the 200 uS absolute minimum. This will cause a bit more jitter in the timing than signals with longer on durations. It looks like the timing is within +/- 10% or so of what is in this post.

I assume the lack of precision in the IR Widget capture is the cause of the error reported (yyy = 120 to 300) by the IR decoder DLL.

Image
Last edited by Kevin Timmerman on Tue Apr 14, 2009 3:56 pm, edited 1 time in total.
alanrichey
Expert
Posts: 3533
Joined: Mon Mar 24, 2008 7:14 am
Location: UK/USA

Post by alanrichey »

As a rough translation then - 'it's a can of worms' :-)

So does this go into the 'too difficult' folder?

Al
alanrichey
Expert
Posts: 3533
Joined: Mon Mar 24, 2008 7:14 am
Location: UK/USA

Post by alanrichey »

Kevin Timmerman wrote:Thanks for the files. The IR Widget likes to have on durations of at least 300 uS and requires on durations of greater than 200 uS. The XMP protocol is right on the edge of the 200 uS absolute minimum. This will cause a bit more jitter in the timing than signals with longer on durations. It looks like the timing is within +/- 10% or so of what is in this post.

I assume the lack of precision in the IR Widget capture is the cause of the error reported (xxx ~= 140) by the IR decoder DLL.
I had left the Capture duration at 700ms and held the button down until the capture was completed. I know I can tweak the Harmony to set the number of times to repeat the signal. Is there any mileage in doing that ?

Al
Kevin Timmerman
Expert
Posts: 142
Joined: Tue Jan 09, 2007 5:52 pm
Location: West Michigan

Post by Kevin Timmerman »

It is the duration of each pulse of IR that is on the edge. A longer capture would not help.

I think I can reduce the jitter a bit in a future software version.
johnsfine
Site Admin
Posts: 4766
Joined: Sun Aug 10, 2003 5:00 pm
Location: Bedford, MA
Contact:

Post by johnsfine »

The Robman wrote:"0B1F442A" is the fixed data for the executor. Just FYI, the 2nd character "B" is the first checksum, it's a ADD of all the other characters in the fixed data. This data would give a checksum value of "C", so there's an error in the data.
Oops! That was exactly what I was looking for, yet I missed it. I added the numbers in my head quickly and thought it came out right.

So DecodeIR is correct. The XMP signal is not good enough to be completely decoded without some application of human intelligence. Those high yyy values are accurately reporting a second point of view on the same error that is identified by the wrong checksum.
The first character of the 2nd half of the string (ie, "14810200") is supposed to be the same as the first character of the 1st half of the string.
Boy have I forgotten a lot! I knew that too.
Your data doesn't match, so either the 1 in the 2nd half is wrong or the 0 in the first half is wrong. If you change the 0 in the first half to a 1, the checksum calculates to a "B", so I'm going to assume that the fixed data should really be "1B1F442A".
That all sounds right, so I agree.
The 2nd character in the 2nd half is another checksum, also calculated by ADD'ing all the other characters. You show a "4" but I calculate a "C" so something's wrong here too.
What??

I ignored the word "ADD" the first time because you obviously know what you're talking about. But it is actually an inverse sum. The "4" still looks correct to me.
Looking at the part2 string in your screen shot "12810400" the checksum is wrong also (you have a "2", I calculate an "A")
Same again. I think "12810400" is perfect.
The Robman wrote:"0B1F442A" is the fixed data for the executor ... that the fixed data should really be "1B1F442A".
For an ordinary upgrade (not Slingbox) that observation by Rob was the only hard part. Everything else should be easy.

But Rob may also know if there are extra issues because of size constraints in Slingbox upgrades.
Kevin Timmerman
Expert
Posts: 142
Joined: Tue Jan 09, 2007 5:52 pm
Location: West Michigan

Post by Kevin Timmerman »

The second and later parts clearly begin with a '0'. Does the decoder assume it will always be '1'? The overall timing is not too bad.

Looks like a new protocol variant or a Harmony error.

Image
The Robman
Site Owner
Posts: 21945
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

You're right about the 2nd part of the signal, the spreadsheet that I was using to calculate the checksum was expecting the first repeat where the toggle nibble would be "0", whereas the data posted is obviously from the 2nd repeat where the toggle nibble is "8".

Also, just for everyone else, here's how you can calculate the checksum:

1) convert each nibble (except for the checksum nibble) to decimal
2) ADD all the decimal values
3) subtract the result from 256
4) MOD it with 16 (ie, divide by 16 and keep the remainder)
5) convert the result back to 1 nibble of hex.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
johnsfine
Site Admin
Posts: 4766
Joined: Sun Aug 10, 2003 5:00 pm
Location: Bedford, MA
Contact:

Post by johnsfine »

Kevin Timmerman wrote:The second and later parts clearly begin with a '0'.
The timing certainly looks that way, but ...
Does the decoder assume it will always be '1'?
No it doesn't. The decoder had no clue beyond something is wrong in the first half of the second part.

Rob deduced that it was a '1' by looking at the other info. I still agree with him on that.
The overall timing is not too bad.
I don't know how to read enough from the screen shots you posted. DecodeIr.dll thinks the overall timing is pretty bad.
Looks like a new protocol variant
I think that is WAY down the list of possibilities.
or a Harmony error.
Higher up the list, but still doesn't seem likely.

Are you confident the firmware in the capture device isn't systematically distorting the timing of that pulse?

Edit: I put all the numbers from the .ict file into Excel and examined them in various ways. The data is pretty bad, but that one (we think) wrong digit is three times worse every time than the next worst digit ever is.

So, I'm starting to lean toward the theory that it is a Harmony error.

Most devices receiving XMP ignore a lot of major errors in the signal. So I'd be surprised if there were any symptoms from that error (beyond the decode problem). I've never understood the concepts behind most of the design decisions in XMP protocol. One of those is having a checksum but apparently ignoring checksum errors.
Last edited by johnsfine on Tue Apr 14, 2009 2:13 pm, edited 1 time in total.
Post Reply