Choosing an ADC for a measurement prototype: how many bits do you actually need?

You are building a device that measures a small change: pressure on a control, the output of a probe, or the weight of something on a platform. The first prototype produces numbers, but they move around. An external converter advertised as 18-bit or 24-bit looks like a straightforward upgrade. Before choosing one, decide how small a change the product must distinguish, and how quickly the user needs to see it.

Those requirements belong together. A slowly changing measurement can tolerate a wait that would feel wrong in an interactive control. More output digits also do not tell you whether the value is close to the real input. On our bench we ran two GraftSense ADC modules, an MCP3421 and a CS1237, on a GraftPort-RP2040 controller board under MicroPython. They show working acquisition steps, and what still has to be checked before promising accuracy.

Start with the change your user needs to notice

For a pressure control, a useful requirement might be "recognize a gentle press without jumping when nobody is touching it." For a measuring instrument, it might be "distinguish two nearby values after the reading has settled." Both teams might ask for a "high-resolution sensor," but they need different tests.

Write down the input range, the smallest meaningful change, the acceptable error and the acceptable response time. Resolution describes the available digital steps; accuracy is how far the result may be from the real input. Noise can make successive readings wander across several steps. Texas Instruments explains this distinction, including why extra bits alone do not settle the question.

The confusion is common. In a February 2026 All About Circuits discussion, a reader asks whether to use advertised resolution or effective performance when calculating an ADC's smallest step.

The 18-bit converter has more than one operating point

For the MCP3421 we fed a 1 Hz sine wave from a portable signal generator, set to a displayed amplitude of 1.6 V, into the module's SMA input. That gave a deliberately changing input to watch, rather than an unexplained sensor value. The generator's screen setting is not an independent measurement of the signal at the ADC.

This converter trades finer steps for fewer results. The Microchip MCP3421 datasheet lists these paired settings:

Output resolution Nominal conversions per second What changes
12 bits 240 More frequent results, larger steps
14 bits 60 Intermediate
16 bits 15 Finer steps, fewer results
18 bits 3.75 Finest steps, longest conversion period

These are converter settings, not accuracy grades. At 18 bits you get roughly one new conversion every 267 ms before software and display delays. That may suit a slow measurement; it is a different proposition from following a quick press.

Our recorded run reported 16 bits, a conversion time of 66,667 microseconds and gain 1, which matches the 15-per-second setting. One copy of our example program selected a raw rate value that the driver maps to 14 bits and 60 per second instead, so check which setting actually ran; the record is a 16-bit run, not an 18-bit one. Our wiring notes also named GP4/GP5 on the I2C0 connector, while the code created I2C1 on GP2/GP3. Make the physical connector and the program agree, and keep the working configuration with the result.

Keep the waveform, but ask what it establishes

The program first requested single conversions, waited for each conversion period and printed a voltage, then switched to continuous conversion while we plotted the result. The trace changed with the input, which shows the acquisition path responds. It is not a calibration: we had no synchronized reference trace, no measured generator offset and no error calculation across the range. Do not infer amplitude or timing accuracy from how the plot looks.

This is the point in a prototype review to add a few steady input points and compare the readings with a suitable reference instrument, keeping raw values and converter settings. Then go back to the moving signal and check whether the chosen rate follows the change your product needs to detect. We have not done those follow-up measurements yet.

The 24-bit example raises a different question: what turns counts into volts?

The CS1237 module has differential input terminals. Our program started at gain 1 and 10 samples per second, read five values, switched to 40 samples per second, and exercised buffered acquisition, temperature calibration and power management.

Block diagram of the CS1237: differential inputs and internal temperature sensor through input selection and a PGA into a 24-bit ADC, with SCLK, DRDY/DOUT, REFIN and REFOUT pins
The CS1237 uses its own clock and data-ready line, and its full scale depends on the reference and gain.

Although the board connector is labeled I2C0, this device uses its own SCLK and DRDY/DOUT sequence. Our program drove GP5 as the clock and used GP4 for data. A matching connector shape and an SDA/SCL label do not make the CS1237 an I2C device.

We applied 1.2 V to the positive input with the negative input grounded. The output showed raw counts around 7.67 million and displayed values near 1.143 V. The voltage came from the example's conversion: count divided by 8,388,607, multiplied by 1.25 V.

Before calling the gap from 1.2 V a measured error, establish why the formula uses 1.25 V. The CS1237 reference manual defines the ideal differential full-scale input as half the reference voltage divided by gain. The carrier schematic connects REFIN to REFOUT, which the manual describes as an excitation output at VDD. We did not measure the reference voltage, so nothing validates the fixed 1.25 V factor. "Correcting" every reading by a percentage based on this run would be premature.

For your own setup, record the reference arrangement, measure it where appropriate, and confirm gain and signed-data handling before converting counts into engineering units. The manufacturer's manual is the reference for the device; the carrier schematic tells you how a particular board uses it.

Let the measurement catch up with a configuration change

A product may change gain, wake from sleep or switch what it measures. The next displayed number must belong to the new state.

Diagram of CS1237 settling: analog settling then digital filter settling before DRDY signals a fresh result; digital settling is 300 ms at 10 samples/s, 75 ms at 40, 6.25 ms at 640 and 3.125 ms at 1280
At slow output rates, waiting for the digital filter dominates; these are reference-manual figures, not our measurements.

Our temperature routine also supplied 25 °C as the calibration reference before printing values close to 25 °C. That shows the routine runs; without an independently measured calibration temperature it says nothing about thermometer accuracy. Our log also ended at the wake-up message, with no reading after wake. Keep the power-management code, but get a post-wake reading before calling that part tested.

For a user-facing instrument, make "waiting for a fresh reading" a real state. Showing it briefly is better than presenting an old value as if it followed the latest press, setting change or wake-up.

Choose the next experiment before choosing the final converter

These two runs are starting points, not a contest between chips. The MCP3421 run shows how conversion rate and resolution move together. The CS1237 run shows why reference voltage, gain, communication and settling belong in the interpretation of a 24-bit result. Neither establishes the accuracy of a finished sensor product.

For the next build, keep a short test sheet with the input range, actual settings, raw counts, a reference reading and the time to a fresh result. Test the small changes that matter to the user, then repeat with the prototype's normal display, power supply and other electronics running. That tells you whether a module is enough or the surrounding circuit needs work.