*** Updated 1 Sept 2020 ***
Automated Antenna Selection with N1MM+
This Page covers development of the KG3V Antenna Decoder (AntDecoder). This project is for controlling antenna switching equipment, such as a “Six Pack” 2X6 switch, in a Contest Station using a PC with N1MM+ Contest Logging Software. Two 4-bit BCD output ports are provided for driving a 2-Radio X 6-Antenna switch. Status Updates will be made to the Main section of this Blog and this Page will provide an ongoing summary of the Project (updates at the end).
The N1MM+ Contest Logger (and some similar Applications) provide Antenna Selection Data (ASD) in a serial data stream using the Open Two Radio Switching Protocol (OTRSP). The AntDecoder captures and decodes this data, providing software-driven selection of any of 6 antennas for each of two Radios. The two BCD ports will drive inputs to Antenna Switches that require BCD and/or are compatible with K3 Antenna/Band Data outputs.
The AntDecoder is an external hardware component that connects to the PC using a USB Port, and to the Antenna Switch through two 15-pin D-Sub connectors. The heart of the AntDecoder is an Arduino Pro Mini microcomputer and the software that it hosts. You can see how the AntDecoder fits into my station in this diagram
First prototype Testing
I modified the PC Board layout from the DXDUSB, which decodes the N1MM+ Serial bit stream. New software was written to access the OTRSP Antenna selection codes (AUX1 and AUX2). I also wrote a test program that just lets me directly activate the 2 Antenna Select ports. These were connected to the 2X6 Antenna Switch, to see if I could drive the ports correctly. Here is a photo of the basic AntDecoder Prototype PC board:
The software worked and the Logic Analyzer showed that the Antenna Select lines were being driven from the N1MM+ code. I was unable to drive the 2X6 switch due to the mismatch in Logic levels. The AntDecoder uses 5-volt logic but the 2X6 switch must be pulled-up to 12-volts. The next photo shows the prototype with a transistor switch on one set of four Antenna Selector lines. This provides an Open-Collector output. That was connected to the 2X6 switch and was able to drive the input.
In order to complete this project, transistor switches and interface resistors will be required. A new schematic has been started, to add them. The end result will be a Decoder that can drive any common logic levels. This will also be compatible with any Switch that can interface to an Elecraft K3, which has open-drain outputs.
Unfortunately, the new PC Board will be larger than the DXDUSB board, so there is additional work to do to find a good enclosure. Something like the size of a Raspberry PI board is the goal. On the DXDUSB design, the hardest part of the design was fitting it into a standard enclosure.
The initial hardware prototype has been built and integrated with Arduino software. To support the 12-volt logic of the 2X6 Antenna Switch, external transistor drivers were added. Complete functionality was successfully demonstrated using the N1MM+ Antenna Table (in the Config dialog) to drive the two switches via the serial data stream’s AUX1 and AUX2 commands. I used N1MM+ to configure its antenna table. Once I did that, I could switch Bands on the two Radio ports, and also cycle through all the antenna I had designated for any Band that is currently selected.
A new schematic and Circuit Board layout was generated, adding the transistors, series resistors, and optional pull-up resistors. This required a larger PC Board footprint, so the layout had to be started from scratch. The additional circuitry does add flexibility to the Decoder. It should now be usable with any Radios that can be controlled with N1MM+. The size of the new PC Board will be approximately the size of a Raspberry PI board.
Update Jan 2019
I had an inquiry about the project, and just wanted to provide an update. I now have a complete PC Board design. But since there seems to be no outside interest (only a couple people have indicated that this might be useful in their shack), I am not going to take-on the cost of PCB board fabrication. Instead, I am going to hand-build one unit for my own use. This will probably be housed in a Raspberry PI case, since they are readily available and they are inexpensive. I will provide another update once I get this up-and-running in my station.
Update 1 Sept 2020
I have again been considering the need for a 2X6 Antenna switch in my station. The prior approach just became a burden, and used both Hardware and Software components that were becoming outdated. If I design another data decoder using N1MM+, I decided that it should use the Ethernet Broadcast data instead of the OTRSP serial data. I also want to have the ability to control the switch using WiFi. Most of the WiFi approaches for the Arduino boards I have been using are expensive. My software was also staring to tax the available resources on the Arduino Pro-Mini, which has been my choice for prior projects such as the DXDUSB
New Hardware Platform
Something that recently got my attention, is the NodeMCU board that uses the ESP-8266 System-on-chip (SOC) component. I have started working with this board, and it is going to be used to prototype an AntDecoder module for my 2X6 Antenna Switch. The NodeMCU is inexpensive and includes WiFi on-board. My initial prototype showed that I can use WiFi to connect to my Station PC, send the N1MM+ Broadcast Data using WiFi, and decode that data on the NodeMCU board. This does not seem to tax the NodeMCU capabilities or resources.
Due to the small amount of interest I saw in tis project in the past, this may not ever be productized, but I plan to make a one-off module for use in my Station.