Getting Started with the ProtoCentral ADS1292R ECG/Respiration Breakout v4

Last updated Oct 6, 2026

The ProtoCentral ADS1292R ECG/Respiration Breakout v4 captures a single-lead ECG and a respiration waveform from the same three electrodes. This guide takes you from an unboxed kit to live ECG and respiration traces on an Arduino or ESP32.

Research and education only. This board is not a medical device and is not intended for diagnosis or patient monitoring. When electrodes are on a person, run the host from a battery, not a mains-powered computer.

Have an earlier board? v4 has a new 10-pin host header with a different pin order from v3 and the shield. Check the labels next to the pins: if your board has VDD, GPIO1 and GPIO2 pins on its header, it is an earlier revision and the v3 / Shield Getting Started guide applies.

Introduction

The ADS1292R is a two-channel, 24-bit analog front end made for biopotential measurement. On this board one channel records the ECG between the right-arm (RA) and left-arm (LA) electrodes. The other measures respiration by impedance pneumography: the chip drives a small signal through the same two electrodes and tracks how the chest’s impedance changes as you breathe. A third electrode on the right leg (RL) is driven to cancel common-mode noise.

An on-board 3.3 V regulator powers the ADS1292R, and a TXB0108 level translator lets the SPI lines work with both 3.3 V and 5 V hosts.

What’s new in v4

  • New 10-pin host header with a different pin order from v3.
  • The ADS1292R clock is on the header. Run several boards from one clock for sample-aligned recordings, using the CLK SEL jumper to choose internal or external clock.
  • GPIO1 and GPIO2 test pads (TP3).
  • Two plated M2 mounting holes and a smaller 34.5 × 28.7 mm board.
  • 3-lead snap electrode cable in the kit.

The Arduino library is the same for every revision.

What’s in the Box

Qty Item
1 ProtoCentral ADS1292R ECG / Respiration breakout board v4, with the 10-pin host socket pre-soldered
1 3-lead ECG snap cable with 3.5 mm stereo jack
10 Disposable stick-on ECG electrodes

Specifications

Parameter Value
Analog front end Texas Instruments ADS1292R
Channels 2 × 24-bit: ECG and respiration
Respiration method Impedance pneumography, from the ECG electrodes
Supply (VCC pin) 3.3–5 V; on-board 3.3 V regulator (AP2112K-3.3)
Logic level Follows VCC, through a TXB0108 level translator
Interface SPI
Host header 10-pin 0.1″ female socket, pre-soldered — use male-to-male jumper wires
Electrode connector 3.5 mm stereo jack: tip LA, ring RA, sleeve RL
Board 34.5 × 28.7 mm, 2-layer, 2 × M2 mounting holes

Pinout

ProtoCentral ADS1292R v4 breakout, top view: the 10-pin host socket on the left and the 3.5 mm ECG jack on the right

Pin Label Function Required?
1 CSB Chip select, active low Yes
2 MOSI SPI data in (to the ADS1292R) Yes
3 SCK SPI clock Yes
4 MISO SPI data out (from the ADS1292R) Yes
5 DRDY Data ready, active low Yes
6 START Start conversions Yes
7 RST Reset / power-down, active low Yes
8 CLK ADS1292R clock in or out (multi-board sync) Optional
9 VCC Supply, 3.3–5 V Yes
10 GND Ground Yes

CLK SEL jumper

The CLK SEL solder jumper sets where the ADS1292R gets its clock. As shipped it selects the internal oscillator, which is right for a single board. Move it to the external setting only on a board that takes its clock from another board’s CLK pin (see Several boards on one clock below).

GPIO test pads

TP3 brings out the ADS1292R’s GPIO1 and GPIO2. The library’s 09.GPIOTestPads example drives GPIO1 and reads GPIO2.

Wiring

Arduino Uno

Breakout pin Arduino Uno
VCC 5V
GND GND
SCK D13
MOSI D11
MISO D12
CSB D7
DRDY D6
START D5
RST D4

ESP32

Breakout pin ESP32 (classic, VSPI)
VCC 3.3V
GND GND
SCK GPIO 18
MOSI GPIO 23
MISO GPIO 19
CSB GPIO 13
DRDY GPIO 26
START GPIO 14
RST GPIO 27

