Skip to content
This repository has been archived by the owner on Aug 21, 2019. It is now read-only.
/ CyKITv2 Public archive
forked from CymatiCorp/CyKITv2

Python Data Controller for Neural EEG headsets. (Windows + Linux)

Notifications You must be signed in to change notification settings

tafaust/CyKITv2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Updated Version (2017.12.23)

Original repository: https://github.com/CymatiCorp/CyKITv2

Chat Discussion: https://discordapp.com/invite/gTYNWc7
(Do not need discord app, just click for browser chat)

CyKit 2.0 (2017.12)

  • for Python 2.7.6 (Windows)
  • for Python 2.7, 3.5, 3.6 (Linux)

Python Data Controller for Neural EEG headsets.

Description

Streams EEG data to a browser for data handling. Works with Chrome and Firefox thus far.

Dependencies

See requirements.txt.

Installation

Windows

  • Install Python 2.7.6
  • Install pycrypto
  • Extract pywinusb-0.4.2
  • Copy pywinusb/ folder to Python27\Lib\site-packages\

Linux

Tested with Arch Linux so far. Feel free to contribute!

Arch Linux

Note: I'll outline the installation process for Python 3.6 in what follows.

  1. Install one of python 2,7, 3.5, 3.6 sudo pacman -S python (for the latest python version)
  2. Clone this repository and cd into the cloned repository
  3. Install virtualenv and create it (as you like to keep your global site-packages clean)
    • sudo pacman -Syy python-virtualenv
    • virtualenv ./venv
  4. Install packages into local virtualenv
    • source ./venv/bin/activate
    • pip install -r requirements.txt
  5. Optionally, create missing symlinks for .so's from your virtualenv to your system folder. In my case, this was:
    • sudo ln -s path/to/venv/lib/python3.6/site-packages/hidraw.cpython-36m-x86_64-linux-gnu.so /usr/local/lib/libhidapi-libusb.so.0

Usage

Example 1. python CyKITv2.py 127.0.0.1 18675 2

Example 2. python CyKITv2.py 127.0.0.1 15309 4 info

Example 3. python CyKITv2.py 127.0.0.1 12991 6 info+confirm

  • Open a browser. (Firefox/Chrome)
  • Open Web Document in project: /Web/CyKITv2.html
  • Enter localhost and listen port used to run CyKITv2.py
  • Press "Connect"

Features

  • Uses Python threading.
  • Able to connect localy to localhost. (no need for http servers)
  • Scrolling
  • Able to make use of EEG data via javascript.
  • EEG graphing.
  • Masking (Advanced feature lets you manipulate data functions in real-time)

Note: Does not currently stream to openvibe.
Only a browser can access this data.

Beta

Updated 12.23.2017

Gyro Data not yet supported.
Depending on the headset, you may be able to view gyros in manual control.
Epoc+ gyros will not currently be displayed.
Note: Switching to Gyro-mode may cause EEG to stop displaying.
Refresh the browser if this occurs.

Recordings work, however it has not been tested with importing
to any application, and the headers may need some work.

Todo:
Fix (All, Counter) buttons.
Add Gyros.
Add Game.
Add Epoc+ Settings change.
Fix CSV header data.
Add OpenVIBE support.
Add Generic TCP layer.
Fix Misc. visual bugs with scrolling.

  • Feel free to offer comments and suggests via Issues, for further
    information check our Discord server. Submit new push requests,
    if you have something to contribute.

About

Python Data Controller for Neural EEG headsets. (Windows + Linux)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 51.5%
  • JavaScript 20.8%
  • CSS 17.9%
  • HTML 9.8%