To automatically tune a Magnetic Loop Antenna

PowerPoint style Presentation, Building Instructions and Firmware source code available at the bottom of this Webpage discussion group: loopController

AMagnetic Loop Antenna is basically just a resonant circuit using an oversized inductor and an adjustable capacitor.  Ifthe inductor has a circumference of much less than, say, 1/10th of awavelength, then the efficiency of the antenna will suffer.  If the inductor circumference approaches ¼of a wavelength or more then the antenna would more accurately be characterized as anelectrical loop antenna, with characteristics similar to those of a dipole. 

Anefficient Magnetic Loop Antenna has a very high Q. In other words, the antenna has a very narrow bandwidth, if you move bya few kHz then you need to retune the antenna. This quickly becomes very frustrating, especially if you, like me, liketo tune up and down the bands to see what is going on.

Enter the Magnetic Loop Controller:

Figure 1  (click on image to enlarge)

Figure 2  (click on image to enlarge)

The Magnetic Loop Controller tunes theantenna in real time, tracking every movement of the Transceiver VFO. In other words, unlike other magnetic transmitting loop antennacontrollers, there is no need to transmit and re-tune for minimumSWR every time the frequency has been changed.

The controller receives frequencyinformation from the Transceiver and calculates an appropriateCapacitor position accordingly. Initial programming of theController is an easy Tune and Store operation, one position per 50or 100 kHz. 200 memory presets can be stored, but in practice muchfewer are needed. TheController tunes in a linear fashion between the stored presets.

The Controller can communicate with the following Radios:

  • Elecraft K3 / KX3
  • ICOM CI-V (all relatively recent ICOM HF transceivers)
  • Kenwood TS-440, TS-450
  • Kenwood TS-870 (not tested yet)
  • Kenwood TS-480, TS-590, TS-2000
  • Yaesu FT-100, FT-100D
  • Yaesu FT747GX (not tested yet)
  • Yaesu FT-817, FT-847, FT-857, FT-897
  • Yaesu FT-920 (not tested yet)
  • Yaesu FT-990
  • Yaesu FT-1000MP (not tested yet)
  • Yaesu FT-1000MP MkV
  • Yaesu FT-450, FT-950, FTdx1200, FT-2000, FT-2000D, FTdx3000, FTdx5000...
  • TenTec Argo V, Argo VI, Eagle, Omni VII... (these have not been tested yet)
  • Pseudo VFO (used with non-serial enabled radios)

A serial port <==>USB port passthrough mode can be enabled for computer control of the transceiver, passing data through the Controller. 

Atypical Stepper Motor gives a resolution of 1.8 degrees per step.Each step can be divided into 8 microsteps, hence a 1.8 deg/stepmotor will give 1600 distinct positions per each full revolution. Inother words, the Controller can keep track of a frequency/positionpair with an accuracy of 1600th of a revolution, over a range ofhundreds of revolutions. This is more than sufficient resolution totune a multi turn vacuum variable capacitor. If you are using abutterfly or similar air variable capacitor, then you will probablyneed at least 5 to 1 gear reduction for to get sufficient resolutionof the capacitor positioning.

Prototyping fixture:

Figure 3  (click on image to enlarge) 

The stepper controller circuit used in this project is capable of driving up to 1.5A per phase.  Microstepping is achieved by providing current to both phases at the same time, but in different proportions for each microstep.  In other words, the Stepper Motor controller circuit provides accurate current limitation.  This current limitation feature can also be used to adjust for the minimum torque necessary to reliably turn the capacitor - thus ensuring no damage if we accidentally try to go beyond the end stops.

Stepper Motors:

I have used several types of Nema-17 format two-phase Stepper Motors, here are a couple that work well with the controller:

  • 30 ohms per phase, each phase specified at 0.4A max.  These Stepper Motors cost approximately $20 including shipping ifpurchased on eBay. Use the search criteria: “Nema 17 Stepper 2800g/cm 0.4A” orsimilar.  Having built 3 magnetic loop antennas thus far,using three different vacuum variable capacitors, generally I have found that whenusing this stepper motor, only about 250mA per phase is required to reliably turnthe capacitors (see antenna descriptions further down the page).  By limiting the torque of the motor to the bare minimumneeded, there is no need for end stop switches.  This stepper motor will not go very fast before losing torque, 100 RPM is probably the highest usable speed.
  • I recently put a new Nema 17 format Stepper Motor through some tests, this one has a specified Holding Torque of 4.2kg/cm, considerably stronger than the first choice above.  Having a much lower phase coil impedance, it is also capable of quite high speeds before losing torque.  This motor does over 300 RPM quite nicely when adjusted for a current of 1.4A.  On eBay, use the search criteria: “Nema 17 1.7A 2 phase 4-wire”

Here is a picture of my most recent capacitor fixture.  A Jennings 5 – 465 pF vacuum variable specified at 5kV, mounted on a plexiglas base.  The sprocketgear attached to the capacitor shaft is not used, the capacitor came with it.

Figure 4  (click on image to enlarge)


Figure 5  (click on image to enlarge)

If end stop switches will not be used, then there is no need for D2, D3, R25, R26, C19-C22 and T3.

U1is a Teensy 3.1 or Teensy 3.2, an Arduino near-clone (32 bit ARM Cortex M4 processor running at 96 MHz) available for instance at or

Figure 6  (click on image to enlarge)

Note: Normally the Teensy 3.1/3.2 is power fed via the USB port.  However in this project it is powered from a LM7805 voltage regulator (U4).  In order to be able to connect the USB port to a Computer we need to disconnect the voltage feed from the USB cable.  This is done by cutting a narrow trace separating V_in from V_usb, see the picture above.

U2 and U3 are the stepper motor controllers,Allegro A4975, available at (Digikey 620-1435-5-ND).

(A more recent version, described in the "BOM and Building Instructions" at the bottom of the webpage, utilizes the DRV8825 or A4988 stepper motor controllers instead of the A4975).

Iuse a 128 ppr optical encoder (attached to the big black knob on the frontplate, see Figure 1), a 64 ppr optical encoder with a builtin pushbutton (Digikey EM14A0D-C24-L064S-ND) for the Menu/Enact switch (SW1) may also be a good choice.

The three common mode chokes are necessary to squash any RF being picked up from the antenna by the stepper motor control cable, potentially locking up the controller.  Conversely they also ensure that the controller is not radiating RFI into the antenna.  The chokes are 2x 51 uH common mode type, surface mount (in the prototype they are mounted on the underside of the printed circuit board).  One could also use FT37-43 ferrite cores, 2x 10 or more turns, bifilar wound.

RV1is used to adjust the contrast of the LCD. 

RV2is used to adjust the torque of the Stepper Motor.  Together with RV2, R2 and R3 at 0.22 ohms and R6 at 2200 ohms provide for current adjustment between 0 and 1.4A, enabling use of stepper motors specified at up to 2A per phase.

Backplane connections, Stepper motor connections and Radio connections:

Figure 7  (click on image to enlarge)

The top diagram in Figure 7 above, shows one possible way of wiring the Controller to a Stepper Motor (and end stop switches if used) through a DB9 connector on the Controller back plane.

The middle diagram shows the power connector.  

The bottom diagrams in Figure 7 show the serial connection to the backplane and several serial cable versions for the various types of Radios that the Controller can communicate with.  When wiring for Kenwood or Yaesu RS232, don't forget to connect pins 7 and 8 together on the RS232 connector.  

Note that the Controller does not output proper RS232 levels, however this should not cause any problems unless the serial cable is very long.  If proper RS232 levels are desired, then the simplest way is to use a MAX232 converter circuit. There is no need to build one, these circuits can be purchased for approx three dollars on eBay.

The USB port is used to upload firmware updates.  It is also used as a second serial port providing for functions such as storing and recalling setup data.  The USB port can also be configured for Serial port <==>USB port passthrough mode, enabling computer control of the transceiver.

The original printed circuit board for the Controller, as shown in Figure 2 is a single sided home brew affair.  The red traces on the X-ray view below show wire jumpers. Please refer to the bottom of this webpage to download PDF files fit for using as an etch mask.  Two files, one normal - the other mirrored.

Figure 8  (click on image to enlarge)

Due to demand I finally broke down and designed a proper two sided PCB and had a bunch of those fabricated :)  

The below picture shows the PCB, front and back:

Figure 9  (click on image to enlarge)

I have these PCBs available for USD $20 each, please contact me by email: lofturj -at- gmail -dot- com
(The most recent version of the PCBs (rev3) utilizes the DRV8825 or A4988 stepper motor drivers instead of the A4975 as the boards depicted above)
I will not be providing kits or sourcing components for the controller, however, at the bottom of this webpage there is a "Building Instructions and Bill of Materials (BOM)" document, to assist with pulling the components together for the project.

Here is a picture of an assembled PCB undergoing test:

Figure 10  (click on image to enlarge)

Option: Automatic tuning for best SWR

Other similar controller projects have focused on SWR based auto tuning. This requires "Transmit to Tune" every time the frequency is changed. This Controller, by reading the frequency information from the Transceiver - and by having the antenna characteristics stored in memory - will retune the antenna automatically without any need to Transmit.
In other words - not really any need for SWR based auto-tuning.

Having said that, the latest version of the Controller can now also do SWR based auto-tuning. This simplifies the initial calibration/store of frequency+position memories and is useful for one-click recalibration. It also facilitates using this controller with Transceivers that cannot provide frequency information. This Option also implements a dual-bargraph Power / SWR meter, similar to the one described here (normally not implementing the AD8307 log amp circuitry, however this option is also supported in the firmware).

Actually it is quite amazing to see the SWR autotune in action, it is blazing fast, takes a couple of seconds or less. Full description of the SWR Autotune function can be found in the file AutomaticMagneticLoopController_presentation_XXXXXX.pdf, at the bottom of this webpage.

Here are a couple of pictures of the Controller, with the Power/SWR meter and SWR Autotune option added:

Figure 11  (click on image to enlarge)

Figure 12  (click on image to enlarge)

Firmware for the Magnetic Loop Controller

Thefirmware for the Controller is written in more or less straight C using theArduino Environment, with Teensy Extensions available here:

The firmware is is free software, released under the GNU General Public License.

The complete source code and 3 pre-compiled HEX files are available at the bottom of this webpage, see

Note that certain firmware features can be tailored through modification of parameters in the ML.h fileincluded in the source code for the firmware.

Thefirmware source code is commented throughout and should hopefully be relativelyeasy to understand/modify/expand/adapt by those who wish to contribute to this project.

Firmware functionality and features

The controller can be described as amanager of memorized capacitor positions, using frequency information from the Radio Transceiver to calculate an appropriate position between any two memorizedfrequency/positions.  

Each memory contains a frequency/positionpair, the frequency is stored with a resolution of 1Hz, the position is storedwith a resolution of 1600 positions per full revolution, within a range of up to thousandsof revolutions (just in case you happen to be in possession of a 1000 turn capacitor :-)  200 frequency/position pairs can bememorized, but you won't need to store more than 10 - 15.

The controller uses a serial connection to the Radio (TTL or RS232 levels) to enquire once every second which frequency theRadio is tuned to.

The USB port enumerates as a second, virtual Serial port.  If set up for serial<==>USB passthrough mode, then this port can be used for Computer control of the Radio.  If not in passthrough mode then several USB commands are available.  See list of USB commands furtherdown on the page.

A rotary encoder (acts like a VFO knob) and Up/Down switches can be used to initially tune the capacitor whenstoring the presets or when doing any after the fact adjustments.  The rotary encoder/push switch combo is alsoused to navigate a menu of functions, such as storing/managing/deletingmemory positions and Setup options; such as the selection of Radio serial protocol and levels, backlash/slop compensation on/off, number of microsteps, etc...

At compile time, End Stopfunctionality can be set up in three ways, see configuration in file ML.h:

  1. Soft End Stops.  Vacuumvariable, no end-stop switches.  In thiscase one has to take care that the stepper motor is just powerful enough toturn the capacitor but not excessively more so. The Up/Down switches will notwork beyond the lowest/highest stored frequency/position and the Radio cannot tune the capacitor beyond the lowest/highest stored position.  To go beyond an already"proven" range, one needs to turn the capacitor by turning the Encoder,and store new frequency/positions to extend the range.  The downside of this method is that it onlyworks if there is Frequency input available from the radio ("smart"mode).
  2. Hard End Stops.  Vacuumvariable, end-stop switchces.  All as 1)except no software "intelligence" to inhibit use of Up/Down buttons or tuning beyond an already "proven range".  Can be used in "smart" mode withfrequency input from radio, or "dumb" mode with no frequency input.
  3. No End Stops.  Butterflycapacitor.  Otherwise same as 2).

 In all my own loop builds so far, I usemethod 1, soft end stops.

Power/SWR Meter + SWR Autotune can be enabled by setting #define PSWR_AUTOTUNE as 1 in ML.h.  In case you will be implementing this option, you may also need to tailor other #define[s] to the VSWR bridge that you are using.  See #define[s] BRIDGE_COUPLING and VALUE_R15, VALUE_R17. 

Configuration Menus

(ToDo:  Need to Update the Config Menu diagram below.  Several new menu items have been added since Firmware version 2.07, including:
  • ICOM CI-V Address select
  • Serial Port Passthrough mode
  • SWR Tune Threshold level
  • Power/SWR Meter Scales
  • Power/SWR Meter PEP period
  • Debug Serial on LCD
  • New Transceivers - Yaesu FT-747GX, Yaesu FT-990, Yaesu FT-1000MP, Yaesu FT-1000MPmkV

Operation of the Magnetic Loop Controller, including Menu functions:

The below description assumes thatthe Soft End Stop mode is used.  If notSoft End Stops, then the Up/Down switches will always be active unless End Stop switches have been closed.

Tune using Rotary Encoder or Up/Down switches.  In Soft End Stop mode the Up/Down switches will not  work unless within an already configured range ofsaved memory positions.

Long push of the Menu/Enact Switch enters a Menu of 12 to 17 choices (depending on options selection), selectable by turning the Rotary Encoder.

  1. Store current frequency/position pair (up to 200 memoriesavailable)
  2. Manage stored frequency/position pairs.  Here you canscroll between previously stored memories and overwrite any memory of choice. The memories are sorted in an ascending order by frequency.
  3. Delete a stored frequency/position pair.  Scroll tothe one you want to delete and push the Enact Switch, or back out.
  4. Clear all.  Two sub-menu options: Yes/No.
  5. Stepper settings, 3 submenu choices: Stepper Rate, Variable Rate and Microstep Resolution.
  6. Stepper Backlash Compensation: On or Off.
  7. Transceiver.  Select the appropriate serial communication protocol for your Transceiver.
  8. ICOM CI-V Address.  Only used with ICOM transceivers
  9. Serial Port Mode.  Select TTL mode or RS232 mode.
  10. Serial Data rate, 1200 - 115200 b/s.
  11. Debug Serial.  See the communications between Radio and Controller on the LCD.  Not very useful, better to use the $trxdebug command through the USB serial connection.
  12. Not really a mentionable menu choice - return from menu :)
These additional Menu items are available if the Power Meter and SWR Autotune option is implemented:
  1. SWR Tune threshold.  Select maximum SWR for a successful SWR tune.
  2. Power Meter scale selection.  See Power/SWR meter pages.
  3. Power Meter Calibrate. Transmit a known power level, adjust readout with Encoder and Push.  Now your meter is calibrated.
  4. Select 1, 2.5 or 5 second PEP period for Power Meter readout.
  5. If AD8307 option selected, then there is a menu item for Power Meter Awake Sense.

Memories can be stored in any order, they will be automaticallysorted from the lowest to the highest.  Onceyou have stored a couple or more memories, then you have a working range withinwhich the capacitor will tune automatically according to the frequency datafrom the Radio.  If you tune the Radio outside of the lowest/highest memory, then theController will not attempt to tune.

You can always fine tune a position by turning the encoder (or Up/Down switches).  The fine tune offset (delta) will continue to be validwhen the frequency input changes, in other words the new auto-tuned positionwill maintain the same offset.  If you want to enter the offset permanentlyagainst all the stored memories, then short push of the Enact Switch.

For a detailed description of how to calibrate the controller, please refer to one of the PDF documents available at the bottom of this webpage.


Working with the Backlash or Slop Compensation Function:

When adjusting the capacitor with a sub-degree precision, any backlash or slop in the coupling mechanism will cause huge inaccuracies depending on whether the capacitor is being tuned in an upward or a downward direction.  To battle this, a backlash compensation function can be enabled.

I would recommend using the backlash compensation function for improved positioningreliability, without it the positioning accuracy of the capacitor will be rather poor.  The backlash function works in thefollowing manner:

When the controller receives frequency information from theRadio which is lower than the most recent previous frequency information, thenit does:

  1. Tune down to the new position
  2. Tune further down by a set angle and then finally tuneback up by the same angle.  The angle can be adjusted by the user, between 0 and 400 steps.

A harmless but weird looking side effect of thebacklash compensation function is that whenever you tune the VFO down in a slow manner thebacklash will be triggered every time new frequency information is receivedfrom the Radio.  This looks a bit disturbing, but it actually works verywell.

With the backlash compensation function enabledand when using the Down Switch to fine tune for resonance, this is best donewith short pulsing of the Switch.


Variable Capacitor Tuning Rate:

To shorten the time it takes to tune, especially when switching between frequency bands, the Controller implements a variable capacitor tuning rate based on the distance of travel.

The maximum rate is set at four times the normal rate, but can be defined differently through the Menu Function "5-Stepper Settings".  More detailed description is given in one of the PDF files available at the bottom of this webpage.

Suggested first test:

The Controller is on and indicating the Radio Transceiverfrequency on its LCD.  

  1. Move the Stepper to some specific and visibly recognizable position byturning the Encoder.  
  2. Extended push of the Enact Switch will get into thesettings menu, the "New Position"  being the first indicatedchoice on the LCD Menu (if not, then turn the Encoder to select).  
  3. Short push of the Enact Switch, and the position isstored.  
  4. Now tune the Transceiver to another frequency, say 100 kHzup.  
  5. Turn the Encoder to make the Stepper turn by, say, tworevolutions clockwise.  
  6. Store this position. 

Now when you turn the transceiver VFOdown by 25 kHz, the Stepper will go counterclockwise by half a turn... etc...


Some notes about the LCD:

The uppermost line, “Radio:”  indicates the frequency information received fromthe Radio.

The second line “Tuned:”  indicates the calculated frequency of theclosest matching stepper motor position.  The resolution you see with the "Tunedfrequency"  matches the stepper motor tuning steps.  1600 stepsper full revolution.  If you are seeing 250 Hz jumps per step, then a fullrevolution is 1600 * 250 Hz = 400 kHz.  To put this into perspective, withmy 24 foot loop, using a 16 turn 5 - 465pF capacitor;  between 3.5 and 3.6 MHz I am seeing a step resolution of 157 Hz.

The third line shows the calculatedposition based on the frequency received from the Radio and the actual currentposition.  These may differ if theEncoder or Up/Down switches have been used to fine tune resonance.

The fourth line shows the activerange (between which two stored frequency/position pairs we are) and whetherthe Stepper Motor is active or powered down. The stepper motor automatically turns off 5 seconds after every use.


USB Commands:

If the USB port on the Controller is connected to a PC then it enumerates as a serial (COM) port. This serial port has two selectable modes (Menu Item 8, Serial Port Mode):
  • Normal mode makes a number of USB commands available  
  • Passthrough mode can be used for computer control of the radio.
Below is an example of the commands available when not in Passthrough mode (firmware version 4.03).  The list of commands keeps growing with new versions of the firmware.  

The USB commands are case insensitive and can be terminated with <cr> <lf> or ';' - for example:
to get the below list.

Available USB commands:

$frqget            Retrieve running frequency.

$frqset mmkkkhhh   Update running frequency (equivalent to Transceiver serial input).
                   Frequency is entered in Hz, e.g. 14100000 is 14.1 MHz.

$memoryget         Retrieve all memory presets.
                   Format of retrieved values is:
                      A FFFFFFFF PPPPPPP
                      A is memory position
                      F is frequency in Hz
                      P is stepper motor position (relative value)
                      0 14000000 1000000
                      1 14100000 1000100
                      2 14200000 1000200

                   Enter new memory preset.
                   Format is same as in $memoryget, however only one preset
                   is entered at a time.  The Presets MUST be entered with the
                   Frequency memories in an ascending order and the highest
                   preset memory entered MUST not be higher than the maximum
                   number of presets available.

