Skip to content

Latest commit

 

History

History
93 lines (60 loc) · 3.73 KB

README.md

File metadata and controls

93 lines (60 loc) · 3.73 KB

NXT Data Collector

The Data Collector is a graphical user interface to record participant EEG data. A researcher will run tests that prompt the participant to imagine motor impulses using audiovisual cues. The data from the OpenBCI LSL stream will be recorded, labeled, and saved to a folder hierarchy of all participants, sessions, and trials after a manual visual confirmation by the researcher.

Current Version: [1.3.0-b] - 4/14/2024

Download & Install

Git

$ git clone https://github.com/Neurotechnology-Exploration-Team/DataCollector.git
$ cd DataCollector/
$ pip install -r requirements.txt

Software Requirements

  • Python v3.12.x
  • Standalone OpenBCI GUI v5.2.2 (Required to interact with LSL stream data)
    • MacOS & Linux users will need to install liblsl; OpenBCI only ships with the library on Windows.

Usage

You will first need to set up LSL streams for the Data Collector to interface with.

LSL Streaming

Launch OpenBCI_GUI.exe

Select data source type from System Control Panel > DATA SOURCE.

  • Real-Time LSL Data: Select CYTON (Live)
  • Algorithmic LSL Data (USE FOR TESTING ONLY): Select SYNTHETIC (Algorithmic)

Leave all settings as default, and press START SESSION

Setup LSL Stream

  • Change one of the widgets to Networking
  • Change protocol to LSL
  • Configure the Networking Window as follows:

image

Press Start LSL Stream to activate the LSL stream on the local network. Press Start Data Stream to begin streaming test data.

The LSL streams are now streaming on your laptop. Press Stop LSL Stream and Stop Data Stream when complete.

Data Collection

Once the LSL streams have been established, the data collection process can be initiated

Run main.py to run all tests and record data.

$ python main.py
  • Clicking on the button to start each test will display the test in the display window.
  • After each test, a confirmation window will appear with the recorded data.
  • Each trial will be saved to <DATA_PATH>/PXXX/SXXX/trial_XX/<STREAM_TYPE>_date.csv (see config.py for additional configuration)
    • Each LSL stream will be saved to a separate CSV file. There should be no blank values.
  • Once all tests have been completed, the window will automatically close.

By default, only EEG data is recorded. To enable other data streams, modify the SUPPORTED_STREAMS booleans in config.py.

Contributors

Principal Investigator: Alex Burbano

Research Team:

How to Contribute

Bugs: Any bugs found should be opened as an issue. If you're able to after creating the issue, feel free to assign yourself and start working on it! Otherwise, the current development team will look into it.

Features: Any unassigned, open issues are free game for any team member. There is usually more detailed instructions in the issue. If you have an idea for a new feature, create an issue or fork of the repository.

Any contributions MUST have a pull request and changelog before being merged into dev (main for hotfixes).