Getting Started

Getting Started with the ProtoCentral ADS1292R ECG/Respiration Breakout Board

Last updated Mar 6, 2026

Getting Started with the ProtoCentral ADS1292R ECG/Respiration Breakout Board

Introduction

The ProtoCentral ADS1292R breakout board is a dual-channel, 24-bit ECG and respiration analog front-end based on the Texas Instruments ADS1292R. It captures both electrocardiogram (ECG) waveforms and respiration signals simultaneously from a single pair of electrodes. The respiration channel uses impedance pneumography — it detects tiny changes in chest impedance as the subject breathes, providing a continuous respiration waveform alongside the ECG.

This guide covers both the ADS1292R ECG/Respiration Breakout Kit and the ADS1292R ECG/Respiration Shield for Arduino v2. The wiring, library, and example code are the same for both boards — the shield simply plugs directly into an Arduino Uno header, while the breakout connects via jumper wires.

The board includes an onboard 3.3V low-noise voltage regulator, logic level translators for 5V Arduino compatibility, a 3.5mm connector for the included electrode cable, and a prototyping area for adding your own circuitry. It comes with disposable ECG electrodes so you can start capturing signals immediately.

Note: This board is intended for research and development purposes only. It is not FDA, CE, or FCC approved for consumer or medical use.

Key Features

  • Dual-channel 24-bit ADC — simultaneous ECG and respiration from the same electrodes
  • Impedance pneumography — measures respiration through chest impedance changes, no separate sensor needed
  • ADS1292R analog front-end — low-power, low-noise IC designed for portable ECG
  • Onboard 3.3V LDO regulator — low-noise power supply for clean analog signals
  • Logic level translators — works directly with 5V Arduino boards
  • 3.5mm electrode connector — standard medical-style snap electrode interface
  • SPI interface — 7 data wires to Arduino (MISO, MOSI, SCK, CS, DRDY, START, PWDN/RESET)
  • Prototyping area — additional space on the PCB for custom circuitry
  • Includes electrodes — 10 disposable ECG electrodes and electrode cable in the kit
  • Shield and breakout variants — shield plugs directly into Arduino; breakout connects via wires

What’s in the Box

Breakout Kit:

  • 1× ProtoCentral ADS1292R ECG/Respiration breakout board
  • 1× 3-lead ECG cable with 3.5mm connector and snap electrodes
  • 10× Disposable ECG electrodes

Shield v2:

  • 1× ProtoCentral ADS1292R ECG/Respiration Shield for Arduino
  • 1× 3-lead ECG cable with 3.5mm connector and snap electrodes
  • 10× Disposable ECG electrodes

You will also need an Arduino Uno (or compatible board) and a USB cable.

Specifications

Parameter Value
ECG AFE IC Texas Instruments ADS1292R
ADC Resolution 24-bit per channel
Number of Channels 2 (ECG + Respiration)
ECG Bandwidth 0.5 Hz to 150 Hz (configurable)
Interface SPI (7 signal wires)
Supply Voltage 5V (onboard 3.3V regulator)
Logic Levels 5V Arduino compatible (onboard translators)
Electrode Connector 3.5mm circular with snap leads
ECG Electrodes 2 ECG + 1 Driven Right Leg (DRL)
Respiration Method Impedance pneumography

Pin Connections

Wiring Diagram

ADS1292R Breakout to Arduino Uno Wiring Diagram

ADS1292R Breakout to Arduino Uno

The ADS1292R uses the SPI protocol with additional control pins. It requires 7 signal wires plus power:

ADS1292R Pin Arduino Uno Pin Function
MISO D12 SPI Data Out (Slave → Master)
MOSI D11 SPI Data In (Master → Slave)
SCK D13 SPI Clock
CS D7 Chip Select
DRDY D6 Data Ready (interrupt)
START D5 Start/stop conversions
PWDN/RESET D4 Power down / reset
VDD 5V Power
GND GND Ground

Note for Shield users: If you are using the ADS1292R Shield v2, simply plug the shield into your Arduino Uno headers — all pin connections are made through the header pins automatically. No jumper wires needed.

Electrode Placement Diagram

ADS1292R 3-Electrode ECG Placement

Electrode Connections

The electrode cable connects to the 3.5mm circular connector on the board. The three electrodes are:

