The ADC Pi is an 8-channel analogue-to-digital converter (ADC) designed to work with the Raspberry Pi and similar single-board computers. It uses two Microchip MCP3424 high-resolution ADC chips, each with four inputs. These chips convert analogue signals into digital data with low noise and high accuracy.
Key Features:
- Expandable Inputs: Unlike many other ADC boards for Raspberry Pi, the ADC Pi allows stacking up to three additional ADC Pi boards or other development boards, providing up to 32 input channels.
- Voltage Range: It converts voltages from 0 to 5.06V, thanks to an onboard voltage divider. This makes it easy to measure signals within this range. If you need to measure higher voltages, you can use the ADC Pi Input Voltage Calculator to determine the necessary resistors.
- Resolution: Each input channel supports a resolution of 17 bits, offering precise measurements.
Easy Setup:
The ADC Pi is powered directly through the Raspberry Pi’s GPIO port. It also features extended pins, allowing you to stack other boards on top.
Communication and Compatibility:
- I2C Communication: The two MCP3424 chips communicate with the Raspberry Pi via the I2C interface.
- Buffered 5V I2C Port: The ADC Pi includes a logic level converter, making it safe to connect other I2C devices running at 5V without damaging the Raspberry Pi’s 3.3V I2C port.
- Selectable I2C Addresses: Onboard jumpers let you set up to 8 unique I2C addresses for each MCP3424 chip. With two chips per board, you can stack up to 4 ADC Pi boards on one Raspberry Pi.
Additional Features:
- Programmable Gain Amplifier: You can set the gain to x1, x2, x4, or x8 before conversion, allowing you to amplify weak signals.
- Adjustable Data Rate: The ADC Pi supports different sampling speeds, ranging from 3.75 samples per second at 17-bit resolution to 240 samples per second at 11-bit resolution. You can configure the resolution and speed using our software libraries.
- Arduino and Raspberry Pi Pico Support: We have software libraries to use the ADC Pi with the Arduino and the Raspberry Pi Pico.
Need Help?
If you’re unsure which ADC board to choose, check out our Analogue to Digital Buyers Guide to compare our options.
Feature Summary
- 8 x 17-bit 0 to 5V Single Ended ADC Inputs
- Control via the Raspberry Pi I2C port
- Stack up to 4 ADC Pi boards on a single Raspberry Pi
- Jumper selectable I2C addresses
- Buffered 5V I2C port
- Based on the MCP3424 from Microchip Technologies Inc
- Single Ended full-scale range of 5.0V
- 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 (17 bits)
- 15 SPS (15 bits)
- 60 SPS (13 bits)
- 240 SPS (11 bits)
- One-Shot or Continuous Conversion Options
We have a knowledge base article, ADC Sample Rate Comparison, with more detailed sample information and test scripts to compare the different MCP2424 ADC chip bits and sample rates.
Technical Details
Input Ratings & Specifications
- Spec
- Ratings
- Vdd (5V pin on I2C bus)
- 5.0V
- ADC Input Voltage
- 0V to +5.06V
- 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 Pi - 3D CAD File (STEP Format)
Board Layout
Schematic
View the schematic PDF.
Mechanical Drawings
Click the image to enlarge it.
Compatibility
We have tested the ADC 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 development 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 Pi is supplied with the 40-pin GPIO connector, and the 12-pin address connector is unsoldered. We provide the ADC Pi this way because the Raspberry Pi Zero is also supplied without a GPIO header, and the ADC Pi could therefore be fitted both above or below the Raspberry Pi Zero.
Before using the ADC Pi, you must 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.
The ADC Pi Plus assembly video shows the steps needed to assemble the ADC Pi.
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 Pi contains two MCP3424 chips so that you can stack up to 4 ADC Pi boards on a single Raspberry Pi. To simplify address selection on the ADC 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 Pi and the associated I2C addresses.
Note:
Disconnect the ADC 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