parallel port - compatibility windows 10?

1,557 views
Skip to first unread message

sanneb

unread,
Jul 17, 2017, 8:52:02 AM7/17/17
to E-Prime
  • Hi all

  • I hope you can help me.

  • We installed 2 parallel ports on a Windows 10 PC. We want to couple an olfactometer to our PC/ePrime through one of these ports, as well as send a trigger to an EEG recording simultaneously, but we are not able to find the port address in Windows 10 through device manager (the resources tab is missing). We already googled this problem and found this: "To find your parallel port, open the Start menu, and in the search box type "msconfig" (no quotes) and press enter. The msconfig menu box will open. Choose the tab called "Tools" and select "System Information", click "Launch" Another window will open. On the left hand navigation pane, click on "Hardware Resources", then on "IO". The screen will say that it's refreshing information and then the right hand pane will display all of the IO devices in your PC, with the addresses on the left hand side of the pane. Scroll down until you find the parallel port adapter, and you'll have your address."

  • However this does not solve our problem, as in that list it shows 6 different LPT ports, whereas we only have 2, so we're not sure which address is correct. Trial and error using those addresses in our eprime script did not lead to successful triggering yet.. Do you know another way to find the address of this port? Or, is the parallel port device in Eprime (2.0.10.356) no longer compatible with Windows 10?

  • Many thanks!

David McFarlane

unread,
Jul 17, 2017, 11:55:23 AM7/17/17
to e-p...@googlegroups.com
So what E-Prime commands do you intend to use with this parallel port?
Do you plan to use WritePort, or the .OnsetSignal... facilities?
Indeed, for those methods you would need to know the port address.

But if you switch to using the much superior TaskEvents facility
introduced with EP2.0.10, then you do not need to know the port address,
you need know only the LPT number. Task Events also offers many other
advantages. Why not use Task Events?

-- David McFarlane


On 2017-07-17 8:52 AM, 'sanneb' via E-Prime wrote:
> -
>
> Hi all
> -
>
> I hope you can help me.
> -
>
> We installed 2 parallel ports on a Windows 10 PC. We want to couple an
> olfactometer to our PC/ePrime through one of these ports, as well as send a
> trigger to an EEG recording simultaneously, but we are not able to find the
> port address in Windows 10 through device manager (the resources tab is
> missing). We already googled this problem and found this: "*To find your
> parallel port, open the Start menu, and in the search box type "msconfig"
> (no quotes) and press enter. The msconfig menu box will open. Choose the
> tab called "Tools" and select "System Information", click "Launch" **Another
> window will open. On the left hand navigation pane, click on "Hardware
> Resources", then on "IO". The screen will say that it's refreshing
> information and then the right hand pane will display all of the IO devices
> in your PC, with the addresses on the left hand side of the pane. Scroll
> down until you find the parallel port adapter, and you'll have your address*
> ."
> -
>
> However this does not solve our problem, as in that list it shows 6
> different LPT ports, whereas we only have 2, so we're not sure which
> address is correct. Trial and error using those addresses in our eprime
> script did not lead to successful triggering yet.. Do you know another
> way to find the address of this port? Or, is the parallel port device in
> Eprime (2.0.10.356) no longer compatible with Windows 10?
> -
>
> Many thanks!
> -

sanneb

unread,
Jul 18, 2017, 3:33:26 AM7/18/17
to E-Prime
Hi David

Thanks for your response.
I intended to use the WritePort command, as I was not aware of other options for this. I will look into this and try your suggestions, and let you know if this works.

Sanne

sanneb

unread,
Jul 20, 2017, 6:52:19 AM7/20/17
to E-Prime
Hi David

So  I've tried the TaskEvent feature which is all new to me. For individual stimuli, I got it to work: different channels turning on and off. However, when I try to 'batch' it for a series of stimuli using the List option, I fail. I added an Attribute to the List, and to the TaskEvent Source/custom window, but somehow it doesn't differentiate between the different channels anymore and now only turns the same (first) channel on and off.
I attached screenshots of both tasks (individual, and using List), so you can see the difference, and how I coded it. I don't know what WriteByte means or would do; nor the difference between Long, Integer or Byte Data type, so perhaps I'm making a mistake there.

