Difference between revisions of "Olevia 2xxT 5xxT series lcdtv"

From LinuxMCE
Jump to: navigation, search
(Ruby Codes)
(Added category: GSD)
 
(13 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
[[Category: Hardware]]
 
[[Category: Hardware]]
 +
{{Versioninfo}}
 
[[Category: Video]]
 
[[Category: Video]]
 
[[Category: Displays]]
 
[[Category: Displays]]
 +
[[Category: GSD]]
  
 
  {| align="right"
 
  {| align="right"
Line 9: Line 11:
 
==Overview==
 
==Overview==
  
Olevia has several TV's with rs232 serial control ports.  Some of them use the standard DB-9 plug, while others require a unique cable made by olevia.  A template has been created as well as a plug an play script by PeTeK and will hopefully be implemented in the 8.10 release.  Until then, here are the needed steps to gain rs232 functionality to your Olevia 2xxT and 5xxt series TV.
+
Olevia has several TV's with rs232 serial control ports.  These TV's can be controlled by LMCE with some tweaking.  Some of them use the standard DB-9 plug, while others require a unique cable made by olevia.  A template has been created as well as a plug an play script (included with the 0810 beta 2 release.
  
==Adding a template==
+
The Template (2030) supports Olevia LCD TVs with an ATI Image Processor (2XXT and 5XXT) as well as possibly others.  This was developed and tested on a 232T.
  
Will add more info later.  Until then, check out these pictures for the relevant information. 
+
==Inputs==
 +
The model used for development (232T) has:<br>
 +
1 HDMI (w/HDCP)<br>
 +
1 VGA<br>
 +
1 Component<br>
 +
1 S-Video<br>
 +
1 Composite<br>
  
  
[[Image:Olevia_template_1.jpg|200px]] [[Image:Olevia_template_2.jpg|200px]] [[Image:Olevia_template_3.jpg|200px]] [[Image:Olevia_template_4.jpg|200px]] [[Image:Olevia_template_5.jpg|200px]] [[Image:Olevia_template_6.jpg|200px]]
+
==Ruby Codes==
  
 +
Here are the official codes from olevia for the 2xxT series.  Olevia emailed me and told me that these codes should work for the 227V, 232V, and the 232T.  Perhaps others as well, but those three for certain.  [http://64.168.125.216/jsp/rs232/files/ATI_240_RS232_27_&_32_Inch.pdf pdf]
  
===Ruby Codes===
+
<pre>
''#193 Off''     <$"\xBE\x05\x27\x00\xEA"$><br>
+
Power
'''#192 On'''      
+
#193 OFF
<$"\xBE\x05\x27\x01\xEB"$>
+
    log('Turning Off')<br>
sleep(6)
+
     <$"\xBE\x05\x27\x00\xEA"$>
 +
#192 ON
 +
    log('Turning On')
 +
    <$"\xBE\x05\x27\x01\xEB"$>
 +
 
 +
Inputs
 +
#712 Component 1
 +
    log('Switching Input to Component 1')
 +
    <$"\xBE\x05\x26\x08\xF1"$>
 +
#361 HDMI
 +
    log('Switching Input to HDMI')
 +
    <$"\xBE\x05\x26\x0C\xF5"$>
 +
#769 PC
 +
    log('Switching Input to PC')
 +
    <$"\xBE\x05\x26\x0A\xF3"$>
 +
#180 Svideo
 +
    log('Switching Input to Svideo')
 +
    <$"\xBE\x05\x26\x05\xEE"$>
 +
#166 Tuner
 +
    log('Switching Input to Tuner')
 +
    <$"\xBE\x05\x26\x00\xE9"$>
 +
 
 +
Aspect Ratios
 +
#953 Toggle Aspect Ratio
 +
    log('Toggling Aspect Ratio')
 +
    <$"\xBE\x05\x25\x56\x3E"$>
 +
 
 +
General   
 +
#190 Enter/Go
 +
    log('Enter Key')
 +
    <$"\xBE\x05\x25\x1B\x03"$>
 +
 
 +
Internal
 +
#373 Private Method Listing
 +
    def log(line)
 +
    $log = File.open("/var/log/pluto/" + device_.devid_.to_s + "_Generic_Serial_Device.log", "a")
 +
    $log.puts "(***):" + line.to_s
 +
    $log.close
 +
    end
 +
 
 +
Numbers
 +
#204 0
 +
    log('Sending 0')
 +
    <$"\xBE\x05\x25\x10\xF8"$>
 +
#205 1
 +
    log('Sending 1')
 +
    <$"\xBE\x05\x25\x11\xF9"$
 +
#206 2
 +
    log('Sending 2')
 +
    <$"\xBE\x05\x25\x12\xFA"$>
 +
#207 3
 +
    log('Sending 3')
 +
    <$"\xBE\x05\x25\x13\xFB"$>
 +
#208 4
 +
    log('Sending 4')
 +
    <$"\xBE\x05\x25\x14\xFC"$>
 +
#209 5
 +
    log('Sending 5')
 +
    <$"\xBE\x05\x25\x15\xFD"$>
 +
#210 6
 +
    log('Sending 6')
 +
    <$"\xBE\x05\x25\x16\xFE"$>
 +
#211 7
 +
    log('Sending 7')
 +
    <$"\xBE\x05\x25\x17\xFF"$>
 +
#212 8
 +
    log('Sending 8')
 +
    <$"\xBE\x05\x25\x18\x00"$>
 +
#213 9
 +
    log('Sending 9')
 +
    <$"\xBE\x05\x25\x19\x01"$>
 +
 
 +
On-Screen Menu Navig
 +
#225 Display
 +
    log('Selecting Display ')
 +
    <$"\xBE\x05\x25\x1E\x06"$>
 +
#86  Menu (Show Menu
 +
    log('Seleting Menu')
 +
    <$"\xBE\x05\x25\x04\xEC"$>
 +
#201 Move Down
 +
    log('Move Down')
 +
    <$"\xBE\x05\x25\x4A\x32"$>
 +
#202 Move Left
 +
    log('Move Left')
 +
    <$"\xBE\x05\x25\x0A\xF2"$>
 +
#203 Move Right
 +
    log('Move Right')
 +
    <$"\xBE\x05\x25\x07\xEF"$>
 +
#200 Move Up
 +
    log('Move Up')
 +
    <$"\xBE\x05\x25\x45\x2D"$>
 +
 
 +
Simple Control
 +
#64  Skip Back - Channel/Track Lower
 +
    log('Channel Down')
 +
    <$"\xBE\x05\x25\x01\xE9"$>
 +
#63  Skip Fwd - Channel/Track Greater
 +
    log('Channel Up')
 +
    <$"\xBE\x05\x25\x00\xE8"$>
 +
 
 +
Volume
 +
#97  Mute
 +
    log('Mute')
 +
    <$"\xBE\x05\x25\x09\xF1"$>
 +
#90  Vol Down
 +
    log('Volume Down')
 +
    <$"\xBE\x05\x25\x03\xEB"$>
 +
#89  Vol Up
 +
    log('Volume Up')
 +
    <$"\xBE\x05\x25\x03\xEA"$>
 +
</pre>
 +
 
 +
==PNP Script==
 +
 
 +
The following script will automatically detect this TV.  Note that after a firmware upgrade, the TV used to test this implementation gives an intermittent response when querried by the PNP script.  This sometimes causes the script to miss this TV in configuration and require a manual addition of this device.
 +
 
 +
The script is 20_OleviaTV_ATI.sh
 +
 
 +
<pre>
 +
#!/bin/bash
 +
#Play and Play script for Olevia TV's Models Numbers:2XXT/5XXT Possibly more
 +
#Power Up is very slow so it requires several seconds to get feedback
 +
#Device Template Number:2030 on my local Machine.
 +
 
 +
#The TV only responds to the "Power Status Query" command when the power is on, so we'll send the Power On command first, then sent the Query command.
 +
#We give it a delay to allow the TV to power up
 +
echo "Olevia TV (ATI) Detection script queue $2"
 +
/usr/pluto/bin/TestSerialPort -p $3 -P N81 -b 115200 -t "\BE\05\27\01\EB" -i 8
 +
echo "Waiting for powerup"
 +
#Now query to check for the TV power status reply
 +
/usr/pluto/bin/TestSerialPort -p $3 -P N81 -b 115200 -t "\BE\05\90\00\53" -i 1 -s "\06\05\90\01\9C"
 +
if [[ "$?" -ne 0 ]]; then
 +
echo "It's not an Olevia TV (ATI)"
 +
/usr/pluto/bin/MessageSend dcerouter -r 0 $1 1 806 224 $2 13 "$4" 44 0
 +
else
 +
echo "It is an Olevia TV (ATI) Template #2030"
 +
/usr/pluto/bin/MessageSend dcerouter -r 0 $1 1 806 224 $2 13 "$4" 44 2030
 +
</pre>

Latest revision as of 13:55, 7 July 2016

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

Overview

Olevia has several TV's with rs232 serial control ports. These TV's can be controlled by LMCE with some tweaking. Some of them use the standard DB-9 plug, while others require a unique cable made by olevia. A template has been created as well as a plug an play script (included with the 0810 beta 2 release.

The Template (2030) supports Olevia LCD TVs with an ATI Image Processor (2XXT and 5XXT) as well as possibly others. This was developed and tested on a 232T.

Inputs

The model used for development (232T) has:
1 HDMI (w/HDCP)
1 VGA
1 Component
1 S-Video
1 Composite


Ruby Codes

Here are the official codes from olevia for the 2xxT series. Olevia emailed me and told me that these codes should work for the 227V, 232V, and the 232T. Perhaps others as well, but those three for certain. pdf

Power
#193 OFF
     log('Turning Off')<br>
     <$"\xBE\x05\x27\x00\xEA"$>
#192 ON
     log('Turning On')
     <$"\xBE\x05\x27\x01\xEB"$>

Inputs
#712 Component 1
     log('Switching Input to Component 1')
     <$"\xBE\x05\x26\x08\xF1"$>
#361 HDMI
     log('Switching Input to HDMI')
     <$"\xBE\x05\x26\x0C\xF5"$>
#769 PC
     log('Switching Input to PC')
     <$"\xBE\x05\x26\x0A\xF3"$>
#180 Svideo
     log('Switching Input to Svideo')
     <$"\xBE\x05\x26\x05\xEE"$>
#166 Tuner
     log('Switching Input to Tuner')
     <$"\xBE\x05\x26\x00\xE9"$>

Aspect Ratios
#953 Toggle Aspect Ratio
     log('Toggling Aspect Ratio')
     <$"\xBE\x05\x25\x56\x3E"$> 

General    
#190 Enter/Go
     log('Enter Key')
     <$"\xBE\x05\x25\x1B\x03"$>

Internal
#373 Private Method Listing
     def log(line)
     $log = File.open("/var/log/pluto/" + device_.devid_.to_s + "_Generic_Serial_Device.log", "a")
     $log.puts "(***):" + line.to_s
     $log.close
     end

Numbers
#204 0
     log('Sending 0')
     <$"\xBE\x05\x25\x10\xF8"$>
#205 1
     log('Sending 1')
     <$"\xBE\x05\x25\x11\xF9"$
#206 2
     log('Sending 2')
     <$"\xBE\x05\x25\x12\xFA"$>
#207 3
     log('Sending 3')
     <$"\xBE\x05\x25\x13\xFB"$>
#208 4
     log('Sending 4')
     <$"\xBE\x05\x25\x14\xFC"$>
#209 5
     log('Sending 5')
     <$"\xBE\x05\x25\x15\xFD"$>
#210 6
     log('Sending 6')
     <$"\xBE\x05\x25\x16\xFE"$>
#211 7
     log('Sending 7')
     <$"\xBE\x05\x25\x17\xFF"$>
#212 8
     log('Sending 8')
     <$"\xBE\x05\x25\x18\x00"$>
#213 9
     log('Sending 9')
     <$"\xBE\x05\x25\x19\x01"$>

On-Screen Menu Navig
#225 Display
     log('Selecting Display ') 
     <$"\xBE\x05\x25\x1E\x06"$>
#86  Menu (Show Menu
     log('Seleting Menu')
     <$"\xBE\x05\x25\x04\xEC"$>
#201 Move Down
     log('Move Down')
     <$"\xBE\x05\x25\x4A\x32"$>
#202 Move Left
     log('Move Left')
     <$"\xBE\x05\x25\x0A\xF2"$>
#203 Move Right
     log('Move Right')
     <$"\xBE\x05\x25\x07\xEF"$>
#200 Move Up
     log('Move Up')
     <$"\xBE\x05\x25\x45\x2D"$>

Simple Control
#64  Skip Back - Channel/Track Lower
     log('Channel Down')
     <$"\xBE\x05\x25\x01\xE9"$>
#63  Skip Fwd - Channel/Track Greater
     log('Channel Up')
     <$"\xBE\x05\x25\x00\xE8"$>

Volume
#97  Mute
     log('Mute')
     <$"\xBE\x05\x25\x09\xF1"$>
#90  Vol Down
     log('Volume Down')
     <$"\xBE\x05\x25\x03\xEB"$>
#89  Vol Up
     log('Volume Up')
     <$"\xBE\x05\x25\x03\xEA"$>

PNP Script

The following script will automatically detect this TV. Note that after a firmware upgrade, the TV used to test this implementation gives an intermittent response when querried by the PNP script. This sometimes causes the script to miss this TV in configuration and require a manual addition of this device.

The script is 20_OleviaTV_ATI.sh

#!/bin/bash
#Play and Play script for Olevia TV's Models Numbers:2XXT/5XXT Possibly more
#Power Up is very slow so it requires several seconds to get feedback
#Device Template Number:2030 on my local Machine.

#The TV only responds to the "Power Status Query" command when the power is on, so we'll send the Power On command first, then sent the Query command.
#We give it a delay to allow the TV to power up
echo "Olevia TV (ATI) Detection script queue $2"
/usr/pluto/bin/TestSerialPort -p $3 -P N81 -b 115200 -t "\BE\05\27\01\EB" -i 8
echo "Waiting for powerup"
#Now query to check for the TV power status reply
/usr/pluto/bin/TestSerialPort -p $3 -P N81 -b 115200 -t "\BE\05\90\00\53" -i 1 -s "\06\05\90\01\9C"
if [[ "$?" -ne 0 ]]; then
echo "It's not an Olevia TV (ATI)"
/usr/pluto/bin/MessageSend dcerouter -r 0 $1 1 806 224 $2 13 "$4" 44 0
else
echo "It is an Olevia TV (ATI) Template #2030"
/usr/pluto/bin/MessageSend dcerouter -r 0 $1 1 806 224 $2 13 "$4" 44 2030