$version           Report version and date of firmware.

Commands for managing SWR Tuning over USB:

$swrtune           Request an SWR Tune.
$swrtuneup         Request an SWR Up Tune.
$swrtunedown       Request an SWR Down Tune.
$swrtunestatus     Request result of latest SWR Tune command.
                   Results are:  SWR Tune in progress
                                 SWR Tune unsuccessful
                                 SWR Tune unsuccessful, no power
                                 SWR Tune success

$toggleautotune    Toggle SWR Autotune On or Off
$recalibrate       Position Recalibrate

Power and SWR Meter related commands (if enabled at compile time):

$ppoll             Poll for one single USB serial report, inst power (unformatted).
$pinst             Poll for one single USB serial report, inst power (human readable).
$ppk               Poll for one single USB serial report, 100ms peak power (human readable).
$ppep              Poll for one single USB serial report, pep power (human readable).
$plong             Poll for one single USB serial report, actual power (inst, pep and avg)
                   as well as fwd power, reflected power and SWR (long form).

$pcont             USB serial reporting in a continuous mode, 10 times per second.

                   $ppoll, $pinst, $ppk, $ppep or $plong entered after $pcont will
                   switch back to single shot mode.

$sleeppwrset x     Power above the level defined here will turn the display into meter mode.
                   x = 0.001, 0.01, 0.1, 1 or 10 mW (milliWatts).
$sleeppwrget       Return current value.

$tuneset x         x = 1.1 to 4.0. SWR tune threshold.
$tuneget           Return current value.

$pepperiodget x    x = 1, 2.5 or 5 seconds.  PEP sampling period.
$pepperiodset      Return current value.

$calset cal1 AD1-1 AD2-1 cal2 AD1-2 AD2-2
                   Write new calibration values to the meter.
$calget            Retrieve calibration values.

                   Format of calibration values is:
                   cal1 AD1-1 AD2-1 cal2 AD1-2 AD2-2
                   cal1 and cal2 are calibration setpoints 1 and 2 in 10x dBm
                   ADx-1 and ADx-2 are the corresponding AD values for
                   AD1 (forward direction) and AD2 (reverse direction).
                      normally the AD1 and AD2 values for each setpoint would be the same,
                      however by doing reverse calibration through the Controller Menu functions
                      it is possible to balance any small differences there might be between the
                      two AD8307 outputs.
                      Note that I have not found this to be necessary at all :)

$scaleget          Retrieve user definable scale ranges.
$scaleset          Write new  scale ranges.

                   The scale ranges are user definable, up to 3 ranges per decade,
                   e.g. 6, 12 and 24 gives:
                   ... 6mW, 12mW, 24mW, 60mW ... 1.2W, 2.4W, 6W 12W 24W 60W 120W ...
                   If all three values set as "2", then
                   ... 2W, 20W, 200W ...
                   The third and largest value has to be less than ten times the first value.

All the below debug assist commands are off by default:

$debug             This one may provide unexpected results !!! :-)

$swrdebug          Toggle (On/Off) Print/Debug the last 32 SWR measurements found if SWR Tune success.

$trxdebug          Toggle (On/Off) Debug Radio serial communications, ASCII - send to USB.

$hexdebug          same as above, HEX.

$addebug           read raw AD input - also works with $pcont, same as $ppoll etc...

These two are useful to establish whether serial communicaitons in the direction from the Controller
                     to Transceiver are working:
$settx             Command Transceiver into Transmit Mode.
$setrx             Command Transceiver into Receive Mode.

Select active Transceiver Profile, may be useful for remote operation:
$profileset x      Select active Transceiver Setup Profile, where x is 1 to 4.
$profileget        Retrieve active Transceiver Setup Profile.

$memoryclear       clear all frequency/position memories, same as Menu command (4).
$memorywipe        full EEPROM wipe - clar all frq/pos memories and all settings to default.

$help              Display the above instructions.


At the bottom of this page there is a zip file containing a couple of very simple Windows command line scripts (work under cmd.exe) that can be used to talk to the Controller: 
  • 'readmagloopmemories' is used to back up all frequency/position settings from the Controller.  The settings are backed up in a file with the name 'magloopmemories.txt.
  • 'writemagloopmemories' is to restore the frequency/position settings from file into the Controller.  Make sure to delete all frq/pos data in the Controller before the restore, otherwise you may end up with conflicting frq/pos settings.  
