Error with LPT port: Failure to open requested data acquisition devide
22 views (last 30 days)
Let me start by saying I am not a fullblown programmer, but a neuroscientist in training with a nerdy side and an affinity for making my experiments in matlab. Please keep this in mind while answering, I might need slightly more explanation than most.
General info: I'm using Windows XP. Unfortunately, I cannot change that, since the computer is the universities' property. Withing XP, I'm using MatLab 7.10.0 (R2010a) with the data acquisition toolbox and the Psychtoolbox.
For my current experiment I'm using a tapperdevice, a device that is able to create tactile patterns by tapping on the skin. I've connected the device to a PCI card with a parallel port (LPT), onto an Asus P5K motherboard. I've checked within the devicemanager which LPTport the device connects to, and set it to both LPT 1 and 3 in turn, but in both cases I get this error:
??? Error using ==> digitalio.digitalio at 115 Failure to open the requested data acquisition device
Error in ==> tapperdriver at 29 dio = digitalio('parallel','LPT1');
When I use
It does return to me
ans = 'parallel' 'winsound'
So there seem to be no problem with the registration of the port.
Next I checked what was at 115 in digitalio, and it says something about deprecated adaptors. Which seems to indicate a negation of my adaptor or something, but my knowlegde of this kind of thing isn't good enough to understand how to solve my problem.
I've tried using the tappers on another pc, where the parallel port is built into the motherboard, and there it works flawlessly. That seems to indicate a problem with the drivers/functioning of the PCI LPT card, I've reinstalled it's drivers, but that does not solve the problem.
I've also found tips that running MatLab in administrator mode should work, but because I am on an university computer, and nobody remembers the administrator password (thank you scatterbrained professors of the world), that isn't an option. Does anybody have any suggestions on how to solve this issue without administrator rights? Or anything else I should try or check?
Any help would be greatly appreaciated!
Rob Purser on 21 Mar 2011
Alas, your issues are classic problems with the parallel interface. We used a number of backdoors in the operating system and legacy modes in the hardware to gain access to the parallel port hardware. Most of these have been closed since Winodows XP, and few vendors make register compliant LPT ports anymore. Thus, our decision to deprecate. If the parallel port appears in DAQHWINFO, then it's something in the configuration of the hardware, rather than needing admin rights.
Sometimes, the hardware vendors provide an configuration application. You need to find that, and set the the hardware into legacy mode. It's needs to appear at register 378h to be recognized as LPT1.
Today, we recommend the use of a low cost digital I/O device, such as the Measurement Computing USB-1024LS. Hope this helps you to configure you machine to get it to work.
Janrik Oberholzer on 22 Mar 2011
Hi, we have and similar problem.
??? Error using ==> digitalio.digitalio at 115 Failure to open requested data acquisition device.
Error in ==> Task1 at 3 dio=digitalio('parallel','LPT1');
Intel i5 Hardware with a Sunix PAR 5008a PCI card set to LPT1.
Our accounts are Administrator on the systems and we have the latest Windows and Device patches/drivers loaded.
Where does one set "at register 378h to be recognized as LPT1" In the BIOS? (Bios options for PCI devices is greyed out)
Any help will be appreciated.
Anne Findlay on 30 Jun 2011
Hi there, we are using Windows XP, 32-bit, and are having similar problems. We had to upgrade to a new computer for a similar use as Sirius, and have a MosChip PCI parallel port card. Unfortunately our expensive and irreplaceable imaging system using a parallel port interface. We have verified that the address is 378 (resources page on device settings lists 0378-037F as first setting) and have run another stimulus program (Eprime 1.2) which successfully sends triggers over H378. (Eprime is very specific and actually uses "H378" in the code to indicate the parallel port.) So we know that that is working. Yet we have found nothing to get this line of code working:
We have verified that it is LPT1 and have tried using LPT3 etc. We had it all working on Matlab R2006a on our prior computer and have also tried with Matlab R2011a. Using R2011a we could get the nidaq card working fine so I am confident that the digitalio function is working. (Although on R2006a I seem to have to use analoginput to use the nidaq.)
Before we dig an old PC out of the garbage heap, do you think there is any hope for us to get this working with our PCI card? Any other suggestions?
Thanks, Anne Findlay