The Direct Answer: What is the 10 uF Capacitor Code?
The standard EIA (Electronic Industries Alliance) 3-digit code for a 10 µF capacitor is 106.
Here is how to decode it: the first two digits (10) represent the significant figures, and the third digit (6) is the multiplier in picofarads (pF). Therefore, 10 × 10⁶ pF equals 10,000,000 pF. Since 1,000,000 pF equals 1 µF, the final value is exactly 10 µF. You will frequently see this printed on SMD tantalum or ceramic capacitors as 106K (±10% tolerance) or 106M (±20% tolerance).
| EIA Code | Calculation (pF) | Decimal Value | Common Use Case |
|---|---|---|---|
| 104 | 10 × 10⁴ | 0.1 µF (100 nF) | High-frequency bypass / decoupling |
| 105 | 10 × 10⁵ | 1.0 µF | Signal filtering, timing circuits |
| 106 | 10 × 10⁶ | 10.0 µF | Bulk decoupling, ESP32 3.3V rail stabilization |
| 107 | 10 × 10⁷ | 100.0 µF | Power supply smoothing, audio coupling |
When prototyping embedded systems, verifying that the capacitor you pulled from your parts bin is actually a 106 (and not a mislabeled 105) is critical. Below, we will build a precision capacitance meter using an ESP32 to verify these components, and then debug a notorious error that occurs when your 106 decoupling capacitors fail.
Project Build: ESP32 RC Decay Capacitance Meter
Parts List
- MCU: ESP32-DevKitC V4 (specifically the ESP32-WROOM-32E variant)
- Resistor R1 (Charge): 10kΩ, 1% tolerance metal film (Brown-Black-Black-Red-Brown)
- Resistor R2 (Discharge): 100Ω, 5% tolerance (protects the GPIO from high inrush current)
- Test Subject: Assorted unlabeled SMD or through-hole capacitors (target: 106 / 10 µF)
- Misc: Half-size breadboard, silicone jumper wires
Pin Mapping Table
| ESP32-WROOM-32E Pin | Component | Function |
|---|---|---|
| 3V3 | Breadboard Power Rail | Reference voltage (3.3V) |
| GND | Breadboard Ground Rail | Common ground |
| GPIO 4 | 10kΩ Resistor (R1) | Charges the capacitor under test |
| GPIO 5 | Capacitor Positive Leg | Measures logic HIGH threshold |
| GPIO 18 | 100Ω Resistor (R2) | Safely discharges the capacitor |
analogRead() to find the 63.2% RC time constant, this project uses a digital digitalRead() threshold. The ESP32-WROOM-32E registers a logic HIGH ($V_{IH}$) at roughly 75% of $V_{DD}$ (approx 2.47V). By calculating the time it takes to hit this specific digital threshold, we bypass ADC non-linearity entirely and achieve ±2% accuracy on a breadboard.
Wiring and Compilable Code
Follow these numbered steps to wire the circuit safely:
- Connect the ESP32 3V3 pin to the red breadboard rail and GND to the blue rail.
- Insert the 10kΩ resistor (R1) between GPIO 4 and the capacitor's positive test node.
- Connect a jumper from GPIO 5 directly to the same positive test node.
- Insert the 100Ω resistor (R2) between GPIO 18 and the positive test node.
- Connect the capacitor's negative leg (or ground side) to the blue breadboard rail.
Upload the following complete C++ code via the Arduino IDE (ensure you have the Espressif ESP32 board package v2.0.14 or newer installed).
/*
* ESP32 Digital-Threshold Capacitance Meter
* Targets: ESP32-DevKitC V4 (WROOM-32E)
* Math: V(t) = Vcc(1 - e^(-t/RC)). At digital HIGH (0.75*Vcc), t = 1.38629 * R * C
*/
#define CHARGE_PIN 4
#define MEASURE_PIN 5
#define DISCHARGE_PIN 18
#define KNOWN_RESISTOR 10000.0 // 10k Ohms in floating point
#define TIMEOUT_US 5000000 // 5 second timeout to prevent infinite loops
void setup() {
Serial.begin(115200);
delay(1000); // Allow serial monitor to connect
Serial.println("ESP32 Capacitance Meter Initialized.");
Serial.println("Insert a capacitor and press RESET to test.");
pinMode(CHARGE_PIN, OUTPUT);
pinMode(MEASURE_PIN, INPUT);
pinMode(DISCHARGE_PIN, OUTPUT);
// Ensure capacitor is fully discharged on boot
digitalWrite(CHARGE_PIN, LOW);
digitalWrite(DISCHARGE_PIN, LOW);
delay(500);
}
void loop() {
// 1. Discharge phase
pinMode(DISCHARGE_PIN, OUTPUT);
digitalWrite(DISCHARGE_PIN, LOW);
digitalWrite(CHARGE_PIN, LOW);
delay(200); // Wait for cap to drain through 100R
// 2. Prepare for charge phase
pinMode(DISCHARGE_PIN, INPUT); // High-Z to stop discharging
pinMode(MEASURE_PIN, INPUT);
// 3. Charge and measure
unsigned long startTime = micros();
digitalWrite(CHARGE_PIN, HIGH);
while (digitalRead(MEASURE_PIN) == LOW) {
if (micros() - startTime > TIMEOUT_US) {
Serial.println("Error: Timeout. Capacitor is open, >1000uF, or wired incorrectly.");
digitalWrite(CHARGE_PIN, LOW);
delay(2000);
return; // Exit to loop restart
}
}
unsigned long endTime = micros();
digitalWrite(CHARGE_PIN, LOW); // Stop charging
// 4. Calculate Capacitance
unsigned long elapsedTime = endTime - startTime;
// C = t / (1.38629 * R). Result in Farads.
// Multiply by 1,000,000 for microfarads (uF)
double capacitance_uF = (double)elapsedTime / (1.38629 * KNOWN_RESISTOR);
Serial.print("Time to HIGH: ");
Serial.print(elapsedTime);
Serial.print(" us | Calculated: ");
Serial.print(capacitance_uF, 2);
Serial.println(" uF");
if (capacitance_uF >= 9.0 && capacitance_uF <= 11.0) {
Serial.println(">>> MATCH: This is likely a 106 (10uF) capacitor.");
}
delay(1500); // Pause before next reading
}
Debugging: When Your 106 Capacitor Fails
In embedded design, the 106 (10 µF) capacitor is the workhorse of bulk decoupling. When designing custom PCBs for the ESP32, placing a 106 ceramic or tantalum capacitor as close to the 3.3V and GND pins as possible is mandatory. If you omit it, or if the capacitor suffers from high Equivalent Series Resistance (ESR) due to age or heat, the voltage rail will collapse during RF transmission spikes.
This results in the most infamous ESP32 serial monitor error:
Brownout detector was triggered
ets_main.c 371
Ranked Causes for Brownout Errors
- Missing or Undersized Bulk Capacitor: The board lacks a 10µF (106) capacitor on the 3.3V rail, relying only on 100nF (104) high-frequency bypass caps which cannot supply the instantaneous current required when the WiFi radio powers up.
- High ESR / Degraded Tantalum: If you used an older SMD tantalum 106 capacitor, it may have degraded. Tantalums are sensitive to voltage spikes and can develop high internal resistance, rendering them useless for fast transient response.
- USB Cable Voltage Drop: A low-quality, thin-gauge USB cable drops voltage under the 350mA peak current draw of the ESP32, compounding the lack of local bulk capacitance.
The First 3 Things to Check
- Verify the Cap Code: Use the meter code above to test the 106 capacitor on your breadboard or PCB. If it reads closer to 1µF (105), you grabbed the wrong part from your bin.
- Check Placement Distance: On custom PCBs, the 106 capacitor must be within 5mm of the ESP32-WROOM-32E VDD pin. Traces longer than 10mm introduce parasitic inductance that defeats the capacitor's purpose at RF frequencies.
- Swap the USB Cable and Power Source: Test with a known-good, thick-gauge (20 AWG or lower) data cable plugged directly into a wall-brick rated for at least 2A, rather than a PC USB port limited to 500mA.
Extending and Simplifying the Build
How to Extend: To make this a standalone bench tool, wire an I2C SSD1306 128x64 OLED display to GPIO 21 (SDA) and GPIO 22 (SCL). Replace the Serial.print() functions with display.println() using the Adafruit_SSD1306 library. You can also add a 5V relay module controlled by GPIO 19 to automate the discharge phase, allowing you to safely test high-voltage electrolytic capacitors (up to 50V) by isolating the ESP32 from the test circuit via optocouplers.
How to Simplify: If you don't need digital precision and just want to sort 106 caps from 105 caps, build a classic 555-timer astable multivibrator. Use a NE555P, two 10kΩ resistors, and the unknown capacitor. Connect the output to a standard multimeter set to frequency. A 10µF (106) cap will yield a frequency of roughly 6.8 Hz, while a 1µF (105) will yield 68 Hz. No code required.
Frequently Asked Questions
What does 106K mean on a surface mount capacitor?
The "106" denotes the 10 µF capacitance value using the standard EIA multiplier code. The letter "K" is the tolerance code, indicating ±10%. Therefore, a 106K capacitor is guaranteed by the manufacturer to measure between 9.0 µF and 11.0 µF at room temperature and rated voltage. If you see "M" instead of "K", the tolerance widens to ±20%.
Can I use a 10uF 16V capacitor instead of a 10uF 25V in my ESP32 circuit?
Yes, in almost all ESP32 applications. The ESP32-WROOM-32E operates on a 3.3V logic rail. A 16V rated capacitor provides a voltage headroom of nearly 5x the operating voltage, which is well within standard engineering derating practices (which recommend a minimum 2x headroom for ceramics). However, if you are using MLCC (Multi-Layer Ceramic Capacitors), remember that ceramics exhibit DC bias derating—a 10µF 16V X5R ceramic might only provide 8µF of actual capacitance at 3.3V, which is still perfectly adequate for ESP32 bulk decoupling.
Why is my ESP32 capacitance meter reading 106 capacitors as 8uF?
This is a classic manifestation of parasitic breadboard capacitance combined with DC bias derating. Breadboards add roughly 2pF to 5pF per contact point, but more importantly, if your 106 capacitor is a ceramic X7R or X5R type, its actual capacitance drops as the applied DC voltage increases. Furthermore, if your USB port is only supplying 4.8V to the ESP32's onboard LDO, the 3.3V rail might actually be sitting at 3.1V, slightly shifting the digital HIGH threshold timing. For bench-sorting, an 8.5µF to 11µF reading on this script reliably identifies a 106 code part.
How do I read the 10 uf capacitor code on older through-hole tantalum beads?
Vintage through-hole tantalum capacitors (often dipped in bright orange or yellow epoxy) sometimes bypass the 3-digit EIA code and print the value directly, such as "10u" or "10µ". If they do use a numeric code, they still follow the 106 standard. However, pay close attention to the polarity stripe. Unlike aluminum electrolytics where the stripe indicates the negative terminal, on tantalum beads, the stripe or the longer leg indicates the positive anode. Wiring a 106 tantalum backward will result in a violent thermal failure and a short circuit.