The alternative for me is reverting back to Windows7, and using the WritePort command again..

Thank you.
Sanne

ps: I noticed that in the past you recommended an online course for eprime (by yourself), but I can't find this anymore. Is it still available?


On Monday, 17 July 2017 17:55:23 UTC+2, McFarlane, David wrote:
individual stimuli.jpg
List stimuli.jpg

David McFarlane

unread,
Jul 20, 2017, 4:21:29 PM7/20/17
to e-p...@googlegroups.com
You got some communication to work with Task Events, so far so good.
Now to work out the further details. My online course actually goes
over some of the principles of coordinating E-Prime with external
equipment in a lesson on fMRI & EEG. That lesson still uses WritePort
and OnsetSignal (we developed the course before E-Prime added Task
Events), but the same principles apply to Task Events, and the course
video includes some text notes to hint at this.

So, after you output a signal using Task Events or whatever, you have to
reset the output before you output another signal. Using Task Events,
first use an OnsetTime event to output a Custom value with a Delay of 0,
just as you do here. Then use another OnsetTime event to output a
Custom value of 0 after some suitable Delay (e.g., 10) -- you sort of do
that in your "individual" example, but the delayed Custom value should
be 0, and you probably do not want such a long Delay; and your "List"
example is missing the delayed event. Also, I don't know why you have
quotes around the Custom value for the List example, you should probably
remove those.

For the differences between Long, Integer or Byte data types, I would
hope that any Introduction to Computer Programming course would cover
that. For your program, you almost certainly want to use Byte.

Thanks for asking about the online course, and for letting me know that
the link no longer works! We made major changes to our departmental
website a week or so ago, and that broke a few things, including that
link. We will have to fix that.

So the online course is still available. I need to tell you that we
developed the course with E-Prime 2, and have not updated it for E-Prime
3, so if you use EP3 the course will not work as well for you. But if
you still use EP2, you might find the course useful -- it may not answer
specific questions about Task Events or EP3, but I think it would give
you a solid grounding for your overall use E-Prime. I will have to let
you know as soon as we get that link working again!

-- David McFarlane

sanneb

unread,
Jul 21, 2017, 10:22:36 AM7/21/17
to E-Prime
Hi David

You were right, the quotes around the Custom value for the List example were the problem! I put them because I thought I had seen them in an example, but when I removed them it worked! Good catch :-)
And it seems to work both using Long or Byte.

The only remaining issue now, though minor in my opinion, is that if I understand you and other posts in this forum correctly, I should be able to reset the output before I output another signal, using the same OnsetTime event (though delayed). However, it doesn't work for me when using the same event (e.g. first signal, OnsetTime, SetBit at delay 0; second signal, OnsetTime, ResetBit at delay 50), but it does work when I choose another event to perform the task from (e.g. OffsetTime). 
I guess for what I'm doing right now this is no big deal, but it's not the way it should be right? In my 'individual example' this works, so maybe I should specify it as separate Event in the List or as different part of the Procedure (as I do now)?

Thanks again!
Sanne


Op donderdag 20 juli 2017 22:21:29 UTC+2 schreef McFarlane, David:

David McFarlane

unread,
Jul 21, 2017, 11:51:55 AM7/21/17
to e-p...@googlegroups.com
Sanne,

Glad you got it to work.

Yes, you should be able to both set and reset the output with a pair of
OnsetTime Task Events within one stimulus object. I do this all the
time. You do it just like you did in your "individual" example, except
that you set the second event Custom value to 0, and maybe use a shorter
Delay.

But sometimes the inelegant way that works now is better than the
elegant way that does not work yet. So if you have something that works
now then you might just want to run with it, and maybe as time permits
explore more elegance for use in future projects.

Best,
-- David McFarlane
Reply all
Reply to author
Forward
0 new messages