psychopy.org | Reference | Downloads | Github

TTL's from PsychoPy not showing up in AcqKnowledge

Hello all,

OS: Win 10
PsychoPy Version: 1.90.2
Standard Standalone? Yes

What are you trying to achieve?

We bought new computers and are trying to re-establish the connection between Psychopy (on one computer), the BIOPAC MP150 and AcqKowledge (on another computer). We also had to purchase and install a parallel port for the new computer to connect our stimulus presentation computer to the BIOPAC system. I have created a tester program which should sent a TTL signal to our BIOPAC MP150, which translates that to AcqKnowledge (v5.0.4); however, we are not seeing the signal appear in Acqknowledge. The program runs without error, but we are not able to see the TTLs. We are able to receive other signals from the BIOPAC system in AcqKnowledge (ie., EEG), but not able to see the TTL’s as we did with our old computers.

Right now, we have created a PsychoPy program in builder (See image) 2 seconds long that will send a TTL signal via the I/O Parallel port. We have the new parallel port installed in LPT1 (In the stimuli presentation computer) and the Port Address in PsychoPy set to 0x0378. We are fairly confident that the AcqKnowledge program is set up properly (as we are using the template used in a previous study which has received TTL’s in the past). We installed inpout32 as well.

We are not sure why AcqKnowledge is not receiving the signal from Psychopy. At this point, I am wondering if I missed a simple, but critical, step in 1) setting up PsychoPy on this new computer, 2) installing the parallel port and the drivers (including inpout32), 3) setting up the PyschoPy program correctly, or 4) setting up AcqKnowledge in the other new computer.

I have tried changing the Port address in PsychoPy, with no luck. I have also tried newer versions of PsychoPy (3.1.5), with no luck. I believe the parallel port is installed correctly, because the parallel port device status is saying, “this device is working properly.”

Any suggestions or help would be appreciated.

I believe a similar problem is being discussed in Triggers not appearing on actiview serial port

Thanks!

How certain are you taht the parallel port is correctly at 0x0378?

Hey Jon,

Thanks for the response. I have some updates to this problem. I was able to find the correct parallel port address (0x3FE8). After that fix I was able to see TTL signals in AcqKnowedge for about two weeks.

At that time needed to create a new template for the TTL’s in the Acqknowledge software. After creating an identical template as before (and confirming that it is set up properly with Tech Support via BioPac), the TTL signals are no longer present. I changed absolutely nothing about the PsychoPy programming.

A noticeable difference between the old AcqKnowledge files and the new is that the starting point for the Digital TTL channels is 5, where it was 0 before. In the old files, when a TTL signal would come into AcqKnowledge, I would see the channel designated to the TTL jump to 5 and back to 0. I am wondering if the fact that the channels are defaulting to 5 masks our signal coming in. I added code into psychopy trying to set the parallel port data to 0 (using “Parallel.setData(0)” and “p-port.setData(0)” where p-port is the name of the I/0 component as discussed in Can't connect to Parallel Port, https://www.psychopy.org/api/parallel.html, and Parallel port issues.

I believe I may have a similar issue as Sending triggers to parallel.

Any help would be appreciated since I am at a loss.

Thanks,
J

Hello,

I haven’t worked with BioPac and the parallel port stuff recently, but I had similar issues. It sounds like you’ve found the parallel port address for your computer, but just as a double check, this link helped me to double check that I had the correct address.

Here’s a snippet of my code that I used for communicating PsychPy with the AcqKowledge software. I was delivering electrical stimulation to participants, so this code reflects that, which may or may not be of much help.

from psychopy import locale_setup, visual, core, event, data, gui, sound, parallel
import os, platform, shlex, shutil

port = parallel.ParallelPort(address=0xDFB8)
port.setData(0)

timer = core.Clock()

port.setData(255)
while timer.getTime() < 1.0:
    pass

port.setData(0)