JP1 Remotes Forum Index JP1 Remotes


FAQFAQ SearchSearch 7 days of topics7 Days MemberlistMemberlist UsergroupsUsergroups RegisterRegister
ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in

IrScrutinizer - Protocol not found?
Goto page 1, 2  Next
 
Post new topic   Reply to topic    JP1 Remotes Forum Index -> JP1 - Software
View previous topic :: View next topic  
Author Message
ncoig



Joined: 03 Oct 2004
Posts: 145

                    
PostPosted: Sun Aug 02, 2015 7:03 pm    Post subject: IrScrutinizer - Protocol not found? Reply with quote

Hey all!

Glad to see these projects continue to develop.

I have used Irscrutinizer to import a RemoteMaster file, then export it to a Pronto file in order to then convert to an "Anymote" format for my phone to issue IR commands. (I found the post later that has that export ability natively, thank you!)

However, when attempting to import my TiVo (Official) RM file, on export I get an error "UnknownProtocolException: Protocol TiVo (Official) not known"

This is odd, because I see IRS is pointed at its own protocol file, and the protocol file contains the TiVo protocol...

I'm sure I'm missing something simple, but I've no clue.

Any ideas?


Thank you!
Back to top
View user's profile Send private message
Barf
Expert


Joined: 24 Oct 2008
Posts: 1415
Location: Munich, Germany

                    
PostPosted: Mon Aug 03, 2015 2:02 am    Post subject: Reply with quote

Yes, indeed you are "missing something simple". The word "protocol" is used to denote two different things: protocol in the IrScrutinizer/DecodeIR sense and protocol in the RM/UEI sense (preferably should be called "executer").

The problem is described here, see also the manual. In short, the import of RM files is by necessity incomplete.

But not all is lost. With some manual tweaking, it is in general fairly easy to import most RM files -- a minute or so. Please post the file it is (or a similar), and I will guide you.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
ncoig



Joined: 03 Oct 2004
Posts: 145

                    
PostPosted: Thu Aug 06, 2015 4:16 pm    Post subject: Reply with quote

The problematic device is here:

http://www.hifi-remote.com/forums/dload.php?action=file&file_id=13481

I'll be looking through that link in the interim.


Thanks,

-N
Back to top
View user's profile Send private message
Barf
Expert


Joined: 24 Oct 2008
Posts: 1415
Location: Munich, Germany

                    
PostPosted: Thu Aug 06, 2015 10:56 pm    Post subject: Reply with quote

Ok, I downloaded the file. In IrScrutinizer, it imports fine. (Import -> RemoteMaster->Load File/URL, then "Import All", and go to "Scrutinize remote/Parametric remote"). It is just that it does not quite understand the language of RM: The protocol is called "Tivo (Official)", which is not known, and the parameters are different. But let us do some "educated guesswork":

