Parallel port triggering#
A PCIe device such as “StarTech.com 1 Port PCI Express” should work. USB to parallel port adapters will not, due to hardware limitations of the devices ($10 ones on Amazon are only designed for printers) and the USB protocol itself, which is not designed for low-latency control.
Instructions differ between Linux and Windows:
- Linux
On Linux, you need
pyparallel
:$ pip install pyparallel
You might also need some combination of the following:
$ sudo modprobe ppdev
Add user to lp group (
/etc/group
)Run
sudo rmmod lp
(otherwise lp takes exclusive control)Edit
/etc/modprobe.d/blacklist.conf
to add blacklistlp
$ ls /dev/parport*
to get the parallel port address, e.g.'/dev/parport0'
, and set this asTRIGGER_ADDRESS
in the config.
- Windows
If you are on a modern Windows system (i.e., 64-bit), you’ll need to:
Download the latest “binaries” archive from the InpOut32 site
Extract the files
Run the
Win32\InstallDriver.exe
file (yes, even though it’s in the Win32 directory)Rename the 64-bit file
inpoutx64.dll
toinpout32.dll
Place this file in
C:\Windows\System32\
Use the Device Manager (or some other method) to get the parallel port address (from Ports➡Properties➡Resources➡I/O Range), e.g.
0x378
or0xCFF4
, and set this asTRIGGER_ADDRESS
in the config.If you have trouble, you can interactively test your parallel port using the parallel port tester application.