Automated Impedance Matching
Miguel Salvacion and William Gao, Carnegie Mellon University


Hardware Specifications
Cost
$636.65
Approximate Build Time
8 hours
Enclosure Dimensions
195 mm x 185 mm x 80 mm
Maximum Forward Power
100 W
Minimum Operating Pressure
Sustained plasma at 5.40E-3 hPa in argon
Stabilized Performance
~1.2 VSWR
Match Speed From Startup
~5 seconds
VSWR Sensing Noise
±0.001
Disclaimer: Note that some real-life images of the build may differ from the finalized BOM and design files because of improvements made after integration.
Preface
This project is an automated impedance-matching network designed specifically for RF sputtering. When generating plasma in a sputtering chamber, the chamber impedance constantly fluctuates. This leads to high reflected power, measured as VSWR, which can reduce efficiency or extinguish the plasma.
Instead of relying on an expensive commercial auto-tuner, this tool dynamically matches the impedance of the sputtering chamber. It intercepts the forward and reflected power signals from an off-the-shelf VSWR meter. A Teensy 4.1 microcontroller processes these signals, calculates the gradient, and drives stepper motors. These motors tune variable capacitors in a T-network to minimize reflected power. The system features a custom PCB, active cooling, and a local GUI with an OLED screen and rotary encoder for monitoring and control.

Design Decisions and Rationale
RF Components and T-Network
We used air-variable capacitors rated for 500 V. This provides the necessary safety margin for the maximum peak-to-peak voltage of 200 V and helps mitigate arcing. This design also includes one large manually tunable capacitor. It is set during initial setup to bring the T-network tuning range into the correct region for our sputtering chamber.
Finding an off-the-shelf inductor that matched our exact 2 μH specification was difficult, so we fabricated a custom coil using 16-AWG magnet wire wrapped around an acetal copolymer rod. This core keeps the turns even during manufacturing, and the 16-AWG wire is stiff enough to prevent shifting under high power.

Electro-Mechanical Integration
We chose to use 0.9° stepper motors, as they are far more resistant to RF noise and provide much tighter physical resolution than servos. Regular hobby servos also suffer from significant backlash and low resolution. To maximize our motors, the motor drivers on the PCB are configured for 1/64 microstepping, enabling more precise gradient adjustments.
Control Electronics
VSWR Sensing
In order to calculate the gradient and match the impedance of the sputtering chamber, the system must be able to very accurately measure the VSWR of the system, which is a measure of the amount of power being reflected from the chamber, or the power lost. Our design was able to achieve a noise of about 0.001 VSWR.

COTS VSWR meter reverse engineering
A COTS Surecom SW-112 VSWR meter was reverse-engineered to measure VSWR. The important component in analog VSWR meters is the toroidal sensing line, which, after rectifying diodes and filtering, produces forward and reverse power lines. In the SW-112, the lines had a range of 0-10 V at 100 watts.

Buffering and Digitization
In order for the automated matcher to calculate the gradient, it must very accurately digitize the analog forward and reverse voltage outputs of the VSWR. The VSWR lines are extremely sensitive to voltage sag, with about a 1 MΩ output impedance. Therefore, a low current draw buffer like the TLV2462CP was chosen, after which the voltage was divided down for the Teensy 4.1 to read.

Control Algorithm
We used an empirical Coordinate Descent optimization algorithm to optimize the VSWR. We calculate the gradient by having the motor take a step, measure the cost, calculate the finite difference gradient, and use it to scale the next step.
Supersampling and Cost Function
To reduce noise, most of which consists of the 13.56 MHz sputtering power, we average over N = 300 samples for the forward and reverse voltages. We then use the forward and reverse voltages to calculate VSWR, and then use VSWR to calculate a squared loss function.
Finite-Difference Gradient Estimation
Using the loss calculated, we calculate the difference in loss from the current position to the last position to calculate the gradient. Here, we actually calculate the negative gradient for ease of calculation.
Step Size Clamping Safeguards
To ensure that the Finite-Difference approximation holds and the algorithm converges, we place an upper limit on the step size to preserve the small step approximation and provide a lower limit to combat noise.
Bill of Materials
Many components used, such as the vacuum capacitors, are not sold cheaply by manufacturers, and thus must be scavenged or bought as surplus. The capacitors you find will likely be of different dimensions and need different mounting solutions.
Network Subsystem
Adjustable Capacitor 20-500pf
1
(Harvested from broken tuner)
Total Cost: $636.65
Design Files
Build Instructions
Tools Needed
Soldering iron and solder
Screwdrivers and hex keys
Drill/drill press
Wire strippers
3D printer
LCR meter
Multimeter
VSWR Meter Modification
Carefully disassemble the VSWR meter housing.

Tap into the internal signal lines before they reach the original display by soldering wires to pads labeled F, G, and R.

Feed cables out of the VSWR meter through a screw hole.

Reassemble the VSWR meter.

Outer Box Assembly
Drill mounting and cooling holes in the aluminum housing.



3D print the main electronics housing, its associated back mounting plate, and the two motor spacers from any standard filament; we used PLA.



Attach the back mounting plate and motor spacers using heat-set inserts for easy maintenance.
Attach the stepper motors to the box assembly with the motor spacers.

Install coax connectors onto the back of the case.
Install the fan (and optionally the VSWR meter) onto the box lid.

Inductor Fabrication
To achieve the desired inductance of 2 μH, we used the following coil parameters:
Number of turns
6
Length
2”
Spacing
0.15”
Drill a 1/16” hole in the acetal copolymer rod, which should be just large enough for your magnet wire to feed through. This will serve as an anchor point for the wire.
Feed one end of the wire through the hole and leave a ~3” lead.
Insert the acetal copolymer rod into the drill chuck with the wire-inserted end closest to the chuck, as shown in the image below.
Run the drill and use your fingers to tightly guide the wire so that it forms a coil around the rod for the desired number of turns with the desired spacing.

Drill a hole just after the last turn, feed the wire through it, and cut it with another 3” lead.
Use a saw to cut the acetal copolymer rod just before the first anchor point and after the second.
Secure the rod in place with a clamping device before any sawing.
Use a razor to strip the enamel insulating coating off each end of the wire.
Always cut away from yourself when using a blade.

Use an LCR meter to ensure the coil reaches the expected inductance.
Inner Box Assembly
3D print the two different capacitor mounts, two motor couplers, and the inductor mount out of a thermally conductive insulating material.




Attach the two smaller capacitors to the stepper motors using the motor couplers and heat-set inserts.

Mount the two smaller capacitors and the inductor into the box.

Mount the larger tunable capacitor.
We obtained this capacitor from a broken tuner, so your mounting method may differ.

Connect all the capacitors and inductors with RF-shielded wire following the diagram below.
There is a risk of arcing between the capacitor plates, although we have never seen it during testing. Ensure there is proper spacing between all the capacitor plates.

PCB Assembly and Integration
Order the PCB from a manufacturer such as JLCPCB with standard settings.
We recommend having your PCB manufacturer assemble the surface-mount components for you, but it is also an option to solder them yourself. If you do solder them yourself, we recommend buying a stencil.
Solder the op-amps, screw terminals, and JST connectors to the custom PCB.
Solder female header pins for the Teensy 4.1 and motor drivers.
Plug in the Teensy 4.1 and motor drivers, ensuring the correct orientation.

Electronics Installation
Mount the PCB onto the back mounting plate using standoffs.

Install the OLED screen, rotary encoder, power jack, and 3.5mm jack onto the front panel.

Route the OLED, rotary encoder, power, and aux lines to the screw and JST connectors on the main PCB.
Route the I2C, VSWR, motor, and fan cables out of the front panel.
Install the front panel onto the back mounting plate.
Plug in the fan, VSWR meter, and motor cables.
Final Integration
Connect the RF power supply, box assembly, VSWR meter, and sputtering chamber with coaxial cables following the diagram below.
Operations and User Interface
To operate the machine, plug in the power cable and the machine will start matching automatically. You can then control the GUI by rotating and pressing the rotary encoder.
The GUI allows you to enable or disable transmission, switch between automated and manual matching, and view advanced telemetry for debugging.

This system operates at RF power outputs around 100 W. Ensure all coaxial connections are secure, and keep the lid on when transmitting power.
The T-tuner generates significant heat, especially in the inductor. Do not operate the system for long periods without the active cooling running.
Testing Setup
The repo includes two Python scripts that automate data collection during testing. Running live.py displays live graphs of VSWR, motor positions, and match state. It also records the data to a CSV file, which you can visualize with plot.py. That script generates Matplotlib plots, an interactive Plotly chart, and Mermaid xychart code. See the GitHub repository for details.
Validation and Characterization
We brought the chamber down to a vacuum by following the SOP for the sputtering chamber, achieving 2.50E-1 hPa at 90 SCCM argon flow. At this pressure, we struck a plasma, then lowered the argon flow to 15 SCCM, achieving 5.40E-3 hPa pressure. We were able to continuously sputter for 1 hour under these conditions until the plasma extinguished. The cause of the plasma going out could be a brownout of the vacuum pump or a piece of aluminum debris from machining shorting the capacitor plates.
Theoretical VSWR Function
The theoretical VSWR function of the system was calculated to validate the convex shape of the optimization range. It uses assumed values for the impedance of the chamber, as well as the T-tuner values. It plots VSWR as a function of the motor positions.
RF System and Environment Setup
We define variables representing the impedance of the transmission line Z0, and the operating frequency f.
We also define the working limits of our capacitors, as well as how capacitance changes with motor position.
We also define estimated chamber characteristics during sputtering.
Equivalent Impedance Transformation
We combine the T-tuner with the impedance of the series tuning capacitor to find the equivalent impedance of the chamber and series tuning capacitor lumped load.
VSWR and Reflection Coefficient Calculation
The shunt tuning capacitor value is then used to calculate the reflection coefficient, and therefore the VSWR.

Future Work
In the future, we will integrate this project with the Automated Pressure Control System, providing useful information such as when we are transmitting.
We also want to fully integrate the VSWR meter into the box assembly to reduce the assembly's footprint and the number of coaxial cables needed.
Appendix
Initial Testing
We conducted a series of four runs to test how low we could set the gas flow until the plasma went out.
100
300
0.025
90
2.50E-01
N/A, transitioned too fast
0
100
300
0.025
30
1.40E-02
N/A, transitioned too fast
0
100
300
0.025
15
5.40E-03
N/A, transitioned too fast
0
100
300
0.025
14
4.00E-03
1.1
0
100
300
0.025
30
1.40E-02
1.30
2
100
300
0.025
15
4.60E-03
1.11
8 min, then out
100
300
0.025
90
2.50E-01
1.15
3
100
300
0.025
15
5.40E-03
1.15
2
100
300
0.025
14
4.60E-03
1.50
Instantly out
100
300
0.05
90
2.50E-01
1.20
10
100
300
0.05
30
1.40E-02
1.20
4
100
300
0.05
15
5.40E-03
1.15
7
100
300
0.05
14
4.60E-03
1.15
1
100
300
0.05
13
4.00E-03
1.60
Instantly out
100
300
0.025
15
4.60E-03
1.10
5 min, then out
All CSV files can be visualized using the plot.py file provided in the GitHub repository.
Last updated


