Features
- 8 x 18-bit differential inputs
- Control via the Raspberry Pi I2C port
- Stack up to 4 ADC Differential Pi boards on a single Raspberry Pi
- Jumper selectable I2C addresses
- Buffered 5V I2C port
- Based on the MCP3424 from Microchip Technologies Inc
- Input voltage range of ±2.048V
- On-board 2.048V reference voltage (Accuracy ± 0.05%, Drift: 15 ppm/°C)
- On-board Programmable Gain Amplifier (PGA): Gains of 1, 2, 4 or 8
- Programmable Data Rate Options:
- 3.75 SPS (18 bits)
- 15 SPS (16 bits)
- 60 SPS (14 bits)
- 240 SPS (12 bits)
- One-Shot or Continuous Conversion Options
The ADC Differential Pi is an 8-channel, 18-bit analogue to digital converter designed to work with the Raspberry Pi and other compatible single-board computers. The ADC Differential Pi is based on two Microchip MCP3424 A/D converters, each containing 4 analogue inputs. The MCP3424 is a delta-sigma A/D converter with low noise differential inputs.
Not sure which ADC you need? Check our Analogue to Digital Buyers guide to compare our ADC development boards.
We designed the ADC Differential Pi as a companion for our ADC Pi. Unlike the ADC Pi, the ADC Differential Pi does not include any voltage dividers, so the inputs can measure a differential voltage range of ±2.048V. This is useful for measuring inputs below ±2.048V or using a voltage divider to measure higher voltages.
The ADC Differential Pi is powered through the host Raspberry Pi using the GPIO port. Extended pins on the GPIO connector allow you to stack the ADC Differential Pi and other development boards.
The two MCP3424 A/D converters communicate via i2c to the host Raspberry Pi, giving you eight analogue inputs. A logic level converter is included on the ADC Pi Plus board, giving you a buffered 5V I2C port, making it easy to add other I2C devices which operate at 5 volts without damaging the Raspberry Pi 3.3 volt I2C port. The i2c buffer uses N-channel MOSFETs with a maximum drain current of 100mA.
The I2C address bits are selectable using the onboard jumpers. The MCP3424 supports up to 8 different I2C addresses, so with two A/D converters on each ADC Differential Pi, you can stack up to 4 ADC Differential Pi boards on a single Raspberry Pi, giving you 32 ADC inputs.
The MCP3424 contains an onboard 2.048V reference voltage with an input range of ±2.048V differentially (full-scale range of 4.096V/PGA). A programmable Gain Amplifier gives the user a selectable gain of x1, x2, x4 or x8 before the analogue to digital conversion occurs.
The data rate for analogue to digital conversions is 3.75 (18-bit), 15 (16-bit), 60 (14-bit) or 240 (12-bit) samples per second. Data rate and resolution can be configured within the software using the I2C interface.
Our knowledge base article, ADC Sample Rate Comparison, has more detailed sample information and test scripts to compare the different MCP2424 ADC chip bit and sample rates.
Unused inputs should be tied to ground.
Legacy Delta Sigma Pi Versions
See our Knowledge Base article for previous versions of this board.
Technical Details
Input Ratings & Specifications
- Spec
- Ratings
- Vdd (5V pin on I2C bus)
- 5.0V
- ADC Input Voltage
- -2.048V to + 2.048V
- Maximum ADC Input voltage
- VSS–0.4V to VDD+0.4 V
- Current at Input Pins
- ±2 mA
- I2C SDA/SCL voltage
- 5.0 V
- I2C port current
- 100 mA
3D CAD Model
ADC Differential Pi - 3D CAD File (STEP Format)
Board Layout
Schematic
View the schematic PDF.
Mechanical Drawings
Click the image to enlarge.
Compatibility
We have tested the ADC Differential Pi on the following platforms.
Model |
Status |
Raspberry Pi Pico series |
|
Raspberry Pi Model A / B |
|
Raspberry Pi 1 Model A+ / B+ |
|
Raspberry Pi 2 Model B |
|
Raspberry Pi 3 Model A+ / B / B+ |
|
Raspberry Pi 4 Model B |
|
Raspberry Pi 5 |
|
Raspberry Pi Zero |
|
Raspberry Pi Zero W / Zero 2 W |
|
Raspberry Pi Compute Module 4 IO Board |
|
Raspberry Pi 400 |
|
Orange Pi |
|
Asus Tinker Board |
|
Odroid |
|
Code Libraries and Demos
This expansion board has Python, MicroPython, C, C++, Node.JS, .Net Core, Arduino and Home Assistant libraries available to get you started with your next project. You can download all of the libraries from our GitHub repository or click on the logos below for your selected programming language.
Assembly Instructions
The ADC Differential Pi is supplied with the 40-pin GPIO connector, and the 12-pin address connector is unsoldered. Before using the ADC Differential Pi, you need to solder both connectors onto the PCB.
We suggest soldering the 40-pin GPIO connector first and then the address-select connector. Soldering the address select connector first will make it difficult to access the three corner pins on the GPIO connector. Assembly for the ADC Differential Pi is the same as on our ADC Pi Plus.
Watch our assembly guide on YouTube. (opens in a new window)
PCB Header Assembly Jig
Download and print our PCB Header Assembly Jig to hold your circuit board when soldering the header pins.
I2C Address Selection
The MCP3424 analogue to digital converter contains two address select pins, which can be tied to Vss, Vdd or left floating. This gives 8 possible I2C addresses for each chip. The ADC Differential Pi contains two MCP3424 chips so that you can stack up to 4 ADC Differential Pi boards on a single Raspberry Pi. To simplify address selection on the ADC Differential Pi, we have included a set of address selection pins which can be configured using the included jumpers. The illustrations below show the four recommended configurations for your ADC Differential Pi and the associated I2C addresses.
Note:
Disconnect the ADC Differential Pi from the Raspberry Pi before changing the address pins. You may need to short the 5V and ground with a resistor to discharge the capacitors for the new addresses to be recognised.
Warning
Do not under any circumstances connect the two centre pins. This will create a direct short between the 5V and ground pins and damage or destroy your Raspberry Pi and ADC Pi Plus board.
I2C Address Table
Adr 0 |
Adr 1 |
I2C Address |
Low or Float |
Low or Float |
0x68 |
Low |
Float |
0x69 |
Low |
High |
0x6A |
Float |
Low |
0x6B |
High |
Low |
0x6C |
High |
Float |
0x6D |
High |
High |
0x6E |
Float |
High |
0x6F |
Recommended Address Configurations
Configuration 1:
Analogue Channels 1-4 = I2C Address: 0x68
Analogue Channels 5-8 = I2C Address: 0x69
Configuration 2:
Analogue Channels 1-4 = I2C Address: 0x6A
Analogue Channels 5-8 = I2C Address: 0x6B
Configuration 3:
Analogue Channels 1-4 = I2C Address: 0x6C
Analogue Channels 5-8 = I2C Address: 0x6D
Configuration 4:
Analogue Channels 1-4 = I2C Address: 0x6E
Analogue Channels 5-8 = I2C Address: 0x6F