Millisecond Forums

Inquisit to trigger TMS

https://forums.millisecond.com/Topic26527.aspx

By snikolin - 3/5/2019

Hi,
I'd like to trigger a transcranial magnetic stimulation (TMS) device using an Inquisit TTL signal. I've successfully used a variant of the below code to send signals to an EEG amplifier (TMSi Polybench). Unfortunately, I haven't had any luck so far with the TMS trigger. The TMS device requires the following inputs:

TMS MagPro Trigger Input
DSUB 9 pin Female
Pin 1: Trigger Input
Pin 2: Trigger Output
Pin 3: Ground. (Reference)
Pulse width > 5µs
TTL + CMOS levels accepted
Input Impedance > 10 kΩ
Default: Falling edge/Rising edge (user defined)

My Inquisit script attempt (relevant sections only):
<port triggersignal>
/ port = LPT1
/ subport = data
/ items = ("11111111")
/ erase = ("00000000")
</port>

<trial test>
/ stimulustimes = [0=start; 1000 = trigger, triggersignal]
/ validresponse = (noresponse)
/ trialduration = 5000
/ recorddata = false
</trial>

Any help would be very much appreciated!
By Dave - 3/5/2019

snikolin - Tuesday, March 5, 2019
Hi,
I'd like to trigger a transcranial magnetic stimulation (TMS) device using an Inquisit TTL signal. I've successfully used a variant of the below code to send signals to an EEG amplifier (TMSi Polybench). Unfortunately, I haven't had any luck so far with the TMS trigger. The TMS device requires the following inputs:

TMS MagPro Trigger Input
DSUB 9 pin Female
Pin 1: Trigger Input
Pin 2: Trigger Output
Pin 3: Ground. (Reference)
Pulse width > 5µs
TTL + CMOS levels accepted
Input Impedance > 10 kΩ
Default: Falling edge/Rising edge (user defined)

My Inquisit script attempt (relevant sections only):
<port triggersignal>
/ port = LPT1
/ subport = data
/ items = ("11111111")
/ erase = ("00000000")
</port>

<trial test>
/ stimulustimes = [0=start; 1000 = trigger, triggersignal]
/ validresponse = (noresponse)
/ trialduration = 5000
/ recorddata = false
</trial>

Any help would be very much appreciated!

I can't really find sufficient documentation for the MagPro. Based on the little that's there, you can either try connecting your computer's serial port (COM, not LPT) to the MagPro's trigger input port, or you need to use the parallel port with a suitable adapter cable.

The specs you posted read like the system is expecting a pulse on a single line on its DSUB connector. You need may need an adapter that connects your computer's parallel port to the input pin (#1) on MagPro's DSUB connector. Then you can raise and lower signal on the parallel port's corresponding pin as needed to send a pulse on that line. I.e. something like this:

<trial test>
/ stimulustimes = [0=start; 1000 = trigger, raisesignal; 1050=lowersignal]
/ validresponse = (noresponse)
/ trialduration = 5000
/ recorddata = false
</trial>

<port raisesignal>
/ port = LPT1
/ subport = data
/ items = ("00000001")
/ erase =false
</port>

<port lowersignal>
/ port = LPT1
/ subport = data
/ items = ("00000000")
/ erase =false
</port>

However, as I said, the documentation available is a bit lacking, so take the above with a grain of salt and consult with your local technician before wiring things up.