Barco Projector Control

1,429 views
Skip to first unread message

Alex Zylka

unread,
Aug 24, 2019, 4:22:28 PM8/24/19
to QLab
Hey all, I know this has popped up in the past, sort of without resolution, but I've recently discovered some new (to me) information about controlling newer Barco projectors via QLab and wanted to ask if anyone's done it yet... Specifically I'm referencing the Pulse API (reference guide attached), which promises to be much more useful and user-friendly than concocting and sending serial commands (with checksum!!) via TCP. Has anybody played around with this? I have a show upcoming where I'll be using a UDX-4K40 and want to be as prepared as I can when I walk into the venue.

Here's what I plan on starting with as a script cue—feels like it'll work, but any verification would be excellent. And hopefully this will help someone in the future.
do shell script "curl -X POST -H \"Content-Type: application/json\" -d '{\"jsonrpc\": \"2.0\", \"method\": \"property.set\", \"params\": {\"property\": \"optics.shutter.target\", \"value\": \"Closed\"}}' 192.168.1.100:9090"


Also for kicks, I will be testing out some serial commands via script cues soon for older Barco machines without the Pulse API and will report back if I have success with (at the very least) shuttering commands. The serial command reference guide is attached as well. Proposed commands:
do shell script "echo \"0xFE 0x00 0x23 0x42 0x00 0x9B 0xFF\" | nc -w 1 192.168.1.100 43680" #shutter close

or this version
do shell script "echo \"FE$00$23$42$00$9B$FF$\" | nc -w 1 192.168.1.100 43680" #shutter close




TDE9629_00_ReferenceGuide.pdf
R5905447_02_ReferenceGuide.pdf

Alex Zylka

unread,
Aug 27, 2019, 2:03:34 PM8/27/19
to QLab
An update for you all from tests with a Barco DP4K-23B:
A very smart friend of mine helped me wireshark commands from an existing Crestron system to the projector and we sniffed out some useful info. He figured that the hex I proposed on sending would just be interpreted as plaintext unless formatted as \x vs $ or 0x notation. This worked great in a command line. In the QLab script you've got to escape internal double quotes and when you do that and want backslashes in your command, you've got to escape the backslashes with, you guessed it, another backslash!

Working commands are below—note that the port number for this particular configuration was not the default Barco port of 43680.
do shell script "echo -n -e \"\\xFE\\x00\\x23\\x42\\x00\\x65\\xFF\" | nc -w 1 10.200.30.71 43728" #shutter close
do shell script "echo -n -e \"\\xFE\\x00\\x22\\x42\\x00\\x64\\xFF\" | nc -w 1 10.200.30.71 43728" #shutter open


Of note is another attachment with other commands (some having the checksum already calculated) AND a quick and dirty checksum calculator for this exact purpose (mod 100 and 256 because there seem to be conflicting messages in the different reference guides). I had no luck with more complex commands, so for now I'm content to just be able to shutter and unshutter...

Next week, Sept 5-10 I'll be working with the UDX-4K40 and am excited to not have to deal with hex/checksums. Stay tuned!

Dec2Hex.xlsx
RS232_CV110.pdf

Alex Zylka

unread,
Sep 11, 2019, 9:32:12 PM9/11/19
to QLab
Wow, the UDX stuff is niiiiiiiice. I had to re-render 50GB of video content because the projector was so bright that all of the not-quite-true-blacks in my content were popping up like crazy. (This was video of performers against black, but obviously not quite lit right.)

The easiest way to get the UDX stuff to shutter was definitely sending JSON via the Pulse stuff and it worked like a dream out of the box. The one thing is that the script below doesn't really exit at all, so the cue is always "playing" once you've hit it. I'm sure there's a way to add a break/exit/timeout but I didn't have time to think very hard about it. Consequently, I just threw a stop cue in after the shutter cues and delayed it a bit just to be safe. I also added a second, identical shutter cue to ensure some kind of redundancy, but this may not actually be necessary. See attached screenshot for clarification.

Open shutter:
do shell script "curl -X POST -H -m 1 \"Content-Type: application/json\" -d '{\"jsonrpc\": \"2.0\", \"method\": \"property.set\", \"params\": {\"property\": \"optics.shutter.target\", \"value\": \"Open\"}}' 192.168.88.13:9090"

Close shutter just changes "Open" to "Closed"—and any other commands you want to have occur should be super easy to fit into the above if you follow the reference guide.


Enjoy! (And maybe someone can modify the above to actually timeout gracefully? I think netcat might be a better option but I haven't explore sending JSON with it yet.)


On Saturday, August 24, 2019 at 4:22:28 PM UTC-4, Alex Zylka wrote:
Screenshot 2019-09-11 21.29.47.png

Rich Walsh

unread,
Sep 12, 2019, 5:26:45 PM9/12/19
to ql...@googlegroups.com
I don't know anything about curl but skimming the man page I wonder if you've got your -m flag inside the -H flag? It might be interpreting "-m" as the header, not a curl flag?

Try starting the command with:

curl -X POST -m 1 -H 'Content-Type: application/json'

That version times out in Terminal for me, but there's no projector on the other end…

Rich

John Creel

unread,
Jan 9, 2020, 11:37:41 PM1/9/20
to QLab
thanks for sharing Alex! I'm a long time barco lover with christie pretty heavy on the side these days 
Reply all
Reply to author
Forward
0 new messages