Menu

Hamlib

Nate Bargmann
There is a newer version of this page. You can find it here.

Ham Radio Control Libraries

Introduction

The Ham Radio Control Libraries, Hamlib for short, is a development effort to provide a consistent interface for programmers wanting to incorporate radio control in their programs. Hamlib is not a complete user application, rather, it is a software layer intended to make controlling various radios and other shack hardware much easier. Hamlib will allow authors of such software as logging programs, digital communications programs, or those wanting to develop the ultimate radio control software to concentrate on the user interface and the basic function of the program rather than radio control.

Hamlib design

Radios with a clone capability

Hamlib's focus is on controlling rigs that employ a port and command protocol for setting frequency, mode, VFO, PTT, etc. Most VHF/UHF transceivers do not employ such control capability but do provide for cloning the memory contents from radio to another of the same model. A related project, CHIRP, aims to support rigs with such a clone capability. Please contact the CHIRP project for support of such rigs.

Pronunciation

English speakers seem to have two alternate pronunciations for our project:

  • Hamlib (Ham - lib, long "i", as in library.) IPA style: /'ham læb/
  • Hamlib (Ham - lib, short "i", as in liberty.) IPA style: /'ham lɪb/

Then again, we have people who say Linux "L-eye-nux" and those who say "L-in-nux"...

If you're French, the above does not apply! :-)

Motivation

Most recent amateur radio transceivers allow external control of their functions through a serial interface. Unfortunately, control commands are not always consistent across a manufacturer's product line and each manufacturer's product line differs greatly from its competitors.

Hamlib attempts to solve this problem by presenting a "virtual radio" to the programmer by providing an API to actions such as setting a given VFO's frequency, setting the operating mode, querying the radio of its current status and settings, and giving the application a list of a given radio's capabilities. Unfortunately, what can be accomplished by Hamlib is limited by the radios themselves and some offer very limited capability.

Other devices, such as antenna rotators, can be placed into the hamlib control scheme. Other recent developments include network interface servers and a USB interface capability. Language bindings are provided for C, C++, Perl, Python, and TCL (more to come).

Help wanted!

Hamlib was originally the project of Frank Singleton, VK3FCS/KM5WS and Stéphane Fillod, F8CFE. In the Hamlib 1.1.0 ALPHA announcement, Frank said, "Get on board and help us write the frontend and backend libs for all the rigs out there. If we can talk to it, we want to control it!!"

The latest news is available on Hamlib News.

Discussion and user assistance is carried out on the hamlib-developer mailing list. Archives of the list and alternate ways of viewing the list (via Web page, RSS, or news reader) can be found through the Gmane Hamlib searchable archive.

The Hamlib projects needs your contribution for a big logo. Please submit your proposal (work copyrighted by you or in the public domain) to the hamlib-developer mailing list. We could use a set of icons of various sizes from web page .ico files upward.

Disclaimers

TRADEMARKS: The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

LINKS TO THIRD PARTY SITES: This site contains links to other sites. We are not responsible for the content of any linked Web site.