Ganglion and Pulse Sensors

Would Ganglion work with Pulse Sensor in the shop? If it would, how many separate Pulse Sensors could be hosted by a single ganglion? 

I'm pretty dumb at DIY, but really looking forward to use Ganglion for heart rate variability measures.


  • wjcroftwjcroft Mount Shasta, CA
    edited January 2017
    Pulse Sensor outputs an analog voltage signal. Simblee has 6 analog GPIO pins. And Ganglion makes 4 of those pins available. So up to 4 pulse sensors. User Guide v2.05.pdf

    Great to see the new docs pages and organization @Conor and Joel @biomurph !!

  • edited January 2017
    Thank you William.  I just pre-ordered 4 Ganglions because I need to track four individuals' heart rate wirelessly. I figure that it would be easier to have a separate Ganglion + Pulse Sensor for each individual. 

    Im still pretty new to this. I also notice Arduino 101 is another board that uses bluetooth connection. Do you know if Arduino 101 + Pulse sensor would be easier to set up than Ganglion for my purpose? Arduino 101 is cheaper as well.

  • wjcroftwjcroft Mount Shasta, CA
    Joel @biomurph has designed the Pulse Sensor so that it can be easily integrated into any Arduino hardware. The advantage of Ganglion is that it supports EEG. This is unique in the Arduino space.

    With your application, one consideration will be how you send the heart rate info over the Bluetooth link. I have not looked at the Arduino 101 device. But it may be possible to 'emulate' what normal Bluetooth BLE heart rate monitors send out. Which could interface to more apps.

    Regards, William

  • Thank you for the information, William. I will try to learn bit more about Arduino.
  • edited March 2017
    Hi @wjcroft, I have managed to connect 2 pulse sensors to a Ganglion by attaching both pulse sensors's power supplies to AVDD and GNDA, and their signal pins to two separate channels (+ pins of channel 1 and 4) on the board.

    I observed a weird interference between the signals: I only attached one to pulse sensor to my earlobe, and it picks some signals. However, the other channel appears to also capture some correlated signals, although it is not attach to any part of my body. I noticed from other posts that Ganglion may pick up some environmental electrical noises. I was wondering whether it is because of such noises, or my wrong pin connections.image  
  • wjcroftwjcroft Mount Shasta, CA
    edited March 2017
    Joel @biomurph is the designer of the Pulse Sensor as well as the OpenBCI boards. Hoping he will chime in.

    I don't think you want to use the AVDD this is a special analog supply for the A/D converters and needs to be super stabile. Isn't there a DVDD (+3.3v) pin also available? That is preferable.

    Here's an older V1 Cyton repo that could be for reference,

    However that idea was putting the pulse data on the AUX channel(s), you seem willing to use the actual normal data channels. A related repo is,

  • Thanks William @wjcroft for pointing out the two repos from Joel @biomurph. It seems like they all rely on some preprocessing of the raw data on the board. I was wondering if I can simply read the raw signals from Pulse Sensor (And I did found two DVDD pins located in P4 and P3 on the Ganglion board)
    I found some strange patterns when directly reading the raw signals (I thought the signals capture my heart beat, but it turns out to be some artifacts). Even when I disconnect the power of the two pulse sensors and just left their signal pins inserted (in Channel 1 and 3), OpenBCI_GUI shows some regular signals from the two channels.


    And when I plugged in the power pins to the DVDD and GNDA at P3 and P4, and left the Pulse Sensor unattached to my body, I can still observe such periodic signals...


    Hopefully Joel @biomurph ;will be able to see this post and give me some hints... 
  • wjcroftwjcroft Mount Shasta, CA
    You can also try contacting Joel directly via contact at .

  • Thanks @wjcroft! I messaged Joel. I was wondering whether I need to change the firmware if I have to use the AUX channels for signals from Pulse Sensor(s). That sounds quite daunting for me...
  • edited March 2017
    @wjcroft, I have checked

    It seems like a feasible way to read Pulse Sensor is to analogRead() from one of AIN2, AIN3, AIN4, AIN5 pins on the board, and then pack them to the 3 channels of AuxData.  This would require some modifications of the firmware, which currently do not read these analogu inputs. 

    I was wondering whether the programing tutorial for Ganglion will be available soon. Or could you give me some clues about programing the board? (I think it would be nice to have the firmware allowing user to choose whether Auxdata is from the accelerometer or 3 of the 4 GPIO pins.)

  • biomurphbiomurph Brooklyn, NY
    This seems like it ought to work. I will do a test here in the lab today. Here's some quick thoughts on your setup.

    First, you are measuring on pins 1+ and 3+, but both 1- and 3- are not connected to anything. 
    These are differential inputs, and they measure between the + and - pins. 
    Try connecting 1- and 3- to the D_G pin, and see if that helps.

    You are right, also, that you can connect to a Simblee analog in pin, and collect the Pulse Sensor data that way.

    Finally, it looks like you have two Pulse Sensors there. One looks legit (with the purple wire) but the other one is a knock-off. Be aware that your milage may vary with that knock-off version.

  • edited March 2017

    Thank you so much for looking into it. You are right that I used one pulse sensor that come with a board I got from I didn't know it's a knock-off until I saw it. The legit one was from

    I tested the legit one with the following settings, including your suggested connection between 1- and D_G. The results still show some periodic patterns, which also appears to affect the other empty channels a bit.


    I also tested the same legit Pulse Sensor with my Arduino 101, and it works.

    I am looking forward to hearing from you, and I really appreciate your help!
  • biomurphbiomurph Brooklyn, NY
    I ran a quick test connecting Pulse Sensor to the Ganglion front end input, and it doesn't work because of two things.

    The Pulse Sensor outputs a very large voltage swing, and the Ganglion is trying to amplify tiny signals.
    Also, the compression software that we use limits us in how much the signal can change between any two samples. The Pulse Sensor signal changes far too much for the Gagnglion compression code to manage.

    Best bet is going to be to use a Ganglion analog input to acquire the Pulse Sensor Signal, and then add it to the data stream as Auxiliary bytes.

    That tutorial is coming soon.
  • Thank you Joel @biomurph. That's also my suspicion. I am looking forward to the tutorial. Before that, I was wondering if I need to buy a RFuino USB programing shield for Ganglion. Or can I use the UART port on the board? or can everything be done through the OTA approach suggested in the Simblee document? 
  • biomurphbiomurph Brooklyn, NY

    The Ganglion is re-programmable over the air. I am finishing a tutorial on that now.
  • @biomurph

    That's awesome! I am looking forward to it. 

    I also tried to use RFduino USB shield suggested in the simblee manual to upload the firmware from

    It seems like I can upload the sketch via Arduino IDE, but now the board only output 0 at all channels... I am not sure if it is due to the wrong uploading procedure, or the firmware on GitHub is not ready.

  • biomurphbiomurph Brooklyn, NY
    The process will be to create a .zip file with the Arduino IDE, then send it to you phone (email or dropbox, etc) and then use a Nordic Semiconductor app to do the Over The Air programming.

    Coming soon, I promise!
  • @biomurph, Sounds good! Really appreciate your hard work!

Sign In or Register to comment.