Page 1 of 1

RMIR cannot decode learned signals

Posted: Thu Dec 25, 2025 10:33 am
by TiceRex
Hi All,

First of all: Merry Christmas!

I have a new remote, Marantz RC040SR, came with a Marantz NR1510 Ampliflier.
I tried to decode its signals by learning and converting to device upgrade, but some signals cannot be decoded.
These are the codes can be seen in the learned signal window:

Code: Select all

Internet Radio (device selection button): 0000 0073 0000 000E 0020 001F 0040 003F 0020 001F 0040 003F 0020 001F 0020 00A4 0020 001F 0040 003F 0040 003F 0020 001F 0020 001F 0040 0020 0020 003E 0040 09F1
HEOS (device selection button): 0000 0073 0000 0010 0020 001F 0020 001F 0020 001F 0020 001F 0040 003F 0020 001F 0020 00A4 0020 001F 0020 001F 0020 001F 0020 001F 0020 001F 0040 001F 0020 003E 0040 003F 0040 09F0
Channel Up: 0000 0073 0000 000F 0020 001F 0040 003E 0020 001F 0040 003E 0020 001F 0020 00A4 0040 001F 0020 001F 0020 001F 0020 001F 0020 001F 0020 003E 0040 003E 0040 001F 0020 09F0
Channel Down: 0000 0073 0000 000F 0020 001F 0020 001F 0020 001F 0020 001F 0040 003F 0020 001F 0020 00A4 0040 001F 0020 001F 0020 001F 0020 003E 0040 003F 0040 003F 0040 001F 0020 09F0
Fast Forward: 0000 0073 0000 0011 0020 001F 0040 003F 0020 001F 0040 003F 0020 001F 0020 00A4 0040 0020 0020 001F 0020 001F 0020 001F 0020 001F 0020 001F 0020 001F 0020 001F 0020 001F 0020 003F 0020 09D1
Play/Pause: 0000 0073 0000 0010 0020 001F 0020 001F 0020 001F 0020 001F 0040 003F 0020 001F 0020 00A4 0020 001F 0040 003F 0040 003F 0040 001F 0020 001F 0020 001F 0020 001F 0020 003F 0020 09D1
Rewind: 0000 0073 0000 0010 0020 001F 0040 003F 0020 001F 0040 003F 0020 001F 0020 00A4 0040 001F 0020 001F 0020 001F 0020 003F 0040 001F 0020 001F 0020 001F 0020 001F 0020 003F 0020 09D1
I'm (almost) sure these should be RC5, all the other buttons send RC5 signals.
Could anybody help me, please?

Best Regards,
TiceRex

Re: RMIR cannot decode learned signals

Posted: Thu Dec 25, 2025 2:23 pm
by HamburgerHelper1
In RMIR go to options Set IR Decoder to Decode IR it gave me RC5X as your protocol it probably is RC5 and this way you will get the OBC for your signals But if the others decoded correctly then I would try relearning the bad ones

Re: RMIR cannot decode learned signals

Posted: Thu Dec 25, 2025 8:41 pm
by The Robman
In cases like this, it would be way more beneficial for us if we could see the entire rmir file, with both the good learns and the bad ones, because then we can compare these to see if they are similar to the ones that decoded properly or not, plus we can use the various tools that are built into RMIR. When you just post the raw Pronto hex like this, which is more work for you anyway, it means we have to copy/paste them back into RMIR ourselves, which is more work for us.

At any rate, I have copied these learns into a 15-1994 rmir file, which is attached, so others can more easily look at them, and I've created an upgrade using RC5x, as that's how they decode when I look at them. I have also attached the rmdu file that I used, in case you want to try it on your remote.

Re: RMIR cannot decode learned signals

Posted: Fri Dec 26, 2025 12:41 pm
by 3FG
These signals are not decoded correctly by either RMIR 3.2.0 or IrScrutinizer 2.4.2. Yet the signals very closely adhere to the RC5x protocol--they are certainly actually RC5x, and the learns are nearly perfect. So I tried Teaser, a program I wrote years ago that uses a very different algorithm compared to IrScrutinizer, and was surprised to find that it also failed. Yet I know that I had tested Teaser on many samples of RC5x signals and I suspect that Bengt had carefully tested also.

