Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

[solved] EEG triggers and parallel ports

edited May 2014 in OpenSesame

Is it possible to send triggers via a parallel port on a PCI card, or is it only possible via an on-board parallel port? I am running Windows 7 64bit. Thank you

Comments

  • edited April 2014

    Hi Joshua,

    Yes, this is possible and that's what I do.
    You have to look for a card that supports EPP and ECP and complies to IEEE 1284. It should be a bidirectional card as well. And of course you have to look if there's a Win7 driver available. All this is mostly listed in the specs of each card (maybe check the manufacturer website).

    There are cards for PCI, PCI-Express and ExpressCard slot (notebooks). You can send triggers with all these cards. They mostly will have a different port number than the onboard cards (important for OpenSesame scripts/plugins).

    Cheers,
    Johannes

  • edited 5:30PM

    Thank you Johannes,

    I will be sure to give this a try. Thanks for your time

  • edited 5:30PM

    Hi Johannes,

    I purchased the card and it is working! well, i'm getting some triggers. the problem is, the resulting triggers on my Biosemi system are displaying trigger+1. Did you have this problem? Also, when sending a trigger in a loop, it only ever sends the first trigger and does not repeat this when it loops round again. It only successfully sends again if there are 2 triggers in the loop (indicating beginning and end of stimulus). Is it necessary to send 2 triggers (pre and post stim) for this method to work?

  • edited 5:30PM

    Hi Joshua,

    On your second question: When you send a trigger, what you are basically doing is changing the state of the parallel port (e.g. from 0 to 200. What most systems pick up, is this change in parallel port state.

    En example: if the parallel port starts at state 0, and you send trigger 200, this will change the state to 200. The change is picked up by the BioPac. Next time you send trigger 200, the state does not change (as it was 200 already), so nothing will be picked up by the BioPac!

    Simple solution: reset the state to 0 after every trigger you send.

    Good luck!

  • edited 5:30PM

    Hi Joshua,

    No, I never had such a problem. I had an issue with ghost triggers, see here. Though your problem sounds similar. By +1 you really mean, e.g., 37 instead of 36? Or does BioPac display binary values? (I have never worked with one). The sending of a 0 as Edwin mentioned solved my problem. Where you successful with that?

  • edited 5:30PM

    yes it is adding a 1 to each trigger on the BioSemi system. BioSemi displays decimal triggers. One problem that does occur when importing BioSemi into EEGlab is that the triggers are being sent in 8bit, however BioSemi adds an extra 8 bits (i'm really not sure why). Therefore when transformed back to decimal in EEGlab, the extra 8bits result in the trigger being much, much larger than the original trigger that was defined in OS (it is adding 65280 to each trigger as all of the additional 8bits are 1). Maybe something similar is happening here and the resulting trigger (trigger+1) on my BioSemi system is the result of my defined trigger, + an additional bit being introduced erroneously. I am going to try putting in the reset today.

    Thanks guys

  • edited 5:30PM

    OK things are looking good. It is no longer adding 1. Instead of doing io.DlPortWritePortUchar(port, trigger) when trigger = 0

    i have now done io.DlPortWritePortUchar(port, 0)

  • edited 5:30PM

    Excellent! Marking this as solved.

  • Hello everyone,
    I know this is redudant with the start of this thread, but maybe I can receive some more beginner level help from you ;)

    we have an experimental setup in OpenSesame (2.9.7) and want to send different triggers to the EEG recording in BrainVision Recorder.
    BrainVision Recorder uses the parallel port (so I can´t use the serial port via some inline_script as I have done in other experiments with other recording devices before).

    I downloaded this (http://osdoc.cogsci.nl/3.1/manual/devices/parallel/) plugin for OpenSesame, namely the parallel_port_trigger (download actually from here: https://github.com/dev-jam/opensesame_plugin_-_parallel_port_trigger).
    Since the running system is Windows 7 (64 bit), I followed and now completed the nine steps, including the “Digital Signature Enforcement Overrider” (DSEO), as to get the required driver (http://real.kiev.ua/avreal/download/#DLPORTIO_TABLE) running.

    The problematic point is now, how do I actually GET THE PLUGIN STARTED, may it be via the GUI or some inline_script oder other scripts(?) ???

    Please give me advices if you have managed a solution working for you in some way, or report any mistakes you made at first (so that I can check if all my settings are as they´re supposed to be).
    I´m a user on beginners level, so please explain steps that may seem obviously to you ;)

    Kind regards and thanks a lot, Adrian

    PS. Maybe this issue helps. If it is necessary, please comment about it (https://groups.google.com/forum/#!msg/psychopy-users/hbIO2wHK1KU

Sign In or Register to comment.