This site is the personal blog and project repository of George Farris.

If you are looking for the old Cowichan Valley Linux Users Group, check the side navigation. This site contains links to various projects that I either created or contribute to.

You will also find my Github page and Youtube channel here. Contact:

Latest News

Dual band- VHF/UHF dipole

Posted on: November 12, 2020, in AllHam Radio - SDR

This is a description of a dual band dipole that I built for 145.00MHz and 440MHz.  It is a simple build consisting of the following materials:

  • 1″ PVC T
  • Approx 48″ of 1″ schedule 40 PVC pipe
  • 60″ of 3/8″ copper tube
  • 8′ RG58 copper coax
  • Various mounting hardware and U bolts
  • 30 minute epoxy

Test Build

I built a test version first and tested with my antenna analyzer,  I made the elements longer than the required frequencies so I could cut them back to actual lengths once the antenna was permanently constructed.

Here are some pictures, test results and notes of my test build.


As you can see from the photos above, a test build of the antenna is very simple and easy to construct.  The screw terminals on the coax feed point are approximately 3mm apart.

When testing, I calibrated the antenna analyzer with the coax connected to help cancel out any effects of the coax,  the coax is approximately 8 feet long.  OSL calibration with the EU1KY analyzer consists of 3 measurements on the end of the coax.

  1. 0 Ohms
  2. 50 ohms
  3. Shorted

Once this is complete we can now scan our frequency ranges and see the results.  I first scanned the antenna from 100MHz to 200MHz and then from 400MHz to 500MHz. 

I cut the VHF elements with an approximate length for resonance in around 120MHz to 130MHz, 22″, to ensure they would be longer than required for 145MHz, this allowed me to trim the elements later for exact placement in the Amateur band.

The UHF, elements were also longer at 7″.

Impedance with the dipole is a function of the distance from the metal tower or antenna mast.  As you move the antenna closer to the metal structure the impedance drops until theoretically it would be 0 ohms at 0 distance.

I started with the antenna clamped to the tower at a distance of about 16″, this gave me an impedance of 66 Ohms.  I moved the antenna closer to the tower until I had an impedance of close to 50ohms on each band.

The results are below and as you can see it works very well for the resonant frequencies of both the VHF and the UHF elements.

The 3/8″ tubing is large enough to provide enough bandwidth to cover both the 144MHz and 44MHz Amateur bands with a low SWR. 

Now on to permanent construction and tuning.


Finished Antenna

With the test build confirming the antenna design seems valid I moved on to the finished construction.

First the elements were mounted inside a 1″ PVC T enclosure.  I then 3D printed a spacer to hold the elements in place and poured epoxy in to seal the elements from weather and holds them solidly in place.

You could also make the spacer out of cardboard as it is not structural but used to stop the epoxy from leaking out.

Here is a shot of the epoxy seal for the upward facing elements.  I used West Systems epoxy but you could use anything as long as it seals against weather and structurally holds the elements in place.

I sealed the bottom elements in a similar fashion but only used about 3/16 of an inch of epoxy.  After the bottom epoxy set, I drilled two small holes, to enable moisture to escape the PVC T enclosure.


I connected coax to the elements as shown in the test build above, mounted the antenna on a 10 foot steel mast in the middle of the driveway and proceded to trim the elements to bring the antenna into the Amateur bands of 145MHz and 440MHz.

EU1KY Antenna Analyzer

Posted on: October 23, 2020, in AllHam Radio - SDR

