AlexOlson.com
HRPO Ham Radio
1. The Purpose
At Louisiana State University, Dr. Guzik is involved in a project that provides educational activities for elementary school and high-school students in the areas of physics and science.
2. The Task
My task was to design and implement a system for remote-controlling a ham radio and antenna rotor over the internet.

The desired features were :

  1. Be able to control the radio's Frequency and Mode (AM, FM, Morse, etc)
  2. Allow only licensed users to transmit (on the ham radio bands)
  3. Automatically track satellites with the antenna rotor, optionally correct for Doppler Effect
  4. A simple interface that is both easy to use and powerful for experienced users

Initially, clients would use a web page to control the radio, since this would require no software installation. (Schools teachers don't usually have admin access )

3. The First Implementation
My first implementation used a C++ server that provided an interface between the hardware and the web CGI program. The server kept track of who was logged in, the state of the radio, and was responsible for doing satellite calculations, etc. A screenshot of the webpage is below.

Audio was transmitted by Netmeeting (2-way, for transmitting) or Microsoft Media Player (Listen Only). Creative use of frames and style sheets allowed the status to update indepdently of the radio controls page. The site's MS Frontpage theme (CSS) was also preserved on the CGI-generated pages.

This server allowed all of the desired features (satellite tracking is not shown, but present). There was only one downside. Every 10-15 seconds the left-hand pane would refresh. Users on dial-up modems (which turned out to be most of them) would loose several seconds of audio while the page reloaded. Also, the latency of these connections made controls a bit sluggish.

4. The Windows Client
2 Years later, I redesigned the server, this time in Visual Basic, and wrote a corresponding Windows client also in Visual Basic. The advantages of this implementation are:
  1. Easier user-interface (Multiple windows, less information on each window)
  2. Faster Response (Persistent TCP connection is maintained)
  3. More Flexible interface (more noise-control features are available)
  4. Still compatable with old Web interface (People can control the radio from the web page or the windows client)

The main window:

The Noise-Control Window:

The Rotor-Control Window:

The Satellite-Control Window: