Table of Contents

About

A coaxial antenna splitter is made for switching between two antennas using one single radio. A standard antenna splitter, for instance, from Albrecht looks like depicted in the following image.

They are heavy builds with a strong an heavy chassis as well as a very large knob that requires quite some torque in order to commute between the two antenna connectors marked A and B.

Operating the antenna commuter would require the device to be in the proximity of the operator which can be quite inconvenient depending on the complexity of the setup. It would be interesting to design some device around the antenna commuter that would be able to switch between the two antennas without having to do so manually. This document describes a build that would allow an operator to remotely commute between the two antennas.

Requirements

Disassembling the Antenna Splitter

Antenna commuters are typically a heavy build due to the very strong RF Wattage that they are designed for. Typically, the switch could very well be replaced with a transitor switch, or anything similar and smaller but due to the high RF that can interfere with neighboring devices, the build of the antenna commuter will be leveraged and the switching will be designed to follow the large knob on top of the device.

Disassembling the Albrecht CX-201 is fairly easy, the bottom part being held in place by three screws that can be removed to reveal the inside of the Albrecht antenna commuter.

On the inside, we find a swivel that is connected to the knob on the outside of the Albrecht splitter through a hole, a spring and ball bearing that is meant to slide along the top of the chassis between two holes designed to house the ball and two copper or nickel blades or lamelles that are meant to be pushed into position by the switch. Intuitively, the ground is switched through the chassis of the Albrecht whilst the signal passes through the blades from one antenna connector to the output antenna connector.

Drafting the Build

The servo motor could be connected to the knob itself using some mechanism but since the Albrecht is already fully open, it might be wiser to throw away the entire swivel build, with the spring and ball bearing in favor of creating an axle that would be connected through the Albrecht chassis to the servo motor and would press or depress the blades. In doing so, a lot of friction is removed, given that the ball bearing is no longer removed such that the torque force required for the servo motor would be greatly reduced.

      +-------+          +---------+
      | Servo +----------+ ESP8266 |
      +---+---+          +----+----+
          |                   |
          |                   |
          |                   . manual flip switch?
          | spindle           . IoT MQTT Wireless?
          |                   . etc.
          |
  ANTENNA | ANTENNA
     A    |    B 
     +    |    +
 +---|---------|---+    
 |   \    |    |   |
 |    \   +    |<........ disconnected blade
 |     \   \   |   |
 |      \   \  |   |
 |       \     |   |
 +--------|--------+
          +
    ANTENNA INPUT
        (RTX)
          

By connecting the servo motor to the ESP8266 there will be a whole range of possibilities available to control the antenna commuter. A DPST switch might be suitable and conventional enough to make the connection between the two antennas given that rigs are typically mobile such that there might be no wireless available to control the switching via IoT or MQTT. Nevertheless, it is of course possible to connect the ESP8266 to a wireless network and automate the switching via Node-Red or similar as we have done for other projects.

Building the Mechanics

The servo motor is mounted on top of the Albrecht antenna commuter with the small motor axle protruding through the hole left over by removing the knob on top of the commuter. Since not much torque is needed, the servo motor is glued to the chassis of the antenna switch using some two part glue such as JB weld.

On the inside of the antenna commuter, the small motor axle can be observed through the hole where the spindle switch used to be.

Luckily, the servo has an inner hole that allows a threaded screw to be inserted and fixed in place. The servo motor is delivered with a few plastic rotors that can be fixed on top of the motor. One of the plastic rotors has a trapezoid shape that can be cut down in order to use just one half of the plastic rotor that will be used to press and depress the blades thereby making the connection between the two antenna connectors.

However, a threaded screw is prepared along with a washer in order to match the height necessary to reach the two blades. The top part of the screw is sawed off letting only the main axle of the screw hold the washer on top of which the plastic rotor will be fixed. In order to make sure that the washer on the lower part of the axle will not move around, some JB weld is used to fix the washer in place.

While the JB weld glue is left to set, some code is written to ensure that the servo motor is at $0^{\circ}$. $0^{\circ}$ will be used to correspond to one antenna coupling and $45^{\circ}$ will correspond o the other antenna port.

#include <Servo.h>
Servo myservo; 
 
void setup() {
  // put your setup code here, to run once:
  myservo.attach(D6);
  myservo.write(0); 
}
 
void loop() {
  // put your main code here, to run repeatedly:
  delay(60);
}

