An ADC (Analog-to-Digital Converter) chip is an integrated circuit that samples continuous real-world voltage signals and translates them into discrete digital binary values that a microcontroller can process. While many microcontrollers feature internal ADCs, adding a dedicated external ADC chip changes your circuit by drastically reducing quantization noise, increasing sampling speed, or simply granting analog read capabilities to digital-only boards like the Raspberry Pi. The most common point of confusion for makers is conflating an ADC's resolution (theoretical bit-depth) with its accuracy (Effective Number of Bits, or ENOB), which is always lower due to internal thermal noise and non-linearity.
Comparing Popular External ADC Chips
Choosing the right ADC chip depends on your required sample rate, interface preference, and budget. Below is a spec-sheet comparison of the most common standalone ADC chips used in embedded projects as of 2026.
| Part Number | Manufacturer | Resolution | Interface | Max Sample Rate | Typical Price | Best Use Case |
|---|---|---|---|---|---|---|
| ADS1115 | Texas Instruments | 16-bit | I2C | 860 SPS | $1.50 (IC) / $4.00 (Breakout) | Precision DC sensors, load cells, battery monitoring |
| MCP3008 | Microchip | 10-bit | SPI | 200 kSPS | $2.20 (IC) | Adding 8 analog channels to Raspberry Pi, joystick arrays |
| ADS1256 | Texas Instruments | 24-bit | SPI | 30 kSPS | $6.50 (IC) | High-precision strain gauges, audio frequency analysis |
| MAX11100 | Analog Devices (Maxim) | 16-bit | SPI | 48 kSPS | $3.80 (IC) | Fast transient capture, motor current sensing |
Note: SPS = Samples Per Second. Breakout board prices include supporting passives and voltage regulators; bare IC prices require you to provide your own decoupling and level-shifting.
Worked Numeric Example: Load Cell Resolution
To understand why external ADC chips matter, let's look at a real-world numeric example. Suppose you are building a digital scale using a signal conditioner that outputs a 0.0V to 5.0V analog signal corresponding to a 0 kg to 100 kg load cell.
We need to calculate the voltage step size (the Least Significant Bit, or LSB) and the resulting weight resolution for two different ADCs.
Scenario A: Internal 10-bit ADC (e.g., Arduino Uno ATmega328P)
- Total Steps: 2^10 = 1,024 steps
- Voltage per Step (LSB): 5.0V / 1,024 = 4.88 mV
- Weight Resolution: (4.88 mV / 5,000 mV) * 100 kg = 0.097 kg (97 grams)
With the internal 10-bit ADC, the smallest weight change you can theoretically detect is nearly 100 grams. Furthermore, the ATmega328P's internal ADC has an ENOB of roughly 8.5 bits, meaning real-world noise will make readings jump by ±200 grams.
Scenario B: External 16-bit ADC (e.g., TI ADS1115)
- Total Steps: 2^16 = 65,536 steps
- Voltage per Step (LSB): 5.0V / 65,536 = 0.076 mV (76 µV)
- Weight Resolution: (0.076 mV / 5,000 mV) * 100 kg = 0.0015 kg (1.5 grams)
By switching to a $4 external ADC chip, your theoretical resolution improves by a factor of 64, allowing you to detect 1.5-gram changes. Even accounting for an ENOB of 14 bits in a noisy breadboard environment, you still achieve sub-10-gram precision.
Where You Meet External ADC Chips in Practice
You will typically reach for an external ADC chip in three specific embedded scenarios:
1. Raspberry Pi Sensor Integration
The Raspberry Pi (including the Pi 4 and Pi 5) is a digital-only machine. It has GPIO pins for I2C, SPI, and UART, but absolutely zero native analog inputs. If you want to read a potentiometer, an LDR (light-dependent resistor), or an analog temperature sensor like the TMP36, you must use an external ADC chip. The MCP3008 is the standard choice here because its SPI interface easily handles the Pi's Linux-based timing jitter better than I2C bit-banging.
2. Bypassing ESP32 WiFi-Induced ADC Noise
The ESP32 is a phenomenal microcontroller, but its internal ADC is notoriously flawed. As documented in the official Espressif ESP-IDF peripherals documentation, the internal ADC exhibits significant non-linearity and suffers from severe noise injection when the WiFi or Bluetooth radios are transmitting. If your project requires stable analog readings (like a precise soil moisture sensor or a current shunt monitor) while simultaneously sending data over MQTT, an external I2C ADC like the ADS1115 isolates the analog measurement from the ESP32's internal RF noise.
3. High-Speed Audio and Vibration Analysis
Internal microcontroller ADCs are generally optimized for slow, DC-biased measurements (like reading a battery voltage once a second). If you are sampling audio waveforms or piezoelectric vibration sensors, you need sample rates in the tens or hundreds of kilosamples per second (kSPS). External SPI ADCs like the MAX11100 or the MCP6S21 can push data to the microcontroller fast enough to satisfy the Nyquist-Shannon sampling theorem for audio frequencies, which internal ADCs simply cannot sustain.
Troubleshooting Noise and the ENOB Reality Check
A common trap when upgrading to a 16-bit or 24-bit ADC chip is expecting perfectly stable readings down to the last decimal place. When the lower bits flutter wildly, makers often assume the chip is defective. It is not; you have just hit the ENOB (Effective Number of Bits) wall.
As explained in All About Circuits' guide on ADC resolution, ENOB represents the actual usable resolution after factoring in thermal noise, clock jitter, and integral non-linearity (INL). A 16-bit ADC might only yield 13.5 bits of noise-free data.
How to Reclaim Your Lost Bits
If your high-resolution ADC chip is returning noisy data, check these physical layout and wiring faults:
- Shared Ground Paths: Do not daisy-chain your analog sensor ground through the same breadboard rail as your microcontroller's digital ground. Digital return currents will create micro-voltage drops across the wire resistance, which the ADC will interpret as signal noise. Use a 'star ground' topology where analog and digital grounds meet at a single point near the power supply.
- I2C/SPI Crosstalk: Keep your digital communication wires (SCL/SDA or MOSI/MISO/SCK) physically separated from your analog input traces. High-speed digital edges will capacitively couple into high-impedance analog lines.
- Missing Decoupling: Every ADC chip requires a 100nF (0.1µF) ceramic capacitor placed as physically close to the VDD and GND pins as possible. Without this, the internal sample-and-hold capacitor will pull transient current from the power rail, causing voltage sags that ruin the conversion.
- Source Impedance Mismatch: ADC inputs have an internal sampling capacitor that must charge up during the acquisition window. If your analog signal comes from a high-impedance source (like a 1MΩ voltage divider), the capacitor won't charge in time, resulting in artificially low and erratic readings. Buffer high-impedance signals with an op-amp (like the MCP6001) before feeding them to the ADC chip.
By understanding the difference between theoretical bit-depth and real-world ENOB, and by selecting the right interface (I2C for low-pin-count precision, SPI for multi-channel speed), external ADC chips become one of the most powerful tools in your embedded workbench arsenal.






