OpenBCI Python: SDK, serial ports

edited April 2016 in Software
Hello!

I have a few questions about the OpenBCI Python lib.  If this isn't the right place to ask these questions, just let me know where I should go!

(1) I was wondering if OpenBCI Python is meant to be ran on the "client-side" or "server-side"? Meaning:
  • Client-Side: It packages as a Python library that I can use in a Python app (perhaps running on my laptop) for communicating with the OpenBCI headset (and obtain streaming EEG readings, etc.); or
  • Server-Side: It runs on the OpenBCI headset and provides the stream of EEG data that clients can then connect to and read

(2) Does the OpenBCI headset require a networked (internet/TCP) connection (and subsequently, an IP address) to function? How else might a client Python application connect to it (without, say, an IP address and a router)?

(3) If I wanted to write my own lib (in some other language besides Python) to read EEG data from the OpenBCI headset, where is the network/data protocol documented?

Thanks in advance for any and all help!

Comments

  • wjcroftwjcroft Mount Shasta, CA
    Nborgagonzalez, hi.

    (1) Python would be considered client-side; the OpenBCI mainboard runs it's own firmware, as do the two RFduinos, one on the mainboard and the other on the dongle. Most applications have no need to change the firmwares.

    (2) if you go through the steps in the tutorial, you can see that the OpenBCI mainboard communicates with your laptop, via a USB "serial port" on your laptop. The serial ports look like COMn: devices in Windows, or /dev/ entries in Linux and Mac.

    http://docs.openbci.com/tutorials/01-GettingStarted#getting-started-w-openbci-iv-connect-to-your-openbci-board-from-the-gui-3-find-your-usb-dongles-serialcom-port

    (3) check out all the docs on that site above, serial data format is here,

    http://docs.openbci.com/software/01-OpenBCI_SDK

    William

  • edited April 2016
    Thank you @wjcroft!

    Just two things to confirm:
    1. Regarding the USB/serial ports, does this mean that it is currently not possible for an app running on a laptop to communicate with the OpenBCI mainboard wirelessly? If so, are there plans on improving this in the future?
    2. Regarding the docs, I assume I want the tab labeled 'OpenBCI v3 Data Format'? I ask just in case "v3" is something that is not currently ready for stable usage.

    Thanks again!

  • wjcroftwjcroft Mount Shasta, CA
    Yes V3 is the currently shipping boards (both 8 bit and 32 bit).

    Easiest wireless connection is through the dongle using the RFduino's built into the hardware. If you are referring to Bluetooth, do some searches using the search box at lower right. Some of our user community members have implemented the Bluetooth Low Energy for mobile communications, but this is also very low bandwidth, around 10K bits/sec.

    http://www.openbci.com/forum/index.php?p=/search&Search=bluetooth

    William

  • Thanks again @wjcroft

    Last followup on this topic/thread (I promise!):

    Let's play devil's advocate. Say I wanted to connect my OpenBCI mainboard to a Raspberry Pi (I assume on the RPis GPIO pins).  I can handle the integration from the RPi-side, but what IO pins or ports (if any) are available on the OpenBCI mainboard for wired (not wireless) output?

    Thanks again!
  • wjcroftwjcroft Mount Shasta, CA
    The Pi running Linux has usb ports. Just plug the dongle in there and you are running just the same as on a laptop.

    Better to run wireless like this than a wired connection. There are many posts on the forum discussing the isolation and safety issues.

Sign In or Register to comment.