This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1299-6: ADS1299

Part Number: ADS1299-6
Other Parts Discussed in Thread: ADS1299, ADS1299EEGFE-PDK

I am currently developing an EEG device (project) centered around Ti's ADS1299 6 channel chip.Upon reading other threads, logic analyzers an oscilloscopes play a helping hand in diagnosing problems. Sadly, I do not have either at the moment. However, I can provide code utilized and setup that may be helpful in solving my problem. Firstly, I am using a Raspberry pi 3 B+. Additionally I am programming in Python 3. The setup and code come from the link below.

https://github.com/wjcroft/RaspberryPiADS1299/blob/792993a0e794ca5ea62c5931f62b4047d688e64d/ADS1299_API.py

In this link, a library for the ADS1299 is essentially created (for Python) and can be called similarly to a header file in C.

Wire connections are as followed:

MOSI to Din

MISO to Dout

CLK to SCLK

CS to CS

GPIO (15) to Start

GPIO (16) to Reset

GPIO (18) to PDWN

GPIO (22) to DRDY

I have 3.3V connected to DVDD (pin 48) and Ground to DGND (pin 33). For AVDD and AVSS I have pins 19 and 20 connected 5V and GND respectively.

I am currently using dry electrodes, with one electrode connected to pin 16 (+) and the other electrode to pin 17 (SRB1).

I do not have resistors and capacitors connected to any part of the ADS1299.

As the image below shows, the ADS1299 is communicating with the Raspberry pi however, only 0's are being produced.

Is there something I am overlooking? My first goal is to be able to get readings from the electrodes, from there I would design a circuit to improve these readings.

The portion of code I am using is _test() which should stream activity from the electrodes for a given duration of time and stop.

Again, all I have been able to obtain are 0's. Sorry for the long post, and thank you in advance.

  • Hi Daniel,

    Thanks for your post!

    This is an interesting approach, most people opt to go for circuit design and then code.

    I worry that the device is not powering up properly without the VCAP capacitors. This would explain why you are only seeing zero's.

    Section 10.1 and 11.1 of the datasheet may help with the code, but it is difficult to know for sure at his time.

    I recommend you take a look at the schematics in the ADS1299 User's Guide and consider working on the physical aspects of your circuit.
    www.ti.com/.../slau443b.pdf

    If creating your own PCB is not an option then I would consider ordering the ADS1299EEG-FE board to troubleshoot with. You can connect your Rpi to it directly and not use the MMB0.
  • Hey Alex,
    Thanks for the rapid reply. My team and I have ordered the ADS1299EEGFE-PDK and are currently waiting for it. We collectively ordered samples of the ADS1299 six channel chip to learn more about it, and if successful construct a PCB. However, due to time constraints if I am able to connect directly to the evaluation board with the Raspberry I am not opposed to this idea. From my understanding I will have to download some software in order to run the evaluation board correct? From here, are there any additional requirements I will need to connect my raspberry? I apologize if I do not have the basics down, I am very much new to this, thanks again.
  • Hi Daniel,

    Happy to help!

    That's great to hear! The software will run on the MMB0 motherboard, not the ADS1299.

    Since you are just getting started on this type of project I would recommend using the time before the PDK arrives to get familiar with the ADS1299 datasheet & User's Guide. Learn about the EEG application and the different device features such as bias, lead off, reference electrodes, etc. Figure out exactly what you would like to accomplish. Once the PDK arrives, download the software, and get used to playing with the PDK with the MMB0 and GUI. This should help you and the team understand the features of the devices (changing datarates and gain, other features etc). When you are comfortable using the PDK, then transition away from the MMB0 and use the Rpi with the ADS1299 daughterboard. This is when you will need your own code. If that works and you still have time, then move onto making your own PCB to replace the daughterboard.

    Of course, you are free to do as you please, but the strategy outlined above would provide some "checkpoints" which may help.
  • Thank you for your help. I believe the PDK will arrive today. I will inform my team to become more familiar with the datasheet and the ADS1299 applications. If any further questions should arrive, I will search the forum for possible solutions. Thanks again.
  • Great! Thanks for searching the forum for solutions first, but don't hesitate to let us know if you are stuck!