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 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)
- Open the Arduino IDE
- Go to Sketch → Include Library → Manage Libraries…
- In the search box, type “ProtoCentral ADS1262”
- Find “ProtoCentral ADS1262 32-bit precision ADC Library” and click Install
Option 2: Manual Installation from GitHub
- Go to github.com/Protocentral/ProtoCentral_ads1262
- Click Code → Download ZIP
- In the Arduino IDE, go to Sketch → Include Library → Add .ZIP Library…
- 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()insetup()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
- Arduino Library on GitHub
- ADS1262 Datasheet (TI)
- Hardware Design Files (Schematic + Board)
- ProtoCentral Openview 2 — Desktop visualization tool
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)

