# How to install/use the io64 function

**URL:** <https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992>\
**Category:** Hardware\
**Tags:** windows, linux, io\
**Created:** [May 15, 2023, 4:19pm UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992 "2023-05-15T16:19:09Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![DonutMan](https://avatars.discourse-cdn.com/v4/letter/d/ecb155/32.png) [@DonutMan](https://psychtoolbox.discourse.group/u/DonutMan)\
**Post date:** [May 15, 2023, 4:19pm UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992/1 "2023-05-15T16:19:09Z")

</div>

Hello,

i’m quite new in Matlab/PTB.

I need to send some triggers to the parallel port for EEG data. Most people in my lab use io64 function like this :

```auto
ioObj = io64;
status = io64(ioObj);
address = hex2dec(‘E010’);
io64(ioObj,address,value);

```

The EEG platform is on Windows 10.

I develop my code on Linux on my laptop which does not has any parallel port.  
The version of Matlab is R2022b and the PTB version is 3.0.18.

On this setup, there is no function io64 :

```auto
>> ioObj = io64;
Unrecognized function or variable 'io64'.

```

Perhaps this is an expected behaviour since I have not parallel port or perhap this is a Windows only function…

Do you have any idea here ?

And besides this issue, do you where I could find any documentation on this io64 function ?

Thanks a lot,

BR,

Pierre

---

<div class="post-metadata">

**Author:** ![Ian-Max-Andolina](https://yyz2.discourse-cdn.com/free1/user_avatar/psychtoolbox.discourse.group/ian-max-andolina/32/4_2.png) [@Ian-Max-Andolina](https://psychtoolbox.discourse.group/u/Ian-Max-Andolina)\
**Post date:** [May 16, 2023, 12:56am UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992/2 "2023-05-16T00:56:04Z")

</div>

For Linux the solutions are different, please read the FAQ:

> **[FAQ](https://github.com/Psychtoolbox-3/Psychtoolbox-3/wiki/FAQ#ttl-triggers)**
>
> Psychophysics Toolbox Version 3 (PTB-3) is a free set of Matlab and GNU Octave functions for vision and neuroscience research. - Psychtoolbox-3/Psychtoolbox-3

For Linux I think this is the recommended route to use Parallel port: [GitHub - widmann/ppdev-mex: Simple mex interface to ppdev](https://github.com/widmann/ppdev-mex)

There are lots of options for using USB ports too which obviously allow more flexibility in hardware configuration and could work cross-platform…

---

<div class="post-metadata">

**Author:** ![DonutMan](https://avatars.discourse-cdn.com/v4/letter/d/ecb155/32.png) [@DonutMan](https://psychtoolbox.discourse.group/u/DonutMan)\
**Post date:** [May 16, 2023, 8:36am UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992/3 "2023-05-16T08:36:55Z")

</div>

Hello Ian-Max-Andolina,

thank you very much for your quick and well documented answer !

I understand that sending messages through the parallel port is handled differently between Windows and Linux.

I will then focus on Windows since it is the system on which the “official” run will be performed.

On **32-bits Windows** , the [link you cite](https://github.com/Psychtoolbox-3/Psychtoolbox-3/wiki/FAQ%3A-TTL-Triggers-in-Windows) suggested to us **PortTall/lptwrite.c**

On **64-bits Windows** , it is rather suggested to use “ **Inpout driver** ” (I don’t know what this name refers to) and two links are given :

- the [first one](http://apps.usd.edu/coglab/psyc770/IO64.html) refers to **IO64** (hooray !) which seems to be maintained by the University of South Dakota
- the [second one](http://tech.groups.yahoo.com/group/psychtoolbox/message/9328) refers to a Yahoo group discussion and seems to use **callib** Matlab function

**Sadly, both links are currently dead so I can’t investigate furthermore.**

Searching the web, I found [another page](https://sites.google.com/a/brown.edu/lncc/home/Lab-Wiki/eeg/exp_setup) from which it is possible to download IO64. But there is no documentation and I can’t tell if this version is up-to-date.

How did you proceed on Windows to install IO64 since the main page on usd.edu is no more available ?

Thanks a lot !

BR

Pierre

---

<div class="post-metadata">

**Author:** ![DonutMan](https://avatars.discourse-cdn.com/v4/letter/d/ecb155/32.png) [@DonutMan](https://psychtoolbox.discourse.group/u/DonutMan)\
**Post date:** [May 16, 2023, 8:40am UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992/4 "2023-05-16T08:40:59Z")

</div>

Ok just a quick answer to myself :

I used [web.archive.org](http://web.archive.org) to see if (by chance) a snapshot of this page of usd.edu has been done in the past.

You can access a snapshot done 2 years ago (in 2021) at the following address : [Mex-File Utility for Fast MATLAB Port I/O (64-bit)](https://web.archive.org/web/20210903151747/http://apps.usd.edu/coglab/psyc770/IO64.html)

I will check that (and carefully save the page on my computer ^^)

BR

Pierre

---

<div class="post-metadata">

**Author:** ![Andreas](https://avatars.discourse-cdn.com/v4/letter/a/ee7513/32.png) [@Andreas](https://psychtoolbox.discourse.group/u/Andreas)\
**Post date:** [May 16, 2023, 12:55pm UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992/5 "2023-05-16T12:55:15Z")

</div>

> [@DonutMan](#):
>
> s this is an expected behaviour since I have not parallel port or perhap this is a Windows only function…

Yes, [web.archive.org](http://web.archive.org) seems to be a snapshot of Frank Schieber’s web site. Frank meanwhile retired and his webpage is down. I still use io64 on Win10 and Win11 PCs without any problems. Important issue: copy the inpoutx64.dll to Windows\System32 folder and run the InstallDriver.exe with admin priviledges.  
We are now moving to Neurospec MMBT-S USB trigger box which works stable on Win, MacOS and Linux. No code changes if you move your project to a system with different OS 🙂  
Greetings  
Andreas

---

<div class="post-metadata">

**Author:** ![DonutMan](https://avatars.discourse-cdn.com/v4/letter/d/ecb155/32.png) [@DonutMan](https://psychtoolbox.discourse.group/u/DonutMan)\
**Post date:** [May 16, 2023, 1:22pm UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992/6 "2023-05-16T13:22:12Z")

</div>

Hello Andreas,

thanks for your reply !

What do you mean by “run the InstallDriver.exe” ? Is InstallDriver.exe some sort of Windows executable available by default with Win10/11 ?

Because I don’t find any InstallDriver.exe on the USD webpage…

Thanks a lot for your information 🙂

BR

Pierre

---

<div class="post-metadata">

**Author:** ![Andreas](https://avatars.discourse-cdn.com/v4/letter/a/ee7513/32.png) [@Andreas](https://psychtoolbox.discourse.group/u/Andreas)\
**Post date:** [May 16, 2023, 1:47pm UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992/7 "2023-05-16T13:47:09Z")

</div>

> What do you mean by “run the InstallDriver.exe” ? Is InstallDriver.exe some sort of Windows executable available by default with Win10/11 ?

It came with the binaries of the io64, I can send you a zip file. But maybe placing the inpoutx64.dll in the System32 folder is sufficient. Give it a try.  
Best  
Andreas

---

<div class="post-metadata">

**Author:** ![pgerhardstein](https://avatars.discourse-cdn.com/v4/letter/p/dc4da7/32.png) [@pgerhardstein](https://psychtoolbox.discourse.group/u/pgerhardstein)\
**Post date:** [May 19, 2023, 10:05pm UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992/8 "2023-05-19T22:05:13Z")

</div>

This last should do it. As an aside, running in Linux will make a lot of things easier and more reliable. The parallel port is only one - but see the note from Ian-Max-Andolina; USB offers more flexibility (having said that, we use a parallel port on Linux)

---

<div class="post-metadata">

**Author:** ![johannesjuliusm](https://yyz2.discourse-cdn.com/free1/user_avatar/psychtoolbox.discourse.group/johannesjuliusm/32/627_2.png) [@johannesjuliusm](https://psychtoolbox.discourse.group/u/johannesjuliusm)\
**Post date:** [May 20, 2023, 6:51am UTC](https://psychtoolbox.discourse.group/t/how-to-install-use-the-io64-function/4992/9 "2023-05-20T06:51:17Z")

</div>

See also Mario’s helpful answer for best practice of sending TTL markers in this [thread here](https://psychtoolbox.discourse.group/t/best-practice-ttl-event-triggers-in-ptb-stimulus-presentation-loop/4659).
