Ham Radio Control Libraries
The following pages are part of the Hamlib Wiki:
Download Links to the latest stable and older releases of Hamlib.
FAQ Some Frequently Asked Questions about Hamlib.
Documentation API, utilities, and other documentation.
Licensing Important legal information.
Supported Radios Current radio support.
Radio Specific Notes Details on some radio backends.
Supported Rotators Current rotator support (incomplete).
Rotator Specific Notes Details on some rotor backends.
Applications and Screen Shots Some of the programs reported to use Hamlib.
Network Device Control Control via TCP sockets.
Credits Contributors of special note.
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.
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.
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! :-)
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).
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.
As Hamlib uses Git as its Source Control Management (SCM) system, "pull requests" for patches may be sent from either GitHub (preferred) or SourceForge.net. Patches (unified diff format preferred) may also be sent to the Hamlib developer mailing list.
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.