Matt Roberts

A Page in Progress

Contact by Email
matt-at-kk5jy-dot-net

Personal
First, some links about me, and my current activities:

Resume: I have spent time wearing a lot of different hats.  If you are looking for someone to join your technical team, check out my current resume.

Faith: I encourage you to check out the links to Faith, below, for a number of websites about faith in Jesus Christ.  Always remember that the story of the entire Bible is how a Holy God reconciles sinful man to Himself through His Son.

Radio Projects
Several radio-related articles are available below, divided into a few broad categories.  Projects include antennas, automation, software and firmware. Transmitting and receiving antennas are grouped separately, although transmitting antennas are also certainly capable of reception.

These projects are a mixture of hardware, software, and firmware, although I have tried to group similar projects together.

HF Receiving Antennas

Loop on Ground - Receiving Antenna for HF Low Bands
An experimental antenna for HF reception.  It consists of a single loop element mounted on the ground.  It is stealthy, small, and quiet.  EZ-NEC plots and on-air test results are included.

The Single Small Loop Element for HF Reception
A single, small, nonresonant vertical antenna element offers a number of advantages as a receiving antenna for HF and MF, with an SNR performance substantially better than most common transmitting antenna types.  EZ-NEC analysis and prototype antenna designs are provided.  This also serves as the basic element of the two-element arrays described in the article below.

The Porch Loop
This is an example of a small receiving loop that has been adapted to fit in a restricted space.  It is the same device as the SRL described above, but modified to be both larger and inconspicuous, and installed in a convenient location.

Small Loop Antenna Array for HF Reception
This is a two-element array of nonresonant, small loop antennas, used for highly-directive reception on the longer wavelengths.  EZ-NEC analysis is included, and a first draft build of the antenna is described.

HF Phased Array Antenna, using Dipole-on-Ground Elements
A two-element array of nonresonant short dipole antennas, installed on the ground, for highly-directive reception on the longer HF and MF wavelengths.  EZ-NEC analysis is included.

A Simple Receiver Protection Device
A simple, inexpensive receiver protector for HF stations with independent transmit and receive antennas.

The Ladder Line Antenna
This is an experimental antenna that uses ladder line for HF reception on the longer wavelengths.  It is still in development, but early results show modest F/B ratio, comparable to two-element beam antennas.

Notes on Phased Pair Receiving Antennas
I frequently hear from people who ask me for more details on how to combine two simple receiving antennas into a single phased array for HF.  This article is my notes on some of the options available, and how to get started.

Frequently Asked Questions - Beverage Transformers
I also hear from people who ask me for more details on how to build their own Beverage transformers for receiving antennas.  This addresses some frequently asked questions about transformers.

HF and VHF Transmitting Antennas

Small Transmitting Loop Antenna Projects
A summary of my experiments using small transmitting loop (STL) antennas for high power levels at HF.  The article covers construction considerations and outlines the process I followed and some of the experiments done with these antennas.

A Two-Band Halo Antenna for ES Season
Borrowing heavily from the 6m halo design (below), this antenna is a two-band antenna for 6m and 10m, sharing a single coaxial feed.  This antenna is intended for use in the ES season, when 6m and 10m are particularly active.

A 6m Halo Antenna
A design for an inexpensive 6m "halo" antenna for VHF.  This is a great starter antenna for working 6m SSB and digital modes, since it is horizontally polarized and omnidirecitonal.

"Hacking" the Butternut HF2V
The HF2V is a workhorse antenna for 40m and 80m DX work.  I use one at my house as a transmitting antenna for digimodes.  This article describes how to upgrade the antenna to add 30m and 20m, to cover the most active digimode bands during the sunspot minimum.

"Hacking" the Alpha Delta DX-DD
The Alpha Delta DX-DD antenna at my house has become a solid performer for NVIS work, even during the sunspot low.  This article describes how I built one of these from scratch on a budget, and the measurements taken from the resulting antenna.

"Hacking" the J-Pole
This design was perhaps more influenced by the J-pole antenna, rather than based on it.  The J-pole is a popular hobbyist antenna, particularly for beginners, but it is very tall, even for a vertical antenna.  This article describes an antenna that fits into a similar form factor, is simpler to build and adjust, but is much shorter than the J-pole for a given frequency.

A Simple, High-Performance Vertical Antenna
A local ham recently asked me for a recommendation for a dedicated 20m antenna for Field Day, that could be easily and quickly assembled, but was also high-performance.  I recommended a vertical antenna design, scaled from a design presented decades ago in QST.  He build it and it worked very well.  This article describes the details of the design, which can be easily scaled for just about any HF band.

Vertical Antenna Notes
These are tips on vertical antenna installation that I have put together over saveral years of building such antennas.

A Small, but not Compact, 160m Transmitting Loop for Small Lot Contesting
As a companion project to the Loop on Ground antenna, this is a 160m small transmitting loop that I constructed for winter 160m CW contesting from my small residental space.

Genetic Algorithms for Small Loop Antenna Design
This project uses GA/GP/EC techniques to optimize small transmitting loop antenna designs, while balancing competing design constraints.

