<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.linuxmce.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ardirtbiker</id>
	<title>LinuxMCE - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.linuxmce.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ardirtbiker"/>
	<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php/Special:Contributions/Ardirtbiker"/>
	<updated>2026-07-22T00:21:23Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Main_Page&amp;diff=34599</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Main_Page&amp;diff=34599"/>
		<updated>2013-11-05T00:07:37Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:175%; font-weight:bold&amp;quot;&amp;gt;The &#039;&#039;&#039;[http://linuxmce.org LinuxMCE]&#039;&#039;&#039; wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Your guide to a smarter home!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;clear: both; border: 1px solid #aaa; background-color: #FFFFFF; color: black; margin-bottom: 0.5em; margin-left: 1em; padding: 0.5em; float: left; text-align:left&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;&lt;br /&gt;
==Overview==&lt;br /&gt;
{| cellspacing=5 cellpadding=5 border=0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=120 align=&amp;quot;left&amp;quot;|[[Installing 0810|&#039;&#039;&#039;LinuxMCE 0810&#039;&#039;&#039;]] || &amp;lt;span style=&amp;quot;color:#FF8C00&amp;quot;&amp;gt;&#039;&#039;&#039;Final Release&#039;&#039;&#039; :: This is a version for a stable, functional system, but somewhat out of date.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=120 align=&amp;quot;left&amp;quot;|[[Installing 1004|&#039;&#039;&#039;LinuxMCE 1004&#039;&#039;&#039;]] || &amp;lt;span style=&amp;quot;color:#006400&amp;quot;&amp;gt;&#039;&#039;&#039;The most up-to-date Final Release&#039;&#039;&#039; :: This is the recommended version for a stable, functional system. If unsure as to which version to go for, make it 10.04.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=120 align=&amp;quot;left&amp;quot;|[[Installing 1204|&#039;&#039;&#039;LinuxMCE 1204&#039;&#039;&#039;]] || &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;&#039;&#039;&#039;Pre-Alpha&#039;&#039;&#039; :: Considered to be &amp;quot;bleeding edge&amp;quot;.  Being worked hard on by the developers.&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;clear: both; border: 1px solid #aaa; background-color: #FFFFFF; color: black; margin-bottom: 0.5em; margin-left: 1em; padding: 0.5em; float: left; text-align:left&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|&#039;&#039;&#039;&lt;br /&gt;
==Support==&lt;br /&gt;
{| cellspacing=5 cellpadding=5 border=0 &lt;br /&gt;
|width=48|{{Click || image=Icon_user_guide.png | link=User Manual | width=54px | height=54px }}&lt;br /&gt;
|&#039;&#039;&#039;[[User Manual]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;LinuxMCE User Manual&lt;br /&gt;
|width=48|{{Click || image=Howto_icon.gif | link=:Category:Tutorials | width=58px | height=57px }}&lt;br /&gt;
|&#039;&#039;&#039;[[:Category:Tutorials|Tutorials/Guides]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;HOWTO guides describing common scenarios&lt;br /&gt;
|-&lt;br /&gt;
|width=48|{{Click || image=Faq_icon_blue.png | link=Frequently Asked Questions | width=58px | height=58px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Frequently Asked Questions]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Responses to the most common questions&lt;br /&gt;
|width=48|{{Click || image=Pci-icon.png | link=Hardware | width=64px | height=48px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Hardware]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Hardware documentation&lt;br /&gt;
|-&lt;br /&gt;
|width=48|{{Click || image=Troubleshooting_icon.png | link=Troubleshooting | width=61px | height=54px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Troubleshooting]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Help with common problems&lt;br /&gt;
|width=48|{{Click || image=Forum.gif | link=Chat | width=48px | height=48px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Chat]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Support chat&lt;br /&gt;
|-&lt;br /&gt;
|width=48|{{UrlClick || image=Forum.gif | link=kjh | width=48px | height=48px }}&lt;br /&gt;
|&#039;&#039;&#039;[http://forum.linuxmce.org Forum]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Support forum&lt;br /&gt;
&lt;br /&gt;
|width=48|{{Click || image=gearhead_smile.png | link=:Category:Tutorials | width=58px | height=57px }}&lt;br /&gt;
|&#039;&#039;&#039;[[:Category:Hardware Compatibility|Hardware Compatibility]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Compatible Hardware&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|&#039;&#039;&#039;&lt;br /&gt;
|valign=top| &lt;br /&gt;
==Development==&lt;br /&gt;
{| cellspacing=5 cellpadding=5 border=0&lt;br /&gt;
|width=48|{{Click || image=Contacts icon.png | link=Contacts | width=58px | height=58px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Contacts|Contact Information]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Contact people involved with the project&lt;br /&gt;
|width=48|{{Click || image=Icon_user_guide.png | link=Programmer&#039;s Guide | width=54px | height=54px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Programmer&#039;s Guide]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;A guide for software developers&lt;br /&gt;
|-&lt;br /&gt;
|width=48|{{Click || image=Components-icon.png | link=Software components | width=58px | height=58px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Software components|Software Components]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Open source software used by LinuxMCE&lt;br /&gt;
|width=48|{{Click || image=Bug_icon.png | link=Bug_Reporting | width=48px | height=48px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Bug Reporting]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Help improve the software by reporting bugs&lt;br /&gt;
|-&lt;br /&gt;
|width=48|{{Click || image=Code_icon.png | link=Source Code | width=58px | height=58px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Source Code]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Access the LinuxMCE source code&lt;br /&gt;
|width=48|{{UrlClick || image=Cd_icon.png | link=Versions | width=48px | height=48px }}&lt;br /&gt;
|&#039;&#039;&#039;[[Versions]]&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;View version histories and changes&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34494</id>
		<title>DirecTV IP Receiver</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34494"/>
		<updated>2013-09-25T00:16:44Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]] &lt;br /&gt;
&lt;br /&gt;
== Minimal codeset for control of DirecTV IP Satellite boxes ==&lt;br /&gt;
&lt;br /&gt;
The template 2159 (HR24 IP) can be modified with these codes.&lt;br /&gt;
&lt;br /&gt;
Verify template Comm Method is Ethernet.&lt;br /&gt;
&lt;br /&gt;
Device Data needs #69 TCP Port(int) set to 8080&lt;br /&gt;
&lt;br /&gt;
I am unable to determine the range for the MAC address of the devices.  I set the Plug &amp;amp; Play &#039;Range of MAC&#039; From 111121700000 To 111121742000, Vendor Model ID = DirecTV HR-xx Satellite Box, and PNP Protocol = DHCP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/DirecTV.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(100, 500)&lt;br /&gt;
if !(buf.empty?)&lt;br /&gt;
  msg = buf.strip&lt;br /&gt;
  log(msg)&lt;br /&gt;
  log(&amp;quot;&amp;quot;)   &lt;br /&gt;
  log(&amp;quot;***********************************************************&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def RemoteKey(key)&lt;br /&gt;
  log(&amp;quot;**********          Sending key=&amp;quot; + key + &amp;quot;          **********&amp;quot;)&lt;br /&gt;
  conn_.Send(&amp;quot;GET\x20/remote/processKey?key=&amp;quot; + key +  &amp;amp;hold=keyPress\x20HTTP/1.1\x0D\x0AContent-Length:\x200\x0D\x0A\x0D\x0A&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    logTime = Time.now&lt;br /&gt;
    timeStr = logTime.strftime(&amp;quot;%d-%m-%Y  %H:%M:%S  &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    $logFile.print( timeStr + word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;poweron&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;poweroff&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GENERAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enter/Go&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;enter&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Info&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NUMBERS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;4&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;9&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;9&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34493</id>
		<title>DirecTV IP Receiver</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34493"/>
		<updated>2013-09-25T00:15:13Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]] &lt;br /&gt;
&lt;br /&gt;
== Minimal codeset for control of DirecTV IP Satellite boxes ==&lt;br /&gt;
&lt;br /&gt;
The template 2159 (HR24 IP) can be modified with these codes.&lt;br /&gt;
&lt;br /&gt;
Verify template Comm Method is Ethernet.&lt;br /&gt;
&lt;br /&gt;
Device Data needs #69 TCP Port(int) set to 8080&lt;br /&gt;
&lt;br /&gt;
I am unable to determine the range for the MAC address of the devices.  I set the Plug &amp;amp; Play &#039;Range of MAC&#039; From 111121700000 To 111121742000, Vendor Model ID = DirecTV HR-xx Satellite Box, and PNP Protocol = DHCP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/DirecTV.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(100, 500)&lt;br /&gt;
if !(buf.empty?)&lt;br /&gt;
  msg = buf.strip&lt;br /&gt;
  log(msg)&lt;br /&gt;
  log(&amp;quot;&amp;quot;)   &lt;br /&gt;
  log(&amp;quot;***********************************************************&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def RemoteKey(key)&lt;br /&gt;
  log(&amp;quot;**********          Sending key=&amp;quot; + key + &amp;quot;          **********&amp;quot;)&lt;br /&gt;
  conn_.Send(&amp;quot;GET\x20/remote/processKey?key=&amp;quot; + key +  &amp;amp;hold=keyPress\x20HTTP/1.1\x0D\x0AContent-Length:\x200\x0D\x0A\x0D\x0A&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    logTime = Time.now&lt;br /&gt;
    timeStr = logTime.strftime(&amp;quot;%d-%m-%Y  %H:%M:%S  &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    $logFile.print( timeStr + word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;poweron&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;poweroff&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GENERAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enter/Go&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;enter&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Info&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Numbers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;4&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;9&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
RemoteKey(&amp;quot;9&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34492</id>
		<title>DirecTV IP Receiver</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34492"/>
		<updated>2013-09-25T00:13:22Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]] &lt;br /&gt;
&lt;br /&gt;
== Minimal codeset for control of DirecTV IP Satellite boxes ==&lt;br /&gt;
&lt;br /&gt;
The template 2159 (HR24 IP) can be modified with these codes.&lt;br /&gt;
&lt;br /&gt;
Verify template Comm Method is Ethernet.&lt;br /&gt;
&lt;br /&gt;
Device Data needs #69 TCP Port(int) set to 8080&lt;br /&gt;
&lt;br /&gt;
I am unable to determine the range for the MAC address of the devices.  I set the Plug &amp;amp; Play &#039;Range of MAC&#039; From 111121700000 To 111121742000, Vendor Model ID = DirecTV HR-xx Satellite Box, and PNP Protocol = DHCP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/DirecTV.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(100, 500)&lt;br /&gt;
if !(buf.empty?)&lt;br /&gt;
  msg = buf.strip&lt;br /&gt;
  log(msg)&lt;br /&gt;
  log(&amp;quot;&amp;quot;)   &lt;br /&gt;
  log(&amp;quot;***********************************************************&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def RemoteKey(key)&lt;br /&gt;
  log(&amp;quot;**********          Sending key=&amp;quot; + key + &amp;quot;          **********&amp;quot;)&lt;br /&gt;
  conn_.Send(&amp;quot;GET\x20/remote/processKey?key=&amp;quot; + key +  &amp;amp;hold=keyPress\x20HTTP/1.1\x0D\x0AContent-Length:\x200\x0D\x0A\x0D\x0A&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    logTime = Time.now&lt;br /&gt;
    timeStr = logTime.strftime(&amp;quot;%d-%m-%Y  %H:%M:%S  &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    $logFile.print( timeStr + word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;On&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;poweron&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Off&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;poweroff&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GENERAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enter/Go&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;enter&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Info&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Numbers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;0&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;1&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;2&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;3&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;4&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;4&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;9&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;9&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34491</id>
		<title>DirecTV IP Receiver</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34491"/>
		<updated>2013-09-25T00:12:21Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]] &lt;br /&gt;
&lt;br /&gt;
== Minimal codeset for control of DirecTV IP Satellite boxes ==&lt;br /&gt;
&lt;br /&gt;
The template 2159 (HR24 IP) can be modified with these codes.&lt;br /&gt;
&lt;br /&gt;
Verify template Comm Method is Ethernet.&lt;br /&gt;
&lt;br /&gt;
Device Data needs #69 TCP Port(int) set to 8080&lt;br /&gt;
&lt;br /&gt;
I am unable to determine the range for the MAC address of the devices.  I set the Plug &amp;amp; Play &#039;Range of MAC&#039; From 111121700000 To 111121742000, Vendor Model ID = DirecTV HR-xx Satellite Box, and PNP Protocol = DHCP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/DirecTV.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(100, 500)&lt;br /&gt;
if !(buf.empty?)&lt;br /&gt;
  msg = buf.strip&lt;br /&gt;
  log(msg)&lt;br /&gt;
  log(&amp;quot;&amp;quot;)   &lt;br /&gt;
  log(&amp;quot;***********************************************************&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def RemoteKey(key)&lt;br /&gt;
log(&amp;quot;**********          Sending key=&amp;quot; + key + &amp;quot;          **********&amp;quot;)&lt;br /&gt;
conn_.Send(&amp;quot;GET\x20/remote/processKey?key=&amp;quot; + key +  &amp;amp;hold=keyPress\x20HTTP/1.1\x0D\x0AContent-Length:\x200\x0D\x0A\x0D\x0A&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    logTime = Time.now&lt;br /&gt;
    timeStr = logTime.strftime(&amp;quot;%d-%m-%Y  %H:%M:%S  &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    $logFile.print( timeStr + word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;On&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;poweron&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Off&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;poweroff&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GENERAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enter/Go&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;enter&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Info&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Numbers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;0&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;1&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;2&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;3&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;4&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;4&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;9&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;9&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34490</id>
		<title>DirecTV IP Receiver</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=DirecTV_IP_Receiver&amp;diff=34490"/>
		<updated>2013-09-25T00:10:35Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: minimal ruby coding for IP control of DirecTV set-top boxes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]] &lt;br /&gt;
&lt;br /&gt;
== Minimal codeset for control of DirecTV IP Satellite boxes ==&lt;br /&gt;
&lt;br /&gt;
The template 2159 (HR24 IP) can be modified with these codes.&lt;br /&gt;
&lt;br /&gt;
Verify template Comm Method is Ethernet.&lt;br /&gt;
&lt;br /&gt;
Device Data needs #69 TCP Port(int) set to 8080&lt;br /&gt;
&lt;br /&gt;
I am unable to determine the range for the MAC address of the devices.  I set the Plug &amp;amp; Play &#039;Range of MAC&#039; From 111121700000 To 111121742000, Vendor Model ID = DirecTV HR-xx Satellite Box, and PNP Protocol = DHCP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/DirecTV.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(100, 500)&lt;br /&gt;
if !(buf.empty?)&lt;br /&gt;
  msg = buf.strip&lt;br /&gt;
  log(msg)&lt;br /&gt;
  log(&amp;quot;&amp;quot;)   &lt;br /&gt;
**********&amp;quot;)0&lt;br /&gt;
  log(&amp;quot;***********************************************************&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def RemoteKey(key)&lt;br /&gt;
log(&amp;quot;**********          Sending key=&amp;quot; + key + &amp;quot;          **********&amp;quot;)&lt;br /&gt;
conn_.Send(&amp;quot;GET\x20/remote/processKey?key=&amp;quot; + key +  &amp;amp;hold=keyPress\x20HTTP/1.1\x0D\x0AContent-Length:\x200\x0D\x0A\x0D\x0A&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    logTime = Time.now&lt;br /&gt;
    timeStr = logTime.strftime(&amp;quot;%d-%m-%Y  %H:%M:%S  &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    $logFile.print( timeStr + word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;On&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;poweron&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Off&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;poweroff&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GENERAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enter/Go&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;enter&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Info&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;info&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Numbers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;0&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;1&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;2&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;3&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;4&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;4&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;9&#039;&#039;&lt;br /&gt;
RemoteKey(&amp;quot;9&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=PN-51E_5-Series&amp;diff=33700</id>
		<title>PN-51E 5-Series</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=PN-51E_5-Series&amp;diff=33700"/>
		<updated>2013-01-15T00:39:23Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: PN-51E 5-Series moved to Samsung PN-51E 5-Series: relocate to other Samsung Displays&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Samsung PN-51E 5-Series]]&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33699</id>
		<title>Samsung PN-51E 5-Series</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33699"/>
		<updated>2013-01-15T00:39:23Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: PN-51E 5-Series moved to Samsung PN-51E 5-Series: relocate to other Samsung Displays&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Video]]&lt;br /&gt;
[[Category: Displays]]&lt;br /&gt;
{{Versioninfo|1004Status=works|1004UpdatedDate=14th Jan 2013|1004UpdatedBy=[[User:ardirtbiker|ardirtbiker]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;left&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Basics=&lt;br /&gt;
*General info&lt;br /&gt;
**51 inch&lt;br /&gt;
**Plasma&lt;br /&gt;
**1080p capable with lmce&lt;br /&gt;
&lt;br /&gt;
=Equipment Needed=&lt;br /&gt;
*RS232 interface using &#039;DB9 to 3.5mm Stereo&#039; cable [http://www.cableclub.com/ipod-computer-data-cable-p-1344.html]&lt;br /&gt;
&lt;br /&gt;
=Display Setup=&lt;br /&gt;
*Configure the following:&lt;br /&gt;
**Enter Maintenance Menu:  Press &#039;mute 1 8 2 power&#039; buttons quickly&lt;br /&gt;
***Set Control&amp;gt;Hotel Option&amp;gt;Hotel Mode to ON, then power off and power on.&lt;br /&gt;
**Enter OnScreen Menu: Go to Picture&amp;gt;Picture Options&amp;gt;Size and change to Screen Fit.  (this will fix overscan issues)&lt;br /&gt;
&lt;br /&gt;
=Creating a Template=&lt;br /&gt;
*Create a device template using RS232 communications. &lt;br /&gt;
** Set the Comm Port Baud to 9600&lt;br /&gt;
** Set the Comm Port on PC to correct one&lt;br /&gt;
** Set the Comm Port Parity/Bit/Stop to N81&lt;br /&gt;
** Select the Uses Group/Codeset to 2005 Samsung Plasma&lt;br /&gt;
&lt;br /&gt;
This should get you going.  I&#039;ve only utilized Power On and Power Off.&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33698</id>
		<title>Samsung PN-51E 5-Series</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33698"/>
		<updated>2013-01-15T00:37:13Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Video]]&lt;br /&gt;
[[Category: Displays]]&lt;br /&gt;
{{Versioninfo|1004Status=works|1004UpdatedDate=14th Jan 2013|1004UpdatedBy=[[User:ardirtbiker|ardirtbiker]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;left&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Basics=&lt;br /&gt;
*General info&lt;br /&gt;
**51 inch&lt;br /&gt;
**Plasma&lt;br /&gt;
**1080p capable with lmce&lt;br /&gt;
&lt;br /&gt;
=Equipment Needed=&lt;br /&gt;
*RS232 interface using &#039;DB9 to 3.5mm Stereo&#039; cable [http://www.cableclub.com/ipod-computer-data-cable-p-1344.html]&lt;br /&gt;
&lt;br /&gt;
=Display Setup=&lt;br /&gt;
*Configure the following:&lt;br /&gt;
**Enter Maintenance Menu:  Press &#039;mute 1 8 2 power&#039; buttons quickly&lt;br /&gt;
***Set Control&amp;gt;Hotel Option&amp;gt;Hotel Mode to ON, then power off and power on.&lt;br /&gt;
**Enter OnScreen Menu: Go to Picture&amp;gt;Picture Options&amp;gt;Size and change to Screen Fit.  (this will fix overscan issues)&lt;br /&gt;
&lt;br /&gt;
=Creating a Template=&lt;br /&gt;
*Create a device template using RS232 communications. &lt;br /&gt;
** Set the Comm Port Baud to 9600&lt;br /&gt;
** Set the Comm Port on PC to correct one&lt;br /&gt;
** Set the Comm Port Parity/Bit/Stop to N81&lt;br /&gt;
** Select the Uses Group/Codeset to 2005 Samsung Plasma&lt;br /&gt;
&lt;br /&gt;
This should get you going.  I&#039;ve only utilized Power On and Power Off.&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33697</id>
		<title>Samsung PN-51E 5-Series</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33697"/>
		<updated>2013-01-15T00:35:34Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Video]]&lt;br /&gt;
[[Category: Displays]]&lt;br /&gt;
{{Versioninfo|1004Status=works|1004UpdatedDate=14th Jan 2013|1004UpdatedBy=[[User:ardirtbiker|ardirtbiker]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;left&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Basics=&lt;br /&gt;
*General info&lt;br /&gt;
**51 inch&lt;br /&gt;
**Plasma&lt;br /&gt;
**1080p capable with lmce&lt;br /&gt;
&lt;br /&gt;
=Equipment Needed=&lt;br /&gt;
**RS232 interface using &#039;DB9 to 3.5mm Stereo&#039; cable [http://www.cableclub.com/ipod-computer-data-cable-p-1344.html]&lt;br /&gt;
&lt;br /&gt;
=Display Setup=&lt;br /&gt;
Configure the following:&lt;br /&gt;
**Enter Maintenance Menu:  Press &#039;mute 1 8 2 power&#039; buttons quickly&lt;br /&gt;
***Set Control&amp;gt;Hotel Option&amp;gt;Hotel Mode to ON, then power off and power on.&lt;br /&gt;
**Enter OnScreen Menu: Go to Picture&amp;gt;Picture Options&amp;gt;Size and change to Screen Fit.  (this will fix overscan issues)&lt;br /&gt;
&lt;br /&gt;
=Creating a Template=&lt;br /&gt;
Create a device template using RS232 communications. &lt;br /&gt;
** Set the Comm Port Baud to 9600&lt;br /&gt;
** Set the Comm Port on PC to correct one&lt;br /&gt;
** Set the Comm Port Parity/Bit/Stop to N81&lt;br /&gt;
** Select the Uses Group/Codeset to 2005 Samsung Plasma&lt;br /&gt;
&lt;br /&gt;
This should get you going.  I&#039;ve only utilized Power On and Power Off.&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33696</id>
		<title>Samsung PN-51E 5-Series</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33696"/>
		<updated>2013-01-15T00:33:54Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Video]]&lt;br /&gt;
[[Category: Displays]]&lt;br /&gt;
{{Versioninfo|1004Status=works|1004UpdatedDate=14th Jan 2013|1004UpdatedBy=[[User:ardirtbiker|ardirtbiker]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;left&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Basics=&lt;br /&gt;
*General info&lt;br /&gt;
**51 inch&lt;br /&gt;
**Plasma&lt;br /&gt;
**1080p capable with lmce&lt;br /&gt;
&lt;br /&gt;
=Equipment Needed=&lt;br /&gt;
**RS232 interface using &#039;DB9 to 3.5mm Stereo&#039; cable [http://www.cableclub.com/ipod-computer-data-cable-p-1344.html]&lt;br /&gt;
&lt;br /&gt;
=Display Setup=&lt;br /&gt;
**Enter Maintenance Menu:  Press &#039;mute 1 8 2 power&#039; buttons quickly&lt;br /&gt;
***Set Control&amp;gt;Hotel Option&amp;gt;Hotel Mode to ON, then power off and power on.&lt;br /&gt;
**Enter OnScreen Menu: Go to Picture&amp;gt;Picture Options&amp;gt;Size and change to Screen Fit.  (this will fix overscan issues)&lt;br /&gt;
&lt;br /&gt;
=Creating a Template=&lt;br /&gt;
**Create a device template using RS232 communications. &lt;br /&gt;
*** Set the Comm Port Baud to 9600&lt;br /&gt;
*** Set the Comm Port on PC to correct one&lt;br /&gt;
*** Set the Comm Port Parity/Bit/Stop to N81&lt;br /&gt;
*** Select the Uses Group/Codeset to 2005 Samsung Plasma&lt;br /&gt;
&lt;br /&gt;
This should get you going.  I&#039;ve only utilized Power On and Power Off.&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33695</id>
		<title>Samsung PN-51E 5-Series</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33695"/>
		<updated>2013-01-15T00:33:32Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Video]]&lt;br /&gt;
[[Category: Displays]]&lt;br /&gt;
{{Versioninfo|1004Status=works|1004UpdatedDate=14th Jan 2013|1004UpdatedBy=[[User:ardirtbiker|ardirtbiker]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;left&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Basics=&lt;br /&gt;
*General info&lt;br /&gt;
**51 inch&lt;br /&gt;
**Plasma&lt;br /&gt;
**1080p capable with lmce&lt;br /&gt;
&lt;br /&gt;
=Equipment Needed=&lt;br /&gt;
**RS232 interface using &#039;DB9 to 3.5mm Stereo&#039; cable [http://www.cableclub.com/ipod-computer-data-cable-p-1344.html]&lt;br /&gt;
&lt;br /&gt;
=Display Setup=&lt;br /&gt;
**Enter Maintenance Menu:  Press &#039;mute 1 8 2 power&#039; buttons quickly&lt;br /&gt;
***Set Control&amp;gt;Hotel Option&amp;gt;Hotel Mode to ON, then power off and power on.&lt;br /&gt;
**Enter OnScreen Menu: Go to Picture&amp;gt;Picture Options&amp;gt;Size and change to Screen Fit.  (this will fix overscan issues)&lt;br /&gt;
&lt;br /&gt;
=Creating a Template=&lt;br /&gt;
**Create a device template using RS232 communications. &lt;br /&gt;
*** Set the Comm Port Baud to 9600&lt;br /&gt;
*** Set the Comm Port on PC to correct one&lt;br /&gt;
*** Set the Comm Port Parity/Bit/Stop to N81&lt;br /&gt;
*** Select the Uses Group/Codeset to 2005 Samsung Plasma&lt;br /&gt;
&lt;br /&gt;
This should get you going.  I&#039;ve only utilized Power On and Power Off.&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33694</id>
		<title>Samsung PN-51E 5-Series</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33694"/>
		<updated>2013-01-15T00:32:48Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Video]]&lt;br /&gt;
[[Category: Displays]]&lt;br /&gt;
{{Versioninfo|1004Status=works|1004UpdatedDate=14th Jan 2013|1004UpdatedBy=[[User:ardirtbiker|ardirtbiker]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;left&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Basics=&lt;br /&gt;
*General info&lt;br /&gt;
**51 inch&lt;br /&gt;
**Plasma&lt;br /&gt;
**1080p capable with lmce&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Equipment Needed=&lt;br /&gt;
**RS232 interface using &#039;DB9 to 3.5mm Stereo&#039; cable [http://www.cableclub.com/ipod-computer-data-cable-p-1344.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Display Setup=&lt;br /&gt;
**Enter Maintenance Menu:  Press &#039;mute 1 8 2 power&#039; buttons quickly&lt;br /&gt;
***Set Control&amp;gt;Hotel Option&amp;gt;Hotel Mode to ON, then power off and power on.&lt;br /&gt;
**Enter OnScreen Menu: Go to Picture&amp;gt;Picture Options&amp;gt;Size and change to Screen Fit.  (this will fix overscan issues)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Creating a Template=&lt;br /&gt;
**Create a device template using RS232 communications. &lt;br /&gt;
*** Set the Comm Port Baud to 9600&lt;br /&gt;
*** Set the Comm Port on PC to correct one&lt;br /&gt;
*** Set the Comm Port Parity/Bit/Stop to N81&lt;br /&gt;
*** Select the Uses Group/Codeset to 2005 Samsung Plasma&lt;br /&gt;
&lt;br /&gt;
This should get you going.  I&#039;ve only utilized Power On and Power Off.&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33693</id>
		<title>Samsung PN-51E 5-Series</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33693"/>
		<updated>2013-01-15T00:32:21Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Video]]&lt;br /&gt;
[[Category: Displays]]&lt;br /&gt;
{{Versioninfo|1004Status=works|1004UpdatedDate=14th Jan 2013|1004UpdatedBy=[[User:ardirtbiker|ardirtbiker]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;left&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Basics=&lt;br /&gt;
*General info&lt;br /&gt;
**51 inch&lt;br /&gt;
**Plasma&lt;br /&gt;
**1080p capable with lmce&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Equipment Needed=&lt;br /&gt;
**RS232 interface using &#039;DB9 to 3.5mm Stereo&#039; cable [http://www.cableclub.com/ipod-computer-data-cable-p-1344.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Display Setup=&lt;br /&gt;
**Enter Maintenance Menu:  Press &#039;mute 1 8 2 power&#039; buttons quickly&lt;br /&gt;
***Set Control&amp;gt;Hotel Option&amp;gt;Hotel Mode to ON, then power off and power on.&lt;br /&gt;
**Enter OnScreen Menu: Go to Picture&amp;gt;Picture Options&amp;gt;Size and change to Screen Fit.  (this will fix overscan issues)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Creating a Template=&lt;br /&gt;
**Create a device template using RS232 communications. &lt;br /&gt;
*** Set the Comm Port Baud to 9600&lt;br /&gt;
*** Set the Comm Port on PC to correct one&lt;br /&gt;
*** Set the Comm Port Parity/Bit/Stop to N81&lt;br /&gt;
*** Select the Uses Group/Codeset to 2005 Samsung Plasma&lt;br /&gt;
&lt;br /&gt;
This should get you going.  I&#039;ve only utilized Power On and Power Off.&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33692</id>
		<title>Samsung PN-51E 5-Series</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Samsung_PN-51E_5-Series&amp;diff=33692"/>
		<updated>2013-01-15T00:19:39Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: Created page with &amp;quot;Category: Hardware Category: Video Category: Displays {{Versioninfo|1004Status=works|1004UpdatedDate=14th Jan 2013|1004UpdatedBy=ardirtbiker}}   ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Video]]&lt;br /&gt;
[[Category: Displays]]&lt;br /&gt;
{{Versioninfo|1004Status=works|1004UpdatedDate=14th Jan 2013|1004UpdatedBy=[[User:ardirtbiker|ardirtbiker]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;left&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
=Basics=&lt;br /&gt;
*General info&lt;br /&gt;
**51 inch&lt;br /&gt;
**Plasma&lt;br /&gt;
**1080p capable with lmce&lt;br /&gt;
&lt;br /&gt;
=Equipment Needed=&lt;br /&gt;
**RS232 interface using &#039;DB9 to 3.5mm Stereo&#039; cable [http://www.cableclub.com/ipod-computer-data-cable-p-1344.html]&lt;br /&gt;
&lt;br /&gt;
=Display Setup=&lt;br /&gt;
**Enter Maintenance Menu:  Press &#039;mute 1 8 2 power&#039; buttons quickly&lt;br /&gt;
***Set Control&amp;gt;Hotel Option&amp;gt;Hotel Mode to ON, then power off and power on.&lt;br /&gt;
**Enter OnScreen Menu: Go to Picture&amp;gt;Picture Options&amp;gt;Size and change to Screen Fit.  (this will fix overscan issues)&lt;br /&gt;
&lt;br /&gt;
=Creating a Template=&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26877</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26877"/>
		<updated>2011-02-04T00:38:31Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=24 Jan 2011|810UpdatedBy=Dennis G}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control &lt;br /&gt;
&lt;br /&gt;
                                                         [[Image:Sovereign.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080 and maybe other models.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
* OTARadio (AM/FM) not working yet&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn_.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 255 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26813</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26813"/>
		<updated>2011-01-25T03:16:07Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=24 Jan 2011|810UpdatedBy=Dennis G}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control &lt;br /&gt;
&lt;br /&gt;
                                                         [[Image:Sovereign.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080 and maybe other models.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
* OTARadio (AM/FM) not working yet&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn_.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26812</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26812"/>
		<updated>2011-01-25T03:14:19Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control &lt;br /&gt;
&lt;br /&gt;
                                                         [[Image:Sovereign.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080 and maybe other models.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
* OTARadio (AM/FM) not working yet&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn_.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=File:Sovereign.jpg&amp;diff=26811</id>
		<title>File:Sovereign.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=File:Sovereign.jpg&amp;diff=26811"/>
		<updated>2011-01-25T03:12:48Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: Image of Kenwood Sovereign Receiver&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image of Kenwood Sovereign Receiver&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26810</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26810"/>
		<updated>2011-01-25T03:12:10Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control &lt;br /&gt;
&lt;br /&gt;
[[Image:Sovereign.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
* OTARadio (AM/FM) not working yet&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn_.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26809</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26809"/>
		<updated>2011-01-25T03:11:24Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control &lt;br /&gt;
&lt;br /&gt;
[[Image:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
* OTARadio (AM/FM) not working yet&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn_.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26808</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26808"/>
		<updated>2011-01-25T03:10:26Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
* OTARadio (AM/FM) not working yet&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn_.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Ardirtbiker|Dennis]] 04:10, 25 January 2011 (CET)Dennis G.&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26807</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26807"/>
		<updated>2011-01-25T02:03:20Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
* OTARadio (AM/FM) not working yet&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn_.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26806</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26806"/>
		<updated>2011-01-25T00:36:24Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
* OTARadio (AM/FM) not working yet&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User_Ardirtbiker&amp;diff=26805</id>
		<title>User Ardirtbiker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User_Ardirtbiker&amp;diff=26805"/>
		<updated>2011-01-24T02:13:06Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26804</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26804"/>
		<updated>2011-01-24T02:12:18Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26803</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26803"/>
		<updated>2011-01-24T02:10:25Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
Use a null-modem cable DB9 Female at each end.&lt;br /&gt;
Com settings: 9600,N81&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26802</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26802"/>
		<updated>2011-01-24T02:07:35Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#163 Phono&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#873 Tuner - Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#162 CD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#160 Tape / Tape1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#420 CDR&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#155 Video1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#156 Video2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#157 Video3&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#158 Video4&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#165 DVD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#316 AV 1&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#311 Stereo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1006 PRO LOGIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#292 Dolby Digital&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Modes LSTN03 and LSTN04 are unknown still&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Arena&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#312 Stadium&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#149 Jazz Club&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1087 Cathedral&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090  Theater&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1088 Concert Hall&#039;&#039;  (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1089 Stadium2&#039;&#039;    (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1090 Theater2&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1000 PRO LOGIC2 MOVIE&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1002 PRO LOGIC2 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1007 Neo6 CINEMA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1008 Neo6 MUSIC&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1092 Multi-Channel Music&#039;&#039;   (new definition)&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26801</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26801"/>
		<updated>2011-01-24T01:49:13Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
    $logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
    $logFile.flush()&lt;br /&gt;
    print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26800</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26800"/>
		<updated>2011-01-24T01:47:22Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26799</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26799"/>
		<updated>2011-01-24T01:46:55Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26798</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26798"/>
		<updated>2011-01-24T01:46:19Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26797</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26797"/>
		<updated>2011-01-24T01:45:29Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26796</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26796"/>
		<updated>2011-01-24T01:44:05Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26795</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26795"/>
		<updated>2011-01-24T01:41:29Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
DisableDevice( device_.devid_, true )&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26794</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26794"/>
		<updated>2011-01-24T01:40:27Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
#DisableDevice( device_.devid_, true )&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#193 Off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26793</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26793"/>
		<updated>2011-01-24T01:39:01Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTERNAL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#350 Process Initialize&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
#DisableDevice( device_.devid_, true )&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
#350 Process Incoming Data&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
#373 Private Method Listing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;POWER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#192 On&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
#193 Off&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUND &amp;amp; VOLUME&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#89 Vol Up&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#90 Vol Down&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#97 Mute&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INPUTS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DSP MODES&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECEIVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1094 Analog&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1095 DGTL Manual&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1096 Full Auto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;#1098 6-ch Input&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26792</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26792"/>
		<updated>2011-01-24T00:23:46Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) &lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)&lt;br /&gt;
** Surround Mode (THX/THX EX)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26791</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26791"/>
		<updated>2011-01-24T00:23:22Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, VR 5090 and VR 5080.  There may be others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational Status ==&lt;br /&gt;
&lt;br /&gt;
* On/Off works&lt;br /&gt;
* Volume &amp;amp; Mute work&lt;br /&gt;
* Defined but not tested:&lt;br /&gt;
** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) commands are defined&lt;br /&gt;
** Input Select (CDR/AV1/DVD/TUNER ...)commands are defined&lt;br /&gt;
** Surround Mode (THX/THX EX) commands are defined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26790</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26790"/>
		<updated>2011-01-24T00:04:53Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign Receivers with RS232 Control ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;THIS CODE IS STILL BEING DEVELOPED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Models are VR 5900, VR 5700, and VR 5080.  There may be others.&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26789</id>
		<title>Receivers rs-232</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26789"/>
		<updated>2011-01-24T00:03:55Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Serial]]&lt;br /&gt;
[[Category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
= Receivers rs-232 support =&lt;br /&gt;
Here is a list of receivers that do or do not have rs-232 (serial port) support&lt;br /&gt;
&lt;br /&gt;
== Denon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=296 AVR-2307]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| Plug and Play.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=338 AVR-2308]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=237 AVR-2807]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/popup/index.php?Pid=351 AVR-2808]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR-3807&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Denon_AVR-4306|AVR-4306]]&lt;br /&gt;
| no (ethernet)&lt;br /&gt;
| yes (ethernet)&lt;br /&gt;
| Seemed to work fine at LinuxTag 2008, although no extensive testing was done.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Harman Kardon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| AVR 247&lt;br /&gt;
| yes&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR 347&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[Kenwood Sovereign Receivers]] ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VR 5900&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5080&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Marantz ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| SR5001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5002&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3662&amp;amp;series=comp&amp;amp;type=avr SR6001 ]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5600&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| in development(several problems exist)&lt;br /&gt;
|-&lt;br /&gt;
| SR7001&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3702&amp;amp;series=comp&amp;amp;type=avr  SR7002]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ZR6001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meridian ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.meridian-audio.com/p_g68.htm G68-ADV]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NAD ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| T-765&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-773&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-763&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Onkyo ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR705&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR805/875&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| [[Onkyo_TXSR805]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pioneer ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX50&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX51&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX60&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX70&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3000ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3200ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Yamaha ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes, using RX-V1XXX template (multizone not tested)&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1800&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| RX-V2700&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26788</id>
		<title>Receivers rs-232</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26788"/>
		<updated>2011-01-24T00:02:21Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Serial]]&lt;br /&gt;
[[Category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
= Receivers rs-232 support =&lt;br /&gt;
Here is a list of receivers that do or do not have rs-232 (serial port) support&lt;br /&gt;
&lt;br /&gt;
== Denon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=296 AVR-2307]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| Plug and Play.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=338 AVR-2308]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=237 AVR-2807]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/popup/index.php?Pid=351 AVR-2808]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR-3807&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Denon_AVR-4306|AVR-4306]]&lt;br /&gt;
| no (ethernet)&lt;br /&gt;
| yes (ethernet)&lt;br /&gt;
| Seemed to work fine at LinuxTag 2008, although no extensive testing was done.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Harman Kardon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| AVR 247&lt;br /&gt;
| yes&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR 347&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kenwood Sovereign Receivers ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VR 5900&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5080&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Marantz ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| SR5001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5002&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3662&amp;amp;series=comp&amp;amp;type=avr SR6001 ]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5600&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| in development(several problems exist)&lt;br /&gt;
|-&lt;br /&gt;
| SR7001&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3702&amp;amp;series=comp&amp;amp;type=avr  SR7002]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ZR6001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meridian ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.meridian-audio.com/p_g68.htm G68-ADV]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NAD ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| T-765&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-773&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-763&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Onkyo ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR705&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR805/875&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| [[Onkyo_TXSR805]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pioneer ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX50&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX51&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX60&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX70&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3000ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3200ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Yamaha ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes, using RX-V1XXX template (multizone not tested)&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1800&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| RX-V2700&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User:Ardirtbiker&amp;diff=26787</id>
		<title>User:Ardirtbiker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User:Ardirtbiker&amp;diff=26787"/>
		<updated>2011-01-23T23:59:33Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26786</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26786"/>
		<updated>2011-01-23T23:59:12Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26785</id>
		<title>Kenwood Sovereign Receivers</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Kenwood_Sovereign_Receivers&amp;diff=26785"/>
		<updated>2011-01-23T23:58:10Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: Kenwood Sovereign Receivers moved to User Ardirtbiker&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User Ardirtbiker]]&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User_Ardirtbiker&amp;diff=26784</id>
		<title>User Ardirtbiker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User_Ardirtbiker&amp;diff=26784"/>
		<updated>2011-01-23T23:58:09Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: Kenwood Sovereign Receivers moved to User Ardirtbiker&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign with RS232 Control ==&lt;br /&gt;
&#039;&#039;&#039;UNDER DEVELOPMENT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Current features supported:&lt;br /&gt;
*On/Off&lt;br /&gt;
*Mute&lt;br /&gt;
*Volume control (Up/Down)&lt;br /&gt;
&lt;br /&gt;
Defined but not tested:&lt;br /&gt;
*Input selection&lt;br /&gt;
*DSP Modes&lt;br /&gt;
*THX contols&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, Logging events is not up to par either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Internal&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#373 Private Method Listing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
    # for now.. populate an array manually&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#350 Process Incoming Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#355 Process Initialize&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
#DisableDevice( device_.devid_, true )&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Power&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#193 Off&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#192 On&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Sound &amp;amp; Volume&#039;&#039; &#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#97 Mute&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#90 Volume Down&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#89 Vol Up&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Input Selection&#039;&#039; &#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#163 Phono&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#873 Tuner - Digital&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#162 CD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#160 Tape/Tape 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#420 CDR&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#155 Video 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#156 Video 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#157 Video 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#158 Video 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#165 DVD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#316 AV 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;DSP Modes (Audio)&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#311 Stereo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1006 Pro Logic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#292 Dolby Digital&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1086 Arena&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#312 Stadium&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;##149 Jazz Club&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1087 Cathedral&#039;&#039;&#039;       NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1090 Theater&#039;&#039;&#039;       NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1088 Concert Hall&#039;&#039;&#039;      NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1089 Stadium2&#039;&#039;&#039;      NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1091 Theater2&#039;&#039;&#039;      NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1000 Pro Logic2 Movie&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1002 Pro Logic2 Music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1007 NEO6 Cinema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1008 NEO6 Music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1092 Multi-Channel Music&#039;&#039;&#039;      NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Receiver&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1096 Full Auto&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1095 DGTL Manual&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1094 Analog&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1098 6-Ch Input&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26783</id>
		<title>Receivers rs-232</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26783"/>
		<updated>2011-01-23T23:56:14Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Serial]]&lt;br /&gt;
[[Category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
= Receivers rs-232 support =&lt;br /&gt;
Here is a list of receivers that do or do not have rs-232 (serial port) support&lt;br /&gt;
&lt;br /&gt;
== Denon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=296 AVR-2307]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| Plug and Play.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=338 AVR-2308]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=237 AVR-2807]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/popup/index.php?Pid=351 AVR-2808]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR-3807&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Denon_AVR-4306|AVR-4306]]&lt;br /&gt;
| no (ethernet)&lt;br /&gt;
| yes (ethernet)&lt;br /&gt;
| Seemed to work fine at LinuxTag 2008, although no extensive testing was done.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Harman Kardon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| AVR 247&lt;br /&gt;
| yes&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR 347&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[Kenwood Sovereign Receivers]] ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VR 5900&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5080&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Marantz ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| SR5001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5002&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3662&amp;amp;series=comp&amp;amp;type=avr SR6001 ]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5600&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| in development(several problems exist)&lt;br /&gt;
|-&lt;br /&gt;
| SR7001&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3702&amp;amp;series=comp&amp;amp;type=avr  SR7002]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ZR6001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meridian ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.meridian-audio.com/p_g68.htm G68-ADV]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NAD ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| T-765&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-773&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-763&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Onkyo ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR705&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR805/875&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| [[Onkyo_TXSR805]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pioneer ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX50&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX51&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX60&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX70&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3000ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3200ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Yamaha ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes, using RX-V1XXX template (multizone not tested)&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1800&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| RX-V2700&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26782</id>
		<title>Receivers rs-232</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26782"/>
		<updated>2011-01-23T23:54:23Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Serial]]&lt;br /&gt;
[[Category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
= Receivers rs-232 support =&lt;br /&gt;
Here is a list of receivers that do or do not have rs-232 (serial port) support&lt;br /&gt;
&lt;br /&gt;
== Denon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=296 AVR-2307]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| Plug and Play.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=338 AVR-2308]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=237 AVR-2807]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/popup/index.php?Pid=351 AVR-2808]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR-3807&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Denon_AVR-4306|AVR-4306]]&lt;br /&gt;
| no (ethernet)&lt;br /&gt;
| yes (ethernet)&lt;br /&gt;
| Seemed to work fine at LinuxTag 2008, although no extensive testing was done.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Harman Kardon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| AVR 247&lt;br /&gt;
| yes&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR 347&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kenwood &#039;Sovereign&#039; ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
|[[VR 5900]] VR 5900[http://wiki.linuxmce.org/index.php/Kenwood_Sovereign_Receivers]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5080&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Marantz ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| SR5001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5002&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3662&amp;amp;series=comp&amp;amp;type=avr SR6001 ]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5600&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| in development(several problems exist)&lt;br /&gt;
|-&lt;br /&gt;
| SR7001&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3702&amp;amp;series=comp&amp;amp;type=avr  SR7002]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ZR6001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meridian ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.meridian-audio.com/p_g68.htm G68-ADV]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NAD ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| T-765&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-773&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-763&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Onkyo ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR705&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR805/875&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| [[Onkyo_TXSR805]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pioneer ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX50&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX51&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX60&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX70&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3000ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3200ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Yamaha ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes, using RX-V1XXX template (multizone not tested)&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1800&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| RX-V2700&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26781</id>
		<title>Receivers rs-232</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Receivers_rs-232&amp;diff=26781"/>
		<updated>2011-01-23T23:52:53Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Serial]]&lt;br /&gt;