Electrode Color Placement
ECG Lead 1 (RA) Right arm or right wrist
ECG Lead 2 (LA) Left arm or left wrist
DRL (RL) Right leg, left leg, or abdomen

The DRL (Driven Right Leg) electrode is critical — it actively cancels common-mode noise. Without it, the ECG signal will be very noisy.

Tip: For the best signal quality, place electrodes on flat, hairless skin. Wrist placements work well for quick testing. Clean the skin with an alcohol wipe before attaching electrodes.

Installing the Arduino Library

Option 1: Arduino Library Manager (Recommended)

  1. Open the Arduino IDE
  2. Go to Sketch → Include Library → Manage Libraries…
  3. Search for “ProtoCentral ADS1292R”
  4. Find “ProtoCentral ADS1292R ECG and Respiration boards Library” and click Install

Option 2: Manual Install from GitHub

  1. Go to github.com/Protocentral/protocentral-ads1292r-arduino
  2. Click Code → Download ZIP
  3. In the Arduino IDE, go to Sketch → Include Library → Add .ZIP Library…
  4. Select the downloaded ZIP file

Your First ECG + Respiration Reading

The library includes three example sketches:

Example Description Best for
Example 1: OpenView Streams data to ProtoCentral OpenView GUI Full visualization with heart rate
Example 2: Computation Only Processes ECG internally, outputs heart rate Embedded applications
Example 3: Arduino Plotter Streams to Arduino Serial Plotter Quick visual check

Open the simplest example first: File → Examples → ProtoCentral ADS1292R → Example-3-ECG-Respiration-Arduino-Plotter

Running the Example

  1. Upload the sketch to your Arduino Uno
  2. Attach the 3 electrodes to your body:
    • RA electrode → right wrist
    • LA electrode → left wrist
    • DRL electrode → right ankle (or left wrist, abdomen)
  3. Connect the electrode cable to the 3.5mm connector on the board
  4. Open Tools → Serial Plotter at 57600 baud
  5. You should see two waveforms:
    • ECG — the characteristic PQRST complex of your heartbeat
    • Respiration — a slower sinusoidal wave that follows your breathing pattern

What to Expect

The ECG channel will show a repeating heartbeat waveform with the familiar QRS spike. The respiration channel will show a slower undulating wave — breathe deeply and you’ll see the amplitude increase. Hold your breath and the respiration waveform will flatten.

Tip: If the signal is noisy initially, wait 5–10 seconds for the electrode gel to settle and the filters to stabilize.

Visualizing with OpenView

For a richer visualization with heart rate computation:

  1. Upload Example 1: OpenView from the library examples
  2. Download OpenView 2 from GitHub
  3. Open OpenView 2, select “ADS1292R breakout” from the board dropdown
  4. Select the correct serial port and click Connect
  5. You’ll see real-time ECG and respiration waveforms with computed heart rate and respiration rate

Troubleshooting

No signal / flat line

  • Verify all 7 SPI wires are correctly connected (if using breakout, not shield)
  • Check that the electrode cable is fully seated in the 3.5mm connector
  • Ensure electrodes are making good skin contact — press them firmly
  • Confirm the correct serial baud rate: 57600 for the Arduino Plotter example
  • Check that the START pin (D5) is connected — the ADS1292R won’t begin conversion without it

Very noisy ECG signal

  • The DRL electrode must be connected — it is not optional. Without it, common-mode noise will overwhelm the ECG
  • Keep electrode wires as short as possible and away from AC power cables
  • Ensure the subject is not touching grounded metal objects (desk frames, laptop chargers)
  • Replace electrodes if the adhesive gel has dried out
  • Make sure the PWDN/RESET pin (D4) is connected and not floating

ECG works but no respiration signal

  • Respiration uses impedance pneumography, which measures tiny impedance changes across the chest
  • With wrist placement, the respiration signal will be weaker — try chest electrode placement for better respiration
  • The respiration channel may be commented out in some example sketches — check the code

Shield doesn’t work when plugged in

  • Ensure the shield is seated firmly on all Arduino headers — partial seating causes intermittent connections
  • Check for solder bridges or bent pins on the shield headers
  • Try the breakout-style wiring to isolate whether the issue is the shield connection or the board itself

Resources

Licenses

  • Hardware: Creative Commons Share-alike 4.0 International (CC BY-SA 4.0)
  • Software: MIT License