1HAMLIB(7)                  Hamlib Information Manual                 HAMLIB(7)
2
3
4

NAME

6       hamlib - radio and rotator control library
7

DESCRIPTION

9       The  Ham  Radio  Control  Libraries, Hamlib for short, is a development
10       effort to provide a consistent interface  for  programmers  wanting  to
11       incorporate radio and rotator control in their programs.
12
13       Hamlib  is  not  a  complete user application, rather, it is a software
14       layer intended to make controlling various  radios  and  other  amateur
15       radio  station (shack) hardware much easier.  Hamlib will allow authors
16       of software such as logging programs, digital communications  programs,
17       or those wanting to develop the ultimate radio control software to con‐
18       centrate on the user interface and the basic function  of  the  program
19       rather  than radio control.  Hamlib consists of several parts, the pro‐
20       gramming library, utility programs, and  library  interfaces  to  other
21       programming languages.
22
23       Most  recent amateur radio transceivers allow external control of their
24       functions through a serial interface.  Unfortunately, control  commands
25       are not always consistent across a manufacturer's product line and each
26       manufacturer's product line differs greatly from its competitors.
27
28       Hamlib attempts to solve this problem by presenting a virtual radio  to
29       the  programmer  by providing an interface to actions such as setting a
30       given Variable Frequency  Oscillator's  (VFO)  frequency,  setting  the
31       operating  mode, querying the radio of its current status and settings,
32       and giving the application a list  of  a  given  radio's  capabilities.
33       Unfortunately,  what  can  be  accomplished by Hamlib is limited by the
34       radios themselves and some offer very limited capability.
35
36       Other devices, such as antenna rotators, can be placed into the  Hamlib
37       control  scheme.   Other  recent developments include network interface
38       servers and a USB interface capability.  Language bindings are provided
39       for C, C++, Perl, Python, Lua and TCL (more to come).
40
41   Overview
42       Hamlib  is  a front end library providing a C language Application Pro‐
43       gramming Interface (API) to programmers wishing to integrate  radio  or
44       rotator control in their applications.  Hamlib presents a virtual radio
45       or virtual rotator that is a consistent  interface  to  an  application
46       despite  wide differences in radio and rotator interfaces and capabili‐
47       ties.
48
49       The front end library uses a number of back end libraries to  translate
50       from  the front end to the various individual radio and rotator models.
51       A back end library handles conversion of the front end variables to the
52       format needed by the radio or rotator device it controls.  The back end
53       libraries are generally grouped by manufacturer and in some cases by  a
54       common control protocol.
55
56       Hamlib  also  provides  an interface library for each of several common
57       scripting  languages  such  as   Perl   http://www.perl.org⟩,   Python
58http://www.python.org⟩,    Lua    https://www.lua.org⟩,    and    TCL
59http://www.tcl.tk⟩.  These language bindings are generated through the
60       use of SWIG http://www.swig.org⟩, a parser/generator for multiple lan‐
61       guage interfaces to a C library.  A  natively  generated  C++  language
62       interface is also provided.
63
64       Besides  the  C  and  supplemental APIs, Hamlib also provides a pair of
65       network daemons that provide a text command based API  for  controlling
66       an  attached radio or rotator through a TCP/IP network connection.  The
67       daemons then handle the interface to the Hamlib C API.
68
69       More than one type of device, radio or rotator, may be controlled at  a
70       time, however, there is generally a limit of one device per serial port
71       or other port.
72
73   Hamlib project information
74       The Hamlib Project was founded by Frank Singleton, VK3FCS/KM5WS in July
75       2000.  Shortly after Stephane Fillod, F8CFE, joined Frank on the Hamlib
76       project and the API and implementation development led to a  reasonable
77       level  of  maturity in a few years.  A major milestone was reached when
78       Hamlib 1.2.0 was released in  March  2004.   The  API  and  Application
79       Binary  Interface (ABI) interfaces have remained stable since that time
80       up to the release of 3.3 in mid 2018.  Version 4.0 marks a major change
81       to the ABI and certain changes to the API.
82
83       Development  continues  through the major version number 4.x series and
84       beyond.  The 4.0 release marks a major change in the ABI  with  several
85       changes for additional modes and such that will require client programs
86       that use the C ABI to be recompiled/relinked, etc.  Other goals include
87       improving  the  overall  documentation  (this  man  page  with  more in
88       progress), and other updates as warranted.
89
90       The Project is hosted by SourceForge.net  ⟨https://sourceforge.net⟩  at
91       the Hamlib project page ⟨https://sourceforge.net/projects/hamlib/⟩.  As
92       GitHub ⟨https://github.com⟩ has become a very popular  project  hosting
93       site,    Hamlib    also   has   a   dedicated   GitHub   project   page
94https://github.com/Hamlib/Hamlib⟩.  GitHub also hosts  the  hamlib.org
95http://www.hamlib.org⟩     Web    site    and    the    Hamlib    Wiki
96https://github.com/Hamlib/Hamlib/wiki⟩.
97
98       Development discussion and most user support take place on the  hamlib-
99       developer   mailing  list  ⟨https://sourceforge.net/p/hamlib/mailman/⟩.
100       While     there     are     SourceForge.net      discussion      forums
101https://sourceforge.net/p/hamlib/discussion/⟩,  they  are  rarely used
102       and not as closely read by the developers as the mailing list.
103
104       For source code management, the project uses Git http://git-scm.com/⟩,
105       a  fast, distributed content tracker.  Among its features is that every
106       developer  has  the  complete  Hamlib  development  history   available
107       locally.  For more information on using Git, see hamlib-git(7).
108
109              Note: while a canonical Git repository is hosted at SourceForge,
110              its availability  is  not  essential  to  continued  development
111              although  development work flows would change temporarily.  Sev‐
112              eral developers find the GitHub Web interface easier to use  and
113              lately  development  has  centered  around  GitHub  rather  than
114              SourceForge.
115
116   Applications using Hamlib
117       A number of application developers have  taken  advantage  of  Hamlib's
118       capabilities  to  implement  radio  and/or  rotator control.  While not
119       exhaustive,   a   list   is   maintained   at    the    Hamlib    Wiki,
120       Applications/Screenshots
121https://github.com/Hamlib/Hamlib/wiki/Applications-and-Screen-Shots⟩.
122       Developers are encouraged to request their applications be added to the
123       gallery by way of the hamlib-developer mailing list.
124
125   Using Hamlib with your program
126       As with other Free Software projects, Hamlib relies heavily on copyleft
127       licensing  to  encourage  development contributions and provide an open
128       atmosphere for development.  Hamlib's source code is released under two
129       licenses,  the Lesser General Public License (LGPL) version 2.1 for the
130       library portion, and the General Public License (GPL) version 2 for the
131       utility programs.
132
133       The  LGPL allows the library to be used (linked) by programs regardless
134       of their individual license.  However, any contributions to the library
135       source  remain  under  a  copyleft license which means that the library
136       source code may not be used in violation of the terms of the LGPL  (see
137       the  file  COPYING.LIB in the main source directory).  Concepts learned
138       by studying these sources for the purpose of understanding  the  Hamlib
139       API  is not covered nor prohibited by the LGPL, however, directly copy‐
140       ing LGPL sources into any work that is incompatible with the  terms  of
141       the LGPL is a violation of the terms of the license.
142
143       The  utility  program  source  files  are  released under the GPL.  Any
144       direct use of these sources must be in a form that  complies  with  the
145       terms  of  the GPL (see the file COPYING in the main source directory).
146       Concepts learned by studying these sources for the  purpose  of  under‐
147       standing  the Hamlib API is not covered nor prohibited by the GPL, how‐
148       ever, directly copying GPL sources into any work that  is  incompatible
149       with the terms of the GPL is a violation of the terms of the license.
150
151   Radios with a clone capability
152       Hamlib's  focus is on controlling radios that employ a port and command
153       protocol for setting frequency, mode,  VFO,  PTT,  etc.   Most  VHF/UHF
154       transceivers  do  not employ such control capability but do provide for
155       cloning the memory contents from radio to another of the same model.  A
156       related  project,  Chirp  http://chirp.danplanet.com⟩, aims to support
157       radios with such a clone capability.  Please contact the Chirp  project
158       for support of such radios.
159
160   Pronouncing Hamlib
161       English  speakers  seem  to  have  two alternate pronunciations for our
162       project:
163
164       ·   Hamlib (Ham - lib, long ‘i’, as in library.)  IPA style: /'ham læb/
165
166       ·   Hamlib (Ham - lib, short ‘i’, as in liberty.)  IPA style: /'ham lɪb/
167
168       Then again, we have people who say Linux “L-eye-nux” and those who  say
169       “L-in-nux”...
170
171       If you're French, the above does not apply! :-)
172

COPYING

174       This  file  is part of Hamlib, a project to develop a library that sim‐
175       plifies radio, rotator, and amplifier control functions for  developers
176       of  software  primarily  of interest to radio amateurs and those inter‐
177       ested in radio communications.
178
179       Copyright © 2001-2020 Hamlib Group (various contributors)
180
181       This is free software; see the file  COPYING  for  copying  conditions.
182       There  is  NO  warranty;  not even for MERCHANTABILITY or FITNESS FOR A
183       PARTICULAR PURPOSE.
184

SEE ALSO

186       hamlib-primer(7)
187

COLOPHON

189       Links to the Hamlib Wiki, Git repository, release archives,  and  daily
190       snapshot archives are available via hamlib.org ⟨http://www.hamlib.org⟩.
191
192
193
194Hamlib                            2020-09-08                         HAMLIB(7)
Impressum