Home AMX User Forum AMXForums Archive Threads AMX Applications and Solutions

RS232 Protocol for the Sony VPL FX40

We are attempting to increase user access on the touch panel for a variety of controls ( zooming/shifting etc)
My problem is I do not understand the syntax in some of these strings
I know the first one turns projector on see below:
SEND_STRING VPROJ,"$A9,$17,$2E,$00,$00,$00,$3F,$9A"
The A9 is understood and I know that the 2E is the hex to turn on projector while
SEND_STRING VPROJ,"$A9,$17,$2F,$00,$00,$00,$3F,$9A" here the 2F is used to turn off projector

My real question is what is the significance of the other hex numbers and how do I interpet them
I am hoping to be able to use cursor control also but am clueless how. I have the file that gives me some RS232 control protocols but I am really struggling with what does what.
The other strings for this projector are below and I was hoping someone could decipher those also.
choose video:
SEND_STRING VPROJ,"$A9,$00,$01,$00,$00,$00,$01,$9A"
choose input C:
SEND_STRING VPROJ,"$A9,$00,$01,$00,$00,$04,$05,$9A"

I could find no correlation in the manual
Any hints for a clueless newbie?

Comments

  • Stewart wrote: »
    We are attempting to increase user access on the touch panel for a variety of controls ( zooming/shifting etc)
    My problem is I do not understand the syntax in some of these strings
    I know the first one turns projector on see below:
    SEND_STRING VPROJ,"$A9,$17,$2E,$00,$00,$00,$3F,$9A"
    The A9 is understood and I know that the 2E is the hex to turn on projector while
    SEND_STRING VPROJ,"$A9,$17,$2F,$00,$00,$00,$3F,$9A" here the 2F is used to turn off projector

    My real question is what is the significance of the other hex numbers and how do I interpet them
    I am hoping to be able to use cursor control also but am clueless how. I have the file that gives me some RS232 control protocols but I am really struggling with what does what.
    The other strings for this projector are below and I was hoping someone could decipher those also.
    choose video:
    SEND_STRING VPROJ,"$A9,$00,$01,$00,$00,$00,$01,$9A"
    choose input C:
    SEND_STRING VPROJ,"$A9,$00,$01,$00,$00,$04,$05,$9A"

    I could find no correlation in the manual
    Any hints for a clueless newbie?


    You probably figured out that $A9 and $9A are the Start Code and End Code,
    The next 2 bytes is the item control.
    The next byte is to indicate whether yo are setting or getting information $00 or $01
    Next 2 bytes is the data for the item you are controlling
    Next byte is the check sum and that's it.

    The power command is a Sircs 15 bit $17 with $2E for ON or $2 for OFF. There is no data with this command. The input command is Item $00,$01 $00 for Video and $04 for input C.

    Lens Shift is a Sircs15 bit command $17 and $72 for up and $73 for down. All of this is in the Sony Protocol.
  • Attached is the format for the commands for that projector. This describes how to create the string.

    B3 is either "set" or "get". If you're telling the projector to do something, you'll use the "set" command which is $00.

    You can lookup the commands in your protocol manual to develop the strings you want. In your example, the change input to video command is

    $A9 = STX
    $00 = Input Cmd Upper byte
    $01 = Input Cmd Lower byte
    $00 = "Set"
    $00 = Data1: Video Upper byte
    $00 = Data2: Video Lower byte
    $01 = Checksum
    $9A = ETX


    --John
  • RS232 Protocol for the Sony VPL FX40

    Way cool
    Thanks for the responses
    I will look over and decipher tonite
    Can you give me a idea of what code would be used for Zoom and cursor control?
    And is cursor control the way to go?
    Seems like a lot of strings to allow users to move between menus for zoom and shift. Thanks again in advance.
  • RS 232 Protocol

    Couple more questions:
    What does this mean?
    Sircs 15 bit $17
    I have a more complex string from older projectors seems kind of long....
    SEND_STRING VPROJ,"$A5,$01,$00,$01,$00,$01,$03,$00,$01,$00,$01,$17,$00,$90,$08,$00,$06,$40,$54,$2E,$00,$00,$00,$B1,$5A"
    Why so long
    This is the URL I was sent is this upto date I cannot seems to decipher
    http://www.sony.ca/projectors/user_manuals/RS232%20Protocol%20Man.pdf
  • stewart wrote:
    Couple more questions:
    What does this mean?
    Sircs 15 bit $17
    I have a more complex string from older projectors seems kind of long....
    SEND_STRING VPROJ,"$A5,$01,$00,$01,$00,$01,$03,$00,$01,$00,$01 ,$17,$00,$90,$08,$00,$06,$40,$54,$2E,$00,$00,$00,$ B1,$5A"
    Why so long

    Each manufacturer/device has their own protocol for speaking to their devices. Think of it like language, you can say "Turn off the light" to anyone, but if they only speak Tagalog (a language in the Philippines) they won't do anything. You'll need to say "Patayin ang ilaw". Or if they speak italian and expect you to be polite, you'd need to say "Per favore signore, spegnere la luce". The last command looks a lot longer than the first two because the language and protocols required for them to understand and listen to the command is different, just like your older command string.

    The protocol manual you linked to tells you how to speak the language of the device. Section 2 tells you how to structure the command (like the grammar), and appendix B tells you what the commands are (the vocabulary).

    You're looking for how to adjust the zoom... the Zoom+ command for the FX40 is listed in table 9 on pg. 50 which is titled "20-bit category" indicating that it's a SIRCS 20 command. If you look at the table on pg. 34 it tells you how to structure a SIRCS 20 command. The upper byte of the item number is $19, the lower byte of the item number is from the table, the Data upper and lower are both $00. Here's how the command would look based on the command block they list:

    "$A9, $19, $6A, $00, $00, $00, $7B, $9A"

    In Netlinx it becomes SEND_STRING dvProjector, "$A9, $19, $6A, $00, $00, $00, $7B, $9A"


    --John
  • RS232 Protocol for the Sony VPL FX40

    Thanks All
    John I read your response and it truly helped
    I am not sure about the "7B"
    It appears that "6B" would be right for (digital zoom -)
    I see nothing in the 7 row
    I am using access only no Netliinx
    If I wanted zooming up and down would it be some push and release coding?
    For example :
    PUSH[TP,1] (*ZOOM_UP*)
    {
    SEND_STRING VPROJ,"$A9, $19, $6A, $00, $00, $00, $7B, $9A"
    "
    }
    RELEASE[TP,1] (*ZOOM_STOP*)
    {
    SEND_STRING VPROJ,"$A9, $19, $6A, $00, $00, $00, $7B, $9A"
    }

    PUSH[TP,2] (*ZOOM_DOWN*)
    {
    SEND_STRING VPROJ,"$A9, $19, $6A, $00, $00, $00, $7A, $9A"
    "
    }
    RELEASE[TP,1] (*ZOOM_STOP*)
    {
    SEND_STRING VPROJ,"$A9, $19, $6A, $00, $00, $00, $7A, $9A"
    Would I use 6A and 6B instaed of 7A and 7B?


    }
    pAGE 49 HAS CURSOR CONTROL ( 15 BIT)
    wHAT IS THE DIFFERENCE BETWEEN THE 20 BIT AND 15 BIT AND COULD i USE THE CODE FOR CURSOR CONTROL TO move between menus etc?
    Again I really apprciate the time spent

    :
  • Stewart wrote: »
    Thanks All
    John I read your response and it truly helped
    I am not sure about the "7B"
    It appears that "6B" would be right for (digital zoom -)
    I see nothing in the 7 row
    I am using access only no Netliinx
    If I wanted zooming up and down would it be some push and release coding?
    For example :
    PUSH[TP,1] (*ZOOM_UP*)
    {
    SEND_STRING VPROJ,"$A9, $19, $6A, $00, $00, $00, $7B, $9A"
    "
    }
    RELEASE[TP,1] (*ZOOM_STOP*)
    {
    SEND_STRING VPROJ,"$A9, $19, $6A, $00, $00, $00, $7B, $9A"
    }

    PUSH[TP,2] (*ZOOM_DOWN*)
    {
    SEND_STRING VPROJ,"$A9, $19, $6A, $00, $00, $00, $7A, $9A"
    "
    }
    RELEASE[TP,1] (*ZOOM_STOP*)
    {
    SEND_STRING VPROJ,"$A9, $19, $6A, $00, $00, $00, $7A, $9A"
    Would I use 6A and 6B instaed of 7A and 7B?


    }
    pAGE 49 HAS CURSOR CONTROL ( 15 BIT)
    wHAT IS THE DIFFERENCE BETWEEN THE 20 BIT AND 15 BIT AND COULD i USE THE CODE FOR CURSOR CONTROL TO move between menus etc?
    Again I really apprciate the time spent

    :

    The checksum is not normally what you would think as a checksum.

    Normal Checksum $03 +$03 = $06
    Sony Bor is $03 bor $03 = $03 because
    $03 is 00000011 so
    00000011 bor 00000011 is 00000011
    so $19 and $6A is not $83
    it 00011001 bor 01100011 = 01111011 = $7B
    Remember the checksum does not include B0 the STX. The Vista Calculator can do the bor with hex values.
  • RS232 Protocol for the Sony VPL FX40

    Oh my gawd
    Now I am truly confused
  • I was just showing you how to do the checksum. Did you know how to do Bitwise programming?
  • RS232 Protocol for the Sony VPL FX40

    No but I won't bother you with that...
    will do some investigating
    bor is similiar to or ?
    adding hex?
  • RS232 Protocol for the Sony VPL FX40

    bor= bitwise or?
  • The documentation to figure out the checksum isn't real clear in the manual but it's actually pretty easy. Ken's example is very good. He converts it to binary so you can see each bit being "OR"ed.

    First off take a look at the command block that I posted and it takes each piece of the command and labels them as B0, B1, B2, etc... B0 is the start code or $A9. To calculate the checksum you would just BOR bytes B1 through B5.

    I?ll let you take a crack at it with Zoom -, and cursor controls. Here's the example with Zoom+ again:
    The whole string is "$A9, $19, $6A, $00, $00, $00, $xx, $9A"
    You can open up your calculator in windows, set it to programming or scientific, select hex and type in the value of B1. Then press OR and enter the value of B2, then press OR and enter the value for B3...etc until you get to B5, then press "=".

    $19 bOR $6A bOR $00 bOR $00 bOR $00 = $7B

    If you looked up the BOR command in the Access help file the example they show is kind of confusing. Google might be a better place to look for some immediate understanding, but a programming class might provide a better fundamental base. Like KBeattyAMX suggested, you'll need to understand the concepts of bitwise programming. Plus, once you know how to calculate it, you'll want to have a good method for writing your code so that it can be calculated efficiently.


    --John
  • RS232 Protocol for the Sony VPL FX40

    Thanks for your reply John. indeed i think I have it!!!
    Now to decipher the zoom - and cursor control
    Might be back in touch :)
  • Rs232 Protocol ZOOM function for Sony VPLFX40

    Thanks for everything.

    I am able to get to the projector Zoom function with my command strings( it show up as a projector generated image)

    The projector displays "Zoom" with 4 cursor buttons below the zoom

    I have programmed the cursors with correct strings but there is no response

    I also can now get to the projector Menu and the cursors do work there. I do not want this as I want to limit the user to Zoom control only

    I guess my question is are the zoom+ and zoom- controls "discrete' and should work by simply pushing the zoom+ or zoom- or do I have to write code that ramps the zoom up as you hold the button. Perhaps a push and release set of commands. I do not see a 'stop' feature in zoom control simply cursors

    I am programming in access only
    I have seen code ( different projector) that produces this but cannot decipher those strings
    Getting there but it is slow.
  • Rs232 Protocol ZOOM function for Sony VPLFX40

    Just a quick Thank you to all who advised me with ideas/tips and tricks
    Thinking about the problem and initially getting thwarted I decided that if Rs232 control was so finicky or( I was so dense) I should have a back up plan. I decided to learn the IRs for the projector and try that way.
    Sure enough after choosing the right syntax I got it to work. Well I could not stop there so i redid my RS232 command strings and I now can control zoom up and down fairly well. I changed the waits between strings being sent and it is now zooming up or down as needed. doing a push release works fairly well. The zoom was so little intially I thought is was doing nothing but indeed it was zooming up or down in very small increments.
    One last question( I hope) . Can I increase the rate of the zoom function? It will zoom up or down but takes way longer then when I use IR pulses
    Code for RS232 below:
    curu and curd are variables
    PUSH[TP,27]
    {


    CALL 'SONY CURSORU'
    ON[CURU]

    }

    RELEASE[TP,27]

    {
    CANCEL_WAIT ?CURU?
    OFF[CURU]

    }
    IF(CURU)
    {
    WAIT 5 ?CURU?

    CALL 'SONY CURSORU'

    }
    [TP,27]=CURU

    PUSH[TP,39]
    {


    CALL 'SONY CURSORD'
    ON[CURD]

    }

    RELEASE[TP,39]

    {
    CANCEL_WAIT ?CURD?
    OFF[CURD]

    }
    IF(CURD)
    {
    WAIT 5 ?CURD?

    CALL 'SONY CURSORD'

    }
    [TP,39]=CURD

    I have changed the WAIT to 1 and it works better can I make the wait even less?
    Tried messing around with pulse times also
    Thanks in advance
    I feel I have learned more this past week around some of my programming issues then in months
    I do not do this everyday as you can tell.
Sign In or Register to comment.