Personal Page of DM3MAT

Portable Automatic Antenna Tuner

First version of the ATU in small Fischer chassis.
Assembled first version of the ATU in small Fischer chassis.
  1. Features
  2. Revisions
  3. Background
  4. Circuit description
  5. Tuning algorithm
  6. Sources and CAD files
  7. Some boards for free

Here I want to document the development of a small and portable automatic antenna tuner.

There are many automatic antenna tuners (ATUs) circuits out there. You can easily buy several different variants as kits on ebay. In particular the famous ATU-100 by N7DCC can be obtained easily as a kit for about ($ 50 shipped). So there is absolutely no need for another one.

I started this project purely for my own entertainment and gain of knowledge. I was simply interested into the tuning algorithm and general approach to tuning antennas.


With the final revision, the tuner should provide the following features


To finally implement all features mentioned above, several revisions of the circuit are necessary.

Revision 0

The first version is revision 0, this hardware revision is only a platform to develop, test and optimize the tuning algorithm. Hence, it lacks the battery, charger and expensive bi-stable relays. Instead cheap 12V Omron G5V-1 relays has been used.

Bugs of revision 0

There are two 10k resistors missing that must be installed in parallel to C7 & C9. As these are G1206 capacitors, the 1206 10k resistors can be installed piggy-back on top of these capacitors.


The basic principle of most automatic antenna tuners is surprisingly simple. The figure below shows the basic principle of most ATUs. A configurable L-match controlled by a MCU. The MCU reads the current VSWR from an SWR bridge and tries to minimize the VSWR value by manipulating the L-match.

The diagram shows the basic principle of an ATU. An SWR bridge measuring the VSWR and a configurable L-match controlled by a MCU.

Although there are ATUs that actually use variable capacitors and inductors to match an antenna by tuning them using motors, most frequently, a set of fixed capacitors and inductors are switched into circuit by means of relays. Moreover, to be able to match even loads with an impedance less than 50 Ohms, the variable capacity can also be switched from the output (antenna side) to the input (TRX side).

The most expensive BOM parts are the relays. Hence one tries to minimize the number of relays needed. To achieve the maximal tuning range and resolution while minimizing the number of relays needed, a power-of-two distribution of the fixed values of capacities and inductances is chosen. For example: Typical choices of capacities are 10pF, 22pF, 47pF 100pF and finally 220pF. This choice allows to configure (almost) any value between 0pF and 400pF with a resolution of about 10pF, using only five relays.

Circuit Description (Rev. 0)

The actual circuit closely follows the principle outlined above.

Circuit of the ATU.
Circuit of the ATU. Click on the image to open the full resolution circuit.

The TRX is connected to J1. The signal then gets passed through a SWR bridge using a small binocular ferrite-core forming a directional coupler. The signal then passes though a set of six relays (K1, K3, K5, K7, K9 and K11) and inductors (L1-L6). These relays can short each inductor individually. Sure, it would be better to use DPDT relays to actually disconnect the inductors from the circuit. However, DPDT relays are usually larger than SPDT relays used here. After the L-network, the signal leaves the tuner at J2.

Via K12, the capacitor network can either be connected to the input side (i.e., before L1) or to the output side (i.e., after L6). The capacitor network consists of five relays (K2, K4, K6, K8 and K10) and capacitors (C1-C5). These relays can switch each capacitor individually in parallel.

Each of the twelve 12V relays gets switched by a MMBT3904 NPN transistor.

The central part to control everything is a simple Microchip ATMega328P-AU MCU running at 5V. As an user interface, there are two push-buttons SW1 & SW2 and five LEDs D17-D21 to signal the current tuner-state and VSWR.

Tuning Algorithm

Tuning an unknown antenna for an unknown frequency is a relatively difficult task: The VSWR as a function of L and C is certainly not convex. There are (possibly) many local minima and finding the best match, that is the global minimum of the VSWR function gets hard.

However, the tuning algorithm is surprisingly simple. Tuning happens in two steps. First, a coarse tuning is done by searching a subset of all possible combinations of L and C values for a coarse minimum. This first tuning will likely not achieve the best possible match, but finds a reasonable match fast.

In a second step, the coarse tuning is refined by fine-tuning L and C alternately until the VSWR cannot be reduced anymore or a sufficiently low VSWR value (e.g., less than 1.2 to 1) gets measured.

Sources and CAD Files

The schematics, board layout and firmware are licensed under Creative Commons BY-SA and are available at my GitHub page.

There is also a brief manual describing the circuit and assembly. Moreover, Tom (DL1HBT) assembled the ATU and documented his efforts. To this end his article provides valuable information for those interested in building this project.

Some Boards for free

As usual, I provide my left-over boards (minimum order quantity at JLC PCB is 5 boards) at my PCB swap-meet.

Best & 73,
Hannes, DM3MAT