Difference between revisions of "Kenwood Sovereign Receivers"

From LinuxMCE
Jump to: navigation, search
(Removing all content from page)
m (Added category: GSD)
 
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[Category: Hardware]]
 +
[[category: Audio]]
 +
[[Category:Amps_Receivers]]
 +
[[Category: GSD]]
 +
{{versioninfo|810Status=relevant|810UpdatedDate=24 Jan 2011|810UpdatedBy=Dennis G}}
 +
{{stub}}
  
 +
 +
== Using the Kenwood Sovereign Receivers with RS232 Control ==
 +
 +
                                                        [[Image:Sovereign.jpg]]
 +
 +
'''THIS CODE IS STILL BEING DEVELOPED'''
 +
 +
Models are VR 5900, VR 5700, VR 5090 and VR 5080 and maybe other models.
 +
Use a null-modem cable DB9 Female at each end.
 +
Com settings: 9600,N81
 +
 +
{{p}}
 +
 +
== 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)
 +
* OTARadio (AM/FM) not working yet
 +
 +
{{p}}
 +
 +
== 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 < 255
 +
    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'''
 +
 +
* These are Input Modes the receivers support for digital or analog input jacks
 +
* These were also defined by myself
 +
 +
 +
''#1094 Analog''
 +
 +
SendIrCommand("INPUTM2")
 +
 +
 +
''#1095 DGTL Manual''
 +
 +
SendIrCommand("INPUTM1")
 +
 +
 +
''#1096 Full Auto''
 +
 +
SendIrCommand("INPUTM0")
 +
 +
 +
''#1098 6-ch Input''
 +
 +
SendIrCommand("INPUTM3")

Latest revision as of 14:56, 7 July 2016

Version Status Date Updated Updated By
710 Unknown N/A N/A
810 relevant 24 Jan 2011 Dennis G
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

                                                        Sovereign.jpg

THIS CODE IS STILL BEING DEVELOPED

Models are VR 5900, VR 5700, VR 5090 and VR 5080 and maybe other models. Use a null-modem cable DB9 Female at each end. Com settings: 9600,N81



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)
  • OTARadio (AM/FM) not working yet



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 < 255

   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

  • These are Input Modes the receivers support for digital or analog input jacks
  • These were also defined by myself


#1094 Analog

SendIrCommand("INPUTM2")


#1095 DGTL Manual

SendIrCommand("INPUTM1")


#1096 Full Auto

SendIrCommand("INPUTM0")


#1098 6-ch Input

SendIrCommand("INPUTM3")