A QRO Multi-Band Dipole for $50
This article describes a series of projects and experiments using window line for remote matching of a multi-band high-power dipole for HF.  The resulting antenna can easily handle any legal power level on multiple bands, without the need for expensive reactive elements.

Antenna System Automation and Monitoring

Remote Station Monitor for TS-590SG
This is a very lightweight remote monitoring utility that I use for remote operation of my TS-590SG.  It shows critical meter and state values in a compact text-based interface that consumes tiny amounts of bandwidth.

AutoCap
Another loop-related project I am working on is an auto-tuner for QRO small loops, which is being tested right now.  The software is a .Net application, paired with Arduino hardware.

AutoCap Firmware v1.5
The AutoCap project supports an optional component, which is an Arduino microcontroller for managing a motorized capacitor on a small loop antenna.  The firmware is intended to be used with the AutoCap software, but it can also be used in a stand-alone application.  The newest version supports a complete user interface with a display and buttons to completely manage the motor movement, with or without a PC.  This enables remote manual control of a motor with the same precision as can be accomplished with the AutoCap desktop software.

Digital SWR Meter Project
In order to make the AutoCap project completely Open Source, I have added a project for an inexpensive USB SWR meter kit, also based on Arduino hardware.  Support for this kit has been added to the AutoCap software.

RotorCraft
Looking for a simple, elegant rotor control console for Windows or Linux?  So was I, and I couldn't find one!  So I wrote this one as a companion for the rotor controller project listed above.  This version is based on .Net, so it runs on Windows and Linux.

A Digital Computer-Controlled Rotor Controller for $70
This is a brief article about using an Arduino to build a rotor controller for my back yard hexbeam, based on updated K3NG firmware.

Digital Modes

Thoughts About FT8
My experiences with FT8 have been a bit unique, so here are some perspectives from my time on the air with WSJT-X.

A Modem for FT8 and FT4
This is a command-line "software modem" for FT8 and FT4, enabling full FT8 and FT4 operation without a graphical user interface.  It provides a fully scriptable pipeline application that can send and receive these modes, useful for automating operation.

A Text Display for FT8 Operation
This is a companion project to the ft8modem, above.  It provides a text-based display of FT8 data in real time, that can be run in a terminal window or SSH session, to aid in remote operation.  The display closely emulates the format of the main window of WSJT-X, but consumes a fraction of the bandwidth when run remotely.

A Flexible Digital Mode Interface — AnyRig
Digital modes require an interface between the computer running the required software, and a radio transceiver.  This project uses an inexpensive Teensy microcontroller as the core of a flexible interface that provides a high-fidelity sound card and VOX functions for controlling the radio.  The interface firmware supports variable VOX delay, CW and RTTY keying via audio (such as is available from Fldigi), and RTS and DTR control of any keying function, all via a single USB connection to the PC.  Devices built on this firmware can support virtually any digital mode on any widely-available desktop or embedded operating system.

SmallDV
The SmallDV project is a software kit for building a FreeDV appliance using Raspberry Pi.  The kit is a work in progress, but the current state implements basic functions needed to build a "box" for FreeDV.

An Updated Hardware Keying Interface for Fldigi (and others)
The Fldigi software supports hardware keying of radio transmitters through a simple circuit that converts on-off audio waveforms into open-collector key closures.  The circuit can be used for CW (A1A or Morse) keying, PTT keying, and RTTY FSK keying, which makes it rather versatile.  It can even be used with other software that supports similar audio-to-hardware keying.  The circuit described in the manual is a little dated, however, and this article describes an updated circuit that uses readily-available (and inexpensive) replacement parts to do the same thing.

Comparing FreeDV and Analog Voice Performance
The FreeDV software provides an open and original implementation of digital voice (DV) designed for HF communications.  This is a brief comparison of the performance of several different FreeDV modes in varying signal-to-noise ratio conditions, alongside analog voice in identical conditions.  Audio and image files are available for each type of transmission for each SNR value tested.

HF Modems, Version 2
Or, "how I turned contesting from work into enjoyment, even while portable."  This is an updated version of the CW and RTTY modems, optimized for contesting purposes.  The modems are built with more computationally powerful hardware, that still has very low power consumption.  It describes a cross-platform software package that is purpose-built to use the modems with a near-optimal contest workflow, minimizing the effort of making and logging contacts in a high-rate environment.

A PSK-31 Modem for Arduino
This is a follow-up project to the RTTY and CW modem projects, and rounds out my pursuit of an Arduino implementation of the "big three" digital modes.  This modem does audio decoding and encoding of PSK-31, and can be configured for other speeds.  The modem uses an Arduino UNO and can be fully operated from a simply serial terminal.

A RTTY Modem for Arduino
This is a follow-up project to the CW modem.  This modem does RTTY decoding and encoding, and can do generate both logic-level and AFSK output for transmission.  The modem uses an Arduino UNO and can be fully operated from a simply serial terminal.  The hardware interfaces developed can also be used for the CW modem project.

