Inductor Saturation Meter
When I work on power electronics projects, I need to check the saturation current of inductors. Because I often gather inductors from various sources, they usually lack datasheets, making it challenging to determine their saturation current. To address this, I designed a small inductor saturation meter with parts I already have on hand exclusively.
Features
It measures the saturation current of inductors up to approximately 50Amps. The meter uses a simple approach: it applies a voltage on the inductor and measures the current flowing through it over time. To supply the necessary current, I use a large capacitor bank that discharges through the inductor when triggered. Those caps are charged through a resistor to limit the inrush current. A LED indicates when the caps are charging. The current is measured using a shunt resistor made with a PCB trace and the STM32’s ADC. The STM32 also measure the voltage across the inductor.
Gallery
v1.0.0 prototype
CAD model with enclosure
Design
This project is inspired by the discussion on the EEVblog https://www.eevblog.com/forum/beginners/help-with-testing-inductor-saturation-current/. Because I wanted a quick solution, I designed the circuit and PCB in a few hours using KiCad.
Capacitor Bank
To achieve high current pulses, I used a capacitor bank made of several electrolytic capacitors in parallel. In my case, I used 4x 4700uF 50V capacitors, but tests showed that even 1x 4700uF is sufficient. The capacitors are charged through a 10Ohm 5W resistor to limit the inrush current. The power dissipated by the resistor during charging is manageable since the charging time is relatively short (~500ms). A LED indicates when the capacitors are charging, by mesuring the voltage across the resistor.
MOSFET
I use BUK556, N-channel MOSFET capable of handling high current pulses, but any similar MOSFET with low Rds(on) and sufficient pulse current rating should work. MOSFET are driven by a gate driver IC (IR2112). I use this driver because I don’t have P-channel MOSFET on hand, and a lot of IR2112, It allow me to use a N-channel MOSFET for the high-side switch. I don’t drive the IC like a half-bridge, The low-side MOSFET (Q2) is ON before the high-side MOSFET (Q1) is turned ON, to charge the bootstrap capacitor (C12) through the DUT. I recommend at least 1uF for the bootstrap capacitor because the charge of the capacitor will not be often refreshed as we use this driver at low frequency.
Current Sensing
I don’t use a dedicated current sense resistor, Instead I designed a shunt resistor using a PCB trace. The trace is 120mm long and 1mm wide on 1oz copper, resulting in a resistance of approximately 60mOhm. This low resistance allow me to measure up to 50A with the STM32’s ADC. I don’t use any differential amplifier to simplify the design, Instead I measure the voltage across the shunt resistor using two ADC channels and calculate the difference in firmware.
Schematic
Layout
I wanted a simple design that can be done with CNC. Isolation milling implies some constraints on the layout, so I had to keep large clearances between traces. I used the S63 from LPKF to mill the PCB. The PCB size is 111mm x 130mm. It requires only one side milling but you can also use double layer PCB to improve to ground plane.
Back layer Layout
Bill of Materials
You can find the interactive BOM on this link.
| Reference | Qty | Value | Footprint |
|---|---|---|---|
| C1,C2,C3,C4 | 4 | 4700u | Capacitor_THT:CP_Radial_D30.0mm_P10.00mm_SnapIn |
| C5,C6,C7,C10 | 4 | 1n | Capacitor_THT:C_Disc_D6.0mm_W2.5mm_P5.00mm |
| C8,C11 | 2 | 100n | Capacitor_THT:C_Disc_D6.0mm_W2.5mm_P5.00mm |
| C9,C12,C13 | 3 | 2u2 | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm |
| D1,D2,D3 | 3 | 1N5822 | Diode_THT:D_DO-201AD_P15.24mm_Horizontal |
| D4,D7 | 2 | 1N4007 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal |
| D5,D6 | 2 | LED | LED_THT:LED_D5.0mm |
| H1,H2,H3,H4,H5 | 5 | MountingHole | MountingHole:MountingHole_3.2mm_M3_DIN965 |
| J1 | 1 | Vin | TerminalBlock:TerminalBlock_MaiXu_MX126-5.0-02P_1x02_P5.00mm |
| J2 | 1 | DUT | Connector:Banana_Jack_2Pin |
| J3 | 1 | Inputs | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical |
| J4 | 1 | Outputs | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical |
| J5 | 1 | UC | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical |
| Q1,Q2 | 2 | BUK556 | Package_TO_SOT_THT:TO-220-3_Vertical |
| Q4 | 1 | BC638 | Package_TO_SOT_THT:TO-92_Inline |
| R1 | 1 | 10 | Resistor_THT:R_Axial_DIN0617_L17.0mm_D6.0mm_P20.32mm_Horizontal |
| R2,R7,R13,R15,R16 | 5 | 100 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal |
| R3,R4,R12,R17,R18,R19,R20 | 7 | 8k2 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal |
| R5,R6,R11,R14 | 4 | 1k6 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal |
| R8,R10 | 2 | 1k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal |
| R9 | 1 | 60m | shunt:R_Shunt_kelvin_60mohm |
| U1 | 1 | LF33_TO220 | Package_TO_SOT_THT:TO-220-3_Vertical |
| U2 | 1 | IR2112 | Package_DIP:DIP-14_W7.62mm |
Firmware
Enclosure
I designed a simple enclosure using SolidWorks, to protect the PCB and make it easier to handle. The bottom and sides are 3D printed, while the top is made of a piece of acrylic sheet cut with a laser cutter. The enclosure is held together with M3 screws.