ADS1299 interface with Arduino UNO

Momin_2089Momin_2089 Islamabad , Pakistan

Hi, I have made an EEG module and trying to get data from it using Arduino IDE(I have attached sample code and my PCB schematics). I am using ads1299 with bipolar supply. So far I have just Configured CONFIG3 register and CHnSEL registers as following

ADS.WREG(CONFIG3,0xE0) ;//Enabling internal reference
ADS.WREG(CHnSET,0x68); //Selecting normal mode and closing SRB2

I’m able to get data from all 8 N-channels with respect to SRB2(as a reference electrode).
Problem is I want to include BIAS electrode. As far as I know about BIAS electrode, it is used for noise cancellation in a closed loop form ( As discussed in openBCI site : https://docs.openbci.com/docs/01GettingStarted/02-Biosensing-Setups/EEGSetup ).I want to use my setup same as in the link of openBCI but with all 8 channels.
As there are many BIAS registers in ads1299 so I’m confused about there configuration .It will be great if someone could help me in configuring registers so that if I connect SRB2 to one ear lobe and BIAS to other and all other electrodes on EEG head cap I would get data with much lesser noise.

Comments

  • The bias electrode gets it name from its historical use, with older analog equipment that was powered from AC current, as a source of a tiny bit of cancelling AC voltage to offset mains noise. Filters were not as good back then. A battery powered EEG machine, or modern well isolated electronics in general, does not need a "bias" source, in that sense. So just add it as a ground. With 8 electrodes around the head, I would put the ground electrode in the center, either at the peak of the center scalp or somewhat to the front of that, more or less equidistant from your 8 other wires. Or, if you are using a reference electrode on one ear, you can use the other ear for the ground, just as the tutorial does, even with all the other leads in use.

  • Momin_2089Momin_2089 Islamabad , Pakistan
    edited February 2022

    I have successfully completed this project. I got 8 channel data from the ADS1299 using Arduino UNO and print it to serial monitor. Later I upgraded from arduino to esp32 node mcu and sent EEG data over Bluetooth to a custom made GUI for post processing. Thank you OpenBCI community for helping me out. If anyone wants help from me or want me for custom hardware or firmware development contact me at : [email protected]

  • clareto74clareto74 Montreal
    edited October 2022

    Hi Momin ! I am trying to get an SPI communication between my Teensy 4.1 and an ADS1299. I am using this code

    void setup() {
      Serial.begin(115200);
      Serial.println();
      Serial.println("Serial starting");
      ADS.setup(9,10,8,1);
      ADS.STARTUP();
      ADS.getID();
      Serial.println("----------------------------------------------");
      //PRINT ALL REGISTERS 
      ADS.RREG(0x00, 0x17);
      Serial.println("----------------------------------------------");
      delay(2000);
    }
    
    void loop() {
      #ifdef DATA_LOGGER_MODE
      ADS.RDATA_logger();
      #else
      ADS.RDATA_update();
      #endif
    }
    

    But when I run the program all the register are full of "1" event the ID is 11111111. I connected pin
    SCK [13]
    MISO [12]
    MOSI [11]
    CS [10]
    DRDY [9]
    RST [8]

    What library did you used for the ADS1299 and have you encounter something similar ?

  • plutopluto mars
    edited February 2023
Sign In or Register to comment.