Skip to the content
4 layers100 × 100 mmLcr, the printed circuit board in 3D

A DIY LCR meter

Size
100 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
182
Nets
145
Pads
556
Tracks, vias
1,031, 335
Pours
7
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
17 Mar 2026
Updated
2 Nov 2026

Overview

Lcr is an open-source printed circuit board by Owen-Ball, from the Owen-Ball/LCR_Meter repository on GitHub. It is a 4-layer board of 100 × 100 mm with 182 parts on 145 nets, routed with 1,031 tracks and 335 vias.

It is built around the CS4272-CZZ, MC7805CT and 1206L012WR, with the ESD7205D and DMP3099L among its other parts. Its parts include 65 resistors, 51 capacitors, 16 ICs, 10 connectors and 8 diodes. It belongs with the NXP (LPC, Kinetis, i.MX RT) boards of this library.

Main components

5

README

README.md

Contents

System Overview

  • Accurate inductance, capacitance, and resistance measurements @ from 100Hz to 75kHz
  • Automatic display of relevant component parameters, or ability to manually select 2 displayed parameters
  • Support for frequency sweep plots
  • Touchscreen and physical button interface
  • Open and short probe calibration

Specifications

Test Signal

  • 100Hz - 75kHz in increments of 100Hz
  • INSERT VOLTAGE DATA HERE

Autoranging

  • TIA Gains: 100Ω, 1kΩ, 10kΩ, and 100kΩ
  • ADC Input Amps: 1x, 5x, 25x, 100x

Component Ranges

ParameterRange
L1uH to 100H
C1pF to 10mF
R1mΩ to 1MΩ

(actual ranges to be confirmed)

Display Parameters

ParameterDescription
RsSeries resistance
RpParallel resistance
CsSeries capacitance
CpParallel capacitance
LsSeries inductance
LpParallel inductance
XsSeries reactance
QQuality factor
DDissipation factor
|Z|Impedance magnitude
∠ZImpedance angle

Operational Principle

This LCR meter uses an auto-balancing bridge design. The general operation of these are as follows:

  1. Connect a sinusoidal input voltage to one side of the DUT and the other side to a virtual ground node
  2. Read out the voltage across the DUT using a kelvin-connected differential amplifier
  3. Convert the current through the DUT into a voltage using a transimpedance amplifier (TIA). Read this out via a differential amplifier
  4. Read the voltage and current measurements in via ADCs
  5. Calculate the DUT impedance via phasor arithmetic

Simplified Schematic

At the top of the circuit, an input signal Vin is generated using a buffered and filtered DAC output. This connects to a resistor $R_{range}$ and then the HCUR terminal. The purpose of the $R_{range}$ resistor will be discussed later.

Moving to the bottom of the circuit, the amplifer works to keep the negating amplifer input at ground. This results in a current of

math
I_{DUT}(s) = \frac{V_{in}}{Z_{DUT}(s) + R_{range}}

flowing through the DUT. This same current will flow through the bottom $R_{range}$ resistor, resulting in an amplifier output of

math
I_{meas}(s)=-I_{DUT}(s)\cdot R_{range} = \frac{-V_{in}\cdot R_{range}}{Z_{DUT}(s) + R_{range}}

In the middle of the circuit, the voltage across the DUT is read out with kelvin connect lines to remove as much parasitic resistance and inductance from the probe leads. The voltage across the DUT will be

math
V_{meas}(s)=I_{DUT}(s)\cdot Z_{DUT}(s)= \frac{V_{in}\cdot Z_{DUT}(s)}{Z_{DUT}(s) + R_{range}}

From these two measurements, we can derive $Z_{DUT}(s)$ as

math
Z_{DUT}(s)=\frac{V_{meas}(s)\cdot R_{range}}{I_{meas}(s)}

schematic

A couple circuit nuances:

  • There are 4 $R_{range}$ resistors, 100Ω, 1kΩ, 10kΩ, and 100kΩ. SNR is highest when $R_{range}$ is close to $|Z_{DUT}(s)|$, so the system automatically switches $R_{range}$ via analog muxes based on measurements. I would recommend reed relays for future derivative projects though.
  • For large capacitive DUTs, if the top $R_{range}$ resistor was not present the TIA would be unstable due to the creation of a low frequency pole in the feedback loop. The top resistor introduces a zero at half the frequency of this pole, allowing the loop to be stabilized. While there are other methods to achieve stability with a capacitive load, the introduction of the top $R_{range}$ is particularly useful since it allows stability across a wide range of unknown DUTs and it's accuracy does not actually influence the final calculations.
  • While potentially not immediately apparent, it is critical that the current readout is fully differential. At high frequencies the loop gain of the TIA is significantly reduced, resulting in a significant sinusoidal voltage on the virtual ground. So long as the measurements are performed differentially, this effect does not influence the calculations.

Further analysis of this design can be found in this TI reference design: https://www.ti.com/lit/ug/tidueu6b/tidueu6b.pdf

Voltage and Current Phasor Measurement

The DUT voltage and current values are sampled via simultaneous ADCs. These temporal measurements must then be converted into phasors in order to perform the calculations outlined in the previous section. The method used to achieve this conversion is I-Q demodulation.

demodulation

At the top, we start with our temporal voltage and current measurements. We then generate two square waves offset by 90° from each other at the same frequency as the voltage applied to the DUT. We then multiply these two square waves by the voltage and current waveforms to generate "I" and "Q" waveforms for the both voltage and current measurements. We can then integrate each of these over a large number of periods to determine the average values of each waveform.

The averaged values are used to construct two complex numbers, $I_V+jQ_V$ and $I_I+jQ_I$, which are the phasor representations of the voltage and current waveforms. Thus the DUT impedance can be calculated via

math
Z_{DUT}=\frac{I_V+jQ_V}{I_I+jQ_I}

An interactive demo of this process can be found here: https://www.desmos.com/calculator/hkwapyh1lp

Autoranging

Calibration

To be placed later:

  • Many thanks to the work of WeTec/wschuma. Much of the audio codec design and firmware was based on their work on EEVblog and Github https://www.eevblog.com/forum/projects/teensylcr-a-teensy-based-diy-lcr-meter/ https://github.com/wschuma/TeensyLCR

  • In order to maximize SNR, the system will automatically switch between 4 transimpedance amplifier gains. These gains are 100Ω, 1kΩ, 10kΩ, and 100kΩ. For derivative projects, I would recommend switching to reed relays instead of analog muxes. At high frequenies on the 100kΩ range, the input signal is heavily attenuated

Parts

182
QtyValueFootprintReferences
15100nCapacitor_SMD:C_0805_2012MetricC10, C27, C34, C35, C36, C37, C38, C39, C40, C41, C42, C43, C45, C50, C51
111kResistor_SMD:R_0805_2012MetricR13, R14, R15, R30, R34, R36, R42, R52, R53, R54, R55
1010kResistor_SMD:R_0805_2012MetricR22, R23, R29, R37, R43, R58, R59, R61, R62, R65
9100Resistor_SMD:R_0805_2012MetricR4, R5, R31, R35, R47, R51, R60, R63, R64
81uCapacitor_SMD:C_0805_2012MetricC6, C9, C20, C21, C22, C24, C47, C49
71pCapacitor_SMD:C_0805_2012MetricC1, C2, C16, C17, C25, C26, C32
68.2kResistor_SMD:R_0805_2012MetricR1, R8, R21, R24, R44, R48
50Resistor_SMD:R_0805_2012MetricR32, R33, R39, R40, R66
4.1uCapacitor_SMD:C_0805_2012MetricC7, C8, C46, C48
41.6kResistor_SMD:R_0805_2012MetricR2, R7, R45, R49
41206L012WRFuse:Fuse_1206_3216MetricF1, F2, F3, F4
41MResistor_SMD:R_0805_2012MetricR9, R10, R17, R41
422Resistor_SMD:R_0805_2012MetricR16, R18, R56, R57
4300Resistor_SMD:R_0805_2012MetricR3, R6, R46, R50
4470pCapacitor_SMD:C_0805_2012MetricC3, C4, C28, C29
447uCapacitor_SMD:CP_Elec_5x5.9C18, C19, C23, C44
4Conn_CoaxialConnector_Coaxial:BNC_Amphenol_B6252HB-NPP3G-50_HorizontalJ1, J2, J3, J4
4ESD7205Package_TO_SOT_SMD:SOT-323_SC-70D8, D9, D10, D11
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_ISO14580_Pad_TopBottomH1, H2, H3, H4
3100kResistor_SMD:R_0805_2012MetricR28, R38, R67
3100pCapacitor_SMD:C_0805_2012MetricC11, C13, C31
22.7nCapacitor_SMD:C_0805_2012MetricC5, C30
23.3kResistor_SMD:R_0805_2012MetricR25, R26
233pCapacitor_SMD:C_0805_2012MetricC14, C15
25.1kResistor_SMD:R_0805_2012MetricR19, R20
2DG2034EDQOthers:MSOP-10_largecornerU9, U12
2DG4052EEQPackage_SO:TSSOP-16_4.4x5mm_P0.65mmU4, U14
2DMG1012UWQ-7Package_TO_SOT_SMD:SOT-323_SC-70Q1, Q2
2D_SchottkyDiode_SMD:Nexperia_CFP3_SOD-123WD3, D4
2MC7805Package_TO_SOT_SMD:TO-252-2U10, U11
2OPA2365AIDRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU1, U13
2THS4561IDGKRPackage_SO:TSSOP-8_3x3mm_P0.65mmU2, U15
2TLV9161IDBVRPackage_TO_SOT_SMD:SOT-23-5U7, U16
110uCapacitor_SMD:C_0805_2012MetricC33
1220pCapacitor_SMD:C_0805_2012MetricC12
15VAOthers:testpoint_0805TP12
15VDOthers:testpoint_0805TP13
17.5VDiode_SMD:Nexperia_CFP3_SOD-123WD1
1Barrel_Jack_SwitchConnector_BarrelJack:BarrelJack_GCT_DCJ200-10-A_HorizontalJ7
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1CS4272Package_SO:TSSOP-28_4.4x9.7mm_P0.65mmU3
1Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ10
1Conn_01x06_PinConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ5
1Conn_01x09_PinConnector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_VerticalJ8
1Conn_01x14_PinConnector_PinHeader_2.54mm:PinHeader_1x14_P2.54mm_VerticalJ9
1CrystalCrystal:Crystal_SMD_ECS_CSM3X-2Pin_7.6x4.1mmY1
1DAC+Others:testpoint_0805TP5
1DAC-Others:testpoint_0805TP6
1DMP3099LPackage_TO_SOT_SMD:SOT-23Q3
1D_SchottkyDiode_SMD:D_0805_2012MetricD6
1IPGA+Others:testpoint_0805TP8
1IPGA-Others:testpoint_0805TP9
1ISNS+Others:testpoint_0805TP1
1ISNS-Others:testpoint_0805TP2
1Jumper_2_OpenConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1MCP9800Ax-xOTPackage_TO_SOT_SMD:SOT-23-5U6
1R_USResistor_SMD:R_0805_2012MetricR27
1SCLOthers:testpoint_0805TP14
1SDAOthers:testpoint_0805TP15
1SIGOthers:testpoint_0805TP7
1SW_SPSTConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalSW1
1Screw_Terminal_01x02TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ6
1TIAOthers:testpoint_0805TP16
1TLV9162IDRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU17
1Teensy4.1_mainpinsTeensy:Teensy41_mainpinsU5
1VMIDOthers:testpoint_0805TP17
1VPGA+Others:testpoint_0805TP11
1VPGA-Others:testpoint_0805TP10
1VSNS+Others:testpoint_0805TP3
1VSNS-Others:testpoint_0805TP4

