Support QRP CoA Everywhere

Friday, 12 April 2019


Not exactly straight forward.

The Pluto is found, is working but cannot seem to add it into GNURadio so no blocks. The rest of GNURadio is working fo the other recent sdr additions lime, rtl and sdrplay.

dmesg shows:

 [1183973.502185] usb 1-2: new high-speed USB device number 71 using xhci_hcd
[1183973.632079] usb 1-2: New USB device found, idVendor=0456, idProduct=b673
[1183973.632082] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[1183973.632083] usb 1-2: Product: PlutoSDR (ADALM-PLUTO)
[1183973.632084] usb 1-2: Manufacturer: Analog Devices Inc.
[1183973.632085] usb 1-2: SerialNumber:
[1183973.635560] rndis_host 1-2:1.0 eth0: register 'rndis_host' at usb-0000:00:XXXXX, RNDIS device, XXXXXXX
[1183973.637101] usb-storage 1-2:1.2: USB Mass Storage device detected
[1183973.638074] scsi host9: usb-storage 1-2:1.2
[1183973.638367] cdc_acm 1-2:1.3: ttyACM0: USB ACM device
[1183973.654625] rndis_host 1-2:1.0 XXXXXX: renamed from eth0
[1183973.677832] IPv6: ADDRCONF(NETDEV_UP): XXXXXX: link is not ready
[1183974.634914] scsi 9:0:0:0: Direct-Access     Linux    File-Stor Gadget 0414 PQ: 0 ANSI: 2
[1183974.635439] sd 9:0:0:0: Attached scsi generic sg3 type 0
[1183974.635986] sd 9:0:0:0: [sdc] 61441 512-byte logical blocks: (31.5 MB/30.0 MiB)
[1183974.636300] sd 9:0:0:0: [sdc] Write Protect is off
[1183974.636304] sd 9:0:0:0: [sdc] Mode Sense: 0f 00 00 00
[1183974.636486] sd 9:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[1183974.641359]  sdc: sdc1
[1183974.642984] sd 9:0:0:0: [sdc] Attached SCSI removable disk

Humm iio doesn't seem to work.

dom@db-linux ~/Desktop $ iio_info -s
iio_info: invalid option -- 's'
dom@db-linux ~/Desktop $ iio_info -u 0456:b673
Library version: 0.14 (git tag: v0.14)
Invalid VID/PID

Grabbed the gr-iio block from AD but seems I have other stuff missing.

dom@db-linux ~ $ mkdir sdrradio
dom@db-linux ~ $ cd sdrradio/
dom@db-linux ~/sdrradio $ git clone
Cloning into 'gr-iio'...
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 1759 (delta 2), reused 12 (delta 1), pack-reused 1743
Receiving objects: 100% (1759/1759), 351.69 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1208/1208), done.
Checking connectivity... done.
dom@db-linux ~/sdrradio $ ls
dom@db-linux ~/sdrradio $ cd gr-iio/
dom@db-linux ~/sdrradio/gr-iio $ ls
appveyor.yml  ci  cmake  CMakeLists.txt  COPYING  grc  iio-examples  include  lib  python  swig
dom@db-linux ~/sdrradio/gr-iio $ mkdir build
dom@db-linux ~/sdrradio/gr-iio $ cd build/
dom@db-linux ~/sdrradio/gr-iio/build $ cmake ../
-- The CXX compiler identification is GNU 5.4.0
-- The C compiler identification is GNU 5.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Build type not specified: defaulting to release.
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   filesystem
--   system
--   thread
--   date_time
--   chrono
--   atomic
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.11")
CMake Error at CMakeLists.txt:125 (find_package):
  Could not find a package configuration file provided by "Gnuradio" with any
  of the following names:


  Add the installation prefix of "Gnuradio" to CMAKE_PREFIX_PATH or set
  "Gnuradio_DIR" to a directory containing one of the above files.  If
  "Gnuradio" provides a separate development package or SDK, be sure it has
  been installed.

-- Configuring incomplete, errors occurred!
See also "/home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeOutput.log".
See also "/home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeError.log".
dom@db-linux ~/sdrradio/gr-iio/build $ apt install gnuradio-dev
[sudo] password for dom:
Sorry, try again.
[sudo] password for dom:
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following additional packages will be installed:
  libcppunit-1.13-0v5 libcppunit-dev liblog4cpp5-dev
Suggested packages:
The following NEW packages will be installed
  gnuradio-dev libcppunit-1.13-0v5 libcppunit-dev liblog4cpp5-dev