When run, both scripts start by listing all known COM ports.  Enter the COM port that corresponds to the Controller, e.g. 'COM20'
The backup/restore functions will not work if Passthrough mode is selected.

Youtube Video of the Controller:

Here is link to a six and a half minute Youtube video of the Magnetic Loop Controller.

The first 50 seconds show 13.5 MHz and 29.999 MHz being peaked for maximum noise and stored as the outermost positions.  This involves a lot of hand cranking the Encoder.

Minute 0:50 - 1:40 shows 3 positions being SWR Autotuned and stored in the 20m band.

Minute 1:40 - 2:00 shows 18.069 MHz failing an Auto SWR tune (default is hunt mode - tuning around a center point), and then being successfully Autotuned when doing an Up-Tune.

Minute 2:00 - 4:25 shows the rest of the autotune and store process, storing positions in the 17, 15, 12 and 10m bands.

Minute 4:25 - 6:00 shows the core function of the Controller, automatically tracking the Transceiver without any need to tune for minimum SWR.
Here is a demo of switching bands and moving the VFO to various frequencies and transmitting, always with good SWR (ok, the antenna has rather poor SWR on 15m, but this has nothing to do with the Controller though :)

Minute 6:00 - 6:20 shows the antenna tuning from 20m to 15m, and then back.

Minute 6:25 to end shows 2x SWR Autotune.

Yes - I am running 200W into the antenna - not very healthy I'm sure, hanging on a book case only 3 meters away from me.  However the Autotune commands the transceiver to output only approx 3.5W


To build a 24 foot Magnetic Loop:

The Capacitor fixture (see Figure 4, above) was built to fit into a 3 inch PVC tube which also doubles as a mast.  As seen on some of the pictures further below, the PVC tube was spray painted black for aesthetics.
Figure 13  (click on image to enlarge)

The connector fixture.  The loop feed is done with a hairpin/gamma match.  See my Magnetic Loop Antenna Exercises webpage for a picture of the feed :
Figure 14  (click on image to enlarge)

Ready to be assembled:
Figure 15  (click on image to enlarge)

Figure 16  (click on image to enlarge)

A 12 foot loop and the new 24 foot loop side by side.  This is of course a bit too close for comfort, there is considerable interaction between the two antennas.  To be moved apart later :)
Figure 17  (click on image to enlarge)

The new 24 foot loop tunes from below 3.5 MHz and up beyond 14.350 MHz, which was a bit of a surprise - this indicates that the minimum capacitor value actually goes down below 2.5 pF.  Of course at 14 MHz (20m band), the circumference of the loop being 1/3rd of a wavelength, the antenna is more akin to a shortened Quad loop.  

At 3.5 and 7 MHz having the antenna mounted on a Rotator is very efficient to battle QRN.  The noise floor has been observed to go down by up to 3 S units by rotating the loop.

Back to main page

