Adding additional inputs to Cyton board

Is it possible to add additional inputs such as temperature or oximetry to the Cyton board so that the sensor responsible for temperature or oximetry can communicate with the Cyton board?

Comments

  • wjcroftwjcroft Mount Shasta, CA

    Sam, hi.

    Cyton has three extra channels, besides the 8 or 16 'normal' channels. These extra channels are stored in the 'Aux' positions in the data stream. The Aux channel can be set to sample in either digital or analog mode. In analog mode the voltage range is 0V to 3.3V. See this example:

    https://docs.openbci.com/docs/05ThirdParty/02-Pulse_Sensor/Pulse_Sensor_Landing

    The GUI has a built in widget that can take the PPG data stream and convert it to a pulse rate.

    https://docs.openbci.com/docs/06Software/01-OpenBCISoftware/GUIWidgets
    https://github.com/OpenBCI/OpenBCI_GUI/blob/master/OpenBCI_GUI/W_PulseSensor.pde

    Regards, William

  • Hi William
    Thanks for your reply,
    Do you think I would be able to add particle sensor ( https://www.sparkfun.com/products/14045?_ga=2.16289270.1947926216.1568703092-628748718.1555989600 ) to one of these extra channels?
    Does the ganglion board also have extra channels?
    Sam

  • wjcroftwjcroft Mount Shasta, CA

    Since Sparkfun has developed an Arduino library to access all the functions of this breakout board (using the Maxim 30105),

    https://www.maximintegrated.com/en/products/interface/sensor-interface/MAX30105.html

    I'd suggest your easiest route would be to use a separate Arduino board, connected via I2C to the breakout. That Arduino would then plug into usb on your laptop, as a usb serial port. Your serial port data stream could then contain any info or update rate you desire.

    I'm not sure the PIC32 (Cyton) or Simblee (Ganglion) can properly drive I2C peripherals, since those processors have tight timing constrains to service the 250 Hz or 200 Hz data streams. Your best bet is a separate Arduino. As you might know, PPG or pulse info does not change that quickly, so does not actually need to be included in an Aux data stream along with the EEG.

    Ganglion does not have Aux channels.

    As far as the SpO2 (pulse oximeter) features, that requires careful calibration, so I'm not sure this is the correct breakout for pulseox. If you see the data sheet, the chip was targeted for smoke detection, not pulse application.

  • Hi William,

    Thanks for your help earlier this year.
    I am now revisising my post.

    I understand the Cyton board has three 'aux' channels that I could use for additional sensors however if use these channels for another sensor, it removes the accelerometer functionality. 

    My goal is to have EEG, accelerometer, oximetry, temperature, sound (microphone) and light (light sensor) streaming simultaneously and wirelessly (ideally in the same output file) to a computer for real-time processing.

    It sounds like my best option may be to use a separate Arduino (I have a sparkfun redboard) for the oximetry, temperature, sound and light and the Cyton board for the EEG and accelerometer data. And to then get these two boards streaming simultaneously to the computer.

    Would you agree?

    Thanks,
    Sam

  • wjcroftwjcroft Mount Shasta, CA

    Sam, hi.

    It sounds like my best option may be to use a separate Arduino (I have a sparkfun redboard) for the oximetry, temperature, sound and light and the Cyton board for the EEG and accelerometer data. And to then get these two boards streaming simultaneously to the computer.

    Yes, this is easily done. The Cyton dongle appears as a usb serial port. Most Arduino boards will also appear as another usb serial port. Your program just needs to read that additional serial stream. Three of those value only change slowly: oximetry, temp, and light level. An Arduino collecting these values could output an ascii text line of data every second or a few times per second, such as: ox-value, temp-value, light-value.

    I'm not sure what you refer to as 'sound'. If you are wanting to actually collect an audio microphone stream then your best bet is a simple usb audio interface 'adapter', with mic input jack.

    William

  • wjcroftwjcroft Mount Shasta, CA

    ...streaming simultaneously and wirelessly (ideally in the same output file) to a computer for real-time processing...

    If you are indeed doing real-time processing, then you will likely not be using the OpenBCI_GUI. But instead coding something with Brainflow or another digital signal processing framework. For example OpenViBE, MNE, etc.

    https://brainflow.readthedocs.io/en/stable/

  • Hi William,
    Thanks for your fast reponse.

    I am using several sparkfun breakout boards as the additional sensors (MAX30105 for oximetry and temp, sparkfun Sound Detector - SEN-12642 (this is what I meant by sound) and sparkfun ambinet light sensor (VEML6030) for light). These will all be hooked up to the Arduino.
    I also need to purchase some hardware to allow my Arduino to stream wirelessly. Currently it needs to be connected to a computer via a USB connector.

    I have the OpenBCI streaming in real-time to matlab and I my own code to process the data. I have also been looking into other options such as brainflow and openvibe.

    Thanks,
    Sam

  • wjcroftwjcroft Mount Shasta, CA

    I also need to purchase some hardware to allow my Arduino to stream wirelessly. Currently it needs to be connected to a computer via a USB connector.

    Some combined chips such as ESP32, contain both CPU and Bluetooth radio. One of the Bluetooth modes / protocols is called SPP, Serial Port Protocol -- and emulates on the receiving laptop, a usb serial port. Many small boards based on ESP32 exist, and they are inexpensive. Arduino framework available for these. So may be much faster / cheaper than trying to adapt your Sparkfun Redboard with some type of add on shield.

Sign In or Register to comment.