Four Brands, Four Completely Different Framing Styles
There is no shared convention between projector manufacturers. Each of these four wraps its commands differently, and knowing which style you are in is most of the battle:
| Brand | Style | Power on |
|---|---|---|
| Christie | Parentheses around a 3-letter code | (PWR 1) |
| Barco (current) | Colon prefix + 4-byte mnemonic | : + mnemonic |
| Optoma | Tilde + ID + code + CR | ~0000 1 |
| BenQ | CR + key=value# + CR | pow=on# |
For the more common brands see Epson, Panasonic, Sony and NEC. If the hall mixes manufacturers, PJLink gives you one command set across all of them and is usually the better default.
Christie
Christie uses plain ASCII text wrapped in round brackets. Every message is a three-letter function code plus optional data.
(PWR 1) power on
(PWR 0) power offByte level:
(PWR 1) = 28 50 57 52 20 31 29
(PWR 0) = 28 50 57 52 20 30 29Rules worth knowing:
- The function code is three ASCII characters, upper or lower case.
- An optional four-character subcode follows the function code separated by a
+. If there is no subcode, the+is omitted entirely.
- A space between code and number is optional ā
(PXT50)and(PXT 50)are both valid.
- Do not add
?or!when setting a value. The question mark form is for queries.
- Some commands accept
n(next) andp(previous) instead of an absolute value for relative adjustment.
- Projector addressing: insert the projector number between the opening bracket and the code, valid range 0ā999.
- Ethernet control uses TCP port 3002 ā the same ASCII commands, no serial cable.
APW (Auto Power On) is worth knowing for unattended halls: it brings the projector up automatically on power application.
Note that some commands only work when the projector is already powered up ā the usual standby restriction.
Barco
Barco has two incompatible protocol generations, and identifying yours first will save an afternoon.
Current models (F35/FL35/FS35/F85 and similar) ā ASCII
- The header is an ASCII colon
:
- The mnemonic is a 4-byte identifier
- Separators are optional
:BRIG R10 = 3A 42 52 49 47 20 52 31 30That example is a relative adjustment ā it increases brightness by 10 steps rather than setting it to 10. Relative modifiers are a Barco feature that surprises people expecting absolute values.
Acknowledgement is on by default and can be toggled with the ECHO command. Most commands return the current value of what you asked about; invalid commands return something different, and some responses exceed six characters (strings).
Two operational gotchas:
- After power-on completes, wait at least 30 seconds before sending the next command. This is longer than most brands and is a common cause of "the second command in my macro vanishes".
- Some commands produce on-screen feedback. In a museum this is unacceptable during opening hours. Turn it off in the menu, or set
OSDCto0(off) or1(warnings only).
Legacy models (SLM / older LCD-DLP era) ā binary
Completely different: a 33-byte packet with a checksum, message address range 0ā255 where 0 is broadcast, and no acknowledgement is sent in reply to a broadcast.
Serial defaults: 4800 / 9600 / 19200 (default), no parity.
The checksum must be recalculated for every projector address, which is why generic command tables for legacy Barco rarely work as-is. RS-232 control in this generation produces no OSD feedback.
Practical setup note from a working implementation: enable RS-232 communication on the projector and set the projector address to 1.
Optoma
Optoma uses ASCII with a tilde lead character:
~<ID><command> <value><CR>Power, addressing all projectors (ID 00):
~0000 1<CR> power on
~0000 2<CR> power offByte level:
~0000 1<CR> = 7E 30 30 30 30 20 31 0D
~0000 2<CR> = 7E 30 30 30 30 20 32 0DSerial: 9600, 8, None, 1, no flow control.
The two traps in Optoma's own documentation
1. 7E is just the ASCII tilde ā everything else is ASCII digits, not binary.
Optoma command tables print the hex as 7E 30 30 30 30 20 31 0D. It is tempting to read the leading 7E as a binary lead byte and conclude the rest is binary too. It is not: 30 is the character 0, 20 is a space, 0D is CR. Sending 7E 00 00 00 00 01 0D as raw bytes will not work.
2. XX in the documentation is a placeholder, not literal characters.
Optoma's tables are written as ~XX00 1, where XX is the projector ID you are supposed to substitute. If you send that string literally you transmit:
~XX00 1 = 7E 58 58 30 30 20 31 0D
^^ ^^ = the letters "XX" (0x58)The projector receives an ID of "XX", which does not exist, and ignores the command. This produces a completely silent failure that looks identical to a wiring problem, and it is easy to do when copying from a PDF.
3. RS-232 is disabled by default on newer models. You enable it from the IR remote with the sequence Power, Down, Right, Menu. Until then the port does nothing.
BenQ
BenQ uses a key=value syntax wrapped in carriage returns and hash:
<CR>*pow=on#<CR>
<CR>*pow=off#<CR>Byte level:
*pow=on# ā 0D 2A 70 6F 77 3D 6F 6E 23 0D
*pow=off# ā 0D 2A 70 6F 77 3D 6F 66 66 23 0DNote the leading CR as well as the trailing one ā both are part of the frame.
Case-insensitive: upper, lower and mixed case are all accepted, which is unusual and welcome.
BenQ's error replies are genuinely useful
BenQ tells you why it refused, in plain words:
| Reply | Meaning |
|---|---|
Illegal format | The frame is malformed ā check the CRs and the # |
Unsupported item | Valid syntax, but this model does not implement that command |
Block item | Valid and supported, but not allowed in the current state |
Block item is the one that matters operationally ā it usually means the projector is warming up, cooling down, or otherwise busy. It is the difference between "your command is wrong" and "your timing is wrong", and very few brands distinguish the two.
The standby power trap
BenQ commands only work if standby power is set to 0.5 W (or the model's supported serial-standby setting). In the deeper eco standby mode, the serial receiver is off.
This is the usual "power off works, power on never does" symptom, and on BenQ it has a specific named setting to check. Look for standby power / standby settings in the OSD.
LAN control
Over LAN, TCP port 8000, and behaviour is identical to serial ā except that the leading and trailing become optional. As with Epson and Sony, this makes the network the better long-term transport once you have validated commands on a cable.
Cabling
BenQ specifies a crossover cable ā pins 2 and 3 reversed, using only 2, 3 and 5. A documented case of a non-responsive W6500 came down to exactly this. See null modem vs straight-through.
Quick Reference
| Christie | Barco (current) | Optoma | BenQ | |
|---|---|---|---|---|
| Power on | (PWR 1) | : + mnemonic | ~0000 1 | |
| Power off | (PWR 0) | : + mnemonic | ~0000 2 | |
| Baud | model-dependent | model-dependent | 9600 | check OSD |
| Network port | TCP 3002 | LAN supported | ā | TCP 8000 |
| Broadcast/all | address 0ā999 | ā | ID 00 | ā |
| Case sensitive | no | ā | ā | no |
Every one of these has model-specific variation. Verify against the RS-232 specification for your exact model before committing a command table to a control system ā and where a table gives a checksum, recompute it rather than trusting it.
With SoftControl
SoftControl sends all four styles over serial or TCP with both text and hex entry, so Christie's parentheses, Optoma's tilde-and-ASCII-digits and BenQ's double-CR frame are all just payloads. The command tester shows the exact bytes transmitted and the raw reply ā which is how you catch the Optoma XX placeholder problem immediately instead of assuming the cable is bad.
For mixed-brand halls, PJLink handles power, input and mute across manufacturers, with native protocols reserved for brand-specific features.