More from Owen-Ball/LCR_Meter

3
  • 4 layers100 × 100 mmLcr, the printed circuit board in 3D

    Lcr

    Owen-Ball/LCR_Meter

    A DIY LCR meter

    161 parts
  • 2 layersMenu board, the printed circuit board in 3D

    Menu board

    Owen-Ball/LCR_Meter

    A DIY LCR meter

    5 parts

Similar boards

  • 2 layers85 × 55 mmNestbox, the printed circuit board in 3D

    Nestbox

    o16s/anisca-bird

    Perch-based automated population monitoring for birds.

    150 parts1GPL-2.0
  • 6 layers34.7 × 43 mmMitsubishiSC, the printed circuit board in 3D

    MitsubishiSC

    loozhengyuan/MitsubishiSC

    Smart controller for Mitsubishi Electric HVAC systems.

    66 partsMIT
  • 2 layers93.5 × 36 mmInput hub, the printed circuit board in 3D

    Input hub

    Mazzorella/ClickTapToe

    Accessible mouse implemented with ZMK.

    35 parts
  • 2 layers79 × 83 mmInterface module, the printed circuit board in 3D

    Interface module

    psas/mints-scada-hardware

    Minimal Test Stand Supervisory

    113 parts
  • 2 layers60 × 98 mmENNOID Dual Gate Driver, the printed circuit board in 3D

    ENNOID Dual Gate Driver

    jagdeepsingh02/ENNOID-Dual-Gate-Driver

    Dual Gate Driver for IGBT or Mosfet modules

    146 parts5
  • 2 layersMotorSpeedController, the printed circuit board in 3D

    MotorSpeedController

    sdsmt-robotics/MotorSpeedController

    setup() { ... // Init SPI SPI.begin (); SPI.setClockDivider(SPICLOCKDIV4);

    24 parts1
  • 2 layers113 × 49 mmTH8200Control, the printed circuit board in 3D

    TH8200Control

    CatoLynx/TH8200Control

    Control board for Siemens TH8200 hand dryer

    43 parts

Questions

How big is the Lcr PCB?

It measures 100 × 100 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Lcr use?

182 parts, built around the CS4272-CZZ, MC7805CT, 1206L012WR and ESD7205D. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Lcr KiCad files?

From the Owen-Ball/LCR_Meter repository on GitHub, at the commit this page was made from: the board is PCB/KiCAD/lcr_v2/lcr.kicad_pcb and its schematic PCB/KiCAD/lcr/codec.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Lcr design in my own project?

Its repository states no licence, so its author keeps all rights: ask Owen-Ball before reusing the design.