BCI2000 and EEGLab/BCILab

Hi,

I'm anxiously awaiting the hardware delivery! Not long now :-) I'm at the University of Victoria and here in our EEG lab I've been using both BCI2000 and LSL (the data layer under EEGLab and BCILab.)

I'm starting to look into writing a driver for these platforms. I'll post here as I make progress and figure out where to put them when I'm done and have tested them on the actual hardware. I think I have all the information I need to get started, but if anyone else is also working on this let's chat so we don't duplicate work.

Thx,

Derek

Comments

  • Hi derekja,
    Which campus of University of Victoria? I'm currently at Swinburne but hoping to move to Melbourne  Uni for next year.
    I have hardware on the way as well, also have used EEGlab/BCIlab and LSL for BCI and neurofeedback.

    Maybe we can colaborate?

    Alistair
  • Hi Alistair,

    Oh, the other Victoria I'm afraid! I'm in British Columbia Canada.

    I'd love to collaborate remotely, though! I'll get the project posted up on github this week and post a link here.

    Best,

    Derek
  • biomurphbiomurph Brooklyn, NY
    Hi derekja,

    have you made much progress with the driver?
  • Hi.

    Sorry, I got yanked away onto another project for a while but with my OpenBCI unit now in hand I expect to be back working on this shortly! Which is your primary interest, BCI2000 or EEGLab?

    Thx,

    Derek

  • Hi Derek,

    I'm glad to hear you're planning to work on drivers. I'm hoping to use BCI2000 with OpenBCI in the near future to study mu wave event related desynchronization. 

    Best,
    Amelia
  • Hi Amelia,

    Great! I've started looking at BCI2000 first, so I suspect I'll get that done before EEGLab particularly now that I know someone else is interested. More soon!

    Regards,

    Derek

  • Hi Derek,

    I am also interested in working on EEGLAB along with LSL using my 32Bit-V3 board. I'll be looking for it too.

    Thanks for a great work
  • biomurphbiomurph Brooklyn, NY
    Hey guys,

    Really exciting stuff! 
    If you want to share your progress, please know that our community page works as a RSS aggregator for cool projects and stories. If you're keeping a blog/wiki/whatever, let us know and we can share it with the community. 

  • edited January 2015
    Having worked extensively with BCI2000 and having recently written a source module for it,  I should warn you that the project is currently (mid 2014 to early 2015) in a transitional period.  The published walkthroughs for adding your own components, such as http://www.bci2000.org/wiki/index.php/Programming_Howto:Quickstart_Guide , will work most smoothly if you check out an older svn revision of the source code rather than rHEAD.   I'd recommend r4528.    But don't worry—any work you do now will likely be preserved once the transition is over, or require only minimal updating.

  • Thanks for that note. I've been working on an older version and went to try and update this week and my world went to hell. I think I'll step back to developing on my previous version.
  • wjcroftwjcroft Mount Shasta, CA
    Folks, have there been any updates on the BCI2000 front? Karl @KZurn was asking me via email.

    Jeremy @jfrey does have OpenBCI talking with LSL, which interconnects with many packages. So it's possible one angle would be a BCI2000 to LSL bridge.

    William

  • I'm afraid there hasn't been. I had some trouble with the BCI2000 driver model and found myself fighting an uphill battle with my supervisor over why I needed another device in the mix.

    I was impressed by the florida research electrodes and ordered some and when they come in I intend to put together a nicer headset setup and once again make the case for running a study on the OpenBCI hardware, but until I do I'm afraid I haven't been able to get any of my time freed up to work on the BCI2000 driver that I'd hoped to.

    Exciting that LSL is running.

    Derek


  • wjcroftwjcroft Mount Shasta, CA
    Derek, thanks.

    Found this Python interface for BCI2000, and since Jeremy @jfrey 's OpenBCI_Python LSL bridge plugin is also in Python -- this might allow a similar plugin approach.

    http://www.bci2000.org/wiki/index.php/Contributions:BCPy2000

    "You can program a python-based application module, signal processing
    module, or even a signal source module for generating custom test
    signals and playing back data files."

  • Hi  derekja,

    After seen a post with
    the high costs of hardware that interfaces with the BCI2000 software we are
    getting back on our project of packaging the 32 bit 16 channel OpenBCI
    system.  We hope to have a system in the
    $1,000 range.  If there were a software interface to the BCI2000 this would make a very inexpensive system for researchers.  Do you or do you know of anyone doing work to
    interface the OpenBCI system to the BCI2000?

    Karl Zurn, Florida
    Research Instruments Inc., www.FRI-FL.com

  • edited June 2015
    @wjcroft  be advised:  the BCPy2000 project works nicely but requires somewhat "legacy" dependencies: Python 2.5.4 and some old versions of some third-party packages.  These are packaged together in https://bitbucket.org/jezhill/fullmonty254  .  Support for later versions of Python (and other interpreters) is in the works but semi-stalled.
  • wjcroftwjcroft Mount Shasta, CA
    @jezhill , oh my gosh. I'm just seeing now that you are Jeremy Hill at the Schalk Lab and the principal developer of the BCPy2000 project. What a great resource (and honor) to have you here on the OpenBCI forum.


    Jeremy is also a project coordinator for BCI2000. Thanks again for these various pointers you are giving us!

    William
  • @wjcroft —thanks!  I'm doing research at burke.org now, so am no longer at Wadsworth/the Schalk lab and no longer centrally involved in BCI2000 as a whole. But I can certainly give tips based on what I do know.  I've recently been told that BCI2000 development is back on track and that the next stable release is expected around September.
  • Hi everyone,

    I'm Rodrigo and I'll be interning this summer for OBCI. My main focus will be to connect OBCI to as many EEG related software (acquisition, signal processing, BCI). As of now, OpenVibe 1.0.1 includes an OpenBCI driver and we are working with Neuromore and should have their system support it soon too. 

    The next target is BCI2000. If anyone has any resources they've found that could be useful or know of any specific people I should contact, please let me know.

    @jezhill, would you consider that an LSL based approach would be the most effective? Maybe trying to update BCPy2000?

    My OBCI email is [email protected] in case anyone would like to contact me personally.

    Bests,
    Rodrigo 
  • Hello guys,
    are there news regard the interface the OpenBCI system to the BCI2000?
    Bests,
    Virginia
  • Is this available now? Actually, I have a OpenBCI board for signal acquisition and I want to send signals from it to P3Speller_SignalGenerator.bat in BCI2000? How to achieve this?
  • zqzq
    edited January 2017
    I have OpenBCI board and i want to use it for signal acquisition from BCI2000 P300 speller batch file. I am unable to acquire signals using OpenBCI board. Is there any special driver needed to use it with BCI2000 or is there any other workaround. Please suggest. Thanks
  • wjcroftwjcroft Mount Shasta, CA
    @zq, hi. I merged your BCI2000 question into this existing thread. Please post BCI2000 questions here, as then all the previous posters get an email notification on new entries.

    Jeremy Hill @jezhill, who posted above is a past developer on BCI2000; and may have some tips to share or leads. Have you tried posting on BCI2000 forums?

    Regards,

    William

  • zqzq
    edited January 2017
    @wjcroft, yes I have posted on BCI2000 forums as well.
    @jezhill, please suggest some workaround if you have any for my problem. Shall be very thankful to you as I am stuck on it for weeks now. Thanks
  • wjcroftwjcroft Mount Shasta, CA
    You can PM Private Message Jeremy by clicking on his name, then the Message button. For at sign mentions, he only receives a "new post" notification with no context.
  • MadiMadi Australia
    Hi Dear All,

    I am a student currently working on a project on BCI trying to quantify the ERD ERS from motor imagery tasks.
    I am using BrainMaster Discovery 24E amplifier with OpenVIBE as the Online visualization tool. But for offline analysis and creating a report I need another tool, for that I switched to BCILAB. However I am having problems with the file formats to be read in BCILAB. I have EDF, GDF and CSV file formats of my data. How to export them to BCILAB. Although EEGLAB reads the EDF/GDF file formats (but I am not sure if it reads the same channel location in x-y coordinates and theta). But BCILAB cannot read EDF/GDF file formats. Can anyone guide me how to export EDG/GDF/CSV files from OpenVIBE to BCILAB?

    Please help me with a solution I am badly stuck!

    Regards,
    Madi
  • MadiMadi Australia
    The error it shows on BCILAB Matlab command window is:

    Error using supergui (line 122)
    supergui error: argument 'fig' must be numeric

    Error in inputgui (line 161)
                [tmp tmp2 allobj] = supergui( 'fig', fig, 'minwidth', 200, 'geomhoriz', g.geometry, 'uilist', g.uilist,
                'geomvert', [g.geomvert(:)' 1 1] );

    Error in arg_guidialog (line 188)
    [outs,dummy,okpressed] = inputgui('geometry',geometry, 'uilist',uilist,'helpcom',['env_doc ' helptopic],
    'title',dialogtitle,'geomvert',geomvert); %#ok<ASGLU>

    Error in gui_configapproach (line 38)
    result = arg_guidialog(calibrate_func,'params',approach.parameters,'title','BCILAB: Configure approach','Invoke',false);

    Error in gui_newapproach>gui_newapproach_OutputFcn (line 65)
            [varargout{1:2}] = gui_configapproach(varargout{1},true);

    Error in gui_mainfcn (line 264)
            feval(gui_State.gui_OutputFcn, gui_hFigure, [], gui_Handles);

    Error in gui_newapproach (line 28)
        gui_mainfcn(gui_State, varargin{:});
     
    Error while evaluating Menu Callback
  • I'm working on a project on openBCI and I'm trying to stream data into Matlab using BCILAB. When I tried to read input from Lab streaming layer using  Online Analysis > Read input from… > Lab streaming layer…: on the BCILAB GUI, I received the following error and I was wondering if anyone could help me with this error. I also emailed out to eeglablist but I thought I'd post here as well in case people have solved this problem before (it seemed like many people encountered this error). 
     
    Error using supergui (line 122)
    supergui error: argument 'fig' must be numeric

    Error in inputgui (line 161)
                [tmp tmp2 allobj] = supergui( 'fig', fig, 'minwidth', 200, 'geomhoriz', g.geometry, 'uilist', g.uilist,
                'geomvert', [g.geomvert(:)' 1 1] );

    Error in arg_guidialog (line 188)
    [outs,dummy,okpressed] = inputgui('geometry',geometry, 'uilist',uilist,'helpcom',['env_doc ' helptopic],
    'title',dialogtitle,'geomvert',geomvert); %#ok<ASGLU>

    Error in gui_configapproach (line 38)
    result = arg_guidialog(calibrate_func,'params',approach.parameters,'title','BCILAB: Configure approach','Invoke',false);

    Error in gui_newapproach>gui_newapproach_OutputFcn (line 65)
            [varargout{1:2}] = gui_configapproach(varargout{1},true);

    Error in gui_mainfcn (line 264)
            feval(gui_State.gui_OutputFcn, gui_hFigure, [], gui_Handles);

    Error in gui_newapproach (line 28)
        gui_mainfcn(gui_State, varargin{:});
     
    Error while evaluating Menu Callback

    I'm using macOS Sierra (version 10.12.4) 
    Matlab R2017a 

    Thank you so much! 
    X
Sign In or Register to comment.