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 E
S 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.
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.