LSL Data Connection Between OpenBCI & NeuroPype

Hi all,

I am seeking help connecting the OpenBCI GUI to NeuroPype via LSL on the same PC.
Currently, we are using a Cyton + Daisy setup for 16 channels on the OpenBCI side, and I am looking to replicate something like this
https://openbci.com/forum/index.php?p=/discussion/comment/19318#Comment_19318

to verify the movement of data between programs and NeuroPype's usefulness.
Any help would be greatly appreciated.
We are currently running OpenBCI Gui V5.2.2 and NeuroPype Academic Suite V2023.0.0
Thank you so much

Comments

  • In our current setup, I am outputting a timeseriesraw stream from OpenBCI via LSL and NeuroPype will verify that it has received the data but will stop responding on the PC as the LSL stream continues

  • wjcroftwjcroft Mount Shasta, CA

    Hi Sam,

    I understand from this page: "NeuroPype Broad Hardware Support List"

    https://www.neuropype.io/#features

    That it can directly read from Cyton. Is that true? Does it work when directly streaming to NeuroPype from the Cyton serial port?

    William

  • Hi William,

    Currently, we are using the OpenBCI GUI to generate the LSL stream, while it seems that the link you mentioned directs me to a page to set up a Python script, which I believe has been absorbed into the GUI.
    Nevertheless, I plan to test direct streaming to NeuroPype the next time I am in the lab.

    • Sam
  • wjcroftwjcroft Mount Shasta, CA

    @SnoopyPaladin89 said:
    ...
    Currently, we are using the OpenBCI GUI to generate the LSL stream, while it seems that the link you mentioned directs me to a page to set up a Python script, which I believe has been absorbed into the GUI.

    Hmm, when I go to the link I gave:

    https://www.neuropype.io/#features

    I can scroll down near the bottom to the "NeuroPype Broad Hardware Support List" section, which lists OpenBCI support. But the link there for OpenBCI goes to:

    https://docs.openbci.com/Software/CompatibleThirdPartySoftware/LSL/

    Which implies they may NOT have direct support, but rely on LSL. The repo mentioned,

    https://github.com/openbci-archive/OpenBCI_LSL

    Has been 'deprecated', meaning it is no longer supported.

    Nevertheless, I plan to test direct streaming to NeuroPype the next time I am in the lab.

    • Sam

    That's good. Let us know if it accepts direct connection to the Cyton serial port.

  • wjcroftwjcroft Mount Shasta, CA

    There is an example in the 'docs' tree regarding feeding GUI LSL data to NeuroPype,

    https://docs.openbci.com/Examples/EEGProjects/MotorImagery/#acquition-of-eeg-data-and-markers

    However a number of users have had issues with that tutorial, and the author refuses to answer any questions.

  • SnoopyPaladin89SnoopyPaladin89 Easton, PA
    edited February 2024

    Hi William,
    I was able to get back into the Lab today,

    I tried to setup the aforementioned pipeline and unfortunately, I could not get any type of output.

    Here is a portion of the NeuroPype Log showing some errors that I recieved.

     [LSLInput] Resolving data stream (name='obci_eeg1' and hostname='ECE423-DX3N9R3')...
     [LSLInput] LSL: Data stream obci_eeg1 acquired.
     [LSLInput] receiving chunk [1 150]
    Connection to server lost unexpectedly. Once you've restarted the server, you may use the reload button to reconnect and reopen the most recent pipeline (unsaved changes will be lost).
    Error saving <orangepd.canvas.scheme.widgetsscheme.WidgetsScheme object at 0x000001E6C564E3A0> to 'C:/Users/Administrator/Desktop/Simple Motor Imagery Test.pyp'
    Traceback (most recent call last):
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\application\canvasmain.py", line 1451, in save_scheme_to
        scheme.save_to(buffer, pretty=True, pickle_fallback=True)
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\scheme\scheme.py", line 670, in save_to
        readwrite.scheme_to_ows_stream(self, stream, pretty,
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\scheme\readwrite.py", line 882, in scheme_to_ows_stream
        tree = scheme_to_etree(scheme, data_format="literal",
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\scheme\readwrite.py", line 851, in scheme_to_etree
        graph = scheme.signal_manager.retrieve('graph').json()
    AttributeError: 'dummy' object has no attribute 'json'
    Error saving <orangepd.canvas.scheme.widgetsscheme.WidgetsScheme object at 0x000001E6C564E3A0> to 'C:/Users/Administrator/Desktop/Simple Motor Imagery Test.pyp'
    Traceback (most recent call last):
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\application\canvasmain.py", line 1451, in save_scheme_to
        scheme.save_to(buffer, pretty=True, pickle_fallback=True)
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\scheme\scheme.py", line 670, in save_to
        readwrite.scheme_to_ows_stream(self, stream, pretty,
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\scheme\readwrite.py", line 882, in scheme_to_ows_stream
        tree = scheme_to_etree(scheme, data_format="literal",
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\scheme\readwrite.py", line 851, in scheme_to_etree
        graph = scheme.signal_manager.retrieve('graph').json()
    AttributeError: 'dummy' object has no attribute 'json'
    Error saving <orangepd.canvas.scheme.widgetsscheme.WidgetsScheme object at 0x000001E6C564E3A0> to 'C:/Users/Administrator/Desktop/Simple Motor Imagery Test.pyp'
    Traceback (most recent call last):
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\application\canvasmain.py", line 1451, in save_scheme_to
        scheme.save_to(buffer, pretty=True, pickle_fallback=True)
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\scheme\scheme.py", line 670, in save_to
        readwrite.scheme_to_ows_stream(self, stream, pretty,
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\scheme\readwrite.py", line 882, in scheme_to_ows_stream
        tree = scheme_to_etree(scheme, data_format="literal",
      File "C:\Program Files\Intheon\NeuroPype Academic Suite\Pipeline Designer\orangepd\canvas\scheme\readwrite.py", line 851, in scheme_to_etree
        graph = scheme.signal_manager.retrieve('graph').json()
    AttributeError: 'dummy' object has no attribute 'json'
    

    Thank you so much for your help

  • wjcroftwjcroft Mount Shasta, CA

    I'm sorry, but that Motor Imagery tutorial is not being supported by the author. I only gave that link as an EXAMPLE of how he linked NeuroPype to the output of OpenBCI_GUI LSL stream. You're going to have to try workarounds on your own. Please abandon any attempts to get the tutorial to run, that was not the point.

  • wjcroftwjcroft Mount Shasta, CA

    This is probably useless: but the NeuroPype people COULD in the future use the Brainflow library to read OpenBCI streams directly, without involving the GUI or LSL. But possibly they depend on LSL so much that this is infeasible.

    https://brainflow.readthedocs.io/en/stable/Examples.html#python

  • No worries,

    We are just trying to prove some type of interconnection currently so we don't have any expectations of an output making sense.

Sign In or Register to comment.