Difference between revisions of "Kenwood Sovereign Receivers"
Ardirtbiker (Talk | contribs) |
m (Added category: GSD) |
||
(23 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Category: Hardware]] | [[Category: Hardware]] | ||
[[category: Audio]] | [[category: Audio]] | ||
− | {{versioninfo}} | + | [[Category:Amps_Receivers]] |
+ | [[Category: GSD]] | ||
+ | {{versioninfo|810Status=relevant|810UpdatedDate=24 Jan 2011|810UpdatedBy=Dennis G}} | ||
{{stub}} | {{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 == | == Operational Status == | ||
Line 19: | Line 24: | ||
* Volume & Mute work | * Volume & Mute work | ||
* Defined but not tested: | * Defined but not tested: | ||
− | ** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) | + | ** Listen Modes (Stereo/Dolby Digital/DTS/DTS-ES/DSP ...) |
− | ** Input Select (CDR/AV1/DVD/TUNER ...) | + | ** Input Select (CDR/AV1/DVD/TUNER ...) |
− | ** Surround Mode (THX/THX EX) | + | ** 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
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")