Using Cedrus RB-844 and Cedrus m-pod w/ Inquisit 5 for task synchronization to EEG machine


Author
Message
ayoforyayo11
ayoforyayo11
New Member (30 reputation)New Member (30 reputation)New Member (30 reputation)New Member (30 reputation)New Member (30 reputation)New Member (30 reputation)New Member (30 reputation)New Member (30 reputation)New Member (30 reputation)
Group: Forum Members
Posts: 1, Visits: 3

Hi,

I'm looking for some help with using the m-pod to communicate from Inquisit to an EEG machine.
I am using  the following system to collect EEG data synchronized with task data:

  1. Task software: Inquisit 5
  2. Response pad: Cedrus RB-844  response pad
  3. EEG: Nihon Kohden EEG-1200  cart (https://us.nihonkohden.com/products/eeg-1200/)
  4. Sync method: Cedrus m-pod  connected to RB-844 (via display port) and to EEG at 16-pin DC input.

Summary: PC runninginquisit --(usb)--> RB-844 --(display port)--> m-pod --(16-pin DC)-->EEG
My goals
  1. To see button presses show up  in the EEG data (RB --> m-pod --> EEG)
  2. To see TTL/event markers sent  from my Inquisit script in the EEG data (PC --(bypass RB)--> m-pod  --> EEG)
    1. I need to be able  to mark when unique events happen that don't align with a button press.

Currently, I am able to do #1. When a button is pressed, I see the m-pod light up, and I see a deflection on the EEG through one of the DC channels.
  • All that was required for  this was the EEG data collection settings to be configured to record from  the DC port. So at least I know that if I can get the m-pod to light up,  I'll be able to see it in the EEG data.

I am stuck on #2.Cannot get the m-pod to light up from a command in Inquisit
  • I have tried to send signals  through Inquisit's parallel and serial port tool: https://www.millisecond.com/support/docs/v5/html/howto/howtoportmonitor.htm
    • I'm not sure if this is a  parallel port or serial port, but neither seems to work via this tool.
  • And through the script with  commands like these: https://www.millisecond.com/support/docs/v5/html/howto/howtosendport.htm
    • See my sample Inquisit  script below
  • Neither results in the m-pod  lighting up. The m-pod documentation (https://cedrus.com/support/xid/mpod_commands.htm) says that I need to use the  command "aq" to tell the host (RB-844) to "stand aside and  let the computer communicate directly with m-pod." There is also  documentation saying I should be communicating w/ RB-844 and not m-pod  with "mh" and "mp" commands.
    • These commands are all  python/C++ commands to communicate with the cedrus hardware.
    • I don't have experience with  python or C++, but it looks like I need to somehow get those commands  through to the hardware via Inquisit.
    • I'm not sure how to do this  in Inquisit's task software (or if it can be done)

Note: I have downloaded Xidon to attempt to map the m-pod/RB system. I'm not completely clear on what the usb numbering system means in terms of what I command from Inquisit to get a particular DC input to deflect.

So in summary, here is my main question with sub-questions: What do I write in my Inquisit code to result in the m-pod sending a signal to the EEG?
  • Is this even possible through  Inquisit?
  • Am I using a parallel port or  a serial port with this setup?
  • Is there something I need to  do through Xidon?
  • What does the Xidon mapping  really mean?

Below is a sample Inquisit script in which I attempt to send an event marker. All I've done here is added a trial to the basic RB response test script so that it attempts to send one bit first.


<defaults>
/ inputdevice = XID
/ minimumversion = "4.0.3.0"
</defaults>

<xid responsepad>
/ product = responsepad
</xid>

<values>
/ response = 0
</values>

<data>
/ columns = [response latency]
</data>

<expt>
/ blocks = [1=test]
</expt>

<block test>
/ trials = [1 = sendonebit; 2-20=test]
</block>

<port on>
/ items = ("00000001")
/ port = XID
</port>
<text word>
/ items = ("Send One Bit")
</text> 
<trial sendonebit>
/ trialduration = 2000
/ posttrialpause = 2000
/ stimulustimes = [0 = word, on]
/ validresponse = (112)
/ correctresponse = (112)
</trial>

<text responsefeedback>
/ items = ("Response: <% trial.test.response %>")
/ position = (50%, 50%)
</text>

<text lastevent>
/ items = ("Last Event: <% xid.responsepad.lastevent %>")
/ position = (15%, 70%)
</text>

<text lasteventport>
/ items = ("Port: <% xid.responsepad.lasteventport %>")
/ position = (30%, 70%)
</text>

<text lasteventaction>
/ items = ("Action: <% xid.responsepad.lasteventaction %>")
/ position = (50%, 70%)
</text>

<text lasteventbutton>
/ items = ("Button: <% xid.responsepad.lasteventbutton %>")
/ position = (70%, 70%)
</text>

<text lastlatency>
/ items = ("Latency: <% xid.responsepad.lastlatency %>")
/ position = (85%, 70%)
</text>

<trial test>
/ stimulustimes = [1=responsefeedback,lastevent,lasteventport,lasteventaction,lasteventbutton,lastlatency]
/ validresponse = (anyresponse)
</trial>





GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Reading This Topic

Explore
Messages
Mentions
Search