"TiVo (Official)" is likely the "tivo" protocol, so we change that. (Right mouse in the table, Advanced -> Set protocol..., enter tivo in the popup.)Still need a "D" and a "U". Looking in RemoteMaster, we see that it has one parameter called "Main Device" (instead of "Device"), which happens to be 133, and almost surely corresponds to the device, D, in the protocol tivo, so we manually fill in D to be 133 (right mouse -> Advanced -> Set D (deviceno)...). Also, we "guess" that "Unit Code" in RM corresponds to U in protocol tivo. For U, there is no column, so we have to enter it into the "Misc. Parameter" column. (right mouse -> Advanced -> set "misc. parameters", enter U=1 (three characters) there. Finished. The table can now be exported with the export functions.

That is all. Should take a minute or two.

Makes a good example Cool .
Back to top
View user's profile Send private message Send e-mail Visit poster's website
ncoig



Joined: 03 Oct 2004
Posts: 145

                    
PostPosted: Tue Aug 11, 2015 2:41 am    Post subject: Reply with quote

Barf wrote:
Ok, I downloaded the file. In IrScrutinizer, it imports fine. (Import -> RemoteMaster->Load File/URL, then "Import All", and go to "Scrutinize remote/Parametric remote"). It is just that it does not quite understand the language of RM: The protocol is called "Tivo (Official)", which is not known, and the parameters are different. But let us do some "educated guesswork":


Whew! Talk about a crash course! I had no idea what I was really getting into with this program, but very nicely done, and your instructions worked flawlessly. I'm a little surprised it was a magical as putting "tivo" as the protocol, but hey, who am I to argue?

Thanks!

Got it all working. I'm not sure this link is worth a hoot without the program installed (it uses a proprietary transfer protocol) but if anyone else wants this remote for their phone, I've set it up pretty nice.

http://colortiger.com/shared/r/NzBnv
Which resolves to: anymote://shared/NzBnv?name=TiVo-Unit1

-N
Back to top
View user's profile Send private message
ncoig



Joined: 03 Oct 2004
Posts: 145

                    
PostPosted: Sun Sep 06, 2015 2:42 pm    Post subject: Reply with quote

So, a followup here - was attempting to export another device, this time with the "RC-5" protocol, which IRScrutinizer doesn't recognize. Using the same basic approach above, I assigned "RC5" protocol to it, which was accepted, and put in the Device under "D" - but when I export, there are 4 parameters "Param0, param5, param3 and param1" that show up under "Misc Params" in the input, and on the export are given as WARNINGS as being unknown.

How do we contend with that? Param0 is the Device ID, param5 is always 1, and param1 is always 0. Param3 is unique to each command - perhaps corresponding to the HEX or OBC for each command...

Thanks for any pointers.

-N
Back to top
View user's profile Send private message
ncoig



Joined: 03 Oct 2004
Posts: 145

                    
PostPosted: Sun Sep 06, 2015 5:53 pm    Post subject: Reply with quote

In looking more at this, I tried to "learn" my way to a solution -- it appears that RC5 is a combo protocol, and if the OBCs exceed a certain value a flag is supposed to be set. Of course this is labelled as "RC-5" in my RMDU file, which IRS throws up on. I looked at the protocols.ini file to try and get some insight, and find out the max value for the OBC is 127, which explains why when I try to use the context menu's auto replace of "HEX" to the "F" parameter, it vomits again.

So I learned a sample signal to try and make heads or tails of what F, D, S, etc. are supposed to be, and it shows up as RC5, Device 7, no sub, OBC 27, Hex Cmd 90 91 92, T=1.

In the working RMDU file, the same command shows as device 7,OBC<64, OBC 27, Hex 90. I won't even try to understand why that is, but it eventually led to me to ditch the whole effort as a very long way to get to an end.

So, I have gathered, however, that the Device information can't be taken straight from RMIR and put into IRS, as IRS just lumps everything it doesn't know what to do with that RMIR provides into "MISC PARAMETERS"... and in my case, part of the information was the EFC, but is inexplicably labelled as HEX by IRS... ?

Eventually, I just went down and created a whole new file... which I have now and it works, but I didn't really need to employ IRS for that -- my question at the end of this is: is it just that I happen to get these devices that don't play nice with IRS, or is the import function just a "best guess" type of thing that I shouldn't expect will pull things in easily for manipulation?

Had I somehow changed the protocol to "RC5" instead of "RC-5" before the import would it have been able to read everything in correctly? Just wondering for future reference. I may be using this program for the wrong purpose?


Thank you!

-N
Back to top
View user's profile Send private message
Barf
Expert


Joined: 24 Oct 2008
Posts: 1415
Location: Munich, Germany

                    
PostPosted: Mon Sep 07, 2015 1:47 am    Post subject: Reply with quote

Please upload the RMDU file to the diagnostics area so that I can have a look at it.

Bengt
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Barf
Expert


Joined: 24 Oct 2008
Posts: 1415
Location: Munich, Germany

                    
PostPosted: Wed Sep 09, 2015 1:04 am    Post subject: Reply with quote

Since you did not upload the file, you probably do not care too much about it... But it is not really crucial, I know what you are talking about.

It all boils down to the question "why is the data pf RM so hard to understand for anything else than the RM program, and possibly, Dave, Graham, and Greg?"

It is simply parametrized differently. Most importantly, it is centered around the use of "hex" and/or "EFC" which are UEI-specific, while "everything else" uses OFC (= F in IRP notation). Without going into detail, it is all in protocols.ini, where the parameter syntax and sematic are defined, including the functions needed for translating them to something we can understand, To further complicate things, some executors (like RC-5) use their own functions, defined in the Java code of the main program.

Quote:
Had I somehow changed the protocol to "RC5" instead of "RC-5" before the import would it have been able to read everything in correctly?


Not really. Actually, not at all. The difficulty is to understand the meaning of the parameters, in particular, how to translate hex to F (= OFC).

Having said this, I am open to all constructive suggestions on improvements, and also on cooperation with the RM developers. It there is a particular executor that is particularly interesting, I may be able to fix importing that one. For example, IIRC, importing NEC1-signals should be rather complete, since I put down some work there,
Back to top
View user's profile Send private message Send e-mail Visit poster's website
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21237
Location: Chicago, IL

                    
PostPosted: Wed Sep 09, 2015 9:45 am    Post subject: Reply with quote

Hi Neil, it's basically like Bengt said earlier, it's the difference between a "protocol" and an "executor".

A "protocol" describes the signal itself, rather than any one implementation of it. In other words, you can take a learning remote/device and capture the signal and look at it, and the details of the protocol describe what you see. Those details might include that it has a carrier frequency of 38kHz, it's 32 bits long and is broken into four 8-bit chunks where the first chunk is the function code (aka "F" or "OBC"), the second chunk is the device code, and the last two chunks are the complements of those. It would also tell you the timing pairs that constitute a logical ONE and ZERO, along with any lead-in or lead-out times and a repeating pattern. (I basically just described the simple NEC format, btw).

An "executor" is a piece of computer code, written in assembler, which replicates a protocol. There are various design choices that can be made when building an executor. In simple cases, like with an NEC signal, the executor and the protocol are going to be very close matches, with the main difference being how they construct the logical ONEs and ZEROs. You may have seen the terms LSB, MSB, LSB-COMP and MSB-COMP thrown around. LSB (least significant bit first) and MSB (most sig...) tell you how to read the binary (ie, for LSB 10000000 = one, and for MSB 00000001 = one) and the -COMP part tells you if the ONEs and ZEROs are reversed (ie, for LSB 01111111 = one and for MSB 11111110 = one).

Even a simple term like "hex" has more than one meaning. For a protocol, you can think of hex as simply being a compressed version of the binary (eg, if the binary is 00001111, the hex would be 0x0F), but for an executor, the hex code that is supplied might directly become an IR signal or it might just tell the executor what to do, or some combination of the two. In a simple case, if the executor is COMP, then 00001111 would become 0xF0 rather than 0x0F.

Another thing you you can do with an executor is make it handle more than one device code (or unit code or whatever), making it a "combo" executor. To do this requires additional logic in the assembler code and ultimately it will require additional input parameters too. This is where an executor and a protocol really start to differ because you can learn a signal and it looks nice and simple, yet when you look at the RM upgrade that generated it, there are lots of additional parameters supplied. One reason might be that the device in question uses a mixture of device codes, so in order to make one upgrade that controls the whole device, we need the ability to combine all of those device codes into a single upgrade, using a "combo" executor. However, when you learn a single signal from the remote, you won't see any of that complexity. Learn the whole remote and it becomes visible.

The Tivo signal is based on the NEC protocol, but they overlaid a unit code on half of one of the complements. When UEI originally implemented this, they used a 2 byte command code for it, but eventually they realized it was better to supply the unit code as a sort of "device code" and then use assembler to drop it into place. So that's why theTivo protocol doesn't exactly match the Tivo executor.

In the case of RC5, the protocol uses a 7-bit OBC rather than the customary 8-bits, and one of the bits is mixed in with the device code bits, so what they do in the executor is, when u supply the device code, you also have to say whether you want to use OBCs in the 0-63 range or 64-127 range, then, given that they are only using 6-bits of the command code byte for the OBC, there are 2 free bits remaining, so they use these as an index to select which device code to use. So, this is a "combo" protocol where they let you supply 3 device codes (why they didn't go with four is beyond me) where each device code has the >63 or <64 encoded in it. So, for a device that only uses 1 device code, but has OBCs in the full 0-127 range, you would provide the device code twice, once with <64 set and again with >63 set. So, it's easy to see why the UEI executor for RC5 differs greatly from the pure protocol.
_________________
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Back to top
View user's profile Send private message Visit poster's website
ncoig



Joined: 03 Oct 2004
Posts: 145

                    
PostPosted: Sat Sep 12, 2015 1:17 am    Post subject: Reply with quote

Barf wrote:
Since you did not upload the file, you probably do not care too much about it... But it is not really crucial, I know what you are talking about.

It all boils down to the question "why is the data pf RM so hard to understand for anything else than the RM program, and possibly, Dave, Graham, and Greg?"

It is simply parametrized differently.


It isn't that it isn't important, only that my list of things to do doesn't include a lot of "free" time for me to tinker -- or at least not as much as I would like. Smile

I only meant that the import of data really didn't accomplish much in this instance, since I had to do the heavy lifting, which would seemingly defeat the purpose of being able to input an entire remote/device configuration into IRScrutinizer.

It is more curious to me still that when inputting data for a remote, I wanted to save it for later use in the format I saw in IRS. So I exported the parametric remote data as a Grrr, text and a few other formats, but on importing the very same files, in most every instance, the import fails and I have to re-input all the data again. In none of the formats was the import successful such that I could immediately use the file as I had saved it.

All this said, it's a really neat program, I just wish I could exploit more of it!!


Thank you.

-N
Back to top
View user's profile Send private message
ncoig



Joined: 03 Oct 2004
Posts: 145

                    
PostPosted: Sat Sep 12, 2015 2:23 am    Post subject: Reply with quote

The Robman wrote:
Hi Neil, it's basically like Bengt said earlier, it's the difference between a "protocol" and an "executor".
[....]


I very much appreciate the detailed reply. It definitely sheds some light on things for me, and I'm frankly surprised that the term "executor" wasn't in my vocabulary from the years of tinkering with these durn things.

That said, I was of the impression that the simple name change of the protocol from what was imported by IRS from RMIR from "RC5" to "RC-5" meant that IRS didn't know what to do with the imported file. I should think that if IRS knew the protocol (executor) by name, it should have access to the proper executor and be able to import the data based on the known executor and thus populate the fields accurately. In this instance, IRS simply pulled in the file and put all the parameters into a single column, and since it could deliver no information on what those parameters were, it offered little in the way of guidance to a working device file.

So I am clear, is it a fair statement to say that an executor that is added to a device upgrade is not equivalent to what IRS knows as a "protocol"? What we have known as "protocols" in KM and those little cut-and paste additions are a series of instructions on how the microprocessor in the remotes is going to deliver our OBCs and EFCs to the outside world, correct? -- Or to put it another way, this/these code(s) essentially format the data we have on OBCs, etc. into a command that is readable by the device sought to be controlled -- a "recipe" of sorts for turning our EFC/OBC "ingredients" into a consumable "food" eaten by our devices... is that dumbing it down enough for me?? LOL

Essentially, if I'm understanding, the protocol tells us generally how the data is supposed to look, and the executor is a set of instructions on how each remote is going to be instructed to make our data look that way.

If that's correct, then am I right that the reason "the RemoteMaster import facility is by necessity limited and incomplete" is because it's reading it as basically as possible, without regard to which remote it's going in?

If that's the case, couldn't IRS just follow the "recipe" and work backward with it to do a full import based on the remote type found in the RMIR file?


-N
Back to top
View user's profile Send private message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21237
Location: Chicago, IL

                    
PostPosted: Sat Sep 12, 2015 9:24 am    Post subject: Reply with quote

I think you've basically got the concept. If I've got you curious enough that you want to tinker, you could try experimenting with the Protocol Builder spreadsheet. You can cut & paste those protocol blocks that you used to copy from KM to IR and decode them.

A simple protocol won't need any assembler, so what you see in PB will just be timings and structure. So, in the case of your iRobot protocol, it would be easy to convert it to another supported processor (and sorry, the MAXQ isn't supported).

For am executor that does have some additional logic, you can switch over to the disassembly tab to see how it works. If you start with S3C8 executors, I can answer questions as I know that one.

Here is a file where I explain all of the functionality built into the NEC executor:
http://www.hifi-remote.com/forums/dload.php?action=file&file_id=2095
_________________
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Back to top
View user's profile Send private message Visit poster's website
ncoig



Joined: 03 Oct 2004
Posts: 145

                    
PostPosted: Sat Sep 12, 2015 11:49 am    Post subject: Reply with quote

The Robman wrote:
I think you've basically got the concept. If I've got you curious enough that you want to tinker, you could try experimenting with the Protocol Builder spreadsheet. You can cut & paste those protocol blocks that you used to copy from KM to IR and decode them.

A simple protocol won't need any assembler, so what you see in PB will just be timings and structure. So, in the case of your iRobot protocol, it would be easy to convert it to another supported processor (and sorry, the MAXQ isn't supported).

