Problems Sending Triggers Parallel Port - no errors shown

Dear all,

I am sorry to bring up a reocurring topic again, but I encounter troubles with communicating with the parallelport.

I am running Psychopy (v3.2.4, standalone) on a 64-bit Windows 7 computer, and I am trying to send triggers via the parallel port to a biosemi (EEG) device.

I know that the hardware works, as I managed to send triggers with Eprime and Open Sesame. But it doesn’t work with Psychopy.

I tried the various fixes suggested in the forum

  1. installing the inpout32.dll (as well as the 64 version), adding it into the system folder, adding it to the experiment folder.
  2. reinstalling a 32 bits psychopy version, reinstalling the 64 bits version
  3. sending triggers via the builder component, some code inlines, just the coder

As I do not receive any error message, I do not know where to start looking for a solution. I just see that the triggers are not sent to the device.

Does anyone have an idea what I can do to find a solution?

Thank you already so much for your considerations,

Katharina

I met the same problem, did you have solve it?

after a lot of trials I think the way I solved it was to copy the DLL files in the same folder as the psychopy file that I wanted to run and to run the DLL in Win32 (even though the PC is Win64)

so my instructions on the installation are now:

  1. run installation of DLL files in folder Win32
  2. copy and paste the installed DLL files (could be 64 or 32 depending on system) in
    the folder where the exectuable file = task/paradigm is

Hi There,

Out of interest did this error also occur on more recent versions of PsychoPy? looks like you are running quite an old version.

Thanks,
Becca

Hi Becca,

I am having the same problem using the latest version of Psychopy. The triggers are not showing up on BrainVision Recorder.
Thanks,
Jason

Hi @jchan,

Are you communicating with BrainVision via a serial port or parallel port?

Thanks!

Kim

Hi!
We are communicating through parallel port.
Best,
Jason

Hi @jchan,

Thanks!

In that case, if you’ve not already, could you please take the following steps:

  1. Could you please download and install the InpOutx64.dll and InpOut32.dll files from here. You need to use the “Binaries only - x86 & x64 DLLs and libs” option under the Download Links subheading.

  2. When you’ve downloaded the files, you’ll need to install the InpOut32.dll manually by running the InstallDriver.exe file that is in the Win32 folder. You’ll need admin rights on the machine you’re using to do this.

  3. You then need to copy the InpOutx64.dll and InpOut32.dll files in the same folder as your PsychoPy experiment file. Then restart PsychoPy and try running your experiment again.

As an additional step, I would also recommend checking that you’ve selected the correct address of your parallel port in PsychoPy. You can find out which address you’re using by heading to: Device Manager (you can find this easily by searching in the start menu) > Ports > Find your parallel port from the drop down > Right-click Properties > Resources tab.

Thanks!

Kim

Hi Kim,

Thank you so much for the quick and detailed response. I have installed Binaries and copied the DLLs the program folder but the EEG is still not receiving the triggers.

I have checked the device manager and the parallel port is set to LPT1. I assume that is still 0x378. I have not dealt with hex addresses in a long time. The ad-on card we are using has a SUNIX chipset. I am wondering if there is a compatibility issue. I am able to send triggers using a commercial experimental program (I deliberately do not want to advertise it), so I know it is not the hardware itself.

Best,
Jason

Hi Jason,

It is possible that could be the problem - I don’t think PsychoPy is expecting the address in “LPT1” notation - it is expecting the hex format. If you follow these steps to find the hex address Parallel Port Configuration what does the resources tab look like on your end? does it show something like 0378 - 037F or something different?

Becca

2 Likes

Hello everyone,

I came across this post while trying to fix my problem with sending triggers through parallel port to my Biosemi EEG system.
I have already placed a copy of inpout64.dll in both my experiment folder and the windows/system32 folder.
I have some issues in determining the correct port address. My LPT1 port in the device manager does not have a resource tab - so I found the addresses through the msconfig.exe procedure. They are different from the classic 0x0378, I tried to set my parallel port address to each of them in psychopy, without success. I also already added these port names in the hardware preferences in psychopy.