0 to upgrade, 4 to newly install, 0 to remove and 303 not to upgrade.
Need to get 687 kB of archives.
After this operation, 7,480 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 xenial/universe amd64 libcppunit-1.13-0v5 amd64 1.13.2-2.1 [75.9 kB]
Get:2 xenial/universe amd64 libcppunit-dev amd64 1.13.2-2.1 [134 kB]
Get:3 xenial/universe amd64 liblog4cpp5-dev amd64 1.0-4.1 [113 kB]
Get:4 xenial/universe amd64 gnuradio-dev amd64 [364 kB]
Fetched 687 kB in 0s (2,462 kB/s)    
Selecting previously unselected package libcppunit-1.13-0v5:amd64.
(Reading database ... 424088 files and directories currently installed.)
Preparing to unpack .../libcppunit-1.13-0v5_1.13.2-2.1_amd64.deb ...
Unpacking libcppunit-1.13-0v5:amd64 (1.13.2-2.1) ...
Selecting previously unselected package libcppunit-dev.
Preparing to unpack .../libcppunit-dev_1.13.2-2.1_amd64.deb ...
Unpacking libcppunit-dev (1.13.2-2.1) ...
Selecting previously unselected package liblog4cpp5-dev.
Preparing to unpack .../liblog4cpp5-dev_1.0-4.1_amd64.deb ...
Unpacking liblog4cpp5-dev (1.0-4.1) ...
Selecting previously unselected package gnuradio-dev.
Preparing to unpack .../gnuradio-dev_3.7.9.1-2ubuntu1_amd64.deb ...
Unpacking gnuradio-dev ( ...
Processing triggers for man-db (2.7.5-1) ...
Setting up libcppunit-1.13-0v5:amd64 (1.13.2-2.1) ...
Setting up libcppunit-dev (1.13.2-2.1) ...
Setting up liblog4cpp5-dev (1.0-4.1) ...
Setting up gnuradio-dev ( ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
dom@db-linux ~/sdrradio/gr-iio/build $ cmake ../
-- Build type not specified: defaulting to release.
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   filesystem
--   system
--   thread
--   date_time
--   chrono
--   atomic
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
Checking for GNU Radio Module: RUNTIME
-- Checking for module 'gnuradio-runtime'
--   Found gnuradio-runtime, version 3.7.9
 * INCLUDES=/usr/include
 * LIBS=/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/
-- Found GNURADIO_RUNTIME: /usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/ 
Checking for GNU Radio Module: ANALOG
-- Checking for module 'gnuradio-analog'
--   Found gnuradio-analog, version 3.7.9
 * INCLUDES=/usr/include
 * LIBS=/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/
-- Found GNURADIO_ANALOG: /usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/ 
Checking for GNU Radio Module: BLOCKS
-- Checking for module 'gnuradio-blocks'
--   Found gnuradio-blocks, version 3.7.9
 * INCLUDES=/usr/include
 * LIBS=/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/
-- Found GNURADIO_BLOCKS: /usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/ 
Checking for GNU Radio Module: PMT
-- Checking for module 'gnuradio-runtime'
--   Found gnuradio-runtime, version 3.7.9
 * INCLUDES=/usr/include
 * LIBS=/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/
-- Found GNURADIO_PMT: /usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/ 
Checking for GNU Radio Module: VOLK
-- Checking for module 'volk'
--   Found volk, version 1.3
 * INCLUDES=/usr/include
 * LIBS=/usr/lib/x86_64-linux-gnu/
-- Found GNURADIO_VOLK: /usr/lib/x86_64-linux-gnu/ 
-- Found FLEX: /usr/bin/flex (found version "2.6.0")
-- Found BISON: /usr/bin/bison (found suitable version "3.0.4", minimum required is "3.0.2")
-- Checking for module SWIG
-- Found SWIG version 3.0.8.
-- Found SWIG: /usr/bin/swig3.0 
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/ (found suitable version "2.7.12", minimum required is "2")
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.12", minimum required is "2")
-- Performing Test HAVE_WNO_UNUSED_BUT_SET_VARIABLE - Success
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
    linked by target "gnuradio-iio" in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
   used as include directory in directory /home/dom/sdrradio/gr-iio/lib
    linked by target "gnuradio-iio" in directory /home/dom/sdrradio/gr-iio/lib

-- Configuring incomplete, errors occurred!
See also "/home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeOutput.log".
See also "/home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeError.log".
dom@db-linux ~/sdrradio/gr-iio/build $
 ~/sdrradio/gr-iio/build $ cat /home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeError.log
Determining if the pthread_create exist failed with the following output:
Change Dir: /home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_12e3f/fast"
/usr/bin/make -f CMakeFiles/cmTC_12e3f.dir/build.make CMakeFiles/cmTC_12e3f.dir/build
make[1]: Entering directory '/home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_12e3f.dir/CheckSymbolExists.c.o
/usr/bin/cc     -o CMakeFiles/cmTC_12e3f.dir/CheckSymbolExists.c.o   -c /home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTC_12e3f
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_12e3f.dir/link.txt --verbose=1
/usr/bin/cc       CMakeFiles/cmTC_12e3f.dir/CheckSymbolExists.c.o  -o cmTC_12e3f -rdynamic
CMakeFiles/cmTC_12e3f.dir/CheckSymbolExists.c.o: In function `main':
CheckSymbolExists.c:(.text+0x16): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_12e3f.dir/build.make:97: recipe for target 'cmTC_12e3f' failed
make[1]: *** [cmTC_12e3f] Error 1
make[1]: Leaving directory '/home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeTmp'
Makefile:126: recipe for target 'cmTC_12e3f/fast' failed
make: *** [cmTC_12e3f/fast] Error 2

File /home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */

int main(int argc, char** argv)
#ifndef pthread_create
  return ((int*)(&pthread_create))[argc];
  return 0;

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_8c841/fast"
/usr/bin/make -f CMakeFiles/cmTC_8c841.dir/build.make CMakeFiles/cmTC_8c841.dir/build
make[1]: Entering directory '/home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_8c841.dir/CheckFunctionExists.c.o
/usr/bin/cc    -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTC_8c841.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.5/Modules/CheckFunctionExists.c
Linking C executable cmTC_8c841
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8c841.dir/link.txt --verbose=1
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTC_8c841.dir/CheckFunctionExists.c.o  -o cmTC_8c841 -rdynamic -lpthreads
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_8c841.dir/build.make:97: recipe for target 'cmTC_8c841' failed
make[1]: *** [cmTC_8c841] Error 1
make[1]: Leaving directory '/home/dom/sdrradio/gr-iio/build/CMakeFiles/CMakeTmp'
Makefile:126: recipe for target 'cmTC_8c841/fast' failed
make: *** [cmTC_8c841/fast] Error 2

Sunday, 10 February 2019


Full info here

Mine will light up not just on multiplers but after ever qso, well I am a qrp operator :-)

The additional bit is in the code. QRO ops can edit it out.

#define DISPLAY_EVERY_QSO // Comment out this line if you DO NOT want a visual alert when a QSO is logged.
//#define SOUND_EVERY_QSO // Comment out this line if you DO NOT want an audible alert when a QSO is logged.
For the rest of the code:

I use the win-test derivative. (Thanks M1DST for adding).

I will add in my own 'on air' sign too. It uses an LED strip to illuminate.

Wednesday, 6 February 2019

FA-VA5 Antenna Analyser from SDR-Kits

The parcel arrived last week just got around to looking at it.

Will put this together tomorrow and start on antennas at w/e.
I bought the carry case and the calibration kit as well.

Tuesday, 8 January 2019

57 days until C6

Got quite a bit to sort out (all accommodation and flights are done). Will be taking a 4sq on 40m and other antennas.

Adding anti vibration feet to cnc

Little foam golf balls fit in side.
Using M5 hardware (I used Nylon nuts and bolts, more because I had them) They are fitted to the base of the 20x20 Ali extrusion and reduce the noise quite a bit.

Saturday, 24 November 2018

BERU 2019 Where to go?

The search for the next DX location for the BERU contest is underway.

Choices choices... Africa, Caribbean  or Pacific. Plenty of DX in the Commonwealth list and more than a few have decent IOTA targets too.

Reviewing how few of DXped have done from various locations over the past few years.

Looks like will probably end up in the Pacific but as application to some can take a while dropped in licence applications for 5 locations also covering other regions. Shame but right now VQ9 seems impossible to get to for a civilian even though looks like licence would be granted. Got to watch issues with flights in an out of some places with all the radio kit as some authorities have changed the ease of transit lately.

I expect will be right by the sea, well equipped with 4 square and decent VDA etc. Dual KX3 will probably be used and will try the arduino based homebrew SO2R setup again. I will add SDR RX and WSPR to the mix as well as some ATS-3B and mcHF activity.

Depending on the location I expect the mid day RF blackspot I might fill with some satellite work (if applicable). FT-817 and a simple Arrow clone.

Interested to hear any suggestions (hopefully from those that have been there not just an armchair DX request)

Friday, 23 November 2018

Several 4SQ comments and questions?

Since various blog posts and talks a few have asked me about construction of the 4 square antennas I use when DX, so to try and answer questions....posted here in no particular order are some of the questions and my comments:

Couple golden rules:
NEVER NEVER NEVER use a tuner with one of these!

NEVER NEVER NEVER switch direction when RF is 'hot'.

You have to know what I wanted these for... QRP DX trips, I say again QRP DX trips. So when I was DX to you, they should work fine the other way too but you need space (real estate) to build these and I have no idea what they will be like next to a house. They do NOT fit in a normal domestic back garden.

They HAD to work first time every time.

I had to be able to carry this ALL myself to a DX location and put it up. So far this has worked for 40m, 30m 20m and 17m and a 2el for 80m.

I am a QRP op but I made my controller so could handle power (hence the SJ2W boards) as one station on a trip I would 'borrow' had a big linear. In end never used more than 100W. The important bit of the controller was get the phase right and did that with 4 channel scope and junk box/bag of silver mica C and swapped values until got it right. Cable length inside and outside (especially) the box REALLY do matter. I grabbed some dual 6A PVC power cable and used that to make the windings, nothing special about the cable, had to be able to handle the power that would end up going through it..... I have a L meter that will go to nH and the value used was approx. I used a spreadsheet (see my blogsite) for the values. Seriously not rocket science, you use the typical formulae F=2 SQRT(LC) to make sure made it OK. In mine you are taking an input and splitting it to a 90, 180 and 270 output... so the LC network HAS to be right. I used T225B cores don't think it really matters.

To get it to work... easy (after working it out)... put LOW power RF in, sample the different ports (50 ohm dummy loads on them all) with an oscilloscope. You could use a power meter but you NEED to see the phase differences. At it's simplest using a 2ch scope you will see TWO signals depending which is which and you should see the phase difference... simple. Repeat for the other outputs. If they are NOT close to the 90,180,270 so the directions will be in/out of phase rework the windings and the capacitors you use, there really is no alternative. Get it all working at low THEN increase power, borrow power meters if you can and put them on the different ants unless you have homebrewed some kind of current sampling. Switch power off, swap directions, that will tell you how much power will be going to ant 1-4 based on the phase etc... if not equal or you have poorly made verticals you might get odd patterns and more seriously the dummy load might see way too much reverse power when select one ant or another. That equates to lost RF energy. Even with a KW going in and some care on construction mine saw less than 10W going to the dummy load. I put dummy my load in different box (see elsewhere on blog) so it could be cooled separately. Some just put it in the same enclosure, some use actual dummy loads I do not think it is important what is used as long as it matches the antennas load.

Noone seems to say this, maybe most assume builders will know as maybe obvious, the 'controller' is actually two LC circuits back to back AT the frequency of the verts so it is vital you don't build that for say 7.030 and then try and use at say 7.090 verticals, or worse use a tuner .... the word idiot doesn't even cover it. I have heard one guy built for 40m and then used a tuner and raved it worked on 80m, I am not going to comment. Likewise never never never switch with RF hot, I really don't care what relays you have, the contacts will get damaged. Don't ask how I know that one.... switching on RX fine, infact you will do that a lot once you learn how to use it.

My GP were built with heavy duty speaker wire (I think it was) also able to handle KW+ (remember the wire acts like a fuse too!) and all 4 were IDENTICAL... that is 110% vital, take time over making them, the performance of a 4 square antenna 110% relies on these! I used SOTABEAMS 10m travel poles as cheap and reliable and worked for me, the support doesn't really matter as long as not carbon fibre. You could (as many have) just use Aluminium tubing directly. The wire for mine I very wide spacing spirally wound about the poles so even in higher winds the wire doesn't flap about.

The feed lines between the verticals and the controller box is very very important. They are often called phasing lines. I used, lots of chats with Dave G4BUO was the most helpful in the area, was brand new CT100 TV sat coax with SOLID core, foam dielectric, foil and braid dual shielding and well able to take KW and it was 75 ohm (This matters as 50Ohm coax will be way too short for the feedlines at 1/4 wavelength separation, you will have to make them 3/4 wavelength long, will work just as well try it and see!).

Q: Can you get away with only a few radials

A: Not really. In C6AKT I used with 8 raised radials per verical and good have benefited from a lot more. The site was literally right by the shoreline too. You need 4 really good 1/4 GP antennas so focus on building those.

Q:  I was looking at your 4-SQ build pages. I am also building an SJ2W board for 80m, using T225A cores. My LCR meter is at the bottom of its range for the inductance required and it is +/- 0.5uH so it hardly worth using to make the toroids. May I ask how you made yours? Did you measure the inductance or just use the calculated number of windings and then tune with the Scope to make sure the phase of each output was correct?

A: See above. I measured the L on the cores before hand. If you do not have a meter and you have the cores from a good source perhaps use the calculators (google for them) to work out what the L value should be.

Q: Can you use variables for the C values?
A: I do not see why not but one big caveat is temperature variations will be a factor. Initially I used two variables and then switched with fixed values.

Q: I only have a two channel scope and am very inexperienced in using it. Do you know of a guide I could follow on how to tune a 4SQ set up?
A: see above for steps. You must be able to obtain a nice simple plot on the oscilloscope of the input signal (at very low power levels). If the timebase cannot cope with the signal frequency, borrow another one. You cannot do much if it will not.

Q: (more a statement really) I am somewhat afraid of putting too much RF into the Scope and letting the smoke out!

A: See above.

You can mess with that whole part without having the PCB or the antennas. Plenty just point to point wire it all anyway. There is some snake oil in that you CAN adjust the individual GP's for a different freq and use variations on the matching lines to get specific directions but seems far too far fetched for me. IF DX, there for a w/e, that cost £k's to get there you have not got hours to mess getting antennas to work

Q: Why do you bother isn't a simple dipole/endfed/random wire good enough as I made nnn qso from ?

A: Yes a dipole/enfed/random wire will work too to a degree but you have to understand why I wanted them. I built mine for RX directivity NOT TX gain. I'll say again RX not TX. RX >25dB F/B should be easy to obtain. I never cared about TX gain. When you are the DX, especially QRP, an oxymoron for most, you absolutely MUST be able to hear the other side and on LF a GP is great but frankly bugger all use if you need to be sure about one station in couple hundred calling you especially when 99 are at 59+40db and the one you want is 57 at best. The effect will be any QSO rate slows down big time.

I was just looking for RX directivity and came on this all by accident when in SM I had three verticals in a row for a contest on different bands and for fun after contest made a 3el 40m yagi... not for TX but RX. I played with spacing so I could hear the far DX location I wanted. The separation makes a huge difference to the signal F/B ratio and take off angle as sure many know. I made up some FT-114-43 transformers I think to measure the current in each antenna but in the end seemed fine.

Honestly I think chasing TX gain in antennas at HF is almost pointless for a DX op... Directivity and RX gain is where the major benefit is. I do go for the salt water gain though which seems like 3dB every time. That is why some of the top DXCC count guys don't really care about RF 400W, 100W or even 10W.... ask 'em about their antennas on RX. Ask any DXped why do they spend so much time on decent antennas for RX.

Q:That box I used a few times, (you will see in this blog) few have asked why not a metal one?  Where did you get it?
A: Well it was cheap (£5) and I bought a few. Made from ABS and clear top as was light weight, IP56, cheap, fitted the board etc and it was important did not mess with the RF when lid on. My 1st PCB version looked really professional in an old sweet tin but there was so much interaction it was hopeless. I got it from ebay I am sure most electrical wholesalers do IP56 outside enclosures it is one of those you want. DONOT use a dicast box for it.

Q:Will you ever make a 'kit' for someone to make this?

A:Not sure there is either enough in it for me or there are too many 100% homebrew designs out there now?

Q:Will a controller with smaller torroids work at QRP pwer levels

A:Almost certainly. I actually made one using point to point wiring, for 30m,  and T50-2 cores. There might be mileage in making up a PCB that will suit QRP.

Q:What do you use for the controller cable, when you need to switch directions.

A:It all depends what is doing the switching really. If 12V relays you need to be sure that 12V is actually getting to the relay (or you use a transistor circuit to pump up the voltage). To use in one direction or other, as the relays are not latching types, you need the voltage to keep the relays energized. This is NOT battery friendly! I expect you could make the control switching wifi based and use a remote (local to the controller) uPC board but I've not done it yet. Some have used 5V relay instead of 12V ones and 24V as long as the cables can handle the current and there is not too great a voltage drop. I use CAT5 for the first few after checking that I was getting 12V at the control end. Now I tend to use shielded caravan signal cable. REMEMBER this cable is in the RF field so it will (not could!) have induced currents in it.

Q: Can this be built for other frequencies?

A:Yes but you need to be aware that as you go up in frequency the factors related to significant attenuation in the transmision lines of the signals etc start to make this design much less effective. I wouldn't build one at 10m or 6m. I have built one for 15m.

The bible for 4 square for me is ON4UN book on LF but lot of his maths escapes me.I would love to find time to investigate the option of adding a 5th vertical, placed where the controller is but that is a different antenna.