[[Category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
= Receivers rs-232 support =&lt;br /&gt;
Here is a list of receivers that do or do not have rs-232 (serial port) support&lt;br /&gt;
&lt;br /&gt;
== Denon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=296 AVR-2307]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| Plug and Play.&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=338 AVR-2308]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/frames_main.php?main=prod&amp;amp;ver=1&amp;amp;MID=3&amp;amp;sub=1&amp;amp;action=detail&amp;amp;Pid=237 AVR-2807]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.denon.co.uk/site/popup/index.php?Pid=351 AVR-2808]&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR-3807&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Denon_AVR-4306|AVR-4306]]&lt;br /&gt;
| no (ethernet)&lt;br /&gt;
| yes (ethernet)&lt;br /&gt;
| Seemed to work fine at LinuxTag 2008, although no extensive testing was done.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Harman Kardon ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| AVR 247&lt;br /&gt;
| yes&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| AVR 347&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kenwood &#039;Sovereign&#039; ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VR 5900[http://wiki.linuxmce.org/index.php/Kenwood_Sovereign_Receivers]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|-&lt;br /&gt;
| VR 5080&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|working:  On/Off, Mute and Volume. Input Selection, DSP Modes, and a few others are defined, but not tested to see if they work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Marantz ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| SR5001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5002&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3662&amp;amp;series=comp&amp;amp;type=avr SR6001 ]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| SR5600&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| in development(several problems exist)&lt;br /&gt;
|-&lt;br /&gt;
| SR7001&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.marantz.com/new/index.cfm?fuseaction=Products.Product&amp;amp;cont=eu&amp;amp;bus=hf&amp;amp;prod_id=3702&amp;amp;series=comp&amp;amp;type=avr  SR7002]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ZR6001&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meridian ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.meridian-audio.com/p_g68.htm G68-ADV]&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== NAD ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| T-765&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-773&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| T-763&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Onkyo ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR705&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TX-SR805/875&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| [[Onkyo_TXSR805]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pioneer ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX50&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
| no&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX51&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX60&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| VSX-LX70&lt;br /&gt;
| yes&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sony ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3000ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| STR-DA3200ES&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Yamaha ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! model&lt;br /&gt;
! rs-232 port&lt;br /&gt;
! rs-232 controllable&lt;br /&gt;
! lmce support&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1700&lt;br /&gt;
| yes&lt;br /&gt;
| yes&lt;br /&gt;
| yes, using RX-V1XXX template (multizone not tested)&lt;br /&gt;
|-&lt;br /&gt;
| RX-V1800&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| RX-V2700&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User_Ardirtbiker&amp;diff=26780</id>
		<title>User Ardirtbiker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User_Ardirtbiker&amp;diff=26780"/>
		<updated>2011-01-23T22:56:22Z</updated>

		<summary type="html">&lt;p&gt;Ardirtbiker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[category: Tutorials]]&lt;br /&gt;
