Home AMX User Forum AMX General Discussion

Nec Mt1075

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.

Comments

  • The only thing that springs to mind is baud rate - if you haven't changed it, set the projector and your code to use 9600 baud... I >think< there's a tech note on this somewhere - at the very least it's a known issue that's come up in the past when you run at 38.4k on many NEC projectors.

    - Chip
  • Thomas HayesThomas Hayes Posts: 1,164
    Thanks Chip, I was toying around with this idea because I was not sure of the cable run distance and know if I lower the Baudrate that you may get some extra distance. I also read conflictiong reports about CTS/RTS being tied together.
  • I have yet to see an NEC projector (and I've worked with a wide variety of 'em) that requires RTS/CTS. You only need TX,RX & GND.

    Sharp, on the other hand... :)

    - Chip
  • jneffjneff Posts: 25
    Nec Projectors

    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.
  • Thomas HayesThomas Hayes Posts: 1,164
    Thanks John, I was just starting to modify my AXI file I wrote for the NEC projectors to ask it what it was doing but if you have tried this already and found it missing the comand also then maybe I'll hold off awhile. It does appear that the projector is 'busy' and misses the command every now and then. If you don't mind me asking what school are you at?
  • jneffjneff Posts: 25
    What school

    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.
  • Thomas HayesThomas Hayes Posts: 1,164
    Thanks Jeff
    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 would imagine that both the network interface and the serial interface are both communicating with the projector's central processor, so it would make sense that the processor may only be able to handle one at a time.

    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."
  • jneffjneff Posts: 25
    I have been pondering this..

    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)
    }


    }
  • Thomas HayesThomas Hayes Posts: 1,164
    jneff wrote:
    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.

    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.
  • Spire_JeffSpire_Jeff Posts: 1,917
    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
  • Thomas HayesThomas Hayes Posts: 1,164
    Good idea but what if the projector goes down? also its just not the AC plug but the main AC switch, RS232 connector or any other thing they can use to screw it up. ;)
  • jneffjneff Posts: 25
    Network cards
    Good idea but what if the projector goes down? also its just not the AC plug but the main AC switch, RS232 connector or any other thing they can use to screw it up. ;)

    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.
  • NEC projector

    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
  • Yes, many NEC projectors have the infamous "idle" mode. :(

    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
  • I've had no issues with NEC running at 38400 with the GT series now going on two years. All I did with the MT-1075 was slap it around a few time with the Off command to get its attention. It seems that on occasion that it was busy doing its nails rather than listening to what I was telling it to do. I did drop the baud down to 9600 for this install. Chips theory might hold some truth because I did have a GT-6000 that would only start on occasion(before I found the 'idle mode' issue). :)
  • Ironically enough, I had to peek at an MT1075 manual today and noticed this note on page E-64 - the page they talk about RS232 control and the DB-9 connector:

    "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
  • DHawthorneDHawthorne Posts: 4,584
    Unless there is a lot of data flowing, baud rate doesn't matter a whole lot. Sending individual commands even milliseconds apart is in itself far more of a delay than the difference between 38400 and 9600 baud.
  • DHawthorne wrote:
    Unless there is a lot of data flowing, baud rate doesn't matter a whole lot. Sending individual commands even milliseconds apart is in itself far more of a delay than the difference between 38400 and 9600 baud.

    All the more reason to just leave it all at 9600 and not think about it twice, right? :)

    - Chip
Sign In or Register to comment.