Sunteți pe pagina 1din 31

The Barco CLM W6 / HD6 Protocol Basics

Command basics Command baud rate


Baud Rate Data Bits Parity Stop Bits Flow Control UART16550 FIFO 115200 (default)/ 19200 / 9600 (OSD setting) 8 None 1 None Disable

Command structure
Each command is packaged in this structure:
0xFE 0x00 PREFIX CMD DATA CHK 0xFF

Start byte Device address Prefix (0..n (1 byte) (1 byte) bytes) Explanation:

Command Data (0..n (1..n bytes) bytes)

Checksum (1 byte)

Stop byte (1 byte)

The start and stop byte are used to let te receiver know that a command is starting or has stopped. Device address is used when multiple devices are connected on the same physical connection. This is typically used with serial connections. In case of Ethernet connections this is either ignored, or should be set to a fixed value, depending on the protocol. Prefix bytes: for some special commands it is possible to use prefix bytes before the actual command bytes. It depends on the actual protocol implementation which prefixes are available and when they can be used. Command bytes: there will be at least one byte per command. The command bytes actually tell the device what to do. Data bytes: this is optional and depends on the command that will be sent. See also Data byte chapter.

Checksum byte: this byte is used to detect errors in the transmission or reception of the command. For more information, see the Checksum chapter. IMPORTANT NOTE Any comm Any command byte, data byte or checksum byte that equals 0x80, 0xFE or 0xFF, has to be marked up with a leading 0x80: Byte to send: Actual mark up of the byte to send: Actual mark-up of the byte to send 0x80 0x00 0x80 0x7E 0x80 0x7F

Byte to send 0x80 0xFE 0xFF

Data bytes

Characters: we will be using ANSI coding for characters (1 byte per character). Strings: strings can be formatted in two ways: o C-style format: an array of one or more characters which is terminated by a NULL character (0x00). The position of the NULL character determines the length of the string. Exmaple: 'f' 'o' 'o' ' ' 'b' 'a' 'r' 0x00
o

Pascal-style format: an array of one or more characters. The first byte of the string indicates the length of the string. Therefore pascal-style strings are limited to 255 characters. Example: 0x07 'f' 'o' 'o' ' ' 'b' 'a' r' Multi-byte values: a multi-byte value consists of more than one byte. The first byte is the Most Significant Byte (MSB). Example of a 4-byte value: 0x01 0x20 0x50 0x30 = 0x01 * 2563 + 0x20 * 2562 + 0x50 * 256 + 0x30 = 536956976.

Checksum
The checksum value for a command is calculated by doing a modulo 256 on the sum of the byet values of all bytes between start of the command and the checksum byte Checksum calculation
yte = (Device address + Prefix bytes + Command bytes + Data bytes) mod 256

Acknowledgement ACK and NACK


When a command is received, the command format and checksum should be checked. For our application, the device address should be ignored. If there's an error in the command bytes or the checksum, the command should be ignored. If the command is a valid command, the receiver should answer back with an acknowledgement before starting the processing of the command. If the command is not valid, the receiver should answer with a no acknowledge. ACK (ACKnowledge) Command[0] Command[1] An ACK is sent in these cases:
0x00 0x06

The command bytes are correct (checksum is OK) The command and its parameters are valid

If one of these fail, an NACK will be returned. NACK (Not ACKnowledge) Command[0]
0x00

Command[1]

0x15

Example
Start byte Device address: Command[0] Command[1] Checksum Stop byte
0xFE 0x00 0x00 0x15 0x15 0xFF

Handling of no acknowldge (NACK)


When a command doesn't get acknowledged, it is up to the sender to decide what should happen with the command: retry sending the command again or discard the command. The decision is mainly based on the type of command and the situation it is used. IMPORTANT NOTE communication, an acknowledge must always be returned by the receiver for each correct and valid receives, before processing the command and replying on the command. edge does not count as a reply on the execution of the command. t communication, acknowledgments are not used

Command responses Replying commands


A lot of commands that can be send out, do not only return a ACK or NACK, but may also return a reponse or reply. This reply will be sent after processing the command. The answer will have the same command bytes as the request, but typically the data bytes will contain the response information. It depends on the protocol implementation whether a command requires a reply or not. This will be defined per command in the protocol.

Example:
When requesting a projector's type, you should use the command 0x6b (projector, read type). In answer, the projector will return a string containing the actual type of the device: Request: Start byte Device address: Command[0] Checksum Stop byte Acknowledge: Start byte Device address: Command[0] Command[1] Checksum Stop byte
0xFE 0x00 0x00 0x06 0x06 0xFF 0xFE 0x00 0x6b 0x6b 0xFF

Reply: Start byte Device address: Command[0] Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6] Data[7] Data[8] Data[9] Data[10] Data[11] Data[12] Data[13] Checksum Stop byte
0xFE 0x00 0x6b 0x42 = 'B' 0x41 = 'A' 0x52 = 'R' 0x43 = 'C' 0x4f = 'O' 0x20 = ' ' 0x46 = 'F' 0x4c = 'L' 0x4d = 'M' 0x20 = ' ' 0x48 = 'H' 0x31 = '1' 0x38 = '8' 0x00 0x03 0xFF

Handling of failing responses


When a receiver fails to return the expected response (acknowledge or reply) on a command, we need to follow some steps to handle this failing communication. There are 2 possible failures: 1. Communication link problems: If the sending of the commands itself doesn't work, it will be because the communication is broken (f.i. the receiver as disconnected from the network). 2. Answer back problems: when commands can be sent out but no response is sent back, it means that the communication link is OK but the receiver is unable to answer back. Each type of failure needs another way of handling. Handling communication link problems As communication link problems will most likely have a physical reason (cable disconnected, hub down, projector down, ), we need to notify the user and ask him for his feedback. In most cases there will be a user intervention needed to correct this problem (connect the cable, reboot the hub, restart the projector, ). The actual implementation of this, should be described in the specifications of the application. Handling answer back problems Answer back problems should be addressed in another way. When a receiver fails to answer back it might be that it is currently too busy to answer back. The application software should implement some simple mechanisms to avoid problems when this occurs: 1. Timeout waiting: the application should wait for a limited amount of time for an answer (f.i. max 10 seconds). This ensures that the application can react when a command doesn't get answered in time. 2. Retry waiting: if the timeout expires, we can retry waiting for the answer. By doing this, the user has the opportunity to cancel the action. If needed, the retry can even be repeated several times. 3. Retry sending: when a command does not get answered after the timout waiting and retry waiting, the command is considered to be lost in action and the application should send the command again. This mechanism follows the sequence of the steps: first the timeout waiting is used, then the retry waiting and finally the retry sending. If all of these steps fail, there might be a major problem with the receiver in in this case we should notify the user of these problems so that he can check the status of the receiver.

Table of contents Standby Available Function Command (exclude Start byte, Device address, Checksum and Stop byte) Return Data[0]: bit0 =0 bit1 =1 bit2 =0 bit3 =0 V Answer 0x00, 0x03, Data[0] 0x00, 0x03, Data[1] bit4 =0 bit5 =0 bit6 =0 bit7 =0 Data[1]: 0x01 for success 0x00 for no success V V Acknowledge No acknowledge 0x00, 0x06 0x00, 0x15 return with success after the command has been executed Note

Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6] Data[7] Data[8] Data[9]

RedX MSB RedX LSB RedY MSB RedY LSB GreenX MSB GreenX LSB GreenY MSB GreenY LSB BlueX MSB BlueX LSB

Data[10] BlueY MSB Data[11] BlueY LSB Data[12] WhiteX MSB X P7 mcgd, Read 0x00, 0xC2 0x00, 0xC2, Data[0..n] Data[13] WhiteX LSB Data[14] WhiteY MSB Data[15] WhiteY LSB Data[16] BlackX MSB Data[17] BlackX LSB Data[18] BlackY MSB Data[19] BlackY LSB Data[20] Contrast MSB Data[21] Contrast LSB Data[22] Red Y Luminance MSB Data[23] Red Y Luminance LSB Data[24] Green Y Luminance MSB Data[25] Green Y Luminance LSB Data[26] Blue Y Luminance MSB Data[27] Blue Y Luminance LSB X P7 mcgd, write 0x00, 0xC2, Data[0..n] Data[28] White Y Luminance MSB Data[29] White Y Luminance LSB

Data[30] AX MSB (for DDP3020F) Data[31] AX LSB (for DDP3020F) Data[32] AY MSB (for DDP3020F) Data[33] AY LSB (for DDP3020F) Data[34] BX MSB (for DDP3020F) Data[35] BX LSB (for DDP3020F) Data[36] BY MSB (for DDP3020F) Data[37] BY LSB (for DDP3020F) Data[38] CX MSB (for DDP3020F) Data[39] CX LSB (for DDP3020F) Data[40] CY MSB (for DDP3020F) Data[41] CY LSB (for DDP3020F) Data[42] DX MSB (for DDP3020F) Data[43] DX LSB (for DDP3020F) Data[44] DY MSB (for DDP3020F) Data[45] DY LSB (for DDP3020F) Data[46] Data[47] Data[48] Data[49] Data[50] Data[51] Data[52] Data[53] A Y Luminance MSB (for DDP3020F) A Y Luminance LSB (for DDP3020F) B Y Luminance MSB (for DDP3020F) B Y Luminance LSB (for DDP3020F) C Y Luminance MSB (for DDP3020F) C Y Luminance LSB (for DDP3020F) D Y Luminance MSB (for DDP3020F) D Y Luminance LSB (for DDP3020F)

Note for all values except contrast: These are floating point values sent as words. Word value = floating point value * 10000. Example: Real RedX = 0.1234; Word to send for RedX = 1234 X X X X X X X X X X X X X X Text, write to on Text, write to off Contrast, write Contrast, read Brightness, write Brightness, read Saturation, write Saturation, read Tint, write Tint, read Sharpness, write Sharpness, read Phase, write Phase, read 0x0d 0x0e 0x20, 0x01, Data[0] 0x21,0x01 0x20, 0x02, Data[0] 0x21,0x02 0x20, 0x03, Data[0] 0x21,0x03 0x20, 0x04, Data[0] 0x21, 0x04 0x20, 0x05, Data[0] 0x21, 0x05 0x20, 0x06, Data[0] 0x21, 0x06 0x21, 0x06, Data[0] 0x21, 0x05, Data[0] 0x21, 0x04, Data[0] Data [0] = Tint value. 0x21, 0x03, Data[0] Data [0] = Saturation value. 0x21, 0x02, Data[0] Data [0] = Brightness value. 0x21, 0x01, Data[0] Data [0] = Contrast value.

Data [0] = Sharpness value. OSD range: -7 ~ +8 mapping to Data [0] range: 0 ~ 15. Data [0] = Phase value. OSD range: -32 ~ +32 mapping to Data [0] range: 0 ~ 64. Data [0]: Aspect Ratio 0x00: 5:4 0x01: 4:3 0x02: 16:10

Aspect ratio, write 0x20, 0x0b, 0xc0, Data[0]

Aspect ratio, read

0x21, 0x0b, 0xc0

0x21, 0x0b, 0xc0, Data[0]

0x03: 16:9 0x04: 1.88 0x05: 2.35 0x06: Native 0x07: Unscaled

X X

Aspect ratio width, 0x21, 0x0b, 0xc1 read Aspect ratio height, 0x21, 0x0b, 0xc2 read

0x21, 0x0b, Data[0..3] aspect ratio width as a 0xc1, Data[0..3] DWORD 0x21, 0x0b, Data[0..3] aspect ratio height as a 0xc2, Data[0..3] DWORD Data[0]:

Lamp dimming, write

0x00 85% 0x20, 0x0d, Data[0] 0x01 87.5% 0x02 90% 0x03 92.5%

Lamp dimming, read

0x21, 0x0d

0x21, 0x0d, Data[0]

0x04 95% 0x05 97.5% 0x06 100%

X X X X X X X X X

H Total, write H Total, read H Start, write H Start, read V Start, write V Start, read Film mode, write Film mode, read Format, write

0x20, 0x10, Data[0] 0x21, 0x10 0x20, 0x11, Data[0] 0x21, 0x11, 0x20, 0x12, Data[0] 0x21, 0x12, 0x20, 0x13, Data[0] 0x21, 0x13 0x20, 0x14, Data[0] 0x21, 0x13, Data[0] 0x21, 0x12, Data[0] 0x21, 0x11, Data[0] 0x21, 0x10, Data[0]

Data [0] = H Total. OSD range: -127 ~ +127 mapping to Data [0] range: 0 ~ 254. Data [0] = H Start OSD range: -127 ~ +127 mapping to Data [0] range: 0 ~ 254. Data [0] = V Start OSD range: -127 ~ +127 mapping to Data [0] range: 0 ~ 254. Data[0]: Film mode 0x00: OFF 0x01: ON Data[0]: Format

Format, read Display mode, write

0x21, 0x14

0x21, 0x14, Data[0]

0x00: YUV 0x01: RGB 0x02: AUTO Data[0]: Display mode 0x00: Presentation 0x01: Video 0x02: Bright Data [0] = 0 for open and 1 for close.

X X X X X

0x20, 0x15, Data[0] 0x21, 0x15, Data[0] 0x21, 0x42, Data[0]

Display mode, read 0x21, 0x15 Shutter (pause), read Shutter (pause), write to open Shutter (pause), write to close 0x21, 0x42 0x22, 0x42, 0x00 0x23, 0x42, 0x00

Color temperature, 0x20, 0x45, Data[0] write Color temperature, 0x21, 0x45 read Input black balance, write Input black balance, read Input white balance, write Input white balance, read 0x21, 0x45, Data[0]

Data [0]: Color Temp. 0x00: 3200. 0x01: 5400. 0x02: 6500. 0x03: 8800. 0x04: Native.

0x20, 0x6e, Color, Data[0] Color: 0x21, 0x6e, Color 0x21, 0x6e, Color, Data[0] 0x00 for red 0x01 for green 0x02 for blue

0x20, 0x6f, Color, Data[0] 0x21, 0x6f, Color, Data[0]

Data [0] = value as BYTE. OSD range: -127 ~ +127 mapping to Data [0] range: 0 ~ 254.

0x21, 0x6f, Color

Data [0] = gamma value as BYTE. 0x00 1.3 X Gamma, write 0x20, 0x70, Data[0] 0x01 1.6 0x02 1.8

0x03 2.0 0x04 2.2 X Gamma, read 0x21, 0x70 0x21, 0x70, Data[0] 0x05 2.4 0x06 2.6 0x07 2.8 X X X X Noise reduction, write Noise reduction, read Noise reduction, increment Noise reduction, decrement No signal color, write No signal color, read 0x20, 0x73, Data[0] 0x21, 0x73 0x22, 0x73 0x23, 0x73 Data[0]: background color 0x01 for logo, 0x02 for blue, 0x03 for black, 0x04 for white, 0x05 for snapshot Data [0]: Color Space. 0x00: Native. 0x01: Custom. 0x21, 0x73, Data[0]

Data [0] = noise reduction value. (ranges from 0 to 32)

0x20, 0x7b, Data[0]

0x21, 0x7b

0x21, 0x7b, Data[0]

P7 status, write

0x20, 0x97, 0x04, Data[0]

Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6] Data[7] Data[8] Data[9] Data[10] Data[11] Data[12] Data[13] X P7 tcgd, read (1) 0x21, 0x97, 0x00, 0x00 0x21, 0x97, 0x00, 0x00, Data[0..n] Data[14] Data[15] Data[16] Data[17] Data[18] Data[19] Data[20] Data[21] Data[22] Data[23] Data[24] Data[25] Data[26] Data[27] Data[28]

0x00 RedX MSB RedX LSB RedY MSB RedY LSB 0 0 GreenX MSB GreenX LSB GreenY MSB GreenY LSB 0 0 BlueX MSB BlueX LSB BlueY MSB BlueY LSB 0 0 MagentaX MSB MagentaX LSB MagentaY MSB MagentaY LSB 0 0 CyanX MSB CyanX LSB CyanY MSB CyanY LSB

Data[29] Data[30] Data[31] Data[32] Data[33] Data[34] Data[35] Data[36] Data[37] Data[38] Data[39] Data[40]

0 0 YellowX MSB YellowX LSB YellowY MSB YellowY LSB 0 0 WhiteX MSB WhiteX LSB WhiteY MSB WhiteY LSB

These are floating point values read as words. Word value = floating point value * 10000. Example: Real RedX = 0.1234; Word read for RedX = 1234

Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6] Data[7] Data[8] Data[9] Data[10] Data[11] Data[12] Data[13] X P7 tcgd, write (1) 0x20, 0x97, 0x00, 0x00, Data[0..n] Data[14] Data[15] Data[16] Data[17] Data[18] Data[19] Data[20] Data[21]

RedX MSB RedX LSB RedY MSB RedY LSB 0 0 GreenX MSB GreenX LSB GreenY MSB GreenY LSB 0 0 BlueX MSB BlueX LSB BlueY MSB BlueY LSB 0 0 WhiteX MSB WhiteX LSB WhiteY MSB WhiteY LSB

These are floating point values read as words. Word value = floating point value * 10000. Example: Real RedX = 0.1234; Word read for RedX = 1234

Index: 0x01 RedX 0x02 RedY 0x04 GreenX 0x05 GreenY 0x07 BlueX 0x08 BlueY 0x0a 0x0b 0x21, 0x97, 0x00, index, Data[0..1] Magenta X Magenta Y

0x0d CyanX 0x0e CyanY 0x10 YellowX 0x11 YellowY 0x13 WhiteX 0x14 WhiteY Data[0..1] : value as WORD These are floating point values read as words. Word value = floating point value * 10000. Example: Real RedX = 0.1234; Word read for RedX = 1234 Index: 0x01 RedX

P7 tcgd, read (3)

0x21, 0x97, 0x00, index

P7 tcgd, write (3)

0x20, 0x97, 0x00, index, Data[0..1]

0x02 RedY 0x04 GreenX 0x05 GreenY 0x07 BlueX

0x08 BlueY 0x0A WhiteX 0x0B WhiteY Data[0..1] : value as WORD These are floating point values read as words. Word value = floating point value * 10000. Example: Real RedX = 0.1234; Word read for RedX = 1234 X P7 status, read 0x21, 0x97, 0x04 0x21, 0x97, 0x04, Data[0] Data [0]: Color Space. 0x00: Native. 0x01: Custom. Data[0]: lamp power mode 0x01 for normal, 0x02 for economic, 0x06 for power

X X X X

Lamp powermode, 0x20, 0x98, Data[0] write Lamp powermode, 0x21, 0x98 read Reset Warp Vertical keystone warping, write Vertical keystone warping, read 0x20, 0xa0, 0x00 0x20, 0xa1, 0x01, Data[0..1] 0x21, 0x98, Data[0]

0x21, 0xa1, 0x01, Data[0..1] Data [0] = MSB of value. Data [1] = LSB of value. Horizontal OSD range: -60 ~ +60 mapping to keystone warping, 0x20, 0xa1, 0x02, Data[0..1] Data [0, 1] range: 0 ~ 120. write 0x21, 0xa1, 0x01 Horizontal keystone warping, 0x21, 0xa1, 0x02 read BarrelPinchusion, Write BarrelPinchusion, Read 0x20, 0xa1, 0x04, Data[0..1] 0x21, 0xa1, 0x04 0x21, 0xa1, 0x02, Data[0..1] Data [0] = MSB of value. Data [1] = LSB of value. OSD range: -127 ~ +127 mapping 0x21, 0xa1, to Data [0, 1] range: 0 ~ 254. 0x04, Data[0..1]

X X

X X X X X X X X

BarrelPinchusion Vertical, Write BarrelPinchusion Vertical, Read BarrelPinchusion Horizontal, Write BarrelPinchusion Horizontal, Read Rear, Write Rear, Read Ceiling, Write Ceiling, Read

0x20, 0xa1, 0x08, Data[0..1] 0x21, 0xa1, 0x08 0x20, 0xa1, 0x09, Data[0..1] 0x21, 0xa1, 0x09 0x20, 0xa2, Data[0] 0x21, 0xa2 0x20, 0xa3, Data[0] 0x21, 0xa3 0x21, 0xa3, Data[0] 0x21, 0xa2, Data[0] 0x21, 0xa1, 0x09, Data[0..1] Data[0]: Rear 0x00: OFF 0x01: ON Data[0]: Celilng 0x00: OFF 0x01: ON Data[0]: Frame rate 0x00 for Auto, 0x01 for 50Hz 0x02 for 60Hz Data[0]: Video standard 0x00 for Auto, 0x01 for NTSC, 0x02 for PAL Data[0]: Auto Power Off 0x00: OFF 0x01: ON 0x21, 0xa1, 0x08, Data[0..1]

Frame rate, write

0x20, 0xa4, Data[0] 0x21, 0xa4, Data[0]

Frame rate, read Video standard, write Video standard, read Auto Power Off, write Auto Power Off, read Auto Power On, write Auto Power On, read A image adjust, write

0x21, 0xa4

X X X X X X X

0x20, 0xa5, Data[0] 0x21, 0xa5 0x20, 0xa6, Data[0] 0x21, 0xa6 0x20, 0xa7, Data[0] 0x21, 0xa7 0x20, 0xa8, Data[0] 0x21, 0xa7, Data[0] 0x21, 0xa6, Data[0] 0x21, 0xa5, Data[0]

Data[0]: Auto Power On 0x00: OFF 0x01: ON Data[0]: A image adjust 0x00: OFF

X X X X X X X X X X X X X X X X X X X

A image adjust, read

0x21, 0xa8

0x21, 0xa8, Data[0]

0x01: Always 0x02: Auto

Up, IR commands 0x30, 0x04 Down, IR commands Right, IR commands 0x30, 0x05 0x30, 0x06

Left, IR commands 0x30, 0x07 Menu, IR commands Enter, IR commands Freeze, IR commands 0x30, 0x0A 0x30, 0x0B 0x30, 0x1B

PIP, IR commands 0x30, 0x58 Swap, IR commands Auto image, IR commands Lens, IR commands Aspect ratio, IR commands Contrast, IR commands Brightness, IR commands Sharpness, IR commands Phase, IR commands Color, IR commands 0x30, 0x68 0x30, 0x69 0x30, 0x81 0x30, 0x82 0x30, 0x83 0x30, 0x84 0x30, 0x85 0x30, 0x86 0x30, 0x87

Tint, IR commands 0x30, 0x88

X X X X

Address, IR commands Pause, IR commands

0x30, 0x89 0x30, 0x8A

Text, IR commands 0x30, 0x8B Settings, reset to factory 0x31 Data[0]: the input slot number 1 for HDMI 1, 2 for HDMI 2, 3 for VGA 1, 4 for VGA 2, 5 for RGB, 6 for YUV, 7 for S-Video, 8 for Video. All the projectors that support UDP broadcast discovery, will answer on the request by sending an array of (C-language) strings. Each string is represents a key-value pair with specific information about the projector that has been discovered. UDP broadcast discovery (network 0x3F only) Hostname, ip-address, mac-address, type Typically, following strings will be returned:

Input selection, write

0x33, Data[0]

Input selection, read

0x34

0x34, Data[0]

hostname=value: the hostname of the projector ip-address=value: the IP address of the projector mac-address=value: the MAC address of the NIC on the projector type=value: the projector type

Internal pattern, write

0x41, Data[0]

Data [0]: the internal pattern number. 0x44 ramp blue 0x43 ramp green 0x42 ramp red 0x41 ramp bw 0x19 Checkerboard 0x04 Hatch 0x38 cyan 0x37 magenta 0x36 yellow 0x35 black 0x34 white 0x33 blue 0x32 green 0x31 red 0x00 Off (no pattern)

Internal pattern, read

0x42

Data[0]

Data [0]: the internal pattern number. 0x44 ramp blue 0x43 ramp green 0x42 ramp red 0x41 ramp bw 0x19 Checkerboard 0x04 Hatch 0x38 cyan 0x37 magenta 0x36 yellow 0x35 black 0x34 white 0x33 blue 0x32 green 0x31 red 0x00 Off (no pattern)

Writes lamp selection

0x58, data[0]

data[0] = lamp status value 0x00 = OFF 0x01 = Single 0x02 = Dual 0x03 = Auto

X X X X

White peaking, write White peaking, read

0x58(prefixed), 0x20, 0x40, Data[0] 0x58(prefixed), 0x21, 0x40 Data[0]

Data[0] = white peaking value (ranges from 0 to 10)

Color wheel index, 0x58(prefixed), 0x20, 0x41, write Data[0, 1] Color wheel index, 0x58(prefixed), 0x21, 0x41 read Data[0, 1]

Data[0] = MSB of color wheel index Data[1] = LSB of color wheel index

index table: 0x00 PW392 0x04 DDP302X 0x08 PIC Versions, read (clm) 0x60, from data index, to data index 0x60, from data 0x0C Lan Module index, to data 0x10 Waveform index, Data [0..n] 0x14 EDID Each version set consists of 4 bytes byte[0,1] version major number (A,B,C,)

byte[2,3] build number Standby check, read Text, read Lamp status, read Data [0]: standby check 0x00 for standby 0x01 for projector on. Data [0] = 0 for off and 1 for on. Data[0] = lamp status 0x00 = lamp(s) are off, 0x01 = lamp(s) are on Data[0] = lamp setting 0x01 = single 0x02 = dual

V X V

0x67, 0x01 0x67, 0x02 0x67, 0x40

Data[0] Data[0] Data[0]

V V

Lamp setting, write 0x68, 0x40, Data[0] Lamp setting, read 0x68, 0x41 Data[0]

X X

High Altitude, write

0x69, 0x40, Data[0] Data[0]

High Altitude, read 0x69, 0x41

Data[0] = High Altitude 0x00: OFF 0x01: ON Data[0] = lamp number (1=lamp 1, 2=lamp 2, ...) Data1[0..3] = the maximum lamp runtime (in seconds) Data[0] = lamp number (1=lamp 1, 2=lamp 2, ...) Data[1..4] = the lamp runtime (in seconds) Data[0] = lamp number (1=lamp 1, 2=lamp 2, ...) Data1[0]: 0: lamp is off / 1: lamp is on

Lamp max runtime, 0x76, 0x89, Data[0] read

Data1[0..3]

Lamp runtime, read 0x76, 0x90, Data[0]

Data[0], Data[1..4]

Lamp on, read

0x76, 0x9a, Data[0]

Data1[0]

Diagnosis, read

0x81, 0x03, from, to

0x81, 0x03, from = 0 & to = 0, from, to, Data[0] Data[0] = temperature ambient Data[0] = High Altitude 0x00: Custom 1 0x01: Custom 2 0x02: Custom 3 0x03: Custom 4 Data[0] = Auto source 0x00: OFF 0x01: ON Data[0] = Menu position 0x00: Top Left 0x01: Top Right 0x02: Center 0x03: Bottom Left 0x04: Bottom Right Data [0] = Main zoom in/out. OSD range: -10 ~ +10 mapping to Data [0] range: 0 ~ 20 Step: 2 Data[0] = PIP enable

IR address, write

0x90, 0x00, Data[0]

X X X

IR address, read

0x91, 0x00

Data[0]

Auto source, write 0x90, 0x01, Data[0] Auto source, read Menu position, write Menu position, read 0x91, 0x01 Data[0]

0x90, 0x02, Data[0]

0x91, 0x02

Data[0]

X X X

Main zoom in/out, 0xA0, 0x00, Data[0] write Main zoom in/out, 0xA1, 0x00 read PIP enable, write 0xA0, 0x01, Data[0] Data[0]

PIP enable, read

0xA1, 0x01

Data[0]

0x00: OFF 0x01: ON Data[0]: PIP select 1 for HDMI 1, 2 for HDMI 2, 3 for VGA 1, 4 for VGA 2, 5 for RGB, 6 for YUV, 7 for S-Video, 8 for Video. Data[0] = PIP size 0x00: Small 0x01: Medium 0x02: Large Data[0] = PIP position 0x00: Top Left 0x01: Top Right 0x02: Bottom Left 0x03: Bottom Right 4 data bytes: X resolution = data[0] * 256 + data[1] Y resolution = data[2] * 256 + data[3] Data[0]: shift direction 0x00 for shift up, 0x01 for shift down, 0x02 for shift left, 0x03 for shift right Data[0]: zoom direction 0x00 for zoom in, 0x01 for zoom out, Data[0]: focus direction 0x00 for focus out, 0x01 for focus in,

PIP select, write

0xA0, 0x02, Data[0]

PIP select, read

0xA1, 0x02

Data[0]

X X

PIP size, write PIP size, read

0xA0, 0x03, Data[0] 0xA1, 0x03 Data[0]

PIP position, write 0xA0, 0x04, Data[0]

PIP position, read

0xA1, 0x04

Data[0]

Resolution, read

0xf0, 0x01

Data[0..3]

Lens shift, write

0xf4, 0x81, Data[0]

Lens zoom, write

0xf4, 0x82, Data[0]

X X V

Lens focus, write Lens center, write Query for 'About'

0xf4, 0x83, Data[0] 0xf4, 0x88

0x2A(prefixed), 0x01, 0xA2 0x2A(prefixed), Data [0]: Model Name

page

0x01, 0xA2, Data [0..n]

0x01: CLM W6 0x02: CLM HD6 Data [1..10]: Serial No. Data [11..14]: System FW version Data [15/16]: Main/PIP Source 0x01: HDMI1 0x02: HDMI2 0x03: VGA1 0x04: VGA2 0x05: RGB 0x06: YUV 0x07: S-Video 0x08: Video. 0x1A: Invalid Data [17]: Pixel Clock (MHz) - Integer Data [18]: Pixel Clock (MHz) -Decimal fraction * 256 Data [19]: V Refresh Rate (Hz, 1Byte) Data [20]: H Refresh Rate (KHz) - Integer Data [21]: H Refresh Rate (KHz) -Decimal fraction * 256 Data [22]: Signal Format. 0x01: Separate 0x02: Sync on Green 0x03: Sync on Composite. 0x00: Invalid. Data [23..26]: Lamp1 Run Time Data [27..30]: Lamp2 Run Time Data [31]: Lamp1 ON/OFF 0x00: OFF 0x01: ON Data [32]: Lamp2 ON/OFF 0x00: OFF 0x01: ON Data [33..36]: Projector Run Time Data [37]: Projector Status 0x00: OFF

0x01: ON Data [38]: Rear Projection 0x00: Front 0x01: Rear Data [39]: Ceiling Mode 0x00: Desktop 0x01: Ceiling Data [0..3]: IP Address Data [4..7]: Subnet Mask Data [8..11]: Gateway Data [12]: DHCP 0x00: OFF 0x01: ON

Set TCP/IP

0x2A(prefixed), 0x01, 0xA3, Data [0..n]

Data [0]: Projector ON/Standby 0x00: OFF 0x01: ON Data [1]: Pause ON/OFF 0x00: OFF 0x01: ON Data [2]: Text ON/OFF 0x00: OFF 0x2A(prefixed), 0x01: ON Query for general 0x2A(prefixed), 0x02, 0xA2 0x02, 0xA2, Data Data [3]: Source page [0..n] 0x01: HDMI1 0x02: HDMI2 0x03: VGA1 0x04: VGA2 0x05: RGB 0x06: YUV 0x07: S-Video 0x08: Video 0x1A: Invalid Query for 'Image Setting' page (Network module using) Data [0]: Contrast 0x2A(prefixed), Data [1]: Brightness 0x2A(prefixed), 0x03, 0xA2 0x03, 0xA2, Data Data [2]: Color [0..n] Data [3]: Tint Data [4]: Sharpness value.

OSD range: -7 ~ +8 mapping to Data [4] range: 0 ~ 15. Data [5]: Phase value. OSD range: -32 ~ +32 mapping to Data [5] range: 0 ~ 64. Data [6]: Gamma Data [7]: Color Flag 0x00: OFF 0x01: ON Data [8]: Tint Flag 0x00: OFF 0x01: ON Data [0]: Horz. Keystone. Data [1]: Ver. Keystone. Data [2]: Horz. Pincushion Data [3]: Ver. Pincushion Note: Keystone / Pincushion OSD range: -127 ~ +127 mapping to Data [n, n+1] range: 0 ~ 254. Data [4]: Aspect Ratio Query for 0x2A(prefixed), 0x01: 5:4 'Geometry Adjust' 0x2A(prefixed), 0x04, 0xA2 0x04, 0xA2, Data 0x02: 4:3 page [0..n] 0x03: 16:10 0x04: 16:9 0x05: 1.88 0x06: 2.35 0x07: Native 0x08: Unscaled 0x00: Invalid Data [5]: Auto Keystone Data [0]: Color Temp. 0x01: 3200. 0x02: 5400. Query for 0x2A(prefixed), 0x03: 6500. 'Advanced Control' 0x2A(prefixed), 0x05, 0xA2 0x05, 0xA2, Data 0x04: 8800. page [0..n] 0x05: Native. 0x00: Invalid. Data [1]: Gain R

Data [2]: Gain G Data [3]: Gain B Data [4]: Offset R Data [5]: Offset G Data [6]: Offset B Note: Gain / Offset OSD range: -127 ~ +127 mapping to Data [n, n+1] range: 0 ~ 254. Data [7]: Frame Rate 0x00: Auto 0x01: 50Hz 0x02: 60Hz Data [8]: Vedio Standard 0x00: Auto 0x01: NTSC 0x02: PAL Data [0..3]: IP Address Data [4..7]: Subnet Mask 0x2A(prefixed), Data [8..11]: Gateway 0x2A(prefixed), 0x06, 0xA2 0x06, 0xA2, Data Data [12]: DHCP [0..n] 0x00: OFF 0x01: ON Data [13..16]: LAN FW version Data [0]: Error Code 0x00: Lamp 1 fail. 0x01: Lamp 2 fail. 0x02: Lamp both fail. 0x03: F-type fan error. 0x04: R-type fan error. 0x2A(prefixed), 0x05: DDP302x not ready. 0x2A(prefixed), 0x07, 0xA2 0x07, 0xA2, Data 0x06: TEC error. [0] 0x07: Over temperature. 0x08: Lamp 1 striking fail. 0x09: Lamp 2 striking fail. 0x0A: Lamp both striking fail. 0x0B: Color wheel error. 0x0C: Reserved 0x0D: System standby.

Query for 'IP Configuration' page

Query for 'Diagnostics' page

0x0E: System cooling. 0x0F: System warm up. 0x10: System normal operating. 0x11: F-type fan calibration. 0x12: Download mode. 0x13: Invalid. X Query serial no. 0x2A(prefixed), 0x2A(prefixed), 0x08, 0xA2 0x08, 0xA2, Data Data [0..9]: 10 characters Serial No. [0..9]

S-ar putea să vă placă și