Kenwood Sovereign Receivers

From LinuxMCE
Revision as of 03:07, 24 January 2011 by Ardirtbiker (Talk | contribs)

Jump to: navigation, search
Version Status Date Updated Updated By
710 Unknown N/A N/A
810 Unknown N/A N/A
1004 Unknown N/A N/A
1204 Unknown N/A N/A
1404 Unknown N/A N/A
Usage Information
This article is a stub and requires expansion

Using the Kenwood Sovereign Receivers with RS232 Control

THIS CODE IS STILL BEING DEVELOPED

Models are VR 5900, VR 5700, VR 5090 and VR 5080. There may be others.




Operational Status

  • On/Off works
  • Volume & Mute work
  • Defined but not tested:
    • Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...)
    • Input Select (CDR/AV1/DVD/TUNER ...)
    • Surround Mode (THX/THX EX)



Ruby Codes

INTERNAL

#350 Process Initialize

$logFile = File.new("/var/log/pluto/VR5x00.log", "w")

for iRetry in 0...4

   print "Initializing unit\n"
   conn_.Send("\x01PWR?\x02\x0D\x0D\x0A")
   buf = conn_.RecvDelimited("\x04", 2000)
   if( !buf.nil? && !buf.index("PWR").nil? )
       log("Data from Receiver: " + buf + "\n")
       # see if any more data from receiver
       buf = conn.Recv(1000,1000)
       log("is this data trash? " + buf + "\n")
       log("Initialized ok\n")
       return
   end
   log("Failed to initialize.  Wait 1 secs and try again\n")
   sleep(1)

end

DisableDevice( device_.devid_, true )

log("The device wouldn't respond. Disabling it.\n")


#350 Process Incoming Data

buf = conn_.Recv(1000,1000)

log("Received '" + buf + "' data from Receiver")


#373 Private Method Listing

def SendIrCommand(command)

   for i in 0...1
       conn_.Send("\x01" + command + "\x02\x0D\x0D\x0A")
       reply = conn_.RecvDelimited("\x04", 2000)
       if( !reply.nil? && reply.length()>4 )
           log("Received good reply: " + reply + "\n")
           return reply
       else
           buf = conn_.Recv(1000,1000);
           log("Flushed buffer: " + buf + "\n")
       end
   end
   return "Invalid"

end

def log(word)

   $logFile.print( word + "\n" )
   $logFile.flush()
   print(word + "\n")

end

def GetRadioStations()

   # would like to implement reading from a table in pluto_media that
   # is populated from a screen in web admin... that queries a website for
   # local radio stations based on latitude & longitude or zip code.

end


POWER

#192 On

SendIrCommand("PWR1") sleep(2) SendIrCommand("MUTE0") @mute=false


#193 Off

SendIrCommand("PWR0")


SOUND & VOLUME

#89 Vol Up

volume_level = (SendIrCommand("VOL?")[-3,2]).hex

if volume_level < 100

   volume_level += 1
   newvol = ("VOL" + "%02x" % volume_level.to_s).upcase
   SendIrCommand(newvol)
   log("Volume increase to : " + newvol)

else

   log("Volume at Maximum")

end


#90 Vol Down

volume_level = (SendIrCommand("VOL?")[-3,2]).hex

if volume_level > 0

   volume_level -= 1
   newvol = ("VOL" + "%02x" % volume_level.to_s).upcase
   SendIrCommand(newvol)
   log("Volume decreased to : " + newvol)

else

   log("Volume at Minimum")

end


#97 Mute

mute_state = SendIrCommand("MUTE?")[-6,5]

case mute_state

   when "MUTE0"
       SendIrCommand("MUTE1")
   when "MUTE1"
       SendIrCommand("MUTE0")

end


INPUTS

#163 Phono

SendIrCommand("SEL00")

#873 Tuner - Digital

SendIrCommand("SEL01")

#162 CD

SendIrCommand("SEL02")

#160 Tape / Tape1

SendIrCommand("SEL03")

#420 CDR

SendIrCommand("SEL04")

#155 Video1

SendIrCommand("SEL05")

#156 Video2

SendIrCommand("SEL06")

#157 Video3

SendIrCommand("SEL07")

#158 Video4

SendIrCommand("SEL08")

#165 DVD

SendIrCommand("SEL09")

#316 AV 1

SendIrCommand("SEL0A")


DSP MODES

#311 Stereo

SendIrCommand("LSTN00")

#1006 PRO LOGIC

SendIrCommand("LSTN01")

#292 Dolby Digital

SendIrCommand("LSTN02")


  • Modes LSTN03 and LSTN04 are unknown still


#1089 Arena (new definition)

SendIrCommand("LSTN05")

#312 Stadium

SendIrCommand("LSTN06")

#149 Jazz Club

SendIrCommand("LSTN07")

#1087 Cathedral (new definition)

SendIrCommand("LSTN08")

#1090 Theater (new definition)

SendIrCommand("LSTN09")

#1088 Concert Hall (new definition)

SendIrCommand("LSTN0A")

#1089 Stadium2 (new definition)

SendIrCommand("LSTN0B")

#1090 Theater2 (new definition)

SendIrCommand("LSTN0C")

#1000 PRO LOGIC2 MOVIE

SendIrCommand("LSTN0D")

#1002 PRO LOGIC2 MUSIC

SendIrCommand("LSTN0E")

#1007 Neo6 CINEMA

SendIrCommand("LSTN0F")

#1008 Neo6 MUSIC

SendIrCommand("LSTN10")

#1092 Multi-Channel Music (new definition)

SendIrCommand("LSTN11")


RECEIVER

#1094 Analog

SendIrCommand("INPUTM2")


#1095 DGTL Manual

SendIrCommand("INPUTM1")


#1096 Full Auto

SendIrCommand("INPUTM0")


#1098 6-ch Input

SendIrCommand("INPUTM3")