The ADC Numbers

The ADC Numbers

Ada audits the ADC numbers — resolution, code range, quantization error, and noise

foundations
math-foundations
adc
electronics
beginner
Ada ADA · CALCULATION AUDIT

Foundations · optional mathematics and physics

The ADC Numbers

The chapter’s 12-bit ESP32-style ADC on a 3.3 V reference steps every 0.806 mV across 4096 levels, so a 2.0 V sensor reading digitizes to code 2482. A tidy bit count invites the assumption that more bits always means a better measurement. This audit re-derives the code count, LSB, and quantization limit, then asks whether bit depth alone earns its resolution once reference voltage, noise, and source impedance are counted.

Companion to the chapter ADC Fundamentals — every number here comes from that chapter.

Resolution, code range, quantization error, and noise, ~4 minutes

ADC resolution is voltage bookkeeping: the mathematics tells you the code step, and the physics tells you whether sensor noise, source range, and timing make that step meaningful.

See the relationship before changing it

The figure reads from left to right. The blue card is adc resolution. The middle card applies this page's rule. The green card is ideal code width. Walk the arrows once: set the input, apply the rule, then read the result with its unit.

The retained audit below checks several chapter fixtures. This model keeps those stated values fixed and changes only adc resolution, so the numeric fixture does not switch without explanation.

ADC resolution changes ideal code width An input card leads through the rule code width = 3,300 mV / 2^bits to the ideal code width result. INPUT PAGE INPUT APPLY THE RULE predict calculate check units OUTPUT RESULT
Walk the arrows. Each added bit halves ideal code width, but it does not remove reference error or noise.

Derive the baseline in four named moves

  1. 1

    Name the input. The chapter baseline is 12 bits.

  2. 2

    Name the relationship. code width = 3,300 mV / 2^bits

  3. 3

    Substitute with units. 3,300 / 2^12 = 0.806 mV

  4. 4

    Read the result. Keep the unit beside the value. Use it only inside the technical boundary on this page.

Predict, then change adc resolution

Try Predict the direction of code width = 3,300 mV / 2^bits. Test another adc resolution, then compare ideal code width.

12 bits
Chapter baseline
Ideal code width

Observe Each added bit halves ideal code width, but it does not remove reference error or noise. Reset adc resolution to 12 and compare ideal code width.

Explain Each added bit halves ideal code width, but it does not remove reference error or noise.

Check yourself

What should you do before trusting a moved-control result?
Answer: Predict its direction, apply the shown relationship, keep the units, and reset to the worked baseline.
What does this small model leave out?
Answer: Only adc resolution moves here. Field effects named in the technical boundary stay fixed.
Try

Treat the 12-bit ADC, 3.3 V reference, and 2.0 V signal as fixed audit inputs; press Calculate, then use Check.

Observe

The result shows 4096 levels, a 0.806 mV ideal step, and code 2482 for the 2.0 V sample.

Explain

Bit depth divides the reference span into ideal codes; usable resolution remains bounded by reference error, analogue noise, source settling, and sensor accuracy.

Technical boundaries

For the ADC scale, excluded from this fixed arithmetic are reference tolerance, sensor accuracy, ADC non-linearity, aliasing, temperature drift, or time-varying analogue noise.

The working

1. Bit depth sets the number of possible codes. A 12-bit converter has 212 = 4096 levels, normally labelled code 0 through code 4095. That is why the same table can talk about 4096 levels and a maximum reported code of 4095.

levels = 212 = 4096; max code = 4096 − 1 = 4095

2. Reference voltage turns codes into real voltage. The chapter's 3.3 V, 12-bit example has:

LSB = 3.3 V / 4096 = 0.0008057 V = 0.806 mV
nearest-step error limit = 0.806 mV / 2 = ±0.403 mV

For a 2.0 V sensor reading, the digital code is:

D = floor((2.0 / 3.3) × 4096) = floor(2482.4) = 2482
Design check Arithmetic shown Audit result
10-bit Arduino-style ADC at 5 V 5 V / 1024 = 0.0048828 V 4.88 mV per count; half-step about 2.44 mV
12-bit ESP32-style ADC at 3.3 V 3.3 V / 4096 = 0.0008057 V 0.806 mV per count; half-step about 0.403 mV
16-bit precision ADC at 3.3 V 3.3 V / 65536 = 0.0000504 V 0.050 mV per count; useful only if noise is below that scale
Bipolar +/-10 V input span 20 V / 65536 = 0.000305 V 305 microvolts per count
+/-1 V span with +/-4 noisy counts 2 V / 4096 = 0.488 mV; 4 × 0.488 mV = 1.95 mV The noise floor is larger than a single count, so extra nominal bits do not automatically improve the measurement.
Averaging 64 independent samples sqrt(64) = 8 Random noise can shrink by 8x, but bias, nonlinearity, source impedance, and correlated noise remain.

What the audit buys you: ADC bit depth is not a quality guarantee by itself. The usable measurement is the smaller story that survives reference voltage, quantization, analog noise, source impedance, and the physical sensor's own accuracy.

Every number above is taken from the chapter's own ADC resolution example and re-derived step by step.