Page last updated:
2020-06-21 Firmware version 4.10. Maintenance update to accomodate changes in HardwareSerial and ADC library.
2019-06-01 Firmware version 4.09. Bugfix for DRV8825 / A4988 stepper motor driver option.  Had glitches when switching between full and fractional step modes.  Also added a new "BOM and Building Instructions" for Rev3 / Rev4 printed circuit boards, which utilize the DRV8825 or A4988 Stepper Drivers.
2017-05-14 Firmware version 4.08. Update to stay compatible with latest version of Arduino/Teensyduino.  Added two new transceivers, Yaesu FT920 and Kenwood TS870 (neither has been tested yet)
2017-01-21 Firmware version 4.05. Bugfix: Some displays showed garble when version 4.04,  Endstop Option 2 had bugged logic around upper endstop.  Added SWR Alarm output on pin/pad 33. Changed Backlash Compensation Select function to Backlash Compensation Adjust with a range of 0 to 400 steps. Minor updates to BOM and Building Instructions file in line with Backlash Comp functionality change.
2016-11-22 Firmware version 4.04. Pushbutton function rewritten, now no false readings. Kenwood TS2000 "TX;" issue addressed.  Improvement for endstop features 2 and 3.  Switch-in/switch-out capacitor feature improvement.
2016-09-03 Firmware version 4.03. USB commands are now case insensitive.  Also, ';' added as a terminator for USB commands.
2016-09-03 Firmware version 4.02. Pushbutton debounce improvement, Added USB commands for remote tune, Screensaver disable feature added and further LCD handling improvements. Some bug fixes.
2016-08-16 Firmware version 4.01. Improved handling of certain OLED displays.
2016-07-30 Firmware version 4.00. Main additions: Triple Antenna change-over feature, Transceiver Profiles and tune power level management, Yaesu FT-1000 Mk-V, Kenwood TS-440/450
2016-06-01 Firmware version 3.07.  Added Yaesu FT-990 functionality.  Added a couple of USB commands.  A number of small bug fixes.
2016-05-06 Firmware version 3.06.  More Kenwood / Flex bug fixes. Now confirmed to work OK with Kenwood TS-480/590/2000 and Flex 5000/6000 series with DDUtil 
2016-05-01 Firmware version 3.05.  Kenwood / Flex bug fixes.
2016-04-23 Updated Operation Instructions and Notes with setup instructions for Flex Radios, and explanation of ICOM and Elecraft Auto vs. Poll modes.
2016-04-09 Updated "BOM and Building Instructions".  A detailed description of the dual antenna changeover feature was added.
2016-04-08 Firmware version 3.04.  ICOM bug fixes.  Updated Operation Instructions and Notes.
2016-03-25 Updated "BOM and Building Instructions" with some minor improvements.
2016-03-19 Firmware version 3.03  Added Yaesu FT-990,Yaesu FT-1000MP, Yaesu FT-1000MPmkV. Pseudo VFO bug fix.
2016-02-07 Firmware version 3.02. ICOM CI-V protocol bug fix.
2016-01-17 Firmware version 3.01. Various bug fixes. Yaesu FT747 added.  Improved Passthru serial mode for Yaesu FT100/FT8x7
2015-06-14 Firmware version 3.00. Open-drain style TXD when connected to ICOM CI-V.  Dual Antenna control capability added.
2015-05-23 Firmware version 2.08. Bug fixes.
2015-04-30 Firmware version 2.07. A couple of bug fixes.
2015-04-26 Firmware version 2.06. A number of new features and a couple of bug fixes.
2015-02-28 Firmware version 2.04. Serial port<=>USB port passthrough mode added to enable Rig control by Computer. 
2015-02-13 Firmware version 2.03. A new Transceiver type has been added: Transceiver type 11, Pseudo-VFO, providing an alternate mode of entering frequency information if Radio is not serial connected (uses new pushbutton SW6)
2015-02-08 Added a link to a Youtube Video showing the Controller in action.
2015-02-06 Firmware update. Version 2.02. Bugfix, Recover position when Radio Information back on line after Off-liine operation.
2015-02-02 Firmware update. Version 2.01, More logical soft endstop behaviour, improved pushbutton scan etc...
2015-01-28 Updates to BOM and Building instructions.
2015-01-24 Firmware update, version 2.00 - Includes a number of improvements and the new SWR Autotune functionality
2015-01-24 Added description of SWR Autotune Option 
2015-01-18 Minor modification of LCD display for more logical indication of Position

First publication of page 2014-04-30

Web Site Hit Counter

To download any of the files below, please click on the down arrow ďat the right hand side of the file.

Loftur Jónasson,
Mar 1, 2015, 11:44 AM
Loftur Jónasson,
Jun 1, 2016, 2:43 PM
Loftur Jónasson,
Jun 1, 2019, 8:43 AM
Loftur Jónasson,
Jun 21, 2020, 2:27 PM
Loftur Jónasson,
Aug 2, 2014, 12:05 PM
Loftur Jónasson,
Jan 28, 2015, 6:30 PM
Loftur Jónasson,
Aug 2, 2014, 12:04 PM
Loftur Jónasson,
May 1, 2014, 8:53 AM
Loftur Jónasson,
May 1, 2014, 8:53 AM
Loftur Jónasson,
May 10, 2014, 7:35 PM