Icom Transceiver Antenna Band-switching Project


October 2019


The finished Icom Transceiver Antenna Band-switching Project... front view.



The finished project... rear view.

(Actually the label order for connectors Default 1, 2 and 3 are reversed from what they should be !  Oops, but too hard to change now !.)

{ Labels laid out using MS Powerpoint as it allows accurate placement of text and lines.
The printed label is then covered with adhesive cold-laminate sheet with extra area left around the label proper to adhere to the panel itself. }


The finished project... inside view. 

Relay PCB mounted by 3mm screws / 2 x nuts as spacers etc.. Picaxe PCB mounted on a tapped pillar & 3mm retaining screw.


PICAXE Controller PCB


Relay RF switching board

Note that the input/output RF port at bottom left has a DC blocking capacitor between it and the common pin on RL3. Not absolutely necessary but good to include.

A 0 ohm resistor, 1206 style, could be used in lieu to act as an antenna fuse in the case of a nearby lightning strike but the way the PCB is mounted, it would be hard to change...



Some years ago, I did a write-up about using a PICAXE to decode Icom CIV data to allow automatic antenna switching depending on the frequency and mode.  This time around, a similar idea took root to allow me to use an Icom transceiver as a low power WSPR beacon – but on multiple bands that might require multiple antenna options.  Plus, the CIV bus is continually busy with data exchanges involving commands from the WSJT-X software so another technique is required or desired.

Icom makes a DC voltage available on accessories sockets on its modern-ish HF and HF/VHF/UHF transceivers { a few other brands provide the same optional voltages so this project, while noted as Icom, could be used with at least some other brands.} and this can be pressed into service for simple bandswitching – within limits.  If you examine the table below – as extracted from the Service Manual for the IC-706Mk2G – and noting the underlined text, it can be noted that one range is for the entire 15 to 22MHz, another for 22 to 30MHz.  The countries that have 60M should note that 60M and 40M are in the same band voltage range. That means that you can’t determine whether the current band is 5.3 or 7, 18 or 21 MHz, or  24 or 28 MHz.  If that is an issue for you, don’t go any further.   My current case is where I am using a short-ish “long wire” (about 10M long) up into a tree as the antenna for all bands from 10 to 30 MHz, with a plan to maybe add another longer wire for 7, 3.5 and 1.8 MHz. It is a simple edit and re-program to change for alternate configurations anyway. The existing wire is fed via a 4:1 UN-UN to make it a little better match to 50 ohms to attach to this band-switch unit. 


Nominal IC-706MK2G band switch voltages - but multiply by 2 

While it is possible to sense the magnitude of a DC voltage using a series of comparators, these days it is easier to use a more-intelligent device like a PIC or PICAXE – the latter being easier to utilise as far as I am concerned.

My project is based on two PCBs, one with a 20X2 or 20M2 SMD PICAXE chip plus a few SMD resistors and a SMD 5V regulator and then a second PCB for mounting the relays and the driver FETs to control them.

In essence, the Icom Band Voltage ( about 0 to +8V) is fed into an ADC input via a voltage divider and then the value of the ADC is compared against a set of limits to select which output is made active (ie a high or +5V).  I made it a little more complex because I also feed in the HSEND and VSEND voltages from the accessories port on the radio so I can tell if the radio is in transmit mode - or not.  This latter function means that I don’t have to hold the relays activated all of the time, wasting DC power and having them get hotter than need be. When it detects a PTT operation, it will then pull in the relevant relay as determined by the currently-selected band voltage.

You may ask why do it on 2 separate PCBs ?? Well the answer is that the relays should handle switching the 100 watts of RF from the radio at full power and I don’t like exposing devices like microprocessors to high RF fields. RF could subsequently cause abberations in the program flow. Two boards means more physical separation is possible as well as more RF filtering options.

I measured the Band Voltages on my IC-718  and the resulting ADC value in 8 bit mode (0-255) :



ADC – 8bit




3.6 MHz



7.1 MHz



10.1 MHz



14.2 MHz



18.1 MHz



21.1 MHz



24.9 MHz



28.5 MHz




By interpolation, setting a rig to 50 MHz should produce an ADC value around 50  If you double the DC values in the previous graphic, you can see that the voltages are not exact matches to those published but are approximate only.

When using a PICAXE, it is simple enough to vary the values in the ‘case’ statement so that a range of values is acceptable for each “band” selection.

The HSEND and VSEND voltages are very close to +5V on receive and near zero on transmit. The ADC value read in receive mode was around 190 so my test statement there is that an ADC value below 100 means transmit mode, above 100 is receive mode. [ series resistor 4.7K, shunt 5.6K so output to the ADC pin is around 0.54 * of the input voltage.]