Both tables match the pins the library examples use, so the examples run unchanged. To use other pins, change the constants at the top of the sketch:

Protocentral_ADS1292R ads(PIN_CS, PIN_DRDY, PIN_START, PIN_RESET);

Connecting the electrodes

  1. Plug the snap cable into the 3.5 mm jack.
  2. Snap an electrode onto each lead before sticking it on: peeling a placed electrode to attach a lead pulls on the skin.
  3. Place the electrodes on clean, dry skin:
Lead Placement
RA (marked R) Right arm, or right side of the upper chest
LA (marked L) Left arm, or left side of the upper chest
RL (third lead) Right leg, or lower right abdomen

ADS1292R three-electrode ECG placement

The RL electrode is what keeps mains noise out of the signal. Without it, expect a noisy trace.

Tip: wipe the skin with alcohol first and let it dry. Wrist placement works for quick tests; the chest gives a larger ECG and a stronger respiration signal.

Installing the Arduino Library

Option 1 — Library Manager (recommended)

  1. In the Arduino IDE, open Tools → Manage Libraries…
  2. Search for ProtoCentral ADS1292R.
  3. Install ProtoCentral ADS1292R ECG and Respiration boards library.

Option 2 — Manual install from GitHub

  1. Download the library as a ZIP from github.com/Protocentral/protocentral-ads1292r-arduino (Code → Download ZIP).
  2. In the Arduino IDE, choose Sketch → Include Library → Add .ZIP Library… and select the file.

Your First ECG and Respiration Reading

  1. Open File → Examples → ProtoCentral ADS1292R ECG and Respiration boards library → 01.ECGRespSerialPlotter and upload it.
  2. Attach the electrodes and plug the cable into the board.
  3. Open Tools → Serial Plotter at 115200 baud.

You’ll see two traces: the ECG, with a sharp spike on each heartbeat, and the respiration signal, a slow wave that rises and falls with each breath. Breathe deeply and the respiration wave grows; hold your breath and it flattens.

More examples

Example What it does
01.ECGRespSerialPlotter Raw ECG and respiration on the Serial Plotter
02.OpenView Streams to the ProtoCentral OpenView desktop app (57600 baud)
03.HeartRateRespRate Heart rate and respiration rate computed on the board
04.LeadOffDetection Reports when an electrode comes off
05.TestSignalNoise Uses the internal test signal to check the signal chain
06.TemperatureSupply Reads the ADS1292R’s temperature and supply monitors
07.InterruptDriven Reads samples from a DRDY interrupt
08.MultiBoardClockSync Two v4 boards sampling from one clock
09.GPIOTestPads Drives and reads the GPIO test pads
10.Diagnostics Step-by-step check of wiring and configuration

Several boards on one clock

v4 brings the ADS1292R clock out on the CLK pin, so two or more boards can sample in lock-step:

  1. On the first board, leave CLK SEL on the internal oscillator, and set clockOutput = true in its configuration so it drives its clock out on CLK.
  2. On every other board, set CLK SEL to external clock and wire its CLK pin to the first board’s CLK pin.
  3. Share SCK, MOSI and MISO, and tie all the START pins to one host pin. Give each board its own CSB, DRDY and RST.

08.MultiBoardClockSync shows the full setup. Configure the first board before the others: the others have no clock, and won’t respond on SPI, until the first board’s clock output is on.

Troubleshooting

Symptom Likely cause What to try
“ADS1292R not found” Wiring or power Check VCC, GND and the SPI lines against the tables above. Run 10.Diagnostics.
Flat ECG trace Electrodes or cable Check the cable is fully seated in the jack and every lead is snapped on. Run 04.LeadOffDetection.
Very noisy ECG RL not attached, or mains interference Attach the RL electrode. Run the host from battery, away from chargers and power strips.
Board with CLK SEL set to external won’t respond No clock Another board must be supplying its CLK, and must be configured first. Set CLK SEL back to internal for a single board.

Resources

License

  • Hardware: CERN Open Hardware Licence Version 2 — Permissive (CERN-OHL-P v2)
  • Software / library: MIT License
  • Documentation: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)