A CW Modem for Arduino
I gave myself the challenge of getting a tiny Arduino board to do both CW encoding and decoding, just using the CPU power that was on the board.  This article supports the hardware and firmware developed to meet the challenge.  The decoder supports reading CW tone data from either a dedicated hardware decoder IC, or from audio data using the Arduino's A/D input.

Building Fldigi for Raspberry Pi
The Raspberry Pi is a great addition to the family of hobbyist SBC boards, and it brings the RasPi platform to a level of computational power that it can run the popular Fldigi digital mode software.  In order to get the most out of the Fldigi package, including the most recent radio support, it is best to build it from source, and this article describes the process I follow to get the latest version of Fldigi running on the Raspberry Pi.

Building Gqrx for Raspberry Pi
Similar to the fldigi article above, this describes building of the Gqrx SDR receiver application for the Raspberry Pi.

Building FreeDV for Raspberry Pi
Similar to the fldigi article above, this describes building of the FreeDV digital voice software for the Raspberry Pi.

Building WSJT-X for Raspberry Pi
Similar to the fldigi article above, this describes building of the WSJT-X digital mode software for the Raspberry Pi.

TweakTime
This is a small utility for hand-adjusting the local PC time when operating WSJT-X remotely, when NTP and GPS time sources are unavailable.

A Blocked Call List for WSJT-X
The high level of automation in WSJT-X makes it easy for a malicious or malfunctioning station to interfere with your running contacts on the air.  This is a small C++ patch for WSJT-X that adds a blocked call list, that will prevent the automation from answering stations on the list.  This is a fast and easy way to work around problem stations and still maintain a good QSO rate.

A Software EAS/NWS Data Receiver for Linux
This project provides a small utility for demodulating the FSK SAME messages that are broadcast with weather alerts and other EAS messages.  The utility can decode audio from either a sound card or a WAV file, and instructions are provided for how to tie the demodulator to other utilities to read the SAME-encoded message contents.

Other Stuff

Software Modules for Amateur Radio
This is a collection of software modules I use in multiple radio-related software projects.  The current list is only in C#, but I may add others later.  Modules include ADIF logging and Maidenhead Locator ("grid square") calculators.

A Homebrew Mobile Mount for Nearly Any Vehicle
I was rather unsatisified with the available options for mounting an HF radio control head into the various vehicles I have driven, so I set out to make one that would be universal, effective, ergonomic, and as it turns out, very inexpensive.

License Study Software for FCC Elements
While studying for my commercial FCC license elements, I wrote this program to help me drill the entire question pool.  The presentation is much like flashcard study, and was very effective in preparing me for the commercial elements in a short amount of time.  The software has now been extended to US Amateur Radio license question pools.

QSL Information
Hobby-related contact and service participation information.

Software Projects
Below, you will see some examples of other small software projects.  These are mainly small utilities and libraries I have written to make my life easier in different projects.  Everything here is GPL or LGPL licensed.

MY++
This is a C++ library that contains tools for many things that I couldn't find in C++ standard libraries.  Since I started this project, many things have been added to C++, but it's still a useful library for me.

Simple Image Viewer
This is a C#.Net application that I cooked up in an evening to be able to animate and view long lists of SOHO imagery from NASA.  I have thousands of these images backlogged, and I want to flip through them quickly to find anomolous frames.  Not finding a ready-made tool that I liked, I just used C#.Net to make one.  This project requires the CLR 2.0, which does most of the heavy-lifting.

Monopole Antenna Efficiency Calculator
This is a C#.Net application that calculates the efficiency of an electrically-short monopole antenna, given several parameters about the antenna system. Requires MS CLR 2.0.

sgateway
The sgateway package implements a serial (RS-232) gateway between two different Linux systems. Building the package requires the my++ library, above.

qmail-listfile
This is a simple delivery filter for Qmail. It is meant for invocation from the dot-qmail file in the user's home directory. This package requires my++, above, to build properly.

daylog
This is a pipeline logger, similar in usage to multilog from DJB's daemontools package. This logger is different, in that it creates a file for each clock day that it is run, rather than rotating files based on logfile size, as is the case with multilog. I still use multilog for many apps, but for specific projects, I needed a more calendar-based logger, and this was it. Written originally in C, the source is now C++, with a very C feel.

id3util
This is a utility written in Python which makes use of the ID3 Library and its associated Python extension to tag MP3 and OGG files. I couldn't find a really flexible tagging program that could be easily scripted on the command line, so I wrote one.

timelimit
One of my first Ruby projects, this utility runs a child process for a specified maximum time, and then terminates it if it tries to run longer.  This is a tool I use for scripting programs that I want to run over a specific time of day, such as recording my favorite radio programs, so I can listen to them later.

bintail
The bintail package contains a single application, bintail. The program reads a normal file from disk, and pipes the output to stdout, byte-by-byte, with no translation, similar to what tail(1) does to text files. This is useful for "tailing" binary files, such as WAV files, while they are being written in realtime. This app is a work in progress, but it already does what it was designed to do for me.


Document version 2024-10-03.