Teaser was easily fixed by changing the text file IRdefs.asc which defines the characteristics of each protocol so that the duration tolerance applied to the midframe gap-- the -4 in the following IRP for RC5x:
{36k,msb,889}<1,-1|-1,1>(1,~S:1:6,T:1,D:5, -4 ,S:6,F:6,^114m)+
was tightened from 30% to 20%.
-4 means transmit no IR for a duration of 4*889 microseconds.
The issue for Teaser (and I suspect for the other decoders) is that until now, we have not seen subdevice values greater than 31, which means that the bit immediately transmitted after the midframe gap is a 0, which is transmitted as mark followed by space. However, for subdevice values between 32 and 63 (and presumably 96 through 127) the immediately transmitted bit is a 1 which is transmitted as a space followed by a mark. This lengthens the duration of no signal to -5, and for Teaser I had allowed a tolerance of 30% on the duration of the midframe gap. So Teaser read the no signal gap of 5*889 as just the midframe gap, when it should have parsed it as a midframe gap of 4*889 plus the 889us space of the next bit.

RMIR and IrScrutinizer use different algorithms for decoding, but I suspect that a similar issue is affecting their decodes.

Re: RMIR cannot decode learned signals

Posted: Fri Dec 26, 2025 2:39 pm
by TiceRex
Thank you all for your answers!
The Robman wrote: Thu Dec 25, 2025 8:41 pm In cases like this, it would be way more beneficial for us if we could see the entire rmir file...
I'm sorry, I can't find a way to attach file here, so I've uploaded them to the files section. The learns were performed using URC8350.
RMIR file
raw download
HamburgerHelper1 wrote: Thu Dec 25, 2025 2:23 pm ... I would try relearning the bad ones
I've done it several times with the same results, unfortunately. :(
3FG wrote: Fri Dec 26, 2025 12:41 pm ... and the learns are nearly perfect.
I can only understand half of your answer. :oops: Does it mean there is no way to put these codes in RMIR, or in any JP1 remotes?

Anyways, I will try Robman's files later this evening, and give feedback soon...

Re: RMIR cannot decode learned signals

Posted: Fri Dec 26, 2025 3:51 pm
by The Robman
TiceRex wrote: Fri Dec 26, 2025 2:39 pm I'm sorry, I can't find a way to attach file here
You can't attach files in Quick Reply mode, you need to click on the "Full Editor & Preview" button, at that point you will see two tabs below the buttons, the first is "Options" and the second is "Attachments". Click on "Attachments" and then click on the "Add files" button. That will trigger a Windows Explorer box that you can use to select a file from your local drive. Click on the file and click "Open" and that will attach it to your post.

Re: RMIR cannot decode learned signals

Posted: Fri Dec 26, 2025 6:18 pm
by 3FG
"Does it mean there is no way to put these codes in RMIR, or in any JP1 remotes?"
No it just means that at present, RMIR won't correctly decode the learns unless it is set to use Decode IR (using Options/Set IR Decoder), as HamburgerHelper1 described. However, Rob has already produced and uploaded an upgrade which I assume will work.
My "answer" was really aimed at Barf or mathdon, who are the folks who can make the decoding work with the IrpTransmorgrifier decoder. IrpTransmorgrifier is typically far better to use than IR Decode.

Re: RMIR cannot decode learned signals

Posted: Sat Dec 27, 2025 4:36 am
by TiceRex
Thank you all!
I've combined the already successful learnt and decoded signals with Robman's device upgrade, everything is working perfectly! :)

(I found an issue while transferring the functions to another remote (URC-1240), I will post it in another thread to keep this one clear.)

Re: RMIR cannot decode learned signals

Posted: Sat Dec 27, 2025 9:17 am
by The Robman
Did you use the RC-5/5x combo executor to combine all of your learned signals into a single upgrade?

Re: RMIR cannot decode learned signals

Posted: Sat Dec 27, 2025 9:28 am
by Barf
Merry Christmas y'all!

I can confirm that, with standard setup and parameters, IrpTransmogrifier does not decode the given signals:

Code: Select all

