Daisy chain ADS1298 TI Eval board to OpenBCI board?

edited July 2015 in Other Platforms
Hi,

Can I daisy chain an ADS1298 board from TI to the OpenBCI board to get from 8 to 16 channels, or from 16 to 24?
Would the bluetooth be able to transmit data from more than 16 channels in real-time? 
What do you think is the upper limit for the bluetooth in terms of channels at the moment?

Thanks!

-David

Comments

  • wjcroftwjcroft Mount Shasta, CA
    edited July 2015
    David, hi.

    > Can I daisy chain an ADS1298 board from TI to the OpenBCI board to get from 8 to 16 channels, or from 16 to 24?

    See some of the other posts in this "Other Platforms" category on the "TI Eval" module. The TI module is very different than the OpenBCI main board or daisy board. Completely different firmwares.

    http://openbci.com/forum/index.php?p=/categories/other-platforms

    > Would the bluetooth be able to transmit data from more than 16 channels in real-time?

    Current OpenBCI 16 channel configuration is limited to 125 samples/sec. 8 channel runs at 250 sps. This is because of internal speed limitations in serial data routing between the main board and the RFduino. A number of other threads discuss the details of this.

    http://openbci.com/forum/index.php?p=/discussion/comment/2582/#Comment_2582

    > What do you think is the upper limit for the bluetooth in terms of channels at the moment?

    The RFduino modules are limited to Bluetooth Low Energy (not currently used) and Gazelle (which is the Nordic proprietary protocol used by OpenBCI). Other Bluetooth hardware modules (v3.0) do support faster data rates.

    William
  • Hi William,

    Thanks for the quick reply!

    Is there a reason why BT 3.0 was not implemented instead? 
    Is it more of a challenge? 

    Thanks again

    -David
  • wjcroftwjcroft Mount Shasta, CA
    Joel @biomurph is evaluating some various BT 3.0 / 4.0 modules for the next generation OpenBCI v4. That board may also have wifi and other connections possible. I believe the RFduinos were chosen because of their low power drain and low EMF emission for head mounted application.

  • I see. Sounds awesome. By the way, when I asked if I could daisy chain the TI board to the OpenBCI board I meant, can I do it given that I upload the OpenBCI firmware to the TI board.
    Or is that not possible?
  • wjcroftwjcroft Mount Shasta, CA
    David, the hardware interconnection and firmwares on the TI and OpenBCI boards are completely different. So you cannot put OpenBCI firmware on the TI Eval board.

    So it sounds like you have both of these boards? What is the project you are trying to do?

    Regards,

    William
  • Right, of course, but I cannot modify the firmware to take those different interconnections into account?

    I don't have the OpenBCI board, just the TI board. I planned to make a 16-channel EMG device for research purposes.
    Our lab is developing machine learning algorithms to improve myoelectric control of prostheses. 
    At first we used the Myo armband by Thalmic Labs, but now would like to try more than 8 channels.  
    At first I thought about getting 2 TI boards, daisy chaining them, then feeding the data to a computer via Arduino.
    Then I found OpenBCI, which practically does just that. 
  • wjcroftwjcroft Mount Shasta, CA
    edited July 2015
    David, hi.

    My perception of the TI Eval kit (from reading material on the web), is that it is kind of awkward to work with. Contains both the ADS129x board and a 'mother' board with usb interface. Firmware on that motherboard is only intended to run with the supplied TI Windows app.

    So I've seen other posts on that kit, just throw out the motherboard and interface the daughter board to an Arduino. Some relevant links if you look through some of the past posts in the Other Platforms category. It's possible you could use two of these with your Arduino.

    You could also get a 16 channel OpenBCI kit. And... I've also gathered that 125 hz for EMG may be on the low end of typical EMG sample rates. Which probably explains your questions about data rates.

    The new v4 OpenBCI would be a solution.  :-)   But you need something available now.

    > but I cannot modify the firmware to take those different interconnections into account?

    Well, now that we see what you're trying to do, yes. It's possible that loading some substantially modified variant of OpenBCI firmware into your Arduino that talks to the two TI daughter boards -- is feasible. You would excise all the RFduino interface code and rig up something with your own BT 3.0 or usb interface. There are some usb isolators that provide both isolated data and power. Up to a few hundred milliamps.

    Checkout this project, which is being hand assembled at the moment, if you can do your own surface mount work, might work. We're in communications with John. OpenBCI v4 will likely have this type of stackable expansion capability.


    William

  • wjcroftwjcroft Mount Shasta, CA
    edited July 2015
    One other possibility if you are using the OpenBCI 16 channel kit,

    is to perhaps piggyback a small wifi or Bluetooth 3.0 board to it. Then modify the OpenBCI code to send your highdspeed data through that, instead of the onboard RFduino. I don't know what boards might be compatible, but there are lots of them out there. Here's some that Adafruit does.

    http://www.adafruit.com/products/1588
    http://www.adafruit.com/products/1469

    I think Joel @biomurph is doing some prototyping with similar modules, and may comment. Can you state what kind of sample rates you are looking for? Would 125 sps work? From earlier comments on the thread I just assumed you needed faster for EMG work. Some of which is done at 1000 sps or more.


  • Hi William, really we'd have to try but 600 sps might be good enough
  • wjcroftwjcroft Mount Shasta, CA
    ADS1299 CONFIG1 rate settings are 250, 500, 1000, 2000, 4000, 8000, or 16000 sps. So looks like you may need the 1000; cannot go in between.

    I'm not sure you saw the previous links mentioning compression, or reducing the 24 bit samples to 16, etc. Might buy you some bandwidth. But I guess if you had wifi link, should be plenty fast. But there is a power tradeoff (wifi uses a lot more.) Most links I see mention basic BT 3.0 as topping out at about 2 Mbps.

  • I might just go with USB then for now. Seems like the safest bet, in terms of rates anyway
  • WiFi modules cost around $4 now that the ESP8266 modules are out there, so I don't see any reason to settle for BT and all the headaches and limitations it entails.
    I'm currently working on a unit that will use the ESP8266 for everything, essentially reducing the cost to $4 + an ADS1299 + a few other basic components.
    OBCI is really cool, but I'm trying to work on some high density, high channel EMG arrays.  So I need a cheap per-channel cost, high SPS, and the large bandwidth that requires.

    I'm not very far along, and the ESP8266 is pretty new, so the support isn't very good yet.  But it seems to have the capabilities to run the SPI and wifi, so I'll have to see how far I can take it.
  • wjcroftwjcroft Mount Shasta, CA
    Jake, interesting.

    Here's someone saying they are using ESP8266 with ADS1299 for EEG. Using NodeMCU.



    http://www.nodemcu.com/index_en.html

    Adafruit has similar dev modules, they also use the NodeMCU interpreter. But would an interpreter be fast enough for 1000 sps? Can you program in C as well as LUA?

    https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/overview
    https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-nodemcu-lua


  • I wouldn't want to add overhead with LUA or NodeMCU for such a simple project.
    The ESP8266 has a C compiler, which would be the normal way to program for it.

    The wifi stack is integrated.  All you really have to do is write normal code for it and not do long blocking calls that will interfere with the wifi connection.

    Having scripting support is nice though, since if you're not trying to do high SPS on a bunch of channels you could run a webserver right from the uC for setup and configuration.

    I'm not very far along on that project yet, just have looked into it enough to see the potential.
Sign In or Register to comment.