Go to file
Fabian Kurz 1564f2cdf6 add programming script and avrdude config 2023-05-01 21:19:59 +02:00
README.md extend README 2023-04-16 11:11:48 +02:00
avrdude.conf add programming script and avrdude config 2023-05-01 21:19:59 +02:00
icom-bd.ino Disable switching when TX is active. 2023-05-01 21:17:07 +02:00
mcu_reset.py add programming script and avrdude config 2023-05-01 21:19:59 +02:00
prog.sh add programming script and avrdude config 2023-05-01 21:19:59 +02:00

README.md

*** W I P ***

ICOM band decoder with an Arduino

This document describes the design of a band decoder for ICOM transceivers using an Arduino Nano Every, which also includes an universal Relay unit.

Desired functionality

  • There is a 4 port remote antenna switch at the tower base (at SO5CW) that needs to be switched to the correct antenna depending on the band my IC-7100 is operating on. The antenna switch is driven by a 5 pin interface (ground and four relay contacts, each about 12 V / 100 mA)

  • There should be a way to manually override the antenna selection, both remotely (by serial commands) and locally (by pushbuttons)

  • It should not switch antennas during transmit (neither in manual nor auto mode)

  • Four additional relays should be available (controllable by serial commands) for various other switching tasks.

What is a band decoder?

A "band decoder" is a device that reads the frequency/band information from a ham radio transceiver, typically in order to perform automatic switching of antennas, filters or amplifiers.

There are several ways to read the band data from a radio. Most radios have some sort of serial CAT interface, where an external device can (among other things) query the current frequency from the transceiver. ICOM radios also provide a voltage which corresponds to the current operating band. The voltage ranges are tabulated below (taken from AB4OJ's website:

Band / MHz Voltage / V
10 0
50 1 .. 2
28/24.9 2 .. 3
21/18 3 .. 4
14 4 .. 5
7 5 .. 6
3.5 6 .. 7
1.8 7 .. 8

Using this band voltage comes with the limitation that 12/17m are combined with 10/15m but in my case (no dedicated WARC antennas) this does not matter.

Available devices on the market

A quick search on the web shows a number of homebrew and commercial projects that already realize such a band decoder, for example:

My custom design

None of the devices fulfill all requirements (TBD: feature matrix), so I designed my own device which is described below. It is based on a Arduino Nano Every, but the requirements on the microcontroller are low (11 GPIOs, 1 ADC, UART), so it could be replaced with any other similar module.

The schematics are shown below and there are little surprises: The band voltage is divided to the voltage range of the ADC (from 8V to 5V). The relays are switched from the GPIOs via BS170 drivers. While it is possible to drive the remote antenna switch by providing open collector outputs, using additional relays in the switch promises robustness against RF and EMI.

The mechanical build is shown below. A euro size PCB is integrated in a pro Ma EFG 1 aluminium housing. The front panel only requires a few holes for the switches and LEDs, which could easily be drilled with a hand drill. The rear panel needed some major cut-outs which I could not realize with my own tools, so I used a laser cutter to make a replacement rear panel from ABS material.

The relay connectors are realized with RIA Connect Box headers, one connector for the antenna switch and another for the auxiliary relays. The radio connection and power cable are directly connected to the PCB.