** Modification to the original idea on the VSEND line - inline diode (K towards radio) plus a 33K pullup resistor to +5V at the ADC input PCB pad. Just solves VHF Tx sensing issue in my code when used with a HF-only Icom radio. Does not affect HF/VHF operation.

Resistors R8 to R11 are 270 ohms so can be used to drive LEDs directly during any testing phase. R1, R3, R5 is 4.7K, R2, R4, R6 are 5.6K.

My PICAXE code is not available for dissemination but should be easy  enough for others to emulate given the descriptions above plus some common sense.

The PCB is 35mm x 38mm, single-sided FR4 material.  Note: My PCB layout files are NOT available either, although the images above should be enough to a talented experimenter to re-create them from.

I also implemented the pins SCL (serial clock) and SDA (serial data) and have temporarily attached an LCD display to the control PCB and it indicates the selected band, the ADC value, the current RF output port and whether the transmit mode is currently active.  It is not mandatory to keep the display attached but it sure helps when you are debugging code ! 



Moving onto the RF switching PCB now. The relays I used were sourced from Jaycar under part SY4066, 12V 10A, with a 400 ohm coil.  There are 3 of these daisy-chained so that the output marked Default (or the ‘0’ output) is connected through when no relays are activated. A positive +5V on the terminal IN1 causes OUT1 to be made active, IN2 causes OUT2 to be made active, IN3 causes OUT3 to be made active. Special note here – if you plan to use an output to a 6M antenna, then make OUT3 the 50MHz port – lower RF loss (for 5W in, 4.6W measured out). 

At HF, the extra inter-relay track inductances on the PCB won’t cause much of a problem. These were made 2.5mm wide on my PCB so approximates 50 ohms with double-sided FR4 fibreglass board material.  The top to bottom layers are joined by short lengths of wire passing through 0.8mm holes drilled through the PCB material, and soldered each side.  The holes where the relay pins pass through were chamfered on the full-copper relay side to remove copper that could foul the holes and create an unexpected ‘ground’ connection.  The PCB is 85mm x 57mm, double-sided FR4 material, only one side is etched.

The relay coils are driven by NTF3055L SMD FETS (not critical) with a 33K resistor from gate to ground and a series 6.8K from the input pad to the gate. A back-voltage protection diode is wired across each relay coil and a few ‘spread’ SMD capacitors are used to decouple the +12V supply rail and across each NTF3055L drain to ground.

With my PICAXE code as stands, OUT3 is reserved for future 50 MHz, OUT2 is for 7 MHz, OUT1 is for 3.5 and 7 MHz, DEFAULT is for 10MHz to 30 MHz.  Of course these port allocations can be changed at any future time by re-programming the PICAXE with updated code.

The last part is to “box” the unit – 5 x BNC female sockets needed, a bit of PCB mounting hardware (screws, nuts..), a few holes to be drilled etc..

Well, that's all done.. The photos at the top of the page show the finished product - even with the 4 x BNC connectors incorrectly labelled .....


The final configuration for my use is set as :

Icom transceiver  -->   LDG ATU  -> Band-switcher -----> Default antenna  - 10 to 30MHz

                                                                               |-----> OUT1 antenna - 7MHz

                                                                               |-----> OUT2 antenna - 1.8 & 3.5 MHz

                                                                               |-----> OUT3 antenna - 50MHz



Images .... 


The PICAXE PC board, 35 x 38mm















The relay PC board, 85 x 57mm. Double sided but only one side etched.


The through-hole jumpers soldered in place to connect top to bottom sides















Top side of the RF PCB. Note the chamfering around the relay pin holes plus the through-board option for the RF connector wires.


Relays in place on the RF PCB















The 'component' side of the RF PCB after assembly















The completed PICAXE PCB : Programming port at LHS, white 4 pin connector to the serial LCD at RHS. 

Orange/White, Brown/White and Slate/White wires go to the relay PCB IN1, IN2 and IN3 points.

Blue/Green is Band Voltage, Blue/Slate is HSEND, Blue/Orange is VSEND.

Green/Brown is ground, Orange/Brown is +13.8 from the radio.

Some PICAXE pins not currently used and available for future revisions.


Note : I initially used a pre-loved 20M2 chip which turned out faulty so the chip was removed and a 20X2 soldered in place. Unfortunately, the solder joints made from that process are not as neat as the original ones !!


Wired relay PCB :

Orange/White, Brown/White and Slate/White wires go to the relay PCB IN1, IN2 and IN3 points.

Green/Brown is ground, Orange/Brown is +13.8 from the radio.

COMMON RF port is at top RHS edge. From LHS at bottom edge : Default, Out 1, Out 2, Out 3















The LCD showing as 160 Metres, ADC from bandswitching voltage as 195 (of 255), Output 1 is selected and the Transmit HF message is because HSEND PTT line is low.