For am executor that does have some additional logic, you can switch over to the disassembly tab to see how it works. If you start with S3C8 executors, I can answer questions as I know that one.

Here is a file where I explain all of the functionality built into the NEC executor:
http://www.hifi-remote.com/forums/dload.php?action=file&file_id=2095


Yes, I fiddled with PB and discovered he absence of the MAXQ output before asking here. I had even attempted to put the info into the "Edit protocol" section of RMIR, thinking that might work, but evidently that isnt an option. I would have thought that since all the timing info and such was there and it didnt require special instructions, that RMIR could accept the manual protocol information, but Im sure there is something I dont appreciate which makes that impossible.

I will look at your NEC doc to advance my understanding a bit more, even if the MAXQ is going to be out of my reach as Mathdon states.

I would love to create a simple extender for the Nevo one day (ambitious as that might be), so I am sure it would help to be comfortable with this as well. On a slightly unrelated topic, do extenders just overlay the programming already in the remote or does the coding actually replace what comes in the firmware?

-N
Back to top
View user's profile Send private message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21237
Location: Chicago, IL

                    
PostPosted: Sat Sep 12, 2015 12:40 pm    Post subject: Reply with quote

ncoig wrote:
I would have thought that since all the timing info and such was there and it didnt require special instructions, that RMIR could accept the manual protocol information, but I'm sure there is something I don't appreciate which makes that impossible.
The structure of the code block is different for each processor, so even if there's no assembler needed, you can just use a block of code designed for a remote with a different processor.

ncoig wrote:
On a slightly unrelated topic, do extenders just overlay the programming already in the remote or does the coding actually replace what comes in the firmware?

On traditional remotes, like the 15-1994, etc, the extender just resides in the EEPROM (and RAM). Things are a little different in the current flash based remotes.
_________________
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic       JP1 Remotes Forum Index -> JP1 - Software All times are GMT - 5 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


 

Powered by phpBB © 2001, 2005 phpBB Group
Top 7 Advantages of Playing Online Slots The Evolution of Remote Control