Home AMX User Forum AMXForums Archive Threads AMX Applications and Solutions

need help on Universal Power Bus

Hi,

I am just doing my research on controlling UPB (Universal Power Bus) devices from AMX (NXI controller). I have a few questions:

1. Can I use a normal RS232 port to controls UPB's? OR I need something different. (I saw AMX has a X10 card for X10 control but nothing about UPB)

2. Is all the UPB devices using the same serial commands for control? (i.e. can I connect different manufactures devices and control with the same serial commands)

3. Any one here has experience controlling UPB with AMX? Where can I find the commands for serial control?

Thanks very much,
Aldous

Comments

  • GSLogicGSLogic Posts: 562
    Aldous

    1. UPB can be controlled by communication to the PIM/CIM RS232.
    2. All UPB devices use the same protocol.

    The protocol is very confusing as it is written in a style like machine language (literal hex strings).

    GSLogic has a module for sale which has two-way communication to all devices, loading device name/location, used defined Groups/Links (scenes), and user defined on/off/sunset/sunrise.
  • viningvining Posts: 4,368
    Here's a link to the java upb api.

    http://www.xpl4java.org/UPB4Java/UPB4Java/docs/api/
  • viningvining Posts: 4,368
    This link has other useful links.

    http://www.xpl4java.org/UPB4Java/
  • joelwjoelw Posts: 175
    Yes you could adapt this for Duet use.
  • TurnipTruckTurnipTruck Posts: 1,485
    This may be a bit late, but UPB is very controllable from Netlix via serial commands. It took a while to get the hang of the protocol, but is is quite good once you get it. It gets more complicated if you want to track actual lighting levels.

    You will need a transmit queue for outgoing commands.

    I wrote CALLs for various functions like device or link level changes, status reads etc.

    Prepare to use the FORMAT statement when writing your strings.
  • TurnipTruckTurnipTruck Posts: 1,485
    Here is an example call for sending a link to a certain level:
    DEFINE_CALL 'UPB LINK GOTO'(nLINK,nLEVEL)
    {
    SEND_COMMAND vdvUPB_Q,"$14,'8800',FORMAT('%02X',nUPB_NID),FORMAT('%02X',nLINK),'FF22',FORMAT('%02X',nLEVEL),FORMAT('%02X',256-((nUPB_NID+nLINK+425+nLEVEL) BAND $FF)),$0D"
    }
    

    I am sending the commands to a queue (vdvUPB_Q), not directly to the PIM module.

    nLINK is the link I want to change and nLEVEL is the level I want it to go to.
  • viningvining Posts: 4,368
    Which protocol reference are you using?
  • TurnipTruckTurnipTruck Posts: 1,485
    See attached....
  • viningvining Posts: 4,368
    That will definitely take some time to digest!

    What's the comm set up and pin out for the PIM?
  • TurnipTruckTurnipTruck Posts: 1,485
    9600,N,8,1 straight cable

    One pin of the pim has to be held high for it to transmit to you.
Sign In or Register to comment.