Russound CAV 6.6 "Whole House Audio"

If you have learned signals that don't get decoded when you look at them in IR.exe, post your file to the Diagnosis Area then post your question here (including a link to the file).

Moderator: Moderators

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

Post by johnsfine »

It is the same executor that is already in RM as DirecTV, pid 01 62.

So it would be better to use it as that.

After the raw import to get the basic assignments of EFC numbers to buttons, I'm not sure what is involved in switching over to DirecTV protocol but preserving those EFC numbers and preserving or restoring the fixed data.
The Robman
Site Owner
Posts: 22018
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

I was able to import the upgrade OK using RM and created this RMDU file for it...
https://www.hifi-remote.com/forums/dload ... le_id=2146

I used the RDF for the Gateway TV, which has the same sig...
https://www.hifi-remote.com/forums/dload ... le_id=2147
Last edited by The Robman on Tue Aug 30, 2005 6:04 pm, edited 1 time in total.
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 »

Since this protocol is called DirecTV in RM, should I rename it in DecodeIR (from "Russound" to "DirecTV") so we won't be confused this way next time?
gfb107
Expert
Posts: 3411
Joined: Sun Aug 03, 2003 7:18 pm
Location: Cary, NC
Contact:

Post by gfb107 »

There shouldn't be any issue with EFCs or fixed data when importing a raw upgrade in RM.
pasha
Posts: 26
Joined: Tue Aug 30, 2005 6:45 am

Post by pasha »

WOW!!!
This works!

This is defenetly great help from all of you.

Thanks

-Pasha
The Robman
Site Owner
Posts: 22018
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

I've been meaning to take a look at the $0162 exec for a while as it's such a big piece of code. It's too big to be loaded into the Slingbox, which has a 200 byte limit. So this thread has nugged me into reviewing it.

I've only just started looking, but right off the bat I can se that there's some code up front which handles a couple of different frequencies, which most people won't need, and I'm guessing that some of the rest of the code is there to handle the checksum. If the checksum code were eliminated, each function would need 2 bytes of data, so the question is, which would result in a smaller upgrade (device and protocol together).
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 »

The Robman wrote:I've been meaning to take a look at the $0162 exec for a while as it's such a big piece of code. It's too big to be loaded into the Slingbox, which has a 200 byte limit.
I notice it has a lot of subroutine calls to other parts of itself. Those tend to be very costly in executor size for what they accomplish. Usually it is easy to join all the call point of a given subroutine into a loop so there is only one call point so you don't need it to be a subroutine.

Computing the check nibble shouldn't be very hard, but I haven't looked to see how hard they made it for themselves. I'm sure it can be done in few enough protocol bytes to typically save space vs. an upgrade with two byte hex cmds.
The Robman
Site Owner
Posts: 22018
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

That's what I was thinking too. I recall the size of their original ReplayTV exec vs. yours. If you get a chance, could you take a look at this exec please? I'm sure you can do a nice job of cleaning it up.
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 »

How small do you need it?

There are a bunch of bytes of code that can be removed trivially, without changing the basic approach to creating the signal. Probably there is a better basic approach that I could find with a lot more effort. But then I might not find time to finish it.
The Robman
Site Owner
Posts: 22018
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

Well, the current exec code is 184 bytes and the maximum upgrade size for the Slingbox is 200 bytes, so that only leaves 16 bytes for everything else. Ideally, I'd like to see the code smaller by 50 bytes or so, but I'll take whatever I can get.

For starters, I figure that I can delete all that code that selects the carrier freq as each user just needs one freq. I haven't dug deep enough into the checksum and 4-burst code to see if I can reduce any of that yet.
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 »

The Robman wrote: For starters, I figure that I can delete all that code that selects the carrier freq as each user just needs one freq. I haven't dug deep enough into the checksum and 4-burst code to see if I can reduce any of that yet.
I have some misgivings about stripping out the options (frequency and ???). That would mean our executor wouldn't be fully compatible with upgrades based on UEI's. You're probably right that each user would want the options only one way, so RM could have several protocols.ini entries that hard code each option.

I didn't look up details to see what the option on bit 0 means. Bits 1 and 2 seem to select frequencies.

You can save the 4 bytes of call and return on the check nibble computation because it is only used once. You can save nearly half of the code within that computation by getting rid of the stupid table for looking up 1, 3, 5 and 7.

You can use 5 words instead of 8 for the table of bursts by taking advantage of the overlap, and in doing so you save a couple bytes of code in accessing that. I think a few more bytes can also be simplified out of that section.

The three calls, the return and the other overhead of invoking the routine that processes bit pairs looks excessive for what it does, but it isn't immediately obvious how to do the 2/4/2 sequence in a loop rather than as calls.
johnsfine
Site Admin
Posts: 4766
Joined: Sun Aug 10, 2003 5:00 pm
Location: Bedford, MA
Contact:

Post by johnsfine »

The Robman wrote:Well, the current exec code is 184 bytes and the maximum upgrade size for the Slingbox is 200 bytes, so that only leaves 16 bytes for everything else.
I haven't looked at all at how Slingbox upgrades work. Most models move the protocol upgrade and device upgrade into ram independently, so any limit would apply to each of them, rather than to their total. Is that different on the Slingbox? I hope you don't mean the total upgrade area in eeprom is just 200 bytes. That would be really lame.
pasha
Posts: 26
Joined: Tue Aug 30, 2005 6:45 am

Post by pasha »

seams like this protocol only works alone...
remote doesn't work with extender....
johnsfine
Site Admin
Posts: 4766
Joined: Sun Aug 10, 2003 5:00 pm
Location: Bedford, MA
Contact:

Post by johnsfine »

pasha wrote:seams like this protocol only works alone...
remote doesn't work with extender....
That doesn't sound likely.

You should upload (to diagnosis area) your .ir file with the extender and this upgrade and everything as it was when you tested to find that it doesn't work with extender. Maybe we'll spot some error. Also please clarify "doesn't work". With a specific description of actions and results we may be able to perform a comperable test ourself and/or explain what you're doing wrong.
gfb107
Expert
Posts: 3411
Joined: Sun Aug 03, 2003 7:18 pm
Location: Cary, NC
Contact:

Post by gfb107 »

johnsfine wrote:You're probably right that each user would want the options only one way, so RM could have several protocols.ini entries that hard code each option.
RM has support for translating device parameters directly into the protocol code, so it might be possible to do that sort of thing with just one protocols.ini entry.

This is done using the CodeTranslator.<processor> value.
Post Reply