This page is a description of the modifications made to the EU1KY antenna analyzer project.
The FAA-450 Antenna Analyzer is an open source project built from STM32-F7 Discovery board. It has the following features:
  • Colour TFT LCD with capacitive touch.
  • HF/VHF(UHF) frequency coverage (500KHz-500MHz.
  • Built-in TDR function.
  • Multiple scanning curves including SWR.

The analyzer uses DSP technology to analyze the sampled signal and derive the their magnitude ratio and phase difference.

Full open source software is available at

Development is done by cross compiling for the STM32F746 board on windows (Embitz IDE) or linux (makefile with arm-none-eabi-gcc). The generated F7Discovery.hex file found in the bin/Release folder is uploaded to the device using ST-Link loader.

Programming with Windows
ST-Link loader is available from STMicroelectronics. You will need to get the STSW-LINK004 utility and STSW-LINK007 packages.

Programming with Linux
Install stlink with your package manager.
Connect a mini usb cable to the left most (ST-LINK) port, this port is also used for charging and serial port remote control.

Goto the bin/Release folder and issue this command:

"st-flash --format ihex write F7Discovery.hex"
"st-flash write F7Discovery.bin 0x8000000"

The right most USB port labeled USB-HS is used to access the SD card when the "USB HSReader" main menu option has been selected.

List of Custom Software Modifications

Modify splash screen to display QSL card.

TDR chart
Splash screen

To replace the splash screen, create a BMP or a PNG file exactly 480x272 pixels in size. BMP's should be 24 bits. Copy it to the SD card in the AA folder.

See the software changes below.

Modify the signal generator screen.
The analyzer can function as a continuous wave signal generator over a frequency range of 500kHz to 599MHz. Signals above 200MHz are actually using the 3rd harmonic of the internal source.

Generator Screen
Reformated Signal Generator screen

The signal levels are low (0.1 to 0.2vpp), but do radiate when attached to an antenna!. Using the generator mode and a frequency counter, one can adjust the internal crystal calibration factor to get the generator accurate within a PPM or so.

Tapping on the frequency display opens an onscreen keypad where a new frequency in kHz may be entered. Steps of plus and minus 500kHz, 100kHz or 5kHz may be activated by pressing the onscreen row of 6 keys under the frequency display.
Several lines of diagnostic information are displayed that can be used to troubleshoot the hardware receivers, the OSL calibration and the VSWR calculation code. One can also perform a screen save to aid in debugging.

Modify the TDR screen to display coax length in metric and imperial units.

TDR chart
TDR scan showing both metric and imperial lengths

Modify the highlighted ham bands to represent the North American frequency ranges available.
See panvswr2.c for reference.

On the CONFIGURATION screen of your analyzer, hit Next_param until you see SHOW_HIDDEN, set it to YES. Now find the parameter labeled IARU Region and set appropriately. In North America we are Region 2.
Also, you can modify the SWR panoramic display to position the cursor bar on the point of lowest SWR on the displayed graph, if you like.

SWR chart
SWR scan of 6M vertical

Software Modifications

Modify the Src/main.c file on approximatley line 122, add the while statement.
#ifndef _DEBUG_UART
if (ShowLogo()==-1)// no logo.bmp or logo.png file found:
    LCD_DrawBitmap(LCD_MakePoint(90, 24), logo_bmp, logo_bmp_size);// show original logo
    while(!TOUCH_IsPressed());      // lpg hang until screen tapped
on approximately line 138 of Src/main.c change

To force version timestamp because the windows script doesnt work with wine when running under linux.
Modify the Src/analyzer/window/mainwin.c file on approximately line 472, after the line below, add the the two #defines, remember to change the callsign.

//Initialize textbox context

//modified by KD8CEC
#define BUILD_TIMESTAMP_US "23-Oct-2020-VE7FRG"
#define BUILD_TIMESTAMP_D "2020-10-23-VE7FRG"

if (DatumDDMMYYYY)
To display cable length in m and ft in a different screen location,
change Src/analyzer/window/tdr.c on approximately line 239
tdr.c  display cable length in m and ft in a different screen location
    FONT_Print(FONT_FRANBIG, TextColor, BackGrColor, 220, 200, "%.2fm %.1fft", lenm,lenm * 3.2808);    

Files / Downloads / Links

Free windows IDE for ARM:
STMicroelectronics ST-Link software:

A new version based on the KD8CEC mods
Adds S21, 1200Mhz+, beeper, rtc, FT8 and much more).

Oct 23 2020 hex image: F7Discovery.hex - 1.7M analyzer image.
Oct 23 2020 source files:

Github repository for above image

Github repository forked from

Linsmith related links

You can download John Coppens ON6JC/LW3HAZ excellent Linsmith program from

VE7IT's linsmith remote control patch: linsmith-remote.patch for linsmith-0.99.28 (19.2kB).

Older project source files

Oldest project source files: (8.1Mb).
Another version project source files: (9.0Mb).
Modified project source files: (10.0Mb).


Analyzer kit/assembled supplier:

Setting up a new STMF746G-DISCO CPU board

I had the unfortunate opportunity to drop my analyzer, I really don't recommend doing that. Needless to say it did not survive. The CPU board was damaged and the display no longer worked. I ordered a new board from Mouser.

The battery charging would not work until I upgraded the firmware on the board, Use the LINK-007 package mentioned above to upgrade the firmware, it runs under both Windows and Linux.

On the stock board, you also need to change 4 jumper settings. Change the jumpers as follows: Remove the jumpers from SB3 and SB5, jumper SB1 and SB4. Check SB1 and SB4 for continuity and that SB3 and SB5 are now open circuit. These jumpers are near the SD card connector and are used to drive the Si5351 SCL/SCD on the RF board.

QRP Labs LimeSDR Enclosure.

Posted on: March 27, 2018, in AllHam Radio - SDR

I recently got a LimeSDR board and also bought a QRP Labs case for it. The QRP Labs case brings all the RF connectors out to the front and rear panels and also includes heatsinks for the chips and a case fan.
Assembly instructions are here.

Parts list:
    1. 12pcs SMA to U.FL pigtails
    2. aluminium shell bottom (4 holes)
    3. aluminium shell top (fan cutout, 2 holes)
    4. 4 rubber pads
    5. 4 plastic screws
    6. 8 plastic nuts
    7. fan 30x30 5v with mesh
    8. pinheader
    9. heatpad (1pcs, cut later into more pcs)
    10. 6pcs heatsinks (1x + 2x + 3x)
    11. PCB panel (front, rear)
    12. 8 panel screws
    13. 4 bicolor LEDs
    14. 2 LED holders

Software: There are four software packages that I use with the LimeSDR as well as the LimeSuite from Myraid RF.

Users especially Hams should consider the HF mod