Using the Servo library, the code will first attach to D6 representing the pin marked "D6" on the WeMoS PCB and then myservo.write(0); is used just once to move the spindle of the servo motor to $0^{\circ}$. Controlling the servo motor from now on will just be a task that will involve toggling between myservo.write(0) and myservo.write(45).

With the main shaft in place that connects the servo motor to the chassis and the plastic rotor blade in place calibrated to $0^{\circ}$, the code is changed to:

#include <Servo.h>
Servo myservo; 
 
int o = true;
 
void setup() {
  // put your setup code here, to run once:
  myservo.attach(D6);
}
 
void loop() {
  // put your main code here, to run repeatedly:
  if(o == true) {
    myservo.write(130);
    delay(5000);
    o = false;
    return;
  }
  myservo.write(0);
  delay(5000);
  o = true;
}

that will commute between antennas every 5 seconds as can be observed in the following video.

All that remains is to decide whether to use a classic switch or some other mechanism to make the Albrecht commute between the two antenna ports.

Adding the WeMoS and a junction box to hold the circuitry, the project is now complete and ready to be used. It was decided to use a very basic on-off flip switch in order to commute between the A and B antennas. Ideally, the switch along with the long wires will be extended to some control panel next to the radio.

Now with an added flip switch, the code changes to:

#include <Servo.h>
Servo myservo;
 
#define SERVOS_PIN D6
#define SWITCH_PIN D7
 
void setup() {
  // put your setup code here, to run once:
  myservo.attach(SERVOS_PIN);
  pinMode(SWITCH_PIN, INPUT_PULLUP);
}
 
void loop() {
  bool state = digitalRead(SWITCH_PIN);
  if (state == LOW) {
    myservo.write(130);
    return;
  }
  myservo.write(0);
}

where:

The resulting schematic allows the servo to commute between the two SO-239 exit ports of the antenna commuter.

            +----------+                        +---------+
     +12V   |          |                        |         |
    ----+---+          +--+---------------------+         |
            | stepdown |  |                     |         |
        +---+          +--|-+-------------------+  WeMoS  |
        |   |          |  | |                   |   ESP   |
        |   +----------+  | | +-----------------+         |
        |               | | |                   |         |
        | GND           | | |        /          |         |
       ---              | +-|-------+  +--------+         |
        -               | | |        SW         |         |
                        | | |                   +---------+
                        +-+-+-+-+
                        | servo |
                        +--------

Usage with Mechanized Antennas and Tuners

One interesting application of the antenna commuter is to allow the usage of an antenna tuner alongside a motorized antenna. Typically, for radios such as the FT-891, the tuner and the ATAS-120A are mutually exclusive and cannot be used together. Using the antenna commuter from this project, the output can be commuted between the FT-891 tuner an the ATAS-120A. Here is a sketch of what the setup looks like:

      
      ^ antenna
      |
      |
      |
      |
      +
     / \      automatic antenna switcher
 a1 +   + a2
    |   |
    +   |   
  tuner |  
    +   | 
    |   | 
    +---+
     \ /  dual antennas coupler (without balun)
      +
      |
    radio

where:

The Zetagi "Dual Antennas Coupler illustrated below:

is opened up and gutted entirely to replace the balun with a very simple straight-through connection with a copper wire beween all the three ports. In other words, the Zetagi now dumbly couples all the ports together without any additions which is necessary in order to feed both the ATAS-120A antenna and the FC-50 tuner the exact same signal.

With this setup, the operation of the ham goes like this:

such that the combination of the two ATAS-120A and the FC-50 ensure the most minimal SWR possible.

Further Work

One problem with this setup is that there is no feedback element such that using the switch will not guarantee that the antenna has been commuted based solely on the fact that the switch position has been changed. One idea would be to add strip contacts on the inside of the Albrecht antenna commuter that would ideally make contact once one of the commuter blades extends to the maximum with the strip connectors leading to the GPIO pins of the ESP8266. Nevertheless, for now, the project seems complete.

Redesign, Rebuild and Remake

After some months of operation, it seems that the device works well and the desired goals have been reached. Some problems have been detected in the QA part of the device such that a new redesign of the device is warranted.

Errata

Here is a set of problems regarding the device that warranted a rebuild:

Changes

The circuit is mostly the same, only that it has been relocated inside a metal box, with the only highlight being the LM7805 voltage regulator that has been used to step down $12V$ to $5V$ and then power the ESP.

