Nec Mt1075
Thomas Hayes
Posts: 1,164
Hi everyone
I have the above listed projector with a NI-2000, CV7 in a board room and on occassion the projector will either fail to start or fail to turn off. I have the projector on RS-232 port #1, I remember reading that there was a possible issue with that port but also was under the impression this was fixed. Anyone else had any issues with these projectors.
I have the above listed projector with a NI-2000, CV7 in a board room and on occassion the projector will either fail to start or fail to turn off. I have the projector on RS-232 port #1, I remember reading that there was a possible issue with that port but also was under the impression this was fixed. Anyone else had any issues with these projectors.
0
Comments
- Chip
Sharp, on the other hand...
- Chip
We have 50-MT1065 projectors on campus and we have noticed this issue in a building that has 31 1065 projectors that are all plugged into a secured network. It rarely happens, but it does happen. We did some tests and noticed that if the projectors are receiving incoming data over the network, they may be too busy to listen to incoming data from a serial port.
I tried asking the projector wether or not it was powering up or cooling down, and realized it missed that command as well.
There is the option of slowing down the baud rate from 38400 - but I do not believe that will help in our situation. Rather than complicating the issue - I decided to send a power command - wait 5 seconds send it again and wait 5 seconds and send it again.
I am still testing this - but I cannot not see any harm in doing this and it seems to work fine.
These projectors are by far the best ones we have ever come across even with their little quirk.
I work for the University of Idaho.
I was not saying that asking the projector if it was on or not was not a good idea. I should make it clear that we have other systems to monitor classroom equipment. Querying the projector is probably a good idea, but... It may miss a single command and you may have to flip flop back and forth of sending, asking, sending asking. I don't like getting into that kind of situation where there is a chance that the program could get stuck in a loop and cause the rest of the code to slow down or fail.
What, I did not say, that I should have is, All the projectors have network cards in them and if one looses power - we already have a server that sends our phones email. The projector itself will send email if there is a lamp error or other serious error.
I only ask the projector a few things such as filter timer, lamp time, ect when the projector is not busy. We also have a email page on our touch panels so
users can inform us of problems.
I don't have the NEC's on the net card, rather just the AMX. Many years back I programmed the controller and projector so they were always talking but ran into issues that would cause either or to lock up and require a hard reboot. Now I use the KISS technic whenever possible. Less overhead and chances of a crash. I just got back in from the projector in question and found that even after I lowered the baud it would hang once every 20-30 times tried. I added an extra 'off/on' command to my AXI and it seems to be working for now. I just setup a simiular system on my test bench to ttry over the next few weeks. Thanks, if I find out the exact cause of this I'll post it.
I've made it a habit to run a loop when turning a projector off, since I do a lot of installations where there is a lift. If the projector "forgot" to turn off when I told it to, and the lift went up on its own, goodbye projector!
If you're concerned about a projector getting hung by overloading it with communications it may be worth setting up a timeline with some conditionals that says "hey did you turn off? No? Turn off, dang it! Still no? Fine. I'm emailing tech support."
Even though I send three on or off commands... I have added the following code called from a timeline event. I most certainly would be 100% sure the projector was off before I raised a lift. Good point! Another problem we have is in some rooms students like to reach up and turn on/off projectors they can reach on a chair by hand to mess with the professors.
I use coommand
PROJECTOR_GET_DETAILS[] = {$00,$C0,$00,$00,$00,$C0}
In Data event I do this.
// IS PROJECTOR ON?
IF(FIND_STRING(DATA.TEXT, "$20,$C0", 1))
{
FOR( ELEMENT = 1 ; ELEMENT < 10 ; ELEMENT++ )
{
BYTE[ELEMENT] = ITOHEX(GET_BUFFER_CHAR(DATA.TEXT))
}
// IF A USER IS NOT LOGGED IN AND PROJECTOR ON
IF(BYTE[9] = '1' && LOGIN = 0)
{
FORCE_PROJECTOR_OFF = 1
SET_LENGTH_STRING (DATA.TEXT, 0)
}
// IF A USER IS LOGGED IN AND PROJETOR IS ON
IF(BYTE[9] = '1' && LOGIN = 1)
{
ON[TP, 53] (* PROJECTOR ON *)
SET_LENGTH_STRING (DATA.TEXT, 0)
PROJECTOR_STATE = 1
}
// IF A USER IS LOGGED IN AND PROJECTOR IS OFF
IF(BYTE[9] = '0' && LOGIN = 1)
{
ON[TP, 54] (* PROJECTOR OFF *)
SET_LENGTH_STRING (DATA.TEXT, 0)
PROJECTOR_STATE = 0
}
}
}
I HAVE A BIG IF TO DETERMINE WETHER OR NOT I WANT TO CHECK THE PROJECTOR STATE.
// IF A USER IS NOT LOGGED IN
IF(
// LOG OUT TIMER IS A 15 MINUTE COUNTER. USER CAN LOG OFF AND LEAVE
// PROJECTOR ON FOR THE NEXT PROFESSOR IF THERE IS ONE.
(TIMELINE_ACTIVE(LOG_OUT_TIMER) = 0 )
&&(PROJECTOR_WARMING_UP = 0)
&&(PROJECTOR_SHUTTING_DOWN = 0)
&& (PROJECTOR_STATE = 0)
&&(LOGIN = 0)
&&(NIGHT_SHUTDOWN = 0)
)
// IF A USER IS LOGGED IN
IF(
(TIMELINE_ACTIVE(LOG_OUT_TIMER) = 0 )
&&(PROJECTOR_WARMING_UP = 0)
&&(PROJECTOR_SHUTTING_DOWN = 0)
&&(LOGIN = 1)
&&(NIGHT_SHUTDOWN = 0)
}
I THINK I MIGHT BE OVERLY PARENOID BUT I DO NOT SEE HOW IT CAN HURT.
I saw another thread someone was having trouble getting lamp hours. I will post below just in case they did not get an answer...
// PROJECTOR EVENTS.
DATA_EVENT[PROJECTOR]
{
ONLINE :
{
SEND_COMMAND DATA.DEVICE,"'SET BAUD 38400,N,8,1 485 DISABLED'"
SEND_COMMAND DATA.DEVICE,"'HSOFF'"
}
STRING :
{
// NEC FILTER INFO
IF(FIND_STRING(DATA.TEXT, "$23,$95", 1))
{
FIND_BYTE = REMOVE_STRING(DATA.TEXT, "$08", 1)
FOR( ELEMENT = 1 ; ELEMENT < 5 ; ELEMENT++ )
{
BYTE[ELEMENT] = ITOHEX(GET_BUFFER_CHAR(DATA.TEXT))
}
FOR( ELEMENT = 1 ; ELEMENT < 5 ; ELEMENT++ ) (* FIX MISSING 0'S *)
{
IF(BYTE[ELEMENT]= '0')
{
BYTE[ELEMENT] = '00'
}
}
(* REVERSE BYTES AND COMBINE *)
BYTES = "BYTE[4], BYTE[3], BYTE[2], BYTE[1]"
(* VALUE IS A FLOATING POINT VALUE *)
VALUE = HEXTOI(BYTES) /3600
VALUE = 100 - VALUE
IF(FIND_BYTE > 0)
{
DATA_FILE = FILE_OPEN('\DATA\prfilter.txt', 2)
DATA_TEXT = "ITOA(VALUE), ' hrs'"
DATA_RESULT = FILE_WRITE(DATA_FILE, DATA_TEXT,100)
DATA_RETURN = FILE_CLOSE(DATA_FILE)
SET_LENGTH_STRING (DATA.TEXT, 0)
}
ELSE
{
DATA_FILE = FILE_OPEN('\DATA\prfilter.txt', 2)
DATA_RESULT = FILE_WRITE(DATA_FILE, "'ERROR'" ,10)
DATA_RETURN = FILE_CLOSE(DATA_FILE)
SET_LENGTH_STRING (DATA.TEXT, 0)
}
}
// NEC LAMP INFO
IF(FIND_STRING(DATA.TEXT, "$23,$8C", 1))
{
FOR( ELEMENT = 1 ; ELEMENT < 6 ; ELEMENT++ ) (* REMOVE FIRST 5 BYTES *)
{
BYTE[ELEMENT] = ITOHEX(GET_BUFFER_CHAR(DATA.TEXT))
}
FOR( ELEMENT = 1 ; ELEMENT < 12 ; ELEMENT++ ) (* GET DATA:1-4=TIMER, 9-12=STARTING TIME *)
{
BYTE[ELEMENT] = ITOHEX(GET_BUFFER_CHAR(DATA.TEXT))
}
FOR( ELEMENT = 1 ; ELEMENT < 12 ; ELEMENT++ ) (* FIX MISSING 0'S *)
{
IF(BYTE[ELEMENT]= '0')
{
BYTE[ELEMENT] = '00'
}
}
BYTES = "BYTE[4], BYTE[3], BYTE[2], BYTE[1]"
BYTES2 = "BYTE[12], BYTE[11], BYTE[10], BYTE[9]"
VALUE1 = HEXTOI(BYTES) /3600
VALUE2 = HEXTOI(BYTES2) /3600
VALUE = VALUE2 - VALUE1
IF(FIND_BYTE > 0)
{
DATA_FILE = FILE_OPEN('\DATA\prlamp.txt', 2)
DATA_TEXT = "ITOA(VALUE), ' hrs'"
DATA_RESULT = FILE_WRITE(DATA_FILE, DATA_TEXT,100)
DATA_RETURN = FILE_CLOSE(DATA_FILE)
SET_LENGTH_STRING (DATA.TEXT, 0)
}
ELSE
{
DATA_FILE = FILE_OPEN('\DATA\prlamp.txt', 2)
DATA_RESULT = FILE_WRITE(DATA_FILE, 'ERROR' ,10)
DATA_RETURN = FILE_CLOSE(DATA_FILE)
SET_LENGTH_STRING (DATA.TEXT, 0)
}
}
// NEC LAMP TYPE
IF(FIND_STRING(DATA.TEXT, "$23,$B0", 1))
{
FIND_BYTE = REMOVE_STRING(DATA.TEXT, "$02", 1)
FOR( ELEMENT = 1 ; ELEMENT < 3 ; ELEMENT++ )
{
BYTE[ELEMENT] = ITOHEX(GET_BUFFER_CHAR(DATA.TEXT))
}
BYTES = "BYTE[2]"
IF(FIND_BYTE > 0 && BYTE[2] = '0')
DATA_TEXT = "'STANDARD LAMP'"
IF(FIND_BYTE > 0 && BYTE[2] = '1')
DATA_TEXT = "'OPTIONAL LAMP'"
IF(FIND_BYTE = 0)
DATA_TEXT = "'ERROR'"
DATA_FILE = FILE_OPEN('\DATA\lamptype.txt', 2)
DATA_TEXT = "DATA_TEXT"
DATA_RESULT = FILE_WRITE(DATA_FILE, DATA_TEXT,100)
DATA_RETURN = FILE_CLOSE(DATA_FILE)
SET_LENGTH_STRING (DATA.TEXT, 0)
}
}
We have the same problems at our University. You'd expect that the cash these kids pour out for University that they would have a little more maturity.
Don't get me started with my views on the youth (and the parents of the youth) of today Anyway, is there some reason you need to be able to turn of the display physically? If not, wouldn't a little bit of super glue fix the problem?
Just a thought,
Jeff
Our backup system takes care of this. If the Projector is unplugged or powered down at the switch, the network card goes off line. I don't know what the result would be from other projectors. We ping the projectors every 5 minutes. The server sends out an email if it does not recieve a response from the projector. We use the equipment monitor module. It is pretty easy to use...
SmtpQueMessage( EMAIL_FROM, EMAIL_TO, EMAIL_CONTENT, EMAIL_STRING, '')
For that matter, if you recieved no reponse over RS-232 from the projector after a few attempts, you could assume that it was down and send an email.
We originally used this free utility called "Peer Monitor". It works really good. Now we have everything running off our web server.
We have found that, as Chip states, NEC's work better at 9600 baud. Also there is an auto power management mode that has to be turned off, otherwise the projector will not respond once in standby
-Duncan
I haven't kept a projector around long enough to play with it, but I got the impression that when idle mode was off, (energy saving ON) any data that comes in the 232 port will "wake" the electronics and give you 5-10 seconds to issue an ON command before it went back into sleep mode. But the initial string is ignored...
- Chip
"Depending on the equipment, a lower baud rate may be recommended for long cable runs."
I (IMHO) say don't take chances - set any and all NECs to 9600 and be done with it.
- Chip
All the more reason to just leave it all at 9600 and not think about it twice, right?
- Chip