Getting Started

Getting Started with the ProtoCentral ADS1262 32-bit Precision ADC Breakout Board

Last updated Mar 6, 2026

Introduction

The ProtoCentral ADS1262 breakout board puts a Texas Instruments ADS1262 32-bit delta-sigma ADC on a compact, breadboard-friendly PCB with standard 2.54mm headers. Where a typical 12-bit ADC gives you 4,096 levels of resolution, the ADS1262 provides over 4.2 billion levels — enough to resolve microvolt-level signals from strain gauges, load cells, thermocouples, and other precision sensors without external signal conditioning.

This guide walks you through connecting the board, installing the Arduino library, and taking your first high-precision voltage reading.

Key Features

  • 32-bit delta-sigma (ΔΣ) ADC with ultra-low noise (7 nVRMS at 2.5 SPS)
  • Programmable gain amplifier (PGA): 1x to 32x
  • 11 multiplexed analog inputs (10 single-ended or 5 differential pairs)
  • Data rates from 2.5 SPS to 38,400 SPS
  • Built-in 2.5V precision voltage reference
  • Two programmable current sources for sensor excitation
  • Programmable digital filter (sinc1 through sinc4)
  • SPI interface (compatible with Arduino, ESP32, and other microcontrollers)
  • Operating voltage: 2.7V to 5.5V

What’s in the Box

  • 1x ProtoCentral ADS1262 breakout board (assembled and tested)
  • Header pins (if not pre-soldered)

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

Pin Connections

ADS1262 Breakout to Arduino Uno

ADS1262 Board Pin Function Arduino Uno Pin
DRDY Data Ready Output D6
MISO SPI Data Out D12
MOSI SPI Data In D11
SCLK SPI Clock D13
CS Chip Select D7
START Start Conversion D5
PWDN Power Down / Reset D4
DVDD Digital Power 5V
DGND Digital Ground GND
AVDD Analog Power 5V
AGND Analog Ground GND

Note: For best results, keep the analog and digital ground connections as close together as possible on the Arduino side to minimize ground loops.

Wiring Diagram — ADS1262 to Arduino Uno

ADS1262 Breakout to Arduino Uno SPI Wiring Diagram showing color-coded connections for MISO, MOSI, SCLK, DRDY, CS, START, PWDN, 5V, and GND

ADS1262 Breakout to ESP32

If you are using an ESP32 instead of an Arduino Uno, use these SPI pin mappings:

ADS1262 Board Pin Function ESP32 Pin
DRDY Data Ready Output GPIO 6
MISO SPI Data Out GPIO 19
MOSI SPI Data In GPIO 23
SCLK SPI Clock GPIO 18
CS Chip Select GPIO 7
START Start Conversion GPIO 5
PWDN Power Down / Reset GPIO 4
DVDD / AVDD Power 3.3V
DGND / AGND Ground GND

Important: The ESP32 operates at 3.3V logic. The ADS1262 breakout board is compatible with both 3.3V and 5V logic levels.

Analog Inputs

The board exposes analog input pins AIN0 through AIN9, plus AINCOM (analog input common). For a basic differential measurement, connect your signal across AIN0 (positive) and AIN1 (negative). For single-ended measurements, connect your signal to any AINx pin and use AINCOM as the reference.

Installing the Arduino Library

Option 1: Arduino Library Manager (Recommended)

  1. Open the Arduino IDE
  2. Go to Sketch → Include Library → Manage Libraries…
  3. In the search box, type “ProtoCentral ADS1262”
  4. Find “ProtoCentral ADS1262 32-bit precision ADC Library” and click Install

Option 2: Manual Installation from GitHub

  1. Go to github.com/Protocentral/ProtoCentral_ads1262
  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 Reading

Open the basic usage example from the library:

File → Examples → ProtoCentral ADS1262 → 01-Basic-Usage

This example initializes the ADS1262 at 100 samples per second with a gain of 1x, using the internal 2.5V reference, and reads the differential voltage between AIN0 and AIN1.

#include <ads1262.h>

ADS1262 adc;

void setup() {
    Serial.begin(115200);
    while (!Serial);

    Serial.println("ProtoCentral ADS1262 - Basic Usage");
    Serial.println("-----------------------------------");

    // Initialize with default pins: CS=7, DRDY=6, START=5, PWDN=4
    adc.begin();

    // Configure the ADC
    adc.setDataRate(ADS1262_DATA_RATE_100SPS);   // 100 samples per second
    adc.setGain(ADS1262_GAIN_1);                  // PGA gain = 1x
    adc.setReference(ADS1262_REF_INTERNAL);        // Internal 2.5V reference
    adc.setInputMux(ADS1262_MUX_AIN0, ADS1262_MUX_AIN1);  // Differential: AIN0 - AIN1

    // Verify connection
    if (adc.testConnection()) {
        Serial.println("ADS1262 connected successfully!");
    } else {
        Serial.println("ERROR: ADS1262 not detected. Check wiring.");
        while(1);
    }

    adc.startConversion();
}

void loop() {
    // Read voltage (blocking)
    float voltage = adc.readVoltage();

    Serial.print("Voltage: ");
    Serial.print(voltage, 6);  // 6 decimal places
    Serial.print(" V  (");
    Serial.print(voltage * 1000.0, 3);
    Serial.println(" mV)");

    delay(1000);
}

What to Expect

After uploading the sketch and opening the Serial Monitor at 115200 baud, you should see output like:

ProtoCentral ADS1262 - Basic Usage
-----------------------------------
ADS1262 connected successfully!
Voltage: 0.000152 V  (0.152 mV)
Voltage: 0.000148 V  (0.148 mV)
Voltage: 0.000155 V  (0.155 mV)

With nothing connected to AIN0/AIN1, you will see a small offset voltage (typically under 1 mV). This is normal. To test with a real signal, connect a battery or potentiometer output across AIN0 and AIN1.

Trying the Other Examples

The library includes four example sketches:

Example What It Demonstrates
01-Basic-Usage Device initialization, blocking voltage reads, serial output
02-Simple-Differential Differential measurement between two analog inputs
03-Simple-Differential-Extended Extended differential with gain and filter configuration
04-Advanced-Usage Async (non-blocking) reads, calibration, register-level access

Start with 01-Basic-Usage, then move to 02 or 03 when you want to measure differential sensor signals. Use 04-Advanced-Usage when you need non-blocking reads for time-critical applications.

Troubleshooting

“ADS1262 not detected” error

  • Double-check all SPI wiring: MOSI, MISO, SCLK, CS
  • Verify DVDD is connected to 5V (or 3.3V for ESP32) and DGND to GND
  • Make sure the START and PWDN pins are connected
  • Try a different CS pin and update the code accordingly

Readings are very noisy

  • Use short, direct wires between the board and Arduino (avoid long jumper wires)
  • Connect AGND and DGND as close together as possible
  • Try reducing the data rate (e.g., ADS1262_DATA_RATE_20SPS) — lower data rates give lower noise
  • Increase the PGA gain if measuring small signals
  • Keep the analog input wires away from digital signals and power supply traces

Readings are stuck at zero

  • Check that AIN0 and AIN1 are actually connected to a signal source
  • Verify the START pin is connected (the ADC won’t convert without it)
  • Call adc.startConversion() in setup() before reading

Readings are saturated (stuck at max or min)

  • The input voltage may exceed the reference voltage range. With the internal 2.5V reference and gain of 1x, the input range is approximately ±2.5V differential
  • Reduce the PGA gain if using a higher gain setting
  • Check for a short circuit on the analog inputs

Resources

License

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