Registered: 1521149083 Posts: 1
Reply with quote #1
I have been trying to figure out how ML will communicate with our MR Scanner (Brooker BioSpin running ParaVision 6). I understand the scanner can send out and use TTL pulses to timestamp slices and trigger runs. On the ML side of things, I see I can use GOODMONKEY to trigger a TTL but I am unsure how to get ML to register the TTL pulses coming from the scanner as a timestamp, I think it would be an EVENTMARKER? Am I on the right path or is there some obvious documentation I'm missing. Thanks!
Registered: 1435685587 Posts: 627
Reply with quote #2
goodmonkey() and eventmarker() use TTLs, but they are outbound pulses to trigger reward devices or synchronize timing with external devices, so you don't want to use them.
To register inbound TTLs, you can use eyejoytrack() with a button. Hook up the TR signal of the scanner to one of the buttons and call eyejoytrack() with 'acquiretouch' or 'holdtouch'. ----- example 1 ----- ontarget = eyejoytrack('acquiretouch',1,,60000); % Wait for a TR pulse for 60 sec. 1 is the button #. if ~ontarget error('No TR pulse is detected!!!'); end ----- end of example 1 ----- 'acquiretouch' looks for a rising edge (LO->HI), so, if your scanner sends an inverted pulse (HI->LO), you can use 'holdtouch' instead. ----- example 2 ----- ontarget = eyejoytrack('holdtouch',1,,60000); % W ait for a TR pulse for 60 sec. 1 is the button #. if ontarget error('No TR pulse is detected!!!'); % The ontarget status is opposite. end ----- end of example 2 ----- The button input is not saved to the data file in the runtime v1, so, if you need to record the entire TR signal, split the signal and hook one to the button and the other to a general input.