This antenna was built when an extremely small antenna was required for operation on 20-meters through 10-meters, using a 100-Watt transceiver, at a location with antenna restrictions. The antenna was used to work a great deal of DX on 20m and 15m, using the JT65-HF mode. Of course this antenna is not as efficient as a full sized antenna, but where a compromise antenna is needed for 20m through 10m, the Magnetic Loop offers good performance for what it is (and certainly much better performance than a mobile antenna could ever achieve).
The antenna is 3.5 feet in diameter, and uses 3/4 inch copper pipe, with 45° angles.
A Unipolor stepper motor is mounted in a PVC electrical box, located below the Faraday coupling loop. The PVC electrical box was purchased at HomeDepot.
Initial calculations of size, efficiency, required tuning capacitance, voltage, etc., were performed using the AA5TB Excel Spreadsheet Magnetic Loop Calculator. This is an absolutely fantastic tool, and if you are working with single-turn Magnetic Loop Antennas, you will need this! Big thanks to AA5TB for this!
The Faraday coupling loop was designed based on an Elecraft article on magnetic loops.
A Comet 10-60pf 10KV / 6KV Vacuum Variable Capacitor was purchased from Max Gain Systems and is located at the top of the loop.
A unipolar stepper motor is used to remotely tune the antenna, using either a joystick to dynamically tune, or by using buttons to recall a previous tuning position from memory. The stepper motor is a unipolar type, with four phases, at 1.8° per step (i.e. 200 steps per revolution). This was purchased from Halted Specialties. The motor common was connected to +12 VDC.
A dowel was used as a drive shaft, connecting the stepper motor at the PVC electrical box to the vacuum variable capacitor at the top of the loop.
The stepper motor is controlled by an Arduino Uno microcontroller, using a SparkFun Joystick Shield Kit. Motor speed and direction are controlled by the joystick, with larger deflections producing greater speed. Small deflections are used to fine-tune at a slower speed. Buttons on the Joystick Shield are used to store and recall tuned positions so that once tuned, the loop can be easily moved from band to band. The Arduino Uno was also powered from +12 VDC.
The ULN2003 Darlington Transistor driver was placed in the prototype area located at the center of the Joystick Shield.
To say that the Arduino IDE is minimal would be an understatement. However, it is sufficient for simple projects such as this (although I use a different editor). You can download the Arduino ID here.
A ULN2003 Driver was placed between the Arduino Uno I/O pins and the unipolar stepper motor. This is an inverting open collector driver, and includes protective diodes to avoid damaging the part due to flywheel effect of the motor coils being switched off. Note that the code attempts to turn off all four phase coils when not moving in order to reduce power consumption and avoid excessive heat in the ULN2003 that would occur if a driver was left turned on.
The AA5TB calculator produced the following at 14 MHz:
The AA5TB calculator produced the following at 28 MHz:
The AA5TB calculator produced the following at performance curves:
A schematic of the Arduino Uno can be downloaded by clicking here.
A schematic of the SparkFun Joystick Shield Kit can be downloaded by clicking here.
A schematic, which shows the ULN2003 Darlington Transistor driver that is used to drive the stepper motor is shown below. A .pdf version can be downloaded by clicking here.
Note that +12 VDC is not carried over the shield header pins from the Arduino Uno to the Joystick Shield. The +12 VDC can be brought over with a wire that is attached to the +VDC power supply connector on the Arduino Uno by soldering a wire on the bottom of the Arduino Uno board.
The source code implements a dead-band near the joystick center position. This is to keep the joystick mechanical return point, which is not always exactly the same, from introducing tuning drift.
The switches are labeled on the Joystick Shield as D3, D4, D5 and D6. Their functions are:
D3: Memory #1
D4: Write Memory
D5: Memory #2
D6: Memory #3
To perform a memory write, press and hold the write switch, and while holding the write switch, press and release the desired memory switch. This stores the current absolute position (i.e. pulse count, relative to a zero reference) into the memory position.
To move to a stored tuned position, momentarily press the appropriate memory button.
This may not be very elegant, but it is functional, avoids slewing the motor while pressing the memory button, and was both quick and easy to code.
Download The Source Code
The source code can be downloaded by clicking here.
Recommendations For Improvement
Although the magnetic loop proved to be useful, and especially so in that no larger antenna could be used, there are areas that could be improved.
The software applies no limit to the maximum speed that pulses attempt to drive the motor. If to high a speed is applied by excessive joystick deflection, the motor may wobble, or even run backwards. A maximum limit should be enforced by the software, or the joystick input could be scaled so that a maximum rate is not exceeded at full scale deflection of the joystick.
The torque required to turn the vacuum variable capacitor was at the limit of the original bipolar stepper motor's capability. A gear reduction would have eliminated any issues here. On the other hand, the motor that was used was a 24 VDC motor and was only powered by 12 VDC, and this could have been the problem.
OMC-SteppersOnline has some very nice geared stepper motors, and at inexpensive prices. These have planetary gears, and are available for 12 VDC operation. The NEMA 11 11HS12-0675D-PG5 geared motor with a 5:1 planetary gear box s just under $35. Gear reduction will result in a longer time to move between tuned positions.
Note that the hardware driver that drives the stepper motor may need to be redesigned if the stepper motor has higher current requirements.
The shaft that connects the stepper motor to the vacuum variable capacitor needs to be strong enough to not have tortional twist. Twisting leads first to lag in movement, and overshooting the tuned position.
Motor coupler sleeves, available from hobbyist robotic sites, are a good way to go when coupling the shaft to both the stepper motor and the vacuum variable capacitor.
No attempt was made to weather seal the stepper motor where the motor shaft exited the top of the PVC electrical box. Water eventually caused failure of the motor. Either a seal needs to be used, or some method of deflecting water to beyond the edges of the PVC electrical box.
Converting the code that is used to store & recall tuned positions to & from memory could support more memories if a long press were used to store a tuned position and a short press was used to recall a tuned position. Adding additional buttons would also increase the number of tuned positions that can be stored or recalled.
The Arduino serial interface is far from optimal, but could be used to read or write a tuned position of the motor, which is just a large integer that represents an unsigned displacement from the zero position, moving the user interface and memory storage to a host computer.
I used the ULN2003 and created my own stepper motor driver/controller, simply because I had a tube of these parts in my parts drawers. Integrated stepper motor controller chips are available, might result in less code, and might be another option for someone who does not have the ULN2003 on hand.
Good luck and have fun, Ray Montagne (W7CIA)