Hamlib es un proyecto de código abierto que proporciona a los programadores una interfaz de programación de aplicaciones (API) consistente para controlar transceptores, rotadores y amplificadores de radioaficionados. El proyecto fue fundado en el año 2000 por Frank Singleton, VK3FCS/KM5WS, y Stéphane Fillod, F8CFE. Hamlib no es una aplicación de usuario lista para usar, sino una capa de software —una biblioteca— destinada a desarrolladores de programas de registro, software de modo digital, control remoto y otras aplicaciones de control. Esto permite a los autores de software centrar sus esfuerzos en la funcionalidad y la lógica de la interfaz del programa, en lugar de implementar comandos CAT para cada radio por separado.
En el artículo leerás
¿Para qué sirve Hamlib y por qué es importante?
La mayoría de los transceptores modernos permiten el control externo a través de una interfaz serial. El problema es que los comandos no son consistentes entre modelos de un mismo fabricante o entre diferentes fabricantes. Hamlib resuelve este problema presentando aplicaciones con una "radio virtual" con una API unificada, una abstracción donde la configuración de frecuencia, el modo, VFO alebo PTT funguje rovnako bez ohľadu na to, či je na sériovom porte pripojený Yaesu FT-991A, Icom IC-7300, Kenwood TS-590SG o cualquier otro transceptor compatible.

Sin Hamlib, cada programa tendría que implementar el control de cada radio por separado. Con Hamlib, un desarrollador solo necesita compatibilidad con la API de Hamlib para acceder inmediatamente a todos los dispositivos compatibles. Cuando Hamlib añade un nuevo backend, todas las aplicaciones desarrolladas sobre él obtienen compatibilidad con esa radio sin necesidad de modificar su código.
Hamlib proporciona enlaces de lenguaje para C, C++, Perl, Python 2 y 3, Lua y TCL. La versión estable al momento de escribir este texto es Hamlib 4.7.1. Hay instantáneas diarias disponibles tanto de la rama principal como de la rama estable Hamlib-4.7 para Linux (archivos tarball de código fuente) y Windows de 32/64 bits.
Dispositivos compatibles

La wiki de Hamlib divide los dispositivos compatibles en tres categorías: transceptores y receptores de radioaficionados (Radios compatibles), rotadores de antena (Rotadores compatibles) y amplificadores lineales (Amplificadores compatibles). La lista de radios compatibles crece constantemente e incluye dispositivos de fabricantes como Yaesu, Icom, Kenwood, Elecraft, FlexRadio, TenTec, Alinco, Aor, Drake, JRC, Lowe, Skanti, Uniden, Vertex y muchos otros. En cuanto a los rotadores, los compatibles incluyen Yaesu serie G, Hy-Gain, SPID, M2 Orion y otros. Una lista de todos los modelos disponibles se muestra mediante el comando rigctl --list respectivamente. rotctl --list.
La biblioteca está diseñada para dispositivos con puerto y protocolo de comandos (CAT, CI-V, etc.) para configurar la frecuencia, el modo, el VFO, el PTT y otros parámetros. Los dispositivos que no admiten control serie y solo permiten la clonación de memoria (la mayoría de los transceptores FM VHF/UHF) quedan fuera del alcance de Hamlib; para estos, se recomienda el proyecto CHIRP.
Preguntas frecuentes: Preguntas frecuentes
¿Qué es Hamlib en resumen?
Hamlib es una biblioteca de subrutinas enlazables basada en C, desarrollada principalmente con herramientas GNU en Linux, pero también compilada y funcional en Windows y macOS. Su objetivo es proporcionar una API independiente del equipo que permita a los desarrolladores de aplicaciones escribir software sin depender de un modelo de radio específico.
¿A quién va dirigido Hamlib?
Principalmente para programadores que escriben aplicaciones para Rig control, logovanie a iné rádioamatérske programy. Bežní používatelia Hamlib neinštalujú priamo – zvyčajne ho dostávajú ako závislosť logovacieho programu alebo WSJT-X, Fldigi, Registro CQR y aplicaciones similares.
¿Puedo usar Hamlib en dos programas al mismo tiempo?
Solo un programa puede acceder al puerto serie a la vez. La solución es rigctld – un demonio de red que accede a la radio y se comunica con los clientes a través del protocolo TCP. Se inicia con el comando rigctld -m 210 -r /dev/ttyS1 & y luego cualquier programa se conecta a él como al modelo 2 (NET rigctl).
¿Qué ocurre si se produce un tiempo de espera en el puerto serie?
El problema puede deberse a una interfaz CAT alimentada por líneas RTS/CTS/DTR, donde cuando se ejecuta un comando de un solo paso, los condensadores electrolíticos de la interfaz aún no están cargados. La solución es un interruptor. -C rts_state=ON, lo que obliga a que se active RTS y se encienda la interfaz antes de que se envíe el primer comando.
¿Cómo vincular tu propio programa con Hamlib?
Hamlib utiliza configuración del paqueteLa compilación se realiza, por ejemplo, mediante el comando gcc -o myprog `configuración del paquete --cflags --libs hamlib` myprog.cPara proyectos autoconf/automake hay una macro PKG_CHECK_MODULES(Aldea, Aldea, ...).
Utilidades de Hamlib: una descripción general de las herramientas de línea de comandos
| Utilidad | Descripción | Puerto TCP predeterminado |
|---|---|---|
| Rigctl | Control interactivo o mediante scripts del transceptor desde la línea de comandos. Abre el puerto serie/USB directamente; solo un programa puede usar el puerto a la vez. | – |
| rigctld | Demonio TCP para transceptores. Abre un puerto serie y permite el control de un socket TCP. Permite múltiples conexiones de cliente simultáneas. Control compartido de equipos para WSJT-X, Fldigi, CQRlog y más. | 4532 |
| rotctl | Control interactivo o mediante scripts del rotor de la antena desde la línea de comandos. | – |
| rotctld | Demonio TCP para rotadores. Mismo principio que rigctld para transceptores. | 4533 |
| ampctl | Controlar un amplificador lineal desde la línea de comandos. | – |
| ampctld | Demonio TCP para amplificadores lineales. | 4534 |
| rigctlcom | Emulación de puerto COM para programas que no pueden conectarse al socket TCP de rigctld pero requieren un puerto serie nativo. | – |
| rigswr | Medición de ROE mediante radio; se escanea el rango de frecuencias, el transceptor transmite y registra los valores de ROE. | – |
| rigsmtr | Medición del nivel de señal (medidor S) mediante una radio; escanea el rango de frecuencias y registra los valores medidos. | – |
| rigma | Realizar copias de seguridad, restaurar y manipular el contenido de los canales de memoria del transceptor. | – |
Comandos para Rigctl y rigctld son compartidas – una letra mayúscula generalmente indica set príkaz (napr. F para set_freq), minúsculas get príkaz (napr. f para get_freq). La asignación del modelo de radio se realiza mediante un interruptor. -m IDEl puerto serie viene especificado por el conmutador. -r /dev/ttyUSBx (Linux) o -r COMx (Windows).
Control de dispositivos de red Hamlib a través de TCP
El control de red es una parte integral de Hamlib. Demonios TCP rigctld y rotctld utilizan un protocolo de texto simple: los comandos se envían como cadenas ASCII, las respuestas a los comandos get se devuelven como valores línea por línea, las condiciones de error como RPRT x kde x es un código de error negativo. Los demonios permiten que varios clientes se conecten simultáneamente.
Procedimiento práctico: iniciar el demonio para Kenwood K3 en el primer adaptador USB-serie:
rigctld -m 229 -r /dev/ttyUSB0 &
Posteriormente, cualquier programa compatible con Hamlib se configura para Net rigctl (model 2) s adresou localhost:4532De esta forma, WSJT-X, Fldigi y CQRlog pueden compartir una radio física sin conflicto de puerto serie. Además del protocolo estándar, admite rigctld También el Protocolo de Respuesta Extendida (ERP), que devuelve el comando recibido como encabezado y los valores como pares clave:valor, adecuado para clientes que acceden al demonio directamente a través de un socket TCP sin la biblioteca Hamlib.
Para programadores: las aplicaciones escritas en la API de Hamlib C/C++ pueden acceder a los demonios a través de modelos de backend. NET rigctl a NET rotctl (model 2 pre oba typy zariadení). Nastavenie zo strany aplikácie pozostáva z výberu modelu 2, zadania nombre de host:puerto tales como los dispositivos y la velocidad de transmisión y la configuración de bits de parada al iniciar el demonio.
Vídeos
El siguiente vídeo (WA4EFS) muestra un cliente con interfaz gráfica de usuario (GUI) que se conecta al oyente TCP rigctld y permite realizar pruebas interactivas y utilizar la interfaz CAT del transceptor:
Un vídeo de AG7GN (Western Washington DX Club) explica cómo integrar Hamlib, Fldigi y FLrig, incluyendo la configuración de rigctld como un sistema de control de equipos común para múltiples aplicaciones a la vez:
El vídeo muestra la instalación de Hamlib 4.1 desde el código fuente en una Raspberry Pi, un procedimiento relevante para cualquiera que quiera tener el backend más reciente antes de que esté disponible en el repositorio de la distribución:
Novedades en Hamlib: cambios seleccionados de versiones recientes
La versión 4.6.4 (lanzada el 18 de julio de 2025, en el 25.º aniversario del proyecto Hamlib) corrigió el manejo de caracteres no imprimibles en Kenwood.c, lo que provocó fallos en los transceptores TM-D710 y TM-V71 que utilizaban EOM_TH (\r) como terminador de comandos. Se corrigió una fuga de memoria en rigctl_parse.ca y se introdujo un carácter separador único para cada conexión rigctld. Esta versión se dedicó a la memoria de Michael Black, W9MDB (SK), colaborador de larga trayectoria y líder del proyecto desde 2020 hasta 2025.
De los cambios recientes en la rama principal (hacia la versión 4.7), las siguientes novedades son relevantes según el archivo NEWS:
Hamlib ejecuta un servidor multicast que envía información sobre el estado de la radio (la recepción de comandos aún no está implementada). Se ha añadido soporte. --bind-all (-b) para rigctld Para vincularse a todas las interfaces de red disponibles: corrige las instancias duplicadas. rigctld en Windows. Los transceptores Yaesu pueden ser enviar_Morse enviar mensajes de manipulador 1–5 o CW správu do 50 znakov. Príkaz Nivel de ajuste del equipo MEDIDOR acepta argumentos SWR, COMP, ALC, IC/ID, DB, PO, VDD, TEMP pre výber zobrazovaného metra. Pridaný je prístup k GPIO1–4 na CM108 zariadeniach cez obtener/establecer_GPIO en Rigctl/rigctldFunción rigctld te permite comenzar opcionalmente con encendido automático=0, que evita tiempos de espera al iniciar cuando el transceptor está apagado. Se ha añadido protección de contraseña opcional para rigctld mediante interruptor - y donde el cliente se autentica con el comando \contraseña.
Dónde descargar y cómo contribuir
La versión estable actual de Hamlib 4.7.1 está disponible en GitHub y SourceForge. Los paquetes para Windows de 32 y 64 bits están disponibles en formato ZIP o EXE autoextraíble. Las instantáneas diarias de las ramas principal y estable están disponibles en hamlib.sourceforge.net/snapshots/. Para obtener información y soporte técnico, puede consultar la lista de correo hamlib-developer (SourceForge) y el canal IRC #hamlib en irc.oftc.net. Las correcciones se envían mediante una solicitud de extracción de GitHub o un parche a la lista de correo.
