Preface The Personal Computer has arguably become as prominent of a fixture in the modern hamshack as HF transceivers and handheld radios. The first PCs hams used combined with an interface also known as a terminal unit, TU, replaced the noisy mechanical radio teletype, RTTY, machines. Gradually, other uses became apparent for the hamshack PC such as logging contact information, operating newer digital modes such as AMTOR, a forward error correcting (FEC) mode of RTTY, and packet, an error checked way of transfering binary data between computers. In the mid to late 1980s radio manufacturers began to offer computer control capability to their offerings. Now the shack PC had one more duty added to its repertoire. However, the amount of control over a given radio's capability by computer control was often much less than from the front panel. In large part was due to many analog controls on the front panel that weren't under control of the radio's CPU. Thus most radio control has been limited to control of frequency values of the variable frequency oscillators, VFO, and recalling and setting the radio's memory channels. More recent models have more of the front panel controls under the supervision of the radio's CPU, consequently manufacturers have enabled more control of the radio's functions through the computer interface. This has created an explosion of command functions not just between the different manufacturers, but also among a given manufacturer's product line. There may also exist subtle differences in later versions of a given model. For the software author wishing to incorporate even the most basic of radio control functions, the task is daunting. Even the long lived logging program CT by Ken Wolff, K1EA has reports of subtle bugs in one radio model or another (this is not intended as a knock of Ken or his effort, rather it is an observation of the complexity of supporting a multitude of radios in a monolithic program by one or a few authors). Is every programmer doomed to recreate radio control themselves with varying degrees of success? The answer is, no! Enter the Hamlib project. Hamlib aims to provide application authors with a single application programming interface, API, regardless of the actual radio in use. Thus Hamlib is not an end user application, but is a middle software layer that acts as a translator between the API and the specific radio commands. This manual will attempt to explain in detail the Hamlib API , how to use Hamlib for writing radio control software, how to write a radio backend library, and an overview of Hamlib's structure and design. Finally, Hamlib is Free Software licensed under the GNU Public License, GPL, version 2. This will have certain implications if you are a software author considering using Hamlib as a part of your project. Consult the COPYING file in the base directory of the Hamlib source distribution for more details.