

The ADS1299 breakout is a development board built around the Texas Instruments ADS1299, a high-performance, low-power, 24-bit analog-to-digital converter (ADC). This component is specifically designed for biopotential measurements, such as electrocardiography (ECG) and electroencephalography (EEG). It offers multiple channels for simultaneous data acquisition, making it ideal for medical, research, and wearable applications.








The ADS1299 breakout board provides access to the full functionality of the ADS1299 IC. Below are the key technical specifications:
The breakout board exposes the ADS1299 pins for easy integration into your circuit. Below is the pin configuration:
| Pin Name | Type | Description |
|---|---|---|
| VDD | Power Input | Digital power supply (3.3 V). |
| AVDD | Power Input | Analog positive power supply (+2.5 V). |
| AVSS | Power Input | Analog negative power supply (-2.5 V). |
| GND | Ground | Ground reference for the circuit. |
| CS | Digital Input | Chip select for SPI communication. Active low. |
| SCLK | Digital Input | SPI clock input. |
| DIN | Digital Input | SPI data input (Master Out Slave In - MOSI). |
| DOUT | Digital Output | SPI data output (Master In Slave Out - MISO). |
| DRDY | Digital Output | Data ready signal. Indicates when new data is available. |
| RESET | Digital Input | Resets the ADS1299. Active low. |
| START | Digital Input | Starts or stops conversions. Active high. |
| CLKSEL | Digital Input | Selects the clock source (internal or external). |
| BIASOUT | Analog Output | Bias drive output for patient reference electrode. |
| IN1P - IN8P | Analog Input | Positive differential input for channels 1 to 8. |
| IN1N - IN8N | Analog Input | Negative differential input for channels 1 to 8. |
Below is an example of how to interface the ADS1299 breakout with an Arduino UNO using SPI:
#include <SPI.h>
// Pin definitions
#define CS_PIN 10 // Chip select pin
#define DRDY_PIN 9 // Data ready pin
#define RESET_PIN 8 // Reset pin
void setup() {
// Initialize serial communication
Serial.begin(115200);
// Configure SPI
SPI.begin();
SPI.setDataMode(SPI_MODE1); // CPOL = 0, CPHA = 1
SPI.setClockDivider(SPI_CLOCK_DIV16); // Adjust as needed for your setup
// Configure pins
pinMode(CS_PIN, OUTPUT);
pinMode(DRDY_PIN, INPUT);
pinMode(RESET_PIN, OUTPUT);
// Reset the ADS1299
digitalWrite(RESET_PIN, LOW);
delay(10); // Hold reset low for 10 ms
digitalWrite(RESET_PIN, HIGH);
// Initialize ADS1299
digitalWrite(CS_PIN, LOW);
SPI.transfer(0x11); // Example: Send a command to read the ID register
byte id = SPI.transfer(0x00); // Read the response
digitalWrite(CS_PIN, HIGH);
Serial.print("ADS1299 ID: 0x");
Serial.println(id, HEX);
}
void loop() {
// Wait for data ready signal
if (digitalRead(DRDY_PIN) == LOW) {
digitalWrite(CS_PIN, LOW);
// Example: Read data from the ADS1299
for (int i = 0; i < 9; i++) { // 8 channels + status byte
byte data = SPI.transfer(0x00);
Serial.print(data, HEX);
Serial.print(" ");
}
Serial.println();
digitalWrite(CS_PIN, HIGH);
}
}
No Data Output:
High Noise in Signals:
ADS1299 Not Responding:
Incorrect Data:
Q: Can I use the ADS1299 breakout with a 5 V microcontroller?
A: No, the ADS1299 operates at 3.3 V logic levels. Use a level shifter if interfacing with a 5 V microcontroller.
Q: What is the maximum sampling rate of the ADS1299?
A: The ADS1299 supports a maximum sampling rate of 16 kSPS.
Q: How do I reduce common-mode noise in my measurements?
A: Use the BIASOUT pin to drive the reference electrode and ensure proper grounding.
Q: Can I use fewer than 8 channels?
A: Yes, unused channels can be powered down to save power.
This documentation provides a comprehensive guide to using the ADS1299 breakout for biopotential measurements. For further details, refer to the Texas Instruments ADS1299 datasheet.