$ irptransmogrifier decode   0000 0073 0000 000E 0020 001F 0040 003F 0020 001F 0040 003F 0020 001F 0020 00A4 0020 001F 0040 003F 0040 003F 0020 001F 0020 001F 0040 0020 0020 003E 0040 09F1
No decodes.
(This is irptransmogrier invoked from the command line.)

Thank you very much Dave (3FG) for the analysis. As Dave describes, the problem lies in the extremely error prone and finicky design of the rc5x protocol, containing a relatively long gap, followed by a bi-phase (Manchester) encoded bitfield. (If we change 00A4 to something slightly less, like 00A3, it decodes.) As he suggests, the key is to get the tolerances (relative and/or absolute) to grok the signal, relative tolerance of 20% works for his Teaser. Actually, the presently used configuration file IrpProtocols.xml sets the relative tolerance for RC5x to 0.1 (10%). It turns out that changing this to a slightly higher value makes the signal decode:

Code: Select all

$ irptransmogrifier --override --relativetolerance 0.11  decode   0000 0073 0000 000E 0020 001F 0040 003F 0020 001F 0040 003F 0020 001F 0020 00A4 0020 001F 0040 003F 0040 003F 0020 001F 0020 001F 0040 0020 0020 003E 0040 09F1
        RC5x: {D=27,S=53,F=50}, beg=0, end=27, reps=1
I changed it to 0.15 in IrpProtocols.xml, and it turns out that all the signals decode: (I have saved TiceRex' signals to a file rc5x.txt)

Code: Select all

$ irptransmogrifier --override --relativetolerance 0.15 decode --namedinput  rc5x.txt
Internet Radio (device selection button):       RC5x: {D=27,S=53,F=50}, beg=0, end=27, reps=1
HEOS (device selection button):                 RC5x: {D=27,S=63,F=10,T=1}, beg=0, end=31, reps=1
Channel Up:                                     RC5x: {D=27,S=32,F=20}, beg=0, end=29, reps=1
Channel Down:                                   RC5x: {D=27,S=33,F=20,T=1}, beg=0, end=29, reps=1
Fast Forward:                                   RC5x: {D=27,S=32,F=1}, beg=0, end=33, reps=1
Play/Pause:                                     RC5x: {D=27,S=53,F=1,T=1}, beg=0, end=31, reps=1
Rewind:                                         RC5x: {D=27,S=33,F=1}, beg=0, end=31, reps=1
Unfortunately, there is no simple way to change this parameter in RMIR GUI; you have to change the IrpProtocols.xml embedded in the RemoteMaster.jar. I will be happy to upload a fixed jar file, but it is fairly large (10´MB), so Rob will have to adjust the max attachment size. (Using the upload area is so clunky...)

Thanx to TiceRex for reporting the problem so that it can be fixed. :D

Re: RMIR cannot decode learned signals

Posted: Sat Dec 27, 2025 9:59 am
by The Robman
Barf wrote: Sat Dec 27, 2025 9:28 amUnfortunately, there is no simple way to change this parameter in RMIR GUI; you have to change the IrpProtocols.xml embedded in the RemoteMaster.jar. I will be happy to upload a fixed jar file, but it is fairly large (10´MB), so Rob will have to adjust the max attachment size.
Graham handles all updates to RM and RMIR via Github, so there's no need to load the file here.
Barf wrote: Sat Dec 27, 2025 9:28 am(Using the upload area is so clunky...)
I apologize for that. I spent several months re-writing the old code so that it would work with the current PHPBB and PHP, and I'm not a PHP programmer, so I did the best that I could. I know there are still bugs in it, but you know what, it's kept JP1 running for 25 years, so it's not done too bad by folks.

Re: RMIR cannot decode learned signals

Posted: Sun Dec 28, 2025 4:03 am
by TiceRex
The Robman wrote: Sat Dec 27, 2025 9:17 am Did you use the RC-5/5x combo executor to combine all of your learned signals into a single upgrade?
Yes, exactly.
Attached please find the result.

Re: RMIR cannot decode learned signals

Posted: Sun Dec 28, 2025 7:44 am
by The Robman
It doesn't look like you added it to the file section, so I did that for you:
https://www.hifi-remote.com/forums/app. ... e_id=27272