For reference, here is the electronic schematic that is used for the revised version of the antenna commuter.


                                                         +---------+
                                                         | ESP8266 |
                        +--------------------------------+         |
                        |                                |         |                      |
                        |         +----------------------+         |                     /_\ ant.
     12V    +--------+  |  5V     |                      |         |                      .
+-------+---+ LM1805 +--|---+-----+-----+   +------------+ GPIO    |                      .
        |   +----+---+  |   |           |   |            |         |                      .
       ---       |      |  ---          3 | + /      COM |         |                      .
47uf   ---       +------+  --- 4uF      3 | +/       GND |         |                      . ant. output
        |        |      |   |           |   +-----+------+         |                  +---^---+
+-------+--------+------|---+           3 | + /   |      |         |            sig.  |       |
                 |      |   |           3 | +/    |      |    GPIO +------------------+       |
                 |      |   |           |   |     |      |         |            gnd   |       |
                 |      |   +----+------+   +-----|------+ GPIO    |        +---------+ Motor |
                 |      |        |                |      |         |        |    5V   |       |
                 +------|--------|----------------+      +---------+        |   +-----+       |
                 |      |        |                                          |   |     |       |
                 |      +--------|------------------------------------------+   |     +-^---^-+
                 |               |                                              |       .   .
                 |               +----------------------------------------------+       .   .
                 |                                                                      .   .
            GND ---                                                                     A   B ant. input
                ///

                                                                 +--------+--------------+
                                                                 | YO1PIR | 09/10/2024   |
                                                                 +-----------------------+
                                                                 | remote antenna swtich |
                                                                 +-----------------------+

One thing to observe here is that the relay commutes common to ground and the GPIOs connect to either relays. In other words, the flow is from the ESP GPIOs that are considered high that will be commuted via the relays controlled by the remote control to ground - the pull-up required to not buzz the circuit will be provided by the ESP by setting the GPIOs to INPUT_PULLUP in the Arduino sketch. The former is due to having to use digital pins instead of analog, or else the common relay input could have been $5v$ (given that the Expressif ESP8266 was determined to be $5V$ tolerant. Alternatively, the double relay dongle could be made to split a 5V signal in order to read both relays with a single analog pin but that level of minimization does not seem necessary given that a whole WeMoS ESP8266 was used with plenty of available digital pins.

Unfortunately, due to a transport issue, the relay to the bottom of the screen was dislocated and got "desoldered" off the board. To fix the issue, a small piece of PCB was found, pins mounted onto it and a second stage was added because the relay is otherwise very difficult to solder onto the PCB due to the lack of clearance. Even though pulling the plug should be sufficient for such a device with no powercycling ever needed, a switch has been added none the less for a more convenient way to power the device on or off.

The idea of a PCB mounted on the side of the metal box through which connections can be made conviently, on both sides, thereby ensuring that all parts can be easily removed for repairs and/ or maintenance, from the rover one project seemed to be a success such that the same idea was used here to pass a JST PCB plug through the metal plates on the side of the box.

The remote is even more fitting given that it has two buttons A and B that correspond to either antenna input on the antenna splitter. Now you can just place the device next to the radio, sit back, relax and use the remote to commute between either inputs connected to the splitter.

Of course, the product can be scaled up, and a 4-to-1 antenna splitter could be created with a 4-button remote (that also seem very much common and available on Chinese markets).

Software

The sketch is based on the WiFi preboot environment sketch and for the antenna application it implements moving the servo in order to commute between the two input ports on the antenna switch.

There is no magic in adjusting the servo angle corresponding to the A, respectively B inputs on the antenna switch, such that calibrating the servo motor is a matter of trial and error, perhaps even with a smaller template that can just sweep the motor in order to measure continuity through the antenna switcher at various positions and settle for numeric values for the template.

One other change has been to decouple the servo motor once the lamelle was moved by the user using the remote. The problem is that the servo motor is constantly powered by a PWM signal generated by the GPIO pin, such that any interference that would mess with the ESP or other circuitry, would end up scrambling the PWM which might end in the servo behaving erratically. In order to prevent that effect from occurring, the code only attaches to the servo motor when its lamelle has to be moved in order to commute to a different antenna input port, after which the code decouples from the servo motor, leaving it in its modified position such that any interference would not affect the servo motor in any way given that after detaching, the servo would just be as passive as a brick.

Unable to display file "http://svn.grimore.org/arduino-sketches/arduinoAntennaSwitch/arduinoAntennaSwitch.ino": It may not exist, or permission may be denied.