Skip to content

Connecting with the Medelopt VR System

Medelopt

MedelOptĀ® research devices provide full integration of functional nearinfrared spectography (fNIRS) and electroencephalogram (EEG) modalities in a wearable, self-contained headset. The unique design, developed by researchers for researchers, blends bimodality and flexi-modularity in an adaptable and self-contained system that supports a wide range of research possibilities.Ā  The flexible, adaptable headset supports acquisition for up to 8 hours. Use for research applications with regions of interest from prefrontal to the cerebellum and through parietal, and lateral cortex. Integrate MedelOpt with other physiological data from BIOPAC devices for multimodal data acquisition.

Click here for more information

Example for sending events to the ElOpt software for the Medelopt system. This will send an event to synchronize with the Medelopt data. An event is sent when a gaze time or gaze end event occurs. The "buttonTrigger" functions shows how to send a marker with a keypress (in this case the 't' key)

Note: requires installing the pyserial library using the Package Manager

import sightlab_utils.sightlab as sl
from sightlab_utils.settings import *
import serial  # ElOpt
import struct  # ElOpt
import time  # added MV

# ElOpt - fNIRS
COM_PORT = "COM9"  # define the com port number
s = serial.Serial(COM_PORT)
s.open  # Open the COM port
sightlab = sl.SightLab()



def gazeActionEnd(e):
    print("Gaze Ended")
    s.write(struct.pack("!B", 2))  # ELOPT - AUX1 OFF # Added MV



def gazeActionStart(e):
    print("ELOPT Marker sent")
    s.write(struct.pack("!B", 1))  # ELOPT - AUX1 ON
    # s.write(struct.pack('!B',2)) # ELOPT - AUX1 OFF


vizact.addCallback(sightlab.GAZE_TIME_EVENT, gazeActionStart)
vizact.addCallback(sightlab.GAZE_END_EVENT, gazeActionEnd)
sightlab.addCustomTrialDataColumn("ELOPT Markers")



def buttonTrigger():
    sightlab.setCustomTrialData("Send Custom ELOPT Marker", "ELOPT Markers")
    s.write(struct.pack("!B", 3))  # ELOPT - AUX2 ON
    wait_timer = 0.5  # sec
    time.sleep(wait_timer)
    s.write(struct.pack("!B", 4))  # ELOPT - AUX2 OFF
    print("marker sent with key")


vizact.onkeydown("t", buttonTrigger)
viztask.schedule(sightlab.runExperiment)