Integration with Processing based GUI

Hey!

Looking to integrate wifi with OpenBCI GUI. Should I expand the GanglionHub or write native calls to the Wifi sheild? Both are time consuming, especially for the Cyton. So I want to pick one! There is no wrong answer, I'm looking for advice, I'm going to pick one tomorrow and go for it.

Thanks!

Comments

  • wjcroftwjcroft Mount Shasta, CA
    AJ, great question.

    Is GanglionHub always included now when building the GUI? In other words, the exe's have ~370 megabytes of various libraries pulled in, that the Hub depends on? If it is always included, then that might argue for just extending the Hub to handle Cyton wifi.

    However, also consider this: there are MANY various Cyton capable apps, packages, libraries now that can read the Cyton serial byte stream, send commands etc. How could that be leveraged to take advantage of this already existing code base that has required years to fall into place?

    Unix / Linux based systems have something called a Pseudo Terminal, that can emulate a serial port:


    Some equivalents exist in Windows:


    The downside of PTYs is that they also induce delays and complexity in programming. Even the Unix related flavors differ slightly between OSes, and the Windows, totally different.

    One more potential avenue would be to implement a lightweight standalone Processing (or Java) app that implements LabStreamingLayer with the new wifi interface. Since GUI potentially already writes to LSL, it could just as well read from LSL also. LSL is a good "socket wrench" approach widely used in neuroscience. 

    William
  • William!

    Great points! 

    there are MANY various Cyton capable apps, packages, libraries now that can read the Cyton serial byte stream, send commands etc.
    The Wifi shield can send the same exact raw Cyton serial byte stream over a TCP port, it is seriously plug and play with all these apps, if they can open a TCP socket, they can hook that up to their existing serial byte stream parsers! However all that said, this would require people to have to change their apps source code to support it. So the terminals may work if they can convert TCP to Serialport? Then we could simply parse for data from apps to virtual serial port and send them as HTTP requests to the wifi shield and the responses form those requests will contain the normal responses people are used to seeing.

    Since GUI potentially already writes to LSL, it could just as well read from LSL also. LSL is a good "socket wrench" approach widely used in neuroscience. 

    Totally agree. The wifi shield will be able to send in the exact format LSL expects, in a JSON format with time in microseconds and data in nano volts. Will give option to get LSL stream options too. Check out this cool github issue: https://github.com/NeuroJS/eeg-stream-data-model/issues/1 and a node-lsl library was just published this week! LSL is winning. https://github.com/urish/node-lsl

    Would be interesting to see where the LSL progress is at and go from that route to integrate the LSL as a feed into the processing application. That's an interesting idea. 

Sign In or Register to comment.