PDA

View Full Version : Yamaha RXV-x900 Driver


batwater
02-01-2011, 08:35 PM
I have started work on making an RXV-x900 driver. I have a 1900 so that is what I will base my initial work off of. This release will be specific to rs232 control.

More to follow in the next few weeks (I hope, time willing)

-Ben

batwater
02-01-2011, 09:01 PM
Placeholder 1

batwater
02-01-2011, 09:01 PM
Placeholder 2

znelbok
02-01-2011, 11:30 PM
Excellent news - count me in for testing.

Mick

stjoh
02-03-2011, 03:41 AM
I believe the protocol is the same as for the RX-Z7. If so, I'll be more than happy to help out with too.


Excellent news - count me in for testing.

Mick

zaccari
02-03-2011, 06:23 AM
I'm a bit confused by what appears to be differences between the Yamaha receivers. The protocol document I have been able to acquire is half cryptic. There's a ton of stuff that just doesn't connect. I'll be curious if it is possible to build a single driver that can support this series. I'm also curious who has protocol documents and which model(s) they are for (and where they came from). I bought mine from a store with a promise that the techs would get me the doc. Obviously, that has never happened and the company is no more.

Russ...

batwater
02-03-2011, 07:08 AM
I'm a bit confused by what appears to be differences between the Yamaha receivers. The protocol document I have been able to acquire is half cryptic. There's a ton of stuff that just doesn't connect. I'll be curious if it is possible to build a single driver that can support this series. I'm also curious who has protocol documents and which model(s) they are for (and where they came from). I bought mine from a store with a promise that the techs would get me the doc. Obviously, that has never happened and the company is no more.

Russ...

Russ, great question. As with everything else, things evolve over time. I can tell you that Yamaha holds onto their protocol docs pretty tight and / or they are buried somewhere in one of their web sites that google has not or cannot index and I have not personally found them.

Receivers have been evolving at a rapid pace being driven by marketing wanting to differentiate from the other guys with newer better features that "the consumer must have." Like the rest of the home automation industry there are no set standards between manufactures, let alone between product lines (or even in a product family) for a given manufacture. Simple case in point, the RV-x700 and the RV-x900 series (excluding the 3900 level) use hardware handshaking on the serial port, the 3900 and the RZ-Z7 don't use handshaking at all for flow control. The higher end models (3x00 level, eg. 3900) also have ethernet based control capability. The capabilities between the serial and the ethernet control options are not 100% between the 2 with RS232 being a subset. In a cursory look at the 3900 / Z7 documentation they are different from the x900 controls. Having said this, given the number of receiver families and the number of members of the families to build a universal driver would prove to be quite cumbersome.

Last point in my ramble, Yamaha made sure that their communication protocols were very robust in that there is very strong handshaking expectations between the receiver and the controlling software. If the handshakes don't match, communication is aborted with the end result that the receiver does not end up in a funky state. This guaranteed communication approach adds complexity but having had to deal with the Denon control protocols (which are pretty brain dead) I think I'll take this over the flaky behavior of the Denon that I have. (to be slightly fair the 3805 was one of the 1st of a new breed of receivers)

As I crack open the RV-x700 and to morph it into a RV-x900 I'll look at what it will take to make those 2 compatible in one. I don't have the time or resources (only have a RX-V1900 personally) to go much beyond that unfortunately. I think the best middle ground here is to hope that we can come up with drivers by family.

What Yamaha receiver do you have?

-Ben

zaccari
02-03-2011, 08:17 AM
I have an RX-V2500 with serial control. I've tried to get an official protocol document from Yamaha several times. I believe the reason they're so hard to get ahold of is that they're not "user friendly".

Russ...

znelbok
02-03-2011, 03:15 PM
I have the following docs

RX-V1500
RX-V2400
RX-V2500
RX-Vx700
RX-Vx800
RX-V1900

I am in a position where I can ask Yamaha for others if you need them. They helped me out last time with the 1900 docs.

AVS forums is also a good place to search for link to the docs as well.

Mick

khill
02-03-2011, 03:19 PM
Russ,

I found this document titled RX-V2500_RS232C_ST a while back whien I was looking for info for my Rx V2400. RS232 protocols aren't my strength but it appears to contain the protocol for the RX-V2500 and I would be glad to email it you or anyone that would like to check it out.

Just send me your email and I will forward it.

Kerry

batwater
02-03-2011, 03:52 PM
Russ,

I found this document titled RX-V2500_RS232C_ST a while back whien I was looking for info for my Rx V2400. RS232 protocols aren't my strength but it appears to contain the protocol for the RX-V2500 and I would be glad to email it you or anyone that would like to check it out.

Just send me your email and I will forward it.

Kerry

Was able to locate the pdf on the interweb with that title. With this I can compare and contrast to RX-Vx900.

Dean Roddey
02-03-2011, 03:58 PM
Doing these types of all seeing, all knowing drivers can be tough for complex devices. It can become very difficult to make a change because you can't really test it against all of the other options. If the protocol is designed right that it can be reasonable to do. The Integra driver seems to be a successful example, supporting quite a range of device models, though I'm not sure how many hoops have to be jumped through to do that.

stjoh
02-04-2011, 03:59 AM
I've got the ones for the RX-V3900 / RX-Z7.

I have the following docs

RX-V1500
RX-V2400
RX-V2500
RX-Vx700
RX-Vx800
RX-V1900

I am in a position where I can ask Yamaha for others if you need them. They helped me out last time with the 1900 docs.

AVS forums is also a good place to search for link to the docs as well.

Mick

zaccari
02-06-2011, 06:50 PM
I found this document titled RX-V2500_RS232C_ST a while back This is the document I found eventually but it appears to be an internal only document without full (and certainly not clear) details.

Russ...

batwater
02-17-2011, 06:08 PM
I have started work on this. Meh, I had a minor setback in that the serial cable I thought worked, didn't, so am waiting on delivery of a "real" null modem cable. :-(


This driver will be specifically for the RX-V1900 (HTR-6290)
This will be based on the US model (what I have to work with, there are some documented differences in capability on international models) there should not be any impact on basic functionality (this driver is taken from the x700 driver and it has the same issue)
The x700 driver did not have zone 2 / 3 input control (only reported the zone input setting) I will add zone 2 / 3 input control after I get the driver talking to the receiver and verify the other changes made below
I have added the new input and audio mode selections the 1900 is capable of

More to follow...

Let me know if there are other CQC control capability for this receiver that you are interested and once I get basic functionality up and running I will try to work them in as time allows.

-Ben

Dean Roddey
02-17-2011, 09:00 PM
You should just make a run to a decent sized Radio Shack or other electronics store and get a couple 'null modem adaptors' that you can use to switch the tx/rx cable configuration on a regular cable to make it null modem. They are awfully convenient and you don't have to worry about having both regular and real null modem cables around and forgetting which is which.

znelbok
02-17-2011, 09:03 PM
I am in Aus so I will want anything specific to that region added.

Would it be better to ask in the manifest file for the region to sperate out the differences in regions?

Mick

zaccari
02-18-2011, 06:35 AM
You should just make a run to a decent sized Radio Shack or other electronics store and get a couple 'null modem adaptors' that you can use to switch the tx/rx cable configuration on a regular cable to make it null modem. They are awfully convenient and you don't have to worry about having both regular and real null modem cables around and forgetting which is which.
I approach this another way. I make cables once I figure out what the wiring required for my project. I use these VERY convenient suckers:

Modular Adapter DB9 M to RJ45 (http://www.cyberguys.com/product-details/?productid=803&core_cross=SEARCH#page=page-1) and Modular Adapter DB9 F to RJ45 (http://www.cyberguys.com/product-details/?productid=802&core_cross=SEARCH#page=page-1)

Then I pin the cables exactly as I intend and write the intended use on the hoods with a sharpie. At $4 per cable, I consider these disposable.

Russ...

batwater
02-18-2011, 09:59 AM
You should just make a run to a decent sized Radio Shack or other electronics store and get a couple 'null modem adaptors' that you can use to switch the tx/rx cable configuration on a regular cable to make it null modem. They are awfully convenient and you don't have to worry about having both regular and real null modem cables around and forgetting which is which.

Yeah that would be useful; I should go grab one to get me through the weekend since UPS won't deliver my order until Monday. I've got 6 cables (2 straight through, 4 null modem) coming from monoprice.com for what that adapter costs. What I need to do is figure out where in the heck my breakout box disappeared to :-x

Thx for the tip!
-Ben

batwater
02-18-2011, 10:02 AM
I approach this another way. I make cables once I figure out what the wiring required for my project. I use these VERY convenient suckers:

Modular Adapter DB9 M to RJ45 (http://www.cyberguys.com/product-details/?productid=803&core_cross=SEARCH#page=page-1) and Modular Adapter DB9 F to RJ45 (http://www.cyberguys.com/product-details/?productid=802&core_cross=SEARCH#page=page-1)

Then I pin the cables exactly as I intend and write the intended use on the hoods with a sharpie. At $4 per cable, I consider these disposable.

Russ...

Interesting. Does this use ethernet patch cable for interconnect? I like this for going through walls or slightly longer runs.

I'm a cheapskate though, this does cost more than a prebuilt but as you say, you have complete pin customization to meet the specific project needs.

Thanks for sharing!
-Ben

batwater
02-18-2011, 10:12 AM
I am in Aus so I will want anything specific to that region added.

Would it be better to ask in the manifest file for the region to sperate out the differences in regions?

Mick

Mick base functionality control should not be an issue for your unit. Most of the difference has to do with XM / Sirius which is US & Canada only and a USB port which is not on the US & Canadian model.

Once I get the existing functionality working I would be happy to review with you what is missing as there is quite a bit that the current driver is not capable of.

The control protocol Yamaha exposes is quite rich, really everything feature wise the unit is capbable of. It will be a matter of deciding what makes sense to add. Initially for certain will be the addition of zones 2 & 3 input control.

Thanks,
-Ben

jpresto
02-20-2011, 06:16 AM
I had this developed a few years back. Thought it was submitted to Dean. Have at it. Issues:

With current versions of CQC the volume isn't read first, so needs to be set first before can be adjusted.
The up/down/left/right navigation will only be registered once. Need to hit another button between them.

Dean Roddey
02-20-2011, 10:06 AM
I had this developed a few years back. Thought it was submitted to Dean. Have at it. Issues:

With current versions of CQC the volume isn't read first, so needs to be set first before can be adjusted.
The up/down/left/right navigation will only be registered once. Need to hit another button between them.


The second one is likely that the field is not marked as 'always write'.

batwater
02-20-2011, 11:41 AM
I had this developed a few years back. Thought it was submitted to Dean. Have at it. Issues:

With current versions of CQC the volume isn't read first, so needs to be set first before can be adjusted.
The up/down/left/right navigation will only be registered once. Need to hit another button between them.


Thanks for sharing the issue info. What Dean has as the official x700 driver is v 0.2.3

-Ben

Dean Roddey
02-20-2011, 12:37 PM
Thanks for sharing the issue info. What Dean has as the official x700 driver is v 0.2.3

-Ben

Actually, that's not a legal version number. They only have two values, but some folks have used three so the last one gets ignored.

batwater
02-20-2011, 05:03 PM
Actually, that's not a legal version number. They only have two values, but some folks have used three so the last one gets ignored.

Gotcha, good to know. Was sharing what I found buried in the code and used when it writes to the log.

beelzerob
02-21-2011, 05:36 PM
I had this developed a few years back. Thought it was submitted to Dean. Have at it. Issues:

With current versions of CQC the volume isn't read first, so needs to be set first before can be adjusted.
The up/down/left/right navigation will only be registered once. Need to hit another button between them.


Ya, Dean is right...that should be set always write. However, looking at the code, I don't see why the volume isn't being read. It should be read when the driver connects. You might try setting the verbose to medium and letting it connect and see if it says something bad.

If you want to get that fixed, then we can resurrect the old thread for it.

And it is submitted to Dean, btw...it's in the list of supported devices, along with all the other A/V Processors.

Dean Roddey
02-21-2011, 06:36 PM
So, if I have the most recent version, should I just make that change to set the write always on that field?

beelzerob
02-21-2011, 06:51 PM
Ya, please do. You have the most recent, I checked, and I made the change in my version too. If jpresto wants to work out that volume issue we can do it in the old driver dev thread.

Dean Roddey
02-21-2011, 07:05 PM
Ya, please do. You have the most recent, I checked, and I made the change in my version too. If jpresto wants to work out that volume issue we can do it in the old driver dev thread.

If I look at the list of shipped manifsts, I see a RX-V1500, RX-Vx600 and RX-Vx700, but I don't see a 900.

beelzerob
02-21-2011, 07:15 PM
If I look at the list of shipped manifsts, I see a RX-V1500, RX-Vx600 and RX-Vx700, but I don't see a 900.

jpresto was talking about the Vx700 driver pack he had posted, not the 900 in this thread.

Dean Roddey
02-21-2011, 07:26 PM
OK, I made that change.

batwater
02-22-2011, 06:45 PM
OK, I made that change.

Dean what do I need to change so I'm working with that fix for the 900 driver?

Thanks!
-Ben

Dean Roddey
02-22-2011, 07:28 PM
This around line 1370'ish:


guiOpEnum.FormatList(enumList, "Enum:", ',', True);
cqcField.SetWithLimits("GuiOperation", CQCFldTypes.String, ....
fieldList.AddObject(cqcField);


becomes


guiOpEnum.FormatList(enumList, "Enum:", ',', True);
cqcField.SetWithLimits("GuiOperation", CQCFldTypes.String, ....
cqcField.SetAlwaysWrite(True);
fieldList.AddObject(cqcField);


So just the SetAlwaysWrite method is called on the field definition before it's add to the list.

beelzerob
02-23-2011, 09:50 AM
Thanks dean

batwater
03-06-2011, 06:08 AM
Okay, I now have a working serial connection.

Is anyone currently using the RXV-x700 driver? If so, I have a simple but profound question, it appears that the driver is only going to communicate initially if the receiver is actually on when the driver is fired up, is this your experience or is this a difference between the 1700 and 1900 protocols? :-?

Worked on the 1900 driver for 5+ hours last weekend working through the driver code. If my receiver is turned on I get interaction (though not working yet) if it is turned off (standby mode), then I don't. Based on the connect routine, it is only looking for a configuration message, which if the receiver is in standby mode, it will never get as only the first 9 messages of the control protocol are potential return values. Of those only DT7 - system state (0:OK, 1:Busy, 2:Standby) and DT8 - power status are meaningful. (per the protocol doc top of page 5)

-Ben

beelzerob
03-06-2011, 08:36 AM
The x700 and all other yamaha protocols I've worked with (including the RXV1500 I own) all respond with a configuration message when queried for that, whether "off" or "on".

brathnach
06-16-2011, 05:31 PM
Ben,

It could be one of two issues

1. See my last post here

http://www.charmedquark.com/vb_forum/showthread.php?p=131420#post131420

2. Another thing to check is that Wake On RS232 is enabled in advanced settings (pretty sure its disabled by default) .... (assuming this is a feature on the 1900 as it is on the 1700)

I'd say no. 2 is your problem tho no.1 still applies (for the 1700 anyways). Probably a nice command to issue on driver connect... Didnt even know this thread existed till now, sorry:-( . The driver with CQC for the RX-V1700 didnt work for me on my RX-V1700. Just did a PDL to cover me for basic functionality with the 1700 thats fine so far. If someone could show me the 1900 protocol doc I'd try to churn out a working (if unrefined) PDL for ye. Access to a serial port would probably be useful. Will have time for this in the coming few weeks and its fresh in my head! As long as its not controlled over LAN or something alien to me.......

If ben or beelzerob are moving along with a high functionality CML then it probably is unnecessary....

cheers

Jim

batwater
08-24-2011, 09:14 AM
If you have a Yamaha RX-V1900 and are interested in splitting the cost with me of having Dean develop a driver for this receiver please PM me!

Thanks,
-Ben