== Using the Kenwood Sovereign with RS232 Control ==&lt;br /&gt;
&#039;&#039;&#039;UNDER DEVELOPMENT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Current features supported:&lt;br /&gt;
*On/Off&lt;br /&gt;
*Mute&lt;br /&gt;
*Volume control (Up/Down)&lt;br /&gt;
&lt;br /&gt;
Defined but not tested:&lt;br /&gt;
*Input selection&lt;br /&gt;
*DSP Modes&lt;br /&gt;
*THX contols&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, Logging events is not up to par either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby Codes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Internal&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#373 Private Method Listing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
def SendIrCommand(command)&lt;br /&gt;
    for i in 0...1&lt;br /&gt;
        conn_.Send(&amp;quot;\x01&amp;quot; + command + &amp;quot;\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
        reply = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
        if( !reply.nil? &amp;amp;&amp;amp; reply.length()&amp;gt;4 )&lt;br /&gt;
            log(&amp;quot;Received good reply: &amp;quot; + reply + &amp;quot;\n&amp;quot;)&lt;br /&gt;
            return reply&lt;br /&gt;
        else&lt;br /&gt;
            buf = conn_.Recv(1000,1000);&lt;br /&gt;
            log(&amp;quot;Flushed buffer: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;quot;Invalid&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def log(word)&lt;br /&gt;
	$logFile.print( word + &amp;quot;\n&amp;quot; )&lt;br /&gt;
	$logFile.flush()&lt;br /&gt;
	print(word + &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def GetRadioStations()&lt;br /&gt;
    # would like to implement reading from a table in pluto_media that&lt;br /&gt;
    # is populated from a screen in web admin... that queries a website for&lt;br /&gt;
    # local radio stations based on latitude &amp;amp; longitude or zip code.&lt;br /&gt;
&lt;br /&gt;
    # for now.. populate an array manually&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#350 Process Incoming Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
buf = conn_.Recv(1000,1000)&lt;br /&gt;
log(&amp;quot;Received &#039;&amp;quot; + buf + &amp;quot;&#039; data from Receiver&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#355 Process Initialize&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
$logFile = File.new(&amp;quot;/var/log/pluto/VR5x00.log&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
for iRetry in 0...4&lt;br /&gt;
    print &amp;quot;Initializing unit\n&amp;quot;&lt;br /&gt;
    conn_.Send(&amp;quot;\x01PWR?\x02\x0D\x0D\x0A&amp;quot;)&lt;br /&gt;
    buf = conn_.RecvDelimited(&amp;quot;\x04&amp;quot;, 2000)&lt;br /&gt;
    if( !buf.nil? &amp;amp;&amp;amp; !buf.index(&amp;quot;PWR&amp;quot;).nil? )&lt;br /&gt;
        log(&amp;quot;Data from Receiver: &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        # see if any more data from receiver&lt;br /&gt;
        buf = conn.Recv(1000,1000)&lt;br /&gt;
        log(&amp;quot;is this data trash? &amp;quot; + buf + &amp;quot;\n&amp;quot;)&lt;br /&gt;
        log(&amp;quot;Initialized ok\n&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
    log(&amp;quot;Failed to initialize.  Wait 1 secs and try again\n&amp;quot;)&lt;br /&gt;
    sleep(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
#DisableDevice( device_.devid_, true )&lt;br /&gt;
log(&amp;quot;The device wouldn&#039;t respond. Disabling it.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Power&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#193 Off&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#192 On&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;PWR1&amp;quot;)&lt;br /&gt;
sleep(2)&lt;br /&gt;
SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
@mute=false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Sound &amp;amp; Volume&#039;&#039; &#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#97 Mute&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
mute_state = SendIrCommand(&amp;quot;MUTE?&amp;quot;)[-6,5]&lt;br /&gt;
case mute_state&lt;br /&gt;
    when &amp;quot;MUTE0&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE1&amp;quot;)&lt;br /&gt;
    when &amp;quot;MUTE1&amp;quot;&lt;br /&gt;
        SendIrCommand(&amp;quot;MUTE0&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#90 Volume Down&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;gt; 0 &lt;br /&gt;
    volume_level -= 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume decreased to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Minimum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#89 Vol Up&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
volume_level = (SendIrCommand(&amp;quot;VOL?&amp;quot;)[-3,2]).hex&lt;br /&gt;
if volume_level &amp;lt; 100 &lt;br /&gt;
    volume_level += 1&lt;br /&gt;
    newvol = (&amp;quot;VOL&amp;quot; + &amp;quot;%02x&amp;quot; % volume_level.to_s).upcase&lt;br /&gt;
    SendIrCommand(newvol)&lt;br /&gt;
    log(&amp;quot;Volume increase to : &amp;quot; + newvol)&lt;br /&gt;
else&lt;br /&gt;
    log(&amp;quot;Volume at Maximum&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Input Selection&#039;&#039; &#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#163 Phono&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#873 Tuner - Digital&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#162 CD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#160 Tape/Tape 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL03&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#420 CDR&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL04&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#155 Video 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#156 Video 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#157 Video 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#158 Video 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#165 DVD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#316 AV 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;SEL0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;DSP Modes (Audio)&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#311 Stereo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN00&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1006 Pro Logic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN01&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#292 Dolby Digital&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN02&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1086 Arena&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN05&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#312 Stadium&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN06&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;##149 Jazz Club&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN07&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1087 Cathedral&#039;&#039;&#039;       NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN08&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1090 Theater&#039;&#039;&#039;       NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN09&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1088 Concert Hall&#039;&#039;&#039;      NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0A&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1089 Stadium2&#039;&#039;&#039;      NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0B&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1091 Theater2&#039;&#039;&#039;      NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0C&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1000 Pro Logic2 Movie&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0D&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1002 Pro Logic2 Music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0E&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1007 NEO6 Cinema&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN0F&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1008 NEO6 Music&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1092 Multi-Channel Music&#039;&#039;&#039;      NOTE:   this was defined by myself&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;LSTN11&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;Receiver&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* These are Input Modes the receivers support for digital or analog input jacks&lt;br /&gt;
* These were also defined by myself&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1096 Full Auto&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM0&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1095 DGTL Manual&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1094 Analog&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;#1098 6-Ch Input&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SendIrCommand(&amp;quot;INPUTM3&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ardirtbiker</name></author>
	</entry>
</feed>