GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Hamlib/Hamlib: Ham radio control library for rigs (radios), rotators, and amplifiers. For daily snapshots see:

BranchesTags
Open more actions menu

Latest commit

 

History

History
History

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
amplifiers
amplifiers
 
 
bindings
bindings
 
 
c++
c++
 
 
doc
doc
 
 
docker-build
docker-build
 
 
extra
extra
 
 
include
include
 
 
lib
lib
 
 
macros
macros
 
 
rigs
rigs
 
 
rotators
rotators
 
 
scripts
scripts
 
 
security
security
 
 
simulators
simulators
 
 
src
src
 
 
test
test
 
 
tests
tests
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
AUTHORS
AUTHORS
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
COPYING
COPYING
 
 
COPYING.LIB
COPYING.LIB
 
 
ChangeLog
ChangeLog
 
 
HAMLIB_STREAMING.md
HAMLIB_STREAMING.md
 
 
HAMLIB_STREAMING_BACKEND_GUIDE.md
HAMLIB_STREAMING_BACKEND_GUIDE.md
 
 
INSTALL
INSTALL
 
 
LICENSE
LICENSE
 
 
Makefile.am
Makefile.am
 
 
NEWS
NEWS
 
 
PLAN
PLAN
 
 
README
README
 
 
README.android
README.android
 
 
README.betatester
README.betatester
 
 
README.coding_style
README.coding_style
 
 
README.developer
README.developer
 
 
README.freqranges
README.freqranges
 
 
README.macos
README.macos
 
 
README.md
README.md
 
 
README.multicast
README.multicast
 
 
README.release
README.release
 
 
README.windows
README.windows
 
 
ReleaseNotes_4.7.md
ReleaseNotes_4.7.md
 
 
ReleaseNotes_5.0.md
ReleaseNotes_5.0.md
 
 
SECURITY.md
SECURITY.md
 
 
Segfault-award
Segfault-award
 
 
THANKS
THANKS
 
 
VFOs.txt
VFOs.txt
 
 
astyle.sh
astyle.sh
 
 
bootstrap
bootstrap
 
 
configure.ac
configure.ac
 
 
cppcheck.sh
cppcheck.sh
 
 
hamlib.m4
hamlib.m4
 
 
hamlib.pc.in
hamlib.pc.in
 
 

Repository files navigation

Hamlib

(C) Frank Singleton 2000 ([email protected])
(C) Stephane Fillod 2000-2011
(C) The Hamlib Group 2000-2025

The purpose of this project is to provide stable, flexible, shared libraries that enable quicker development of amateur radio equipment control applications.

The master repository is https://github.com/Hamlib/Hamlib
The backup repository is https://sourceforge.net/projects/hamlib/

Daily snapshots of the master branch are available at https://hamlib.sourceforge.net/snapshots/

Daily snapshots of the Hamlib-4.7 branch are available at https://github.com/Hamlib/Hamlib/tree/Hamlib-4.7

Note: Major changes are planned for Hamlib 5 (current master branch) which will introduce incompatibilities with existing software that uses Hamlib. Until a given software application announces support for Hamlib 5, use the snapshots and releases from the Hamlib-4.7 branch.

Development happens on the GitHub master (often by merging feature branches) and each release has a release branch.

Many amateur radio transceivers come with serial (RS-232, USB, etc.) or Ethernet/WiFi/Bluetooth interfaces that allow software to control the radio. This project will endeavour to provide shared libraries that greatly simplify the application programmer's interaction with radio equipment and other controllable devices such as rotators, amplifiers, etc.

Supported Radios

The Hamlib Wiki page, Supported Radios, contains a snapshot of the supported radios at the time of the last Hamlib release. Go to https://github.com/Hamlib/Hamlib/wiki to reach the Wiki.

Hamlib Design

The library provides functions for radio, rotator and amplifier control, and data retrieval for supported devices. A number of functions useful for calculating distance and bearing and grid square conversion are included.

libhamlib.so - library that provides generic API for all RIG types. This is what application programs will "see". Will have different names on other platforms, e.g. libhamlib-4.dll on MS windows. Also contains all radio, rotator and amplifier "backends" provided by Hamlib.

Backend Examples are:

  1. yaesu will provide connectivity to Yaesu FT 747GX Transceiver, FT 847 "Earth Station", etc. via a unified API.

  2. xxxx will provide connectivity to the Wiz-bang moon-melter 101A (yikes..)

Hamlib will also enable developers to develop professional looking GUI's towards a unified control library API, and they will not have to worry about the underlying connection towards physical hardware.

Initially serial (RS232) connectivity will be handled, but we expect that IP (and other) connectivity will follow afterwards. Connection via a USB port is accomplished via the Linux kernel support. USB to serial converters are well supported. Other such devices may be supported as long as they present a serial (RS-232) interface to Hamlib.

Availability

Most distributions have the latest Hamlib release in their testing or alpha versions of their distribution. Check your package manager for the Hamlib version included in your distribution.

Developing with Hamlib API

API documentation is at:

    https://github.com/Hamlib/Hamlib/wiki/Documentation

Take a look at tests/README for more info on simple programming examples and test programs.

C++ programming is supported and language bindings are available for Perl, Python, and TCL. A network daemon utility is also available for any programming language that supports network sockets (even netcat!).

Compiling

Hamlib is entirely developed using GNU tools, on various operating systems. The library may be compiled from a source "tarball" by the familiar "three step":

    ./configure
    make
    sudo make install

For debugging use this configure command:

    ./configure CFLAGS=-g -O0 -fPIC --no-create --no-recursion

See the INSTALL file for more information.

To recompile Hamlib, run:

    make clean

to remove all object files and binaries, otherwise make won't do anything!

Contributing

Consult the README.betatester and README.developer files in this directory if you feel like testing or helping with Hamlib development.

Contributions of rig specifications and protocol documentation are highly encouraged. Do keep in mind that in some cases the manufacturer may not provide complete control information or it is only available under a Non-Disclosure Agreement (NDA). Any documentation must be publicly available so we can legally write and distribute Free Software supporting a given device.

The Hamlib team is very interested to hear from you, how Hamlib builds and works on your system, especially on non-Linux system or non-PC systems. We try to make Hamlib as portable as possible.

Please report in case of problems at [email protected] Git email formatted patches or in unified diff format are welcome!

Also, take a look at http://sourceforge.net/projects/hamlib/ Here you will find a mail list, link to the Wiki, and the latest releases. Feedback, questions, etc. about Hamlib are very welcome at the mail list:

    <[email protected]>

Hamlib Version Numbers

Like other software projects, Hamlib uses a version numbering scheme to help program authors and users understand which releases are compatible and which are not. Hamlib releases now follow the format of:

Major.minor.point

Where

Major: Currently at 4, but can be advanced when changes to the API require client programs to be rewritten to take advantage of new features of Hamlib. This number has advanced several times throughout the life of Hamlib. Advancement of the major number signals frontend API changes that require modification of client source and Application Binary Interface changes that require relinking to the library (Note, the latter does not apply to applications using the *ctld daemons, but the command API may change).

Minor: This number advances when either new backend(s) or new rig model(s) to existing backend(s) are added. Advancing this number informs client program authors (and users of those programs) that new model/backend support has been added. Will also include bug fixes since the last point release.

Point: Formerly could be undefined (e.g. Hamlib 4.6) and would advance to 1 (e.g. Hamlib 4.6.1) for any bug fixes or feature additions to existing model(s) or backend(s), then to 2, etc. New rig models or backends are not included in point releases. When major or minor is advanced, point will reset to 0. Note: All future releases beginning with 4.7.0 will include all values to lessen confusion.

Release schedule

Hamlib has a "ready when it's ready" philosophy. There is no set schedule, though we'd like at least one minor release in a given year and a major release every several years.

Have Fun / Frank S / Stephane F / The Hamlib Group

73's de vk3fcs/km5ws / f8cfe

About

Ham radio control library for rigs (radios), rotators, and amplifiers. For daily snapshots see:

hamlib.sourceforge.net/snapshots/

Resources

Readme

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

863 stars

Watchers

43 watching

Forks

316 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.