InFocus Projector C105 User Manual

Version 1.0  
C85/C95/C105  
REVISED  
VERIFIED  
n.a.  
APPROVED  
n.a.  
 
Projector Control  
1 SETTING UP  
To enable serial control, do the following:  
·
·
Remove the check mark from “Serial Mouse” in the Projector’s FEATURE MENU. This changes the Baudrate from  
1200 to 9600 and turns of the Serial mouse data.  
Connect the serial (COM) port from the Host to the RS232 connector on the projector  
1.1 Rs232 Control Cables  
Please order the following parts:  
Part Number  
301.102A  
301.113B  
Description  
Mouse Cable 4 meter  
PC Mouse Adapter RS232 Straight  
Table 1  
1.2 RS232 Settings  
If SerialMouse is deselected the setting is:  
Parameter  
Baudrate  
Data bit  
Default setting  
9600  
8
Parity bit  
Stop bit  
None  
1
Flow Control  
None  
Table 2  
If SerialMouse is selected the setting is:  
Parameter  
Baudrate  
Data bit  
Default setting  
1200  
8
Parity bit  
Stop bit  
None  
1
Flow Control  
None  
Table 3  
If the serial mouse is enabled the projector sends mouse data whenever the user  
moves the trackball on the Batmouse.  
Page 3  
Version 1.  
 
Projector Control  
2 GENERAL  
This document describes the Communication Protocol between a Proxima® Projector and a Computer (Host).  
By using this connection the Host will be able control the projector.  
This document is HEX command based only and a regular Terminal program like hyperterminal etc. can  
therefore not directly be used unless the COM port are activated by the user. This document is aimed at control  
systems in general which is HEX based.  
3 FUNCTION TYPE  
The Function is grouped in four different function types:  
Function type  
Execute  
Comments  
An execute function executes an action on the projector, i.e.  
only one state.  
State  
A State function performs a set operation from a predefined  
list of states. Not all values in the range  
have to be legal.  
State String  
Adjust  
As state but returns ASCII strings  
An adjust function is characterized by Maximum >  
Minimum. And all the integer values between Minimum and  
Maximum are legal.  
Table 4  
4 PROTOCOL MESSAGES  
4.1 Message Formats  
The message is always divided in a header and a body part:  
Message Head (7Byte)  
Message Body (6Byte)  
4.1.1 Message Head  
The message head has the following structure:  
Byte 0  
0xBE  
Byte 1  
Magic Number  
0xEF  
Byte 2  
0x80  
Byte 3  
Body size  
0x06  
Byte 4  
0x00  
Byte 5  
Byte 6  
CRC  
CRC_lo  
CRC_hi  
Table 5  
All values is in hexadecimal indicated with the leading 0x. The Magic number is used for synchronizing the start of a  
message. The Body size is set to the number of bytes contained in the Body part of the message.  
Page 4  
Version 1.  
 
Projector Control  
Currently there is only one type of body so the size is fixed to 0x0006. The CRC field contains the CRC of the message.  
The CRC algorithm is given in Appendix 1. To disable CRC set CRC_lo=0x00 and CRC_hi = 0x00.  
The Message Head – if the CRC are disabled – then looks like the following string:  
0xBE 0xEF 0x80 0x06 0x00 0x00 0x00. This Head will be present in all strings sent to the projector from the host.  
4.1.2 Message Body  
The message body has the following structure:  
Byte 0  
Byte 1  
Byte 2  
Function  
FuncNum_lo 0x00  
Byte 3  
Byte 4  
Byte 5  
Value  
Opval_hi  
Operation Type  
OpTypeLo  
0x00  
Opval_lo  
Table 6  
4.1.2.1 Field description  
Field Name  
Field Value  
Description  
OpTypeLo  
0x01  
Operation Type  
Operation Set. Set current value  
0x02  
Operation Get. Gets the current value  
0x03  
Operation Initialize. Initialize the value to default.  
Should not be used  
0x04  
0x05  
0x06  
Operation Increment. Increment the value by one  
step. Only valid for “Adjust” functions.  
Operation Decrement. Decrement the value by one  
step. Only valid for “Adjust” functions.  
Operation Execute. Execute the operation. Only  
used for “Execute” operations  
FuncNum  
-
The actual function number to execute. A list of  
usable FuncNum is given in Chapter 9  
Function  
Value  
Only used by Operation Set. The actual value to set  
the operation to. For all other operation actions, this  
field is set to 0x0000.  
Table 7  
Page 5  
Version 1.  
 
Projector Control  
5 COMMAND RETURN CODES  
The Serial protocol returns an acknowledgment (“return code”) for every packet sent. If  
the host sends a packet, then the projector acknowledge the receipt of this packet. The return codes are detailed in the table  
below.  
Command Return Code Name  
ACK  
Return Code Value  
0x06  
Description  
Packet acknowledged – no errors. Normal  
response when receiving  
NAK  
ERR  
0x15  
Packet not acknowledged – some error occurred in  
receiving this packet. Usually  
Indicates a CRC error.  
Packet was received OK, but an error occurred  
when executing the command contained in the  
Packet. The two bytes following the 0x1C  
(0xXXXX) are the error code  
0x1C 0xXXXX  
VAL  
0x1D 0xXX 0xYY  
Strings 0x06  
Packet value returned. This return code will be  
sent in response to a Operation packet of type  
OPERATION_GET. The first byte after 0x1D  
(0xXX), is the least-byte of the returned value. The  
0xYY is the most significant-byte of the returned  
value.  
STRING  
ASCII Strings and at last ACK  
Table 8  
TRANSACTION EXAMPLES  
Example 1: Set  
Host:  
Projector  
Operation Set Packet =>  
<= ACK  
Example 2: Get  
Operation Get Packet =>  
<= VAL  
VAL=0x1D 0x00 0x03 means that 0x0300 is returned  
Example 3: Hex sequence for Set Brightness to 70% => 0.7*255 = 178 = 0xB2  
Host:  
0xBE 0xEF 0x80 0x06 0x00 0x2E 0x04 0x01 0x00 0x11 0x00 0xB2 0x00  
Magic number Body size  
CRC  
Op.type Function  
Value  
7byte Message Head  
6byte Message Body  
Projector:  
0x06  
Example 4: Hex sequence for power on (with CRC deactivated)  
Page 6  
Version 1.  
 
Projector Control  
Host:  
0xBE 0xEF 0x80 0x06 0x00 0x00 0x00 0x01 0x00 0x01 0x00 0x01 0x00  
Example 5: Hex sequence for get Brightness  
Host: =>  
0xBE 0xEF 0x80 0x06 0x00 0xBD 0x70 0x02 0x00 0x11 0x00 0x00 0x00  
<= Projector (70%)  
0x1D 0x00 0xB2  
Example 5: To get ASCII Information Set Parameter in the State String function  
Host:  
Projector  
Operation Set Packet =>  
<=ASCII Strings  
<= ACK  
Page 7  
Version 1.  
 
Projector Control  
6 TABLE OF FUNCTIONS  
Scr.dep = Source depended  
Function  
FuncNum  
F.type  
States  
Minimum  
Maximum  
Power  
0x01  
State  
1 (On)  
-
-
0 (Off)  
Reset  
Tune  
Width  
Horizontal  
position  
0x02  
0x03  
0x04  
0x05  
Execute  
Adjust  
Adjust  
Adjust  
-
-
-
-
-
-
0
0
0
255  
4095  
4095  
Vertical position 0x06  
Adjust  
Adjust  
State  
-
-
0
0
-
4095  
3
-
ColorTemp  
Rear  
0x07  
0x08  
1 (On)  
0 (Off)  
1 (On)  
0 (Off)  
-
Ceiling  
0x09  
State  
-
-
-
-
Factory reset  
0x0A  
Execute  
Table 9  
Function  
Contrast  
Brightness  
Tint  
Color  
Sharpness  
FuncNum  
0x10  
0x11  
0x12  
0x13  
F.type  
Adjust  
Adjust  
Adjust  
Adjust  
State  
States  
-
-
-
Minimum  
Maximum  
0
0
0
0
-
255  
255  
255  
255  
-
-
0x14  
5(Softest)  
6(Soft)  
7(Medium)  
8(Sharp)  
9(Sharpest)  
-
Keystone  
16:9  
0x15  
0x16  
Adjust  
State  
0
-
255  
-
1(On)  
0 (Off)  
Table 10  
Function  
Volume  
Mute  
FuncNum  
0x20  
0x21  
F.type  
Adjust  
State  
States  
-
1 (On)  
0 (Off)  
Minimum  
0
-
Maximum  
100  
-
Table 11  
Page 8  
Version 1.  
 
Projector Control  
Function  
FuncNum  
F.type  
States  
Minimum  
Maximum  
On screen display 0x30  
State  
1 (On)  
-
-
0 (Off)  
Source  
0x32  
State  
0 (VGA1)  
1 (DVI1)  
2 (S-VIDEO1)  
3 (CVBS1)  
4 (VGA2)  
5 (DVI2)  
6 (S-VIDEO2)  
7 (CVBS2)  
0 (English)  
1(Japanese)  
2(Norwegian)  
3 (Deutch)  
4 (Italian)  
5 (Spanish)  
6 (Korean)  
7 (Simpl Chi) 8  
(Trad Chi)  
9 (Portugeese)  
10(French)  
1 (On)  
-
-
Language  
0x33  
State  
-
-
Black  
0x34  
State  
-
-
0 (Off)  
Magnify  
0x35  
0x36  
0x37  
0x38  
Adjust  
Adjust  
Adjust  
State  
-
-
-
0
26  
Pan horizontal  
Pan vertical  
Freeze  
Scr.dep  
Scr.dep  
0
Scr.dep  
Scr.dep  
1
1 (On)  
0 (Off)  
PnP  
0x39  
0x3A  
0x3B  
0x3C  
0x3D  
State  
State  
State  
State  
Adjust  
1 (On)  
0 (Off)  
1 (On)  
0 (Off)  
1 (On)  
0 (Off)  
1 (On)  
0 (Off)  
-
-
DPMS  
-
-
Source Search  
SerialMouse1  
-
-
-
-
MenuTimeOut  
-
5
50  
Table 12  
Function  
FuncNum  
F.type  
States  
Minimum  
Maximum  
Information  
0x40  
State Strings  
0
-
-
Respons is Source.  
information .  
1
Respons is Service.  
information  
Table 13  
Page 9  
Version 1.  
 
Projector Control  
APPENDIX 1: CRC CALCULATION ALGORITHM  
The following ‘C’ code can be used to calculate the 16-bit CRC required for all packets. The CRC is contained in  
the packet header and is calculated for the entire packet (header plus body). The CRC  
calculation is performed with the CRC bytes of the packet header initialized to zero.  
// Using two 256 byte lookup tables, quickly calculate a  
16-bit CRC on // a block of data.  
// Params:  
// pcData : Pointer to data to calculate CRC on.  
// nCount : Number of data bytes.  
// Return: 16-bit CRC value.  
WORD CalculateCRC16 (BYTE *pcData, int nCount)  
{
BYTE cCRCHi = 0xFF; // high byte of CRC initialized  
BYTE cCRCLo = 0xFF; // low byte of CRC initialized  
BYTE cIndex; // will index into CRC lookup table  
while (nCount--) // step through each byte of data  
{
cIndex = cCRCHi ^ *pcData++; //  
calculate the CRC  
cCRCHi = cCRCLo ^ cCRCHiArray[cIndex];  
cCRCLo = cCRCLoArray[cIndex];  
}
return (cCRCHi << 8) + cCRCLo;  
}
Page 10  
Version 1.  
 
Projector Control  
// Lookup table used for hi-byte of CRC  
static const BYTE cCRCHiArray[] = {  
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0,  
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,0x41,  
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0,  
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40,  
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00,0xC1,  
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80,0x41,  
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00,0xC1,  
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,0x41,  
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0,  
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,0x40,  
0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00,0xC1,  
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40,  
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0,  
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,0x40,  
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0,  
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40,  
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0,  
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,0x41,  
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0,  
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,0x41,  
0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0,  
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,0x40,  
0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00,0xC1,  
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,0x41,  
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0,  
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40  
};  
Page 11  
Version 1.  
 
Projector Control  
// Lookup table used for low-byte of CRC  
static const BYTE cCRCLoArray[] = {  
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6,0x06,  
0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D,0xCD,  
0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9,0x09,  
0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA,0x1A,  
0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14,0xD4,  
0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13,0xD3,  
0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33,0xF3,  
0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34,0xF4,  
0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA,0x3A,  
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9,0x29,  
0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D,0xED,  
0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6,0x26,  
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0,0x60,  
0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7,0x67,  
0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF,0x6F,  
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8,0x68,  
0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE,0x7E,  
0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75,0xB5,  
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1,0x71,  
0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52,0x92,  
0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C,0x5C,  
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B,0x5B,  
0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B,0x8B,  
0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C,  
0x8C,0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86,  
0x82,0x42,0x43, 0x83, 0x41, 0x81, 0x80, 0x40  
};  
Page 12  
Version 1.  
 

Intel Computer Hardware SE7520AF2 User Manual
Invacare Mobility Aid Invacare Arrow User Manual
Jensen Car Stereo System MP8610BT User Manual
JVC DVD Recorder HD DH5US User Manual
JVC Home Theater Screen TM A140E User Manual
JVC VCR BR DV3000E User Manual
Karcher Carpet Cleaner K 486 M User Manual
Kenmore Clothes Dryer 41764182300 User Manual
Kenwood Car Video System KVT 729DVD User Manual
Klipsch Speaker RT 10D User Manual