Empirisoft Support

    Welcome to Empirisoft Support
Results 1 to 2 of 2

Thread: How do I synchronize two machines?

  1. #1
    Join Date
    Nov 2005
    Posts
    294

    How do I synchronize two machines?

    [edited from support email]

    Here's what we'd like to have happen:

    One DirectRT machine sends a TTL signal at the start of trial "n" and then continues with that trial. On that same trial on *another* machine, DirectRT sits waiting for that TTL signal. When it gets it, it continues with that trial. Consequently, both machines continue with the trial in near perfect synch.

    Thus, we can present different images on different monitors to the same subject.

    Can you describe the hardware end of it? e.g., the parallel to parallel connection required, port addresses, potential problems, and such?
    Last edited by JEC; 06-20-2007 at 10:33 PM.

  2. #2
    Join Date
    Nov 2005
    Posts
    294
    In theory this is a simple process, and it uses DirectRT's built-in TTL sending and receiving functionality--the process is similar to the way Biopac and other external hardware devices can be controlled. All you need is a modified parallel port cable to connect the two machines. If you or your lab technician is handy with a soldering iron, the modification can be done in about 5 minutes (instructions are included at the end of this post).

    1. Configuring the Sending Computer

    First off, be sure to read the section on TTL signals in the user's guide (or online at www.empirisoft.com/directrt/help/directrt_samples_of13_ttl_signals.htm).

    As described in the user's guide, determine the correct address for sending signals on the sending computer (e.g., often 888 for desktop PCs). Using this port, try sending a value of "1" for 1000ms in DirectRT. e.g.,

    stim | loc | time
    ttl:1 | 888 | 1000

    You can do this immediately before the next stimulus. DirectRT on the other computer will be waiting for it.

    2. Configuring the Receiving Computer

    As above, determine the correct address for receiving signals on the receiving computer (e.g., often 889 for desktop PCs). Using this port, try waiting for a value of "1" in DirectRT. e.g.,

    stim | loc | time
    ~waiting | 0,0,0 | rt:1,(889)

    Again, you can do this immediately before the next stimulus. DirectRT on the other computer will be sending it. When it arrives, the receiving computer and the sending computer will now proceed to the next stimulus in near perfect synch. Note of course that you will want the receiving computer to be already be waiting when the signal is sent from the other computer.

    3. Modifying a standard parallel port cable.

    Note that these instructions assume that each computer has a standard parallel port. USB-Parallel Port converters will not work.

    Connect the wires between these two sets of pins:
    Computer 1 Parallel Port | Computer 2 Parallel Port
    Data 0 (pin 2) <==========> nAck (pin 10)
    Ground (pin 18) <==========> Ground (pin 18)

    See http://beyondlogic.org/spp/parallel.htm for more details on these pinouts.

    The idea is that we're connecting an output (Data 0) to an input (nAck). Ground must be common to both machines or circuit behavior may be erratic.

    If you have no luck with this, let us know and we can probably do it for you if you send us your cable.

    Please reply to this post if there are any questions or difficulties.

    John
    Last edited by jarvis24; 06-25-2007 at 07:17 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •