Download - Barco Clm Hd 6 Rs232 Code
The Barco CLM W6 / HD6 Protocol Basics
Command basics
Command baud rate
Baud Rate 115200 (default)/ 19200 / 9600 (OSD setting)
Data Bits 8
Parity None
Stop Bits 1
Flow Control None
UART16550 FIFO Disable
Command structure
Each command is packaged in this structure:
0xFE 0x00 PREFIX CMD DATA CHK 0xFF
Start byte
(1 byte)
Device address
(1 byte)
Prefix (0..n
bytes)
Command
(1..n bytes)
Data (0..n
bytes)
Checksum
(1 byte)
Stop byte
(1 byte)
Explanation:
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:
Byte to send Actual mark-up of
the byte to send
0x80 0x80 0x00
0xFE 0x80 0x7E
0xFF 0x80 0x7F
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] 0x00
Command[1] 0x06
An ACK is sent in these cases:
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 0xFE
Device
address: 0x00
Command[0] 0x00
Command[1] 0x15
Checksum 0x15
Stop byte 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 0xFE
Device
address: 0x00
Command[0] 0x6b
Checksum 0x6b
Stop byte 0xFF
Acknowledge:
Start byte 0xFE
Device
address: 0x00
Command[0] 0x00
Command[1] 0x06
Checksum 0x06
Stop byte 0xFF
Reply:
Start byte 0xFE
Device
address: 0x00
Command[0] 0x6b
Data[0] 0x42 = 'B'
Data[1] 0x41 = 'A'
Data[2] 0x52 = 'R'
Data[3] 0x43 = 'C'
Data[4] 0x4f = 'O'
Data[5] 0x20 = ' '
Data[6] 0x46 = 'F'
Data[7] 0x4c = 'L'
Data[8] 0x4d = 'M'
Data[9] 0x20 = ' '
Data[10] 0x48 = 'H'
Data[11] 0x31 = '1'
Data[12] 0x38 = '8'
Data[13] 0x00
Checksum 0x03
Stop byte 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 Note
V Answer 0x00, 0x03, Data[0] 0x00, 0x03,
Data[1]
Data[0]:
bit0 =0
bit1 =1 return with success after the
command has been executed
bit2 =0
bit3 =0
bit4 =0
bit5 =0
bit6 =0
bit7 =0
Data[1]:
0x01 for success
0x00 for no success
V Acknowledge 0x00, 0x06
V No acknowledge 0x00, 0x15
X P7 mcgd, Read 0x00, 0xC2 0x00, 0xC2,
Data[0..n]
X P7 mcgd, write 0x00, 0xC2, Data[0..n]
Data[0] RedX MSB
Data[1] RedX LSB
Data[2] RedY MSB
Data[3] RedY LSB
Data[4] GreenX MSB
Data[5] GreenX LSB
Data[6] GreenY MSB
Data[7] GreenY LSB
Data[8] BlueX MSB
Data[9] BlueX LSB
Data[10] BlueY MSB
Data[11] BlueY LSB
Data[12] WhiteX MSB
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
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] A Y Luminance MSB (for
DDP3020F)
Data[47] A Y Luminance LSB
(for DDP3020F)
Data[48] B Y Luminance MSB
(for DDP3020F)
Data[49] B Y Luminance LSB
(for DDP3020F)
Data[50] C Y Luminance MSB
(for DDP3020F)
Data[51] C Y Luminance LSB
(for DDP3020F)
Data[52] D Y Luminance MSB
(for DDP3020F)
Data[53] 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 Text, write to on 0x0d
X Text, write to off 0x0e
X Contrast, write 0x20, 0x01, Data[0]
X Contrast, read 0x21,0x01 0x21, 0x01,
Data[0]
Data [0] = Contrast value.
X Brightness, write 0x20, 0x02, Data[0]
X Brightness, read 0x21,0x02 0x21, 0x02,
Data[0]
Data [0] = Brightness value.
X Saturation, write 0x20, 0x03, Data[0]
X Saturation, read 0x21,0x03 0x21, 0x03,
Data[0]
Data [0] = Saturation value.
X Tint, write 0x20, 0x04, Data[0]
X Tint, read 0x21, 0x04 0x21, 0x04,
Data[0]
Data [0] = Tint value.
X Sharpness, write 0x20, 0x05, Data[0]
X Sharpness, read 0x21, 0x05 0x21, 0x05,
Data[0]
Data [0] = Sharpness value.
OSD range: -7 ~ +8 mapping to
Data [0] range: 0 ~ 15.
X Phase, write 0x20, 0x06, Data[0]
X Phase, read 0x21, 0x06 0x21, 0x06,
Data[0]
Data [0] = Phase value.
OSD range: -32 ~ +32 mapping to
Data [0] range: 0 ~ 64.
X Aspect ratio, write 0x20, 0x0b, 0xc0, Data[0]
Data [0]: Aspect Ratio
0x00: 5:4
0x01: 4:3
0x02: 16:10
X 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 Aspect ratio width,
read 0x21, 0x0b, 0xc1
0x21, 0x0b,
0xc1, Data[0..3]
Data[0..3] aspect ratio width as a
DWORD
X Aspect ratio height,
read 0x21, 0x0b, 0xc2
0x21, 0x0b,
0xc2, Data[0..3]
Data[0..3] aspect ratio height as a
DWORD
X Lamp dimming,
write 0x20, 0x0d, Data[0]
X Lamp dimming,
read 0x21, 0x0d
0x21, 0x0d,
Data[0]
Data[0]:
0x00 85%
0x01 87.5%
0x02 90%
0x03 92.5%
0x04 95%
0x05 97.5%
0x06 100%
X H Total, write 0x20, 0x10, Data[0]
X H Total, read 0x21, 0x10 0x21, 0x10,
Data[0]
Data [0] = H Total.
OSD range: -127 ~ +127 mapping to
Data [0] range: 0 ~ 254.
X H Start, write 0x20, 0x11, Data[0]
X H Start, read 0x21, 0x11, 0x21, 0x11,
Data[0]
Data [0] = H Start
OSD range: -127 ~ +127 mapping to
Data [0] range: 0 ~ 254.
X V Start, write 0x20, 0x12, Data[0]
X V Start, read 0x21, 0x12, 0x21, 0x12,
Data[0]
Data [0] = V Start
OSD range: -127 ~ +127 mapping to
Data [0] range: 0 ~ 254.
X Film mode, write 0x20, 0x13, Data[0]
X Film mode, read 0x21, 0x13 0x21, 0x13,
Data[0]
Data[0]: Film mode
0x00: OFF
0x01: ON
X Format, write 0x20, 0x14, Data[0] Data[0]: Format
X Format, read 0x21, 0x14 0x21, 0x14,
Data[0]
0x00: YUV
0x01: RGB
0x02: AUTO
X Display mode,
write 0x20, 0x15, Data[0]
X Display mode, read 0x21, 0x15 0x21, 0x15,
Data[0]
Data[0]: Display mode
0x00: Presentation
0x01: Video
0x02: Bright
X Shutter (pause),
read 0x21, 0x42
0x21, 0x42,
Data[0] Data [0] = 0 for open and 1 for close.
X Shutter (pause),
write to open 0x22, 0x42, 0x00
X Shutter (pause),
write to close 0x23, 0x42, 0x00
X Color temperature,
write 0x20, 0x45, Data[0]
X Color temperature,
read 0x21, 0x45
0x21, 0x45,
Data[0]
Data [0]: Color Temp.
0x00: 3200.
0x01: 5400.
0x02: 6500.
0x03: 8800.
0x04: Native.
X Input black
balance, write 0x20, 0x6e, Color, Data[0]
X Input black
balance, read 0x21, 0x6e, Color
0x21, 0x6e,
Color, Data[0]
X Input white
balance, write 0x20, 0x6f, Color, Data[0]
X Input white
balance, read 0x21, 0x6f, Color
0x21, 0x6f,
Color, Data[0]
Color: 0x00 for red
0x01 for green
0x02 for blue
Data [0] = value as BYTE.
OSD range: -127 ~ +127 mapping to
Data [0] range: 0 ~ 254.
X Gamma, write 0x20, 0x70, Data[0]
Data [0] = gamma value as BYTE.
0x00 1.3
0x01 1.6
0x02 1.8
X Gamma, read 0x21, 0x70 0x21, 0x70,
Data[0]
0x03 2.0
0x04 2.2
0x05 2.4
0x06 2.6
0x07 2.8
X Noise reduction,
write 0x20, 0x73, Data[0]
X Noise reduction,
read 0x21, 0x73
0x21, 0x73,
Data[0]
Data [0] = noise reduction value.
(ranges from 0 to 32)
X Noise reduction,
increment 0x22, 0x73
X Noise reduction,
decrement 0x23, 0x73
X No signal color,
write 0x20, 0x7b, Data[0]
X No signal color,
read 0x21, 0x7b
0x21, 0x7b,
Data[0]
Data[0]: background color
0x01 for logo,
0x02 for blue,
0x03 for black,
0x04 for white,
0x05 for snapshot
X P7 status, write 0x20, 0x97, 0x04, Data[0]
Data [0]: Color Space.
0x00: Native.
0x01: Custom.
X P7 tcgd, read (1) 0x21, 0x97, 0x00, 0x00
0x21, 0x97,
0x00, 0x00,
Data[0..n]
Data[0] 0x00
Data[1] RedX MSB
Data[2] RedX LSB
Data[3] RedY MSB
Data[4] RedY LSB
Data[5] 0
Data[6] 0
Data[7] GreenX MSB
Data[8] GreenX LSB
Data[9] GreenY MSB
Data[10] GreenY LSB
Data[11] 0
Data[12] 0
Data[13] BlueX MSB
Data[14] BlueX LSB
Data[15] BlueY MSB
Data[16] BlueY LSB
Data[17] 0
Data[18] 0
Data[19] MagentaX
MSB
Data[20] MagentaX LSB
Data[21] MagentaY
MSB
Data[22] MagentaY LSB
Data[23] 0
Data[24] 0
Data[25] CyanX MSB
Data[26] CyanX LSB
Data[27] CyanY MSB
Data[28] CyanY LSB
Data[29] 0
Data[30] 0
Data[31] YellowX MSB
Data[32] YellowX LSB
Data[33] YellowY MSB
Data[34] YellowY LSB
Data[35] 0
Data[36] 0
Data[37] WhiteX MSB
Data[38] WhiteX LSB
Data[39] WhiteY MSB
Data[40] 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
X P7 tcgd, write (1) 0x20, 0x97, 0x00, 0x00,
Data[0..n]
Data[0] RedX MSB
Data[1] RedX LSB
Data[2] RedY MSB
Data[3] RedY LSB
Data[4] 0
Data[5] 0
Data[6] GreenX MSB
Data[7] GreenX LSB
Data[8] GreenY MSB
Data[9] GreenY LSB
Data[10] 0
Data[11] 0
Data[12] BlueX MSB
Data[13] BlueX LSB
Data[14] BlueY MSB
Data[15] BlueY LSB
Data[16] 0
Data[17] 0
Data[18] WhiteX MSB
Data[19] WhiteX LSB
Data[20] WhiteY MSB
Data[21] 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
X P7 tcgd, read (3) 0x21, 0x97, 0x00, index
0x21, 0x97,
0x00, index,
Data[0..1]
Index:
0x01 RedX
0x02 RedY
0x04 GreenX
0x05 GreenY
0x07 BlueX
0x08 BlueY
0x0a Magenta
X
0x0b 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
X P7 tcgd, write (3) 0x20, 0x97, 0x00, index,
Data[0..1]
Index:
0x01 RedX
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.
X Lamp powermode,
write 0x20, 0x98, Data[0]
X Lamp powermode,
read 0x21, 0x98
0x21, 0x98,
Data[0]
Data[0]: lamp power mode
0x01 for normal,
0x02 for economic,
0x06 for power
X Reset Warp 0x20, 0xa0, 0x00
X Vertical keystone
warping, write 0x20, 0xa1, 0x01, Data[0..1]
X Vertical keystone
warping, read 0x21, 0xa1, 0x01
0x21, 0xa1,
0x01, Data[0..1]
X
Horizontal
keystone warping,
write
0x20, 0xa1, 0x02, Data[0..1]
X
Horizontal
keystone warping,
read
0x21, 0xa1, 0x02 0x21, 0xa1,
0x02, Data[0..1]
Data [0] = MSB of value.
Data [1] = LSB of value.
OSD range: -60 ~ +60 mapping to
Data [0, 1] range: 0 ~ 120.
X BarrelPinchusion,
Write 0x20, 0xa1, 0x04, Data[0..1]
X BarrelPinchusion,
Read 0x21, 0xa1, 0x04
0x21, 0xa1,
0x04, Data[0..1]
Data [0] = MSB of value.
Data [1] = LSB of value.
OSD range: -127 ~ +127 mapping
to Data [0, 1] range: 0 ~ 254.
X BarrelPinchusion
Vertical, Write 0x20, 0xa1, 0x08, Data[0..1]
X BarrelPinchusion
Vertical, Read 0x21, 0xa1, 0x08
0x21, 0xa1,
0x08, Data[0..1]
X BarrelPinchusion
Horizontal, Write 0x20, 0xa1, 0x09, Data[0..1]
X BarrelPinchusion
Horizontal, Read 0x21, 0xa1, 0x09
0x21, 0xa1,
0x09, Data[0..1]
X Rear, Write 0x20, 0xa2, Data[0]
X Rear, Read 0x21, 0xa2 0x21, 0xa2,
Data[0]
Data[0]: Rear
0x00: OFF
0x01: ON
X Ceiling, Write 0x20, 0xa3, Data[0]
X Ceiling, Read 0x21, 0xa3 0x21, 0xa3,
Data[0]
Data[0]: Celilng
0x00: OFF
0x01: ON
X Frame rate, write 0x20, 0xa4, Data[0]
X Frame rate, read 0x21, 0xa4 0x21, 0xa4,
Data[0]
Data[0]: Frame rate
0x00 for Auto,
0x01 for 50Hz
0x02 for 60Hz
X Video standard,
write 0x20, 0xa5, Data[0]
X Video standard,
read 0x21, 0xa5
0x21, 0xa5,
Data[0]
Data[0]: Video standard
0x00 for Auto,
0x01 for NTSC,
0x02 for PAL
X Auto Power Off,
write 0x20, 0xa6, Data[0]
X Auto Power Off,
read 0x21, 0xa6
0x21, 0xa6,
Data[0]
Data[0]: Auto Power Off
0x00: OFF
0x01: ON
X Auto Power On,
write 0x20, 0xa7, Data[0]
X Auto Power On,
read 0x21, 0xa7
0x21, 0xa7,
Data[0]
Data[0]: Auto Power On
0x00: OFF
0x01: ON
X A image adjust,
write 0x20, 0xa8, Data[0]
Data[0]: A image adjust
0x00: OFF
X A image adjust,
read 0x21, 0xa8
0x21, 0xa8,
Data[0]
0x01: Always
0x02: Auto
X Up, IR commands 0x30, 0x04
X Down, IR
commands 0x30, 0x05
X Right, IR
commands 0x30, 0x06
X Left, IR commands 0x30, 0x07
X Menu, IR
commands 0x30, 0x0A
X Enter, IR
commands 0x30, 0x0B
X Freeze, IR
commands 0x30, 0x1B
X PIP, IR commands 0x30, 0x58
X Swap, IR
commands 0x30, 0x68
X Auto image, IR
commands 0x30, 0x69
X Lens, IR
commands 0x30, 0x81
X Aspect ratio, IR
commands 0x30, 0x82
X Contrast, IR
commands 0x30, 0x83
X Brightness, IR
commands 0x30, 0x84
X Sharpness, IR
commands 0x30, 0x85
X Phase, IR
commands 0x30, 0x86
X Color, IR
commands 0x30, 0x87
X Tint, IR commands 0x30, 0x88
X Address, IR
commands 0x30, 0x89
X Pause, IR
commands 0x30, 0x8A
X Text, IR commands 0x30, 0x8B
X Settings, reset to
factory 0x31
X Input selection,
write 0x33, Data[0]
X Input selection,
read 0x34 0x34, Data[0]
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.
X
UDP broadcast
discovery (network
only)
0x3F
Hostname,
ip-address,
mac-address,
type
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.
Typically, following strings will be
returned:
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
X 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)
X 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)
V Writes lamp
selection 0x58, data[0]
data[0] = lamp status value
0x00 = OFF
0x01 = Single
0x02 = Dual
0x03 = Auto
X White peaking,
write
0x58(prefixed), 0x20, 0x40,
Data[0]
X White peaking,
read 0x58(prefixed), 0x21, 0x40 Data[0]
Data[0] = white peaking value (ranges
from 0 to 10)
X Color wheel index,
write
0x58(prefixed), 0x20, 0x41,
Data[0, 1]
X Color wheel index,
read 0x58(prefixed), 0x21, 0x41 Data[0, 1]
Data[0] = MSB of color wheel index
Data[1] = LSB of color wheel index
V Versions, read
(clm)
0x60, from data index, to
data index
0x60, from data
index, to data
index, Data [0..n]
index table:
0x00 PW392
0x04 DDP302X
0x08 PIC
0x0C Lan Module
0x10 Waveform
0x14 EDID
Each version set consists of 4 bytes
byte[0,1] version major number
(A,B,C,…)
byte[2,3] build number
V Standby check,
read 0x67, 0x01 Data[0]
Data [0]: standby check
0x00 for standby
0x01 for projector on.
X Text, read 0x67, 0x02 Data[0] Data [0] = 0 for off and 1 for on.
V Lamp status, read 0x67, 0x40 Data[0]
Data[0] = lamp status
0x00 = lamp(s) are off,
0x01 = lamp(s) are on
V Lamp setting, write 0x68, 0x40, Data[0]
V Lamp setting, read 0x68, 0x41 Data[0]
Data[0] = lamp setting
0x01 = single
0x02 = dual
X High Altitude,
write 0x69, 0x40, Data[0]
X High Altitude, read 0x69, 0x41 Data[0]
Data[0] = High Altitude
0x00: OFF
0x01: ON
V Lamp max runtime,
read 0x76, 0x89, Data[0] Data1[0..3]
Data[0] = lamp number (1=lamp 1,
2=lamp 2, ...)
Data1[0..3] = the maximum lamp
runtime (in seconds)
V Lamp runtime, read 0x76, 0x90, Data[0] Data[0],
Data[1..4]
Data[0] = lamp number (1=lamp 1,
2=lamp 2, ...)
Data[1..4] = the lamp runtime (in
seconds)
V Lamp on, read 0x76, 0x9a, Data[0] Data1[0]
Data[0] = lamp number (1=lamp 1,
2=lamp 2, ...)
Data1[0]: 0: lamp is off / 1: lamp is on
V Diagnosis, read 0x81, 0x03, from, to 0x81, 0x03,
from, to, Data[0]
from = 0 & to = 0,
Data[0] = temperature ambient
X IR address, write 0x90, 0x00, Data[0]
X IR address, read 0x91, 0x00 Data[0]
Data[0] = High Altitude
0x00: Custom 1
0x01: Custom 2
0x02: Custom 3
0x03: Custom 4
X Auto source, write 0x90, 0x01, Data[0]
X Auto source, read 0x91, 0x01 Data[0]
Data[0] = Auto source
0x00: OFF
0x01: ON
X Menu position,
write 0x90, 0x02, Data[0]
X Menu position,
read 0x91, 0x02 Data[0]
Data[0] = Menu position
0x00: Top Left
0x01: Top Right
0x02: Center
0x03: Bottom Left
0x04: Bottom Right
X Main zoom in/out,
write 0xA0, 0x00, Data[0]
X Main zoom in/out,
read 0xA1, 0x00 Data[0]
Data [0] = Main zoom in/out.
OSD range: -10 ~ +10 mapping to
Data [0] range: 0 ~ 20
Step: 2
X PIP enable, write 0xA0, 0x01, Data[0] Data[0] = PIP enable
X PIP enable, read 0xA1, 0x01 Data[0] 0x00: OFF
0x01: ON
X PIP select, write 0xA0, 0x02, Data[0]
X PIP select, read 0xA1, 0x02 Data[0]
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.
X PIP size, write 0xA0, 0x03, Data[0]
X PIP size, read 0xA1, 0x03 Data[0]
Data[0] = PIP size
0x00: Small
0x01: Medium
0x02: Large
X PIP position, write 0xA0, 0x04, Data[0]
X PIP position, read 0xA1, 0x04 Data[0]
Data[0] = PIP position
0x00: Top Left
0x01: Top Right
0x02: Bottom Left
0x03: Bottom Right
X Resolution, read 0xf0, 0x01 Data[0..3]
4 data bytes:
X resolution = data[0] * 256 + data[1]
Y resolution = data[2] * 256 + data[3]
X Lens shift, write 0xf4, 0x81, Data[0]
Data[0]: shift direction
0x00 for shift up,
0x01 for shift down,
0x02 for shift left,
0x03 for shift right
X Lens zoom, write 0xf4, 0x82, Data[0]
Data[0]: zoom direction
0x00 for zoom in,
0x01 for zoom out,
X Lens focus, write 0xf4, 0x83, Data[0]
Data[0]: focus direction
0x00 for focus out,
0x01 for focus in,
X Lens center, write 0xf4, 0x88
V Query for 'About' 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
V Set TCP/IP 0x2A(prefixed), 0x01,
0xA3, Data [0..n]
Data [0..3]: IP Address
Data [4..7]: Subnet Mask
Data [8..11]: Gateway
Data [12]: DHCP
0x00: OFF
0x01: ON
X Query for ‘general’
page 0x2A(prefixed), 0x02, 0xA2
0x2A(prefixed),
0x02, 0xA2, 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
0x01: ON
Data [3]: Source
0x01: HDMI1
0x02: HDMI2
0x03: VGA1
0x04: VGA2
0x05: RGB
0x06: YUV
0x07: S-Video
0x08: Video
0x1A: Invalid
X
Query for 'Image
Setting' page
(Network module
using)
0x2A(prefixed), 0x03, 0xA2
0x2A(prefixed),
0x03, 0xA2, Data
[0..n]
Data [0]: Contrast
Data [1]: Brightness
Data [2]: Color
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
X
Query for
'Geometry Adjust'
page
0x2A(prefixed), 0x04, 0xA2
0x2A(prefixed),
0x04, 0xA2, Data
[0..n]
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
0x01: 5:4
0x02: 4:3
0x03: 16:10
0x04: 16:9
0x05: 1.88
0x06: 2.35
0x07: Native
0x08: Unscaled
0x00: Invalid
Data [5]: Auto Keystone
X
Query for
'Advanced Control'
page
0x2A(prefixed), 0x05, 0xA2
0x2A(prefixed),
0x05, 0xA2, Data
[0..n]
Data [0]: Color Temp.
0x01: 3200.
0x02: 5400.
0x03: 6500.
0x04: 8800.
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
V
Query for 'IP
Configuration'
page
0x2A(prefixed), 0x06, 0xA2
0x2A(prefixed),
0x06, 0xA2, Data
[0..n]
Data [0..3]: IP Address
Data [4..7]: Subnet Mask
Data [8..11]: Gateway
Data [12]: DHCP
0x00: OFF
0x01: ON
Data [13..16]: LAN FW version
V Query for
'Diagnostics' page 0x2A(prefixed), 0x07, 0xA2
0x2A(prefixed),
0x07, 0xA2, Data
[0]
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.
0x05: DDP302x not ready.
0x06: TEC error.
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.
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), 0x08, 0xA2
0x2A(prefixed),
0x08, 0xA2, Data
[0..9]
Data [0..9]: 10 characters Serial No.