I notice I also have a SUNIX ad-on port, so now I wonder if that is the problem. The computer is new, so I haven’t tried the port with any other application (and I am definitely not an expert on this topic).

Any suggestion would be very appreciated!
Thanks,
Silvia

Hi @Silvia,

Are you connecting the BioSemi EEG system to your PC directly to a parallel port using a parallel port connection that has pins, or via some sort of USB connector?

Thanks!

Kim

Hi,
I’m so sorry to bring this up again, but our lab finally upgraded to windows 11, now using the SUNIX chipset.

I tried with the newest version of Psychopy, I downloaded and copied the DLLs but it is not working. Could it be that it is a hardware issue?

Any ideas on how to solve it?

Best
Kat

Hi @katpa,

Could you please give some more detail about what is happening when you try to run your task? Please include any error messages you’re getting.

Thanks,

Kim

Hi

We’re having a similar issue; the triggers we’re sending via the parallel port do not seem to be being detected by our acquisition software on the acquisition computer. Have run a PsychoPy demo, and tried using code components and the I/O parallel component. Have also tried installing those drivers as instructed.

Did you ever make it work?

Thanks,

Jenny

Hello @jretz

Do you have any other software that can send triggers via the parallel port, such as a Matlab or a Python script? This would help you to determine whether the problem lies with Psychopy or the configuration.

Best wishes Jens

Hi Jens

There are some experiments written in SR Experiment Builder that include TTL pulses, but I am not at all familiar with the software so not 100% sure I’m running them right, and mostly they’re designed to also link with eyetracking hardware that is not in place so the tasks won’t run. The one I have tried that does run makes it look as though there is something happening on the trace but a very small pulse and I am not 100% confident it is sending, however, the set-up has worked in the past using that software so in theory should still be working now.

MATLAB isn’t installed (and the computer isn’t networked so I suspect I’d get license issues if I tried). It looks like there is Python 3.12 - probably from when PsychoPy was installed. I’m not a coder so not sure what script to try running through that?

I was trying to install a 32 bit version of PsychoPy as I know some people had found that this worked. The most recent one I could find in the github releases labelled as 32 bit was PsychoPy3-2021.1.4-win32. But clicking the .exe file produces an error that says “This app can’t run on your PC”.

Thanks in advance for any insights you can share!

Jenny

Hello @jretz

AFAIK PsychoPy comes with Python 3.10. Therefore, the Python 3.12 version must be another install.

Do you have a PC capable of running 32-bit programs? What version did you use before?

I guess you have performed all these steps Communicating via a Parallel Port — PsychoPy v2025.2.0 ?

Any AI should help you to set up a short test script in Python to test any parallel port that Python can detect.

Best wishes Jens

Hi Jens

Back in the lab today - will see what I can do with getting AI to write me a test script.

I confess I don’t know much about it, I just wanted to try options I’d seen elsewhere on the Discourse posts. The PC is win64 but I saw that other people with Win64 tried installing the PsychoPy for win32 which had helped. I had no success with this though - I found another 32-bit version which the.exe file ran for, but once installed PsychoPy just would not open.

Yes, I’ve tried everything in the docs. Will report back if I make any progress!

Jenny

Hi Jens

We have progress! The python script worked, and then I was able to get PsychoPy to also send pulses so this gives me something. What is strange is the value of the pulses that I set in PsychoPy don’t really seem to correspond to the data acquisition software meaningfully. If I send a pulse of 255 (according to PsychoPy), the visible trace output is a value of about 4. If I use a pulse of anything else (be it 30, or 300!) the trace output is barely visible - more like 0.03, or 0.0something! It almost feels like it is high or low rather than numbers that equate to values. I can probably work with this and it may be more of a data acquisition software issue than a PsychoPy one, but if there is something obvious I’m missing that I can do, then please let me know.

Thanks for your help so far!

Jenny