OSC + control video projector with HEX

1,360 views
Skip to first unread message

Samuel Thériault

unread,
May 1, 2015, 9:40:57 AM5/1/15
to ql...@googlegroups.com
HI, 

I've ben searching and reading  for few day now and I'm now stuck. I tried a lot of combinaison and variations

I'm working on setting up an installation that will start and stop by itself. Everything with the start of cues and light with the controller work. Where I'm stuck it's to start and stop the projectors.
3 of them are NEC NP3150 and the other one is a Shap but this one is no problem it's have PJLInk. My problem is with the NEC.

First
I know that they can receive command by network because the system before was starting them that way. I plug the old system together and it's working. The original programming was on Delphi. I dig a little bit in the program but I don't find more than what I have in hands now. If ever you know Delphi it's using this command line: form1.TIdTCPClient1.WriteLn(#02 + #00 + #00 + #00 + #00 + #03); (see the full fonction at the end of post)

What I know.
Starting with QLab. 
I'm using a OSC cue with Raw UDP string
In the configurations I put the address of the projector and the port 192.168.5.200:7142

For the projector (manuel here for the control page 10 : http://www.necdisplay.com/documents/UserManuals/RS232_PJ_ControlCommands.pdf)
I know that the command to turn it on is: 02H 00H 00H 00H 00H 02H
There is also this (do I need any of it?)
5. Command Descriptions  
Precautions with Inscriptions: 

(*1) Projector ID It is the value when forwarding a factory. This reflects the "Projector ID" that has been set to the projector. 

(*2) Model code: "xxH" inscription This will differ depending on the projector. 
In case of MT/NP3150 series 10H
 
So when I configure a OSC Patch with the address and port and use a OSC cur to send:  02H 00H 00H 00H 00H 02H nothing append. The led on the router and the projector blink when I send the message but nothing more.

I think that I'm missing a part of the message or something like that? In the manual of the projector they are talking about Frame format but it's in the section for RS232 control.
4-1. Frame Format 
One frame comprises a header, a data portion, and a checksum.


Thanks for any help.

Sam

Chris Ashworth

unread,
May 1, 2015, 10:08:57 AM5/1/15
to Samuel Thériault, ql...@googlegroups.com
Hi Sam,

The raw UDP output from QLab is not able to interpret hex input — it is only sending text strings with a few special characters such as:

\n = new line
\r = carriage return
\v = vertical tab
\f = form feed

Beyond that, it’s not possible to send arbitrary bytes that aren’t represented as ASCII text (e.g. a zero byte).

Thus, at first glance it seems that this projector is requiring sending byte sequences that QLab is not able to send via the UDP string.

-C
--
--
Change your preferences or unsubscribe here:
http://groups.google.com/group/qlab
 
Follow Figure 53 on Twitter: http://twitter.com/Figure53

---
You received this message because you are subscribed to the Google Groups "QLab" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qlab+uns...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Samuel Thériault

unread,
May 1, 2015, 10:32:16 AM5/1/15
to ql...@googlegroups.com
Hi Chris, 

Thanks for the fast answer. I was starting to go crazy about that.

Ok so I guess that my only option to include that in QLab is to use a scrip cue.

Thanks

Johannes Halvorsen

unread,
May 1, 2015, 11:51:45 AM5/1/15
to ql...@googlegroups.com
My gues would be that you also need to establish a tcp connection with the projector. A simple curl call in a script ought to do the trick.

Samuel Thériault

unread,
May 1, 2015, 3:26:47 PM5/1/15
to ql...@googlegroups.com
I already in the pass use a script to control a projector that use PJLink. There is a command connecting with telnet and after sending the command.

Now I will need to find which type of connexion to use and the good message to send after I Guess.

Johannes Halvorsen

unread,
May 1, 2015, 4:22:53 PM5/1/15
to ql...@googlegroups.com
Sorry... curl is not your answer, you need a raw tcp socket. You probably need a simple Python script or some something like that to accomplish this. A telnet session would probably work, but I'm not sure if you could automate that.

Johannes Halvorsen

unread,
May 1, 2015, 4:36:54 PM5/1/15
to ql...@googlegroups.com
Try this in a terminal window:

echo -n -e "x02x00x00x00x00x02" | nc [ip adress of projector] [projectors port number]

Wthout the brackets, of course... ;)

Samuel Thériault

unread,
May 1, 2015, 4:52:13 PM5/1/15
to ql...@googlegroups.com
No luck, nothing seem to append.

In terminal if I do this I get a connection: telnet 192.168.5.200 7142
then after that I don't know what to type.

With a projector that use PJLink You type the command like %1PWR 1 and it work

Here I'm lost. I tried many thing poking around but no luck.

I have access to a web service from the projector. I can program automator to open safari and then click the button but in my mind it's not a good and clean way to do this.

Thanks

micpool

unread,
May 1, 2015, 5:21:00 PM5/1/15
to ql...@googlegroups.com
In your web browser can you see the URL that the browser is sending to the projector for each command?

If so you can put that in a script with a curl call.

Post what the url is for power off and i can probably adapt the script i use for panasonic projectors fo you.

Mic

Samuel Theriault

unread,
May 1, 2015, 5:33:46 PM5/1/15
to ql...@googlegroups.com
It's a javascript!! Is it possible to do something with that?
--

Samuel Thériault

cell.: +1.514.758.4177

Johannes Halvorsen

unread,
May 1, 2015, 5:34:05 PM5/1/15
to ql...@googlegroups.com
Try to put a \ in front of each x. ("\x02\x00\x00...")

Samuel Thériault

unread,
May 1, 2015, 5:48:22 PM5/1/15
to ql...@googlegroups.com
this is the script: (just ralize that the command seem different, start with 05 and no 02 at the end)

function powerOn() {

power_on_waiting = true;
swapimg('power_on','./images/power_on_g.png');
swapimg('power_off','./images/power_off_b.png');
execCGI('/scripts/IsapiExtPj.dll?D=%05%02%00%00%00%00');
}


and the button: <a href="javascript:powerOn();">
 

Samuel Thériault

unread,
May 1, 2015, 5:51:43 PM5/1/15
to ql...@googlegroups.com
:( nop,

Also when the telnet connexion is active if I type "exit" nothing append. I seem to stay in the connection. Maybe it's not a good connexion type with the projector.

I have to leave but I will keep working on this in the next days.

Thanks

Johannes Halvorsen

unread,
May 4, 2015, 9:36:09 AM5/4/15
to ql...@googlegroups.com
I was right: The trick is to send the byte sequence over TCP. Echo + netcat gets you there, but the formating isn´t stragight forward when you throw applescript into the mix... ;)

The attached example workspace contains four cues to mute/unmute picture and to turn the projector on and off. It should work with most newer models NEC projectors; I´ve only tested it with an M352 WS. 

Swap out the ip for the projector in each cue.

Using the list of commands in the pdf OP linked in the first post one can easily modify the cues in the workspace to send other commands to the projector as well

Two caveats: 

1) Make sure to set the standby mode of the projector to "Network standby" or what´s analog to that for your model. If it is set to eg. "Normal" the projector can NOT be switched on over the network.

2) The projector does NOT accept Power off commands for some time after it has been switched on. I think this is by design.

Hope this is helpful.
controll nec projectors.cues

Andrew Bosman

unread,
Aug 27, 2015, 9:37:32 AM8/27/15
to QLab
Hi guys,

I have been reading through this thread and it seems to be the closest to what I am trying to achieve in a few weeks time.

I will be using QLab in an installation and it will boot up the entire system, lamp on the projectors, run the sequences, and lamp them off at the end of the day. I will have 4 NEC PA-622U projectors. We will send HDBaseT to each one for signal and communication.

I downloaded the file that Johannes attached and opened it in QLab. So in theory, if I replace the existing IP with those of my projectors it should all work?

Unfortunately I don't have the projectors with me, so I am just hoping that this all works when it comes to install time.

Thanks for the help.

Samuel Thériault

unread,
Aug 27, 2015, 11:47:12 AM8/27/15
to ql...@googlegroups.com
Hi,

Actually on vacation. I will post here next week how I made it work for me at the end. Super simple solution finally.  Nothing with HEX, just a http code line. 

Samuel Thériault
--
--
Change your preferences or unsubscribe here:
http://groups.google.com/group/qlab
 
Follow Figure 53 on Twitter: http://twitter.com/Figure53

---
You received this message because you are subscribed to a topic in the Google Groups "QLab" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/qlab/ACVb_HDIVts/unsubscribe.
To unsubscribe from this group and all its topics, send an email to qlab+uns...@googlegroups.com.

Andrew Bosman

unread,
Sep 3, 2015, 10:11:50 AM9/3/15
to QLab
Hi,

Hope you had a good holiday,

Just wanting to follow up on last week's conversation? You said you had a simple solution to this scenario?

Hope to hear from you soon.

Samuel Thériault

unread,
Sep 3, 2015, 10:37:18 AM9/3/15
to QLab
Hi,

Si finally I used a code in the web service of the projector. If you type in a browser the IP of the projector you should have the web interface. After you can show the source code and find what command is attach with the on/off button.

Script cue with this in it:
do shell script "curl " & quoted form of theURL

Let me know if it's help. If you are not sure you can send me a copy of the source code.

Thanks

Andrew Bosman

unread,
Sep 3, 2015, 10:38:58 AM9/3/15
to QLab
Hi Samuel,

Thank you for the help.

I am going to work on the installation next week so I will post back here if I have any issues.

Samuel Theriault

unread,
Sep 3, 2015, 10:50:17 AM9/3/15
to ql...@googlegroups.com
Also for another project I used Projector Midi remote and it work well.

http://halfdanj.dk/projectorremote/

Andrew Bosman

unread,
Sep 18, 2015, 6:29:21 AM9/18/15
to QLab
Hi Samuel,

I am working on this installation now, when I use the Projector off cue it works, but when I use the Projector on cue, it gives me the following error:

ERROR: The command exited with a non-zero status. (1)

Any idea what could be the problem?

Thanks.

Samuel Theriault

unread,
Sep 18, 2015, 8:09:20 AM9/18/15
to ql...@googlegroups.com
Are you using the same command? Or it's 2 différent?

Can you copy them here?

Thanks

Andrew Bosman

unread,
Sep 18, 2015, 12:15:18 PM9/18/15
to QLab
Hi Samuel,

Sorry for the late reply, I just got back to my computer.

I attached a screen shot of the QLab screen with the error.

The two commands are slightly different, the projector off is "$\"\\x02\\x01\\x00\\x00\\x00\\x03\"", and the projector on is "$\"\\x02\\x00\\x00\\x00\\x00\\x02\""

Samuel Theriault

unread,
Sep 18, 2015, 3:01:15 PM9/18/15
to ql...@googlegroups.com
HI,

Are you sure you have the good Hex command? The off start with 02 01 and the on with 02 00.

I bypas the hex command using the http link in the webpage of the projector because I was having problems using the hex.

dorfma...@gmail.com

unread,
Apr 22, 2017, 8:41:23 PM4/22/17
to QLab
This worked perfectly for me once I had the Hex reference manual for my projector (Sony VPL-FH500). For any of you that have Sony Projectors, their service department was actually one of the best experiences i've had with over-the-phone tech help.  It took them 5 days to call me (from when i initially called the SONY Service help), but after they did, they talked me through troubleshooting. They were not familiar with Q Lab or apple script, but this post helped with that after I had the appropriate hex library. Thanks for posting this! Attached is my Q Lab File.

Good luck out there!
Dowser Test.cues
Reply all
Reply to author
Forward
0 new messages