Hamlib est un projet open source qui fournit aux programmeurs une interface de programmation (API) cohérente pour le contrôle des émetteurs-récepteurs, rotors et amplificateurs radioamateurs. Ce projet a été fondé en 2000 par Frank Singleton, VK3FCS/KM5WS, et Stéphane Fillod, F8CFE. Hamlib n'est pas une application utilisateur prête à l'emploi, mais une couche logicielle – une bibliothèque – destinée aux développeurs de logiciels de gestion de trafic, de logiciels de modes numériques, de télécommandes et autres applications de contrôle. Cela permet aux développeurs de se concentrer sur le fonctionnement du programme et la logique de l'interface, plutôt que sur l'implémentation des commandes CAT pour chaque radio individuellement.
Dans cet article, vous lirez
À quoi sert Hamlib et pourquoi est-il important ?
La plupart des émetteurs-récepteurs modernes permettent un contrôle externe via une interface série. Le problème est que les commandes ne sont pas cohérentes entre les modèles d'un même fabricant, ni même entre les fabricants. Hamlib résout ce problème en proposant aux applications une « radio virtuelle » dotée d'une API unifiée : une abstraction où le réglage de la fréquence, le mode, 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 ou tout autre émetteur-récepteur compatible.

Sans Hamlib, chaque programme devrait gérer chaque radio séparément. Avec Hamlib, un développeur a simplement besoin de la compatibilité avec l'API Hamlib pour accéder immédiatement à tous les périphériques pris en charge. Lorsqu'un nouveau module est ajouté à Hamlib, toutes les applications qui s'appuient sur ce module deviennent compatibles avec cette radio sans qu'il soit nécessaire de modifier leur propre code.
Hamlib propose des interfaces de programmation pour C, C++, Perl, Python 2 et 3, Lua et TCL. La version stable actuelle est Hamlib 4.7.1. Des instantanés quotidiens des branches master et stable Hamlib-4.7 sont disponibles pour Linux (archives sources) et Windows 32/64 bits.
Appareils compatibles

Hamlib Wiki divise les appareils compatibles en trois catégories : émetteurs-récepteurs radioamateurs (Radios compatibles), rotateurs d'antenne (Rotateurs compatibles) et amplificateurs linéaires (Amplificateurs compatibles). La liste des radios compatibles s'allonge constamment et comprend des appareils de fabricants tels que Yaesu, Icom, Kenwood, Elecraft, FlexRadio, TenTec, Alinco, Aor, Drake, JRC, Lowe, Skanti, Uniden, Vertex et bien d'autres. Parmi les rotateurs compatibles, on trouve notamment les modèles Yaesu série G, Hy-Gain, SPID et M2 Orion. La liste complète des modèles disponibles s'affiche à l'aide de la commande : rigctl --list respectivement. rotctl --list.
La bibliothèque est conçue pour les appareils dotés d'un port et d'un protocole de commande (CAT, CI-V, etc.) permettant de régler la fréquence, le mode, le VFO, le PTT et d'autres paramètres. Les appareils ne prenant pas en charge le contrôle série et autorisant uniquement le clonage de mémoire (la plupart des émetteurs-récepteurs FM VHF/UHF) ne sont pas compatibles avec Hamlib ; le projet CHIRP est recommandé pour ces derniers.
FAQ : questions fréquemment posées
Qu'est-ce que Hamlib en résumé ?
Hamlib est une bibliothèque de sous-programmes en C, liée entre elle et développée principalement avec les outils GNU sous Linux, mais également compilée et fonctionnelle sous Windows et macOS. Son objectif est de fournir une API indépendante du matériel radio, permettant aux développeurs d'applications de créer des logiciels indépendamment d'un modèle de radio spécifique.
À qui s'adresse Hamlib ?
Principalement destiné aux programmeurs qui écrivent des applications pour 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, CQRLog et applications similaires.
Puis-je utiliser Hamlib sur deux programmes en même temps ?
Un seul programme peut accéder au port série à la fois. La solution est : rigctld – un démon réseau qui accède à la radio et communique avec les clients via le protocole TCP. Il est démarré avec la commande rigctld -m 210 -r /dev/ttyS1 & et ensuite n'importe quel programme s'y connecte comme au modèle 2 (NET rigctl).
Que se passe-t-il en cas de délai d'attente dépassé sur le port série ?
Le problème peut provenir d'une interface CAT alimentée par les lignes RTS/CTS/DTR, où, lors de l'exécution d'une commande pas à pas, les condensateurs électrolytiques de l'interface ne sont pas encore chargés. La solution consiste en un commutateur. -C rts_state=ONce qui force l'activation du RTS et la mise sous tension de l'interface avant l'envoi de la première commande.
Comment lier son propre programme à Hamlib ?
Hamlib utilise pkg-configLa compilation s'effectue, par exemple, par la commande gcc -o myprog `pkg-config --cflags --libs Hamlet` myprog.cPour les projets autoconf/automake, il existe une macro PKG_CHECK_MODULES(Hamlet, Hamlet, ...).
Utilitaires Hamlib : aperçu des outils en ligne de commande
| Utilitaire | Description | Port TCP par défaut |
|---|---|---|
| Rigctl | Contrôle interactif ou par script de l'émetteur-récepteur depuis la ligne de commande. Ouvre directement le port série/USB ; un seul programme peut utiliser le port à la fois. | – |
| rigctld | Démon TCP pour émetteurs-récepteurs. Ouvre un port série et permet le contrôle d'une socket TCP. Autorise plusieurs connexions client simultanées. Contrôle partagé de l'émetteur-récepteur pour WSJT-X, Fldigi, CQRlog et autres. | 4532 |
| rotctl | Contrôle interactif ou par script du rotateur d'antenne depuis la ligne de commande. | – |
| rotctld | Démon TCP pour les rotateurs. Même principe que rigctld pour les émetteurs-récepteurs. | 4533 |
| ampctl | Contrôle d'un amplificateur linéaire à partir de la ligne de commande. | – |
| ampctld | Démon TCP pour amplificateurs linéaires. | 4534 |
| rigctlcom | Émulation de port COM pour les programmes qui ne peuvent pas se connecter au socket TCP de rigctld mais qui nécessitent un port série natif. | – |
| rigswr | Mesure du TOS par radio : balayage de la gamme de fréquences, l’émetteur-récepteur transmet et enregistre les valeurs du TOS. | – |
| rigsmtr | Mesure du niveau du signal (S-mètre) à l'aide d'une radio ; balaye la gamme de fréquences et enregistre les valeurs mesurées. | – |
| rigma | Sauvegarder, restaurer et manipuler le contenu des canaux mémoire de l'émetteur-récepteur. | – |
Commandes pour Rigctl et rigctld sont partagés – une lettre majuscule indique généralement set príkaz (napr. F pour set_freq), minuscules get príkaz (napr. f pour get_freq). L'attribution du modèle radio se fait via un commutateur -m IDLe port série est spécifié par le commutateur. -r /dev/ttyUSBx (Linux) ou -r COMx (Windows).
Contrôle des périphériques réseau Hamlib via TCP
Le contrôle du réseau fait partie intégrante de Hamlib. Démons TCP rigctld et rotctld Ils utilisent un protocole textuel simple : les commandes sont envoyées sous forme de chaînes ASCII, les réponses aux commandes GET sont renvoyées ligne par ligne, les conditions d’erreur sous forme de RPRT x kde x Il s'agit d'un code d'erreur négatif. Les démons permettent à plusieurs clients de se connecter simultanément.
Procédure pratique : démarrage du démon pour Kenwood K3 sur le premier adaptateur USB-série :
rigctld -m 229 -r /dev/ttyUSB0 &
Par la suite, tout programme compatible Hamlib est configuré pour Net rigctl (model 2) s adresou localhost:4532Ainsi, WSJT-X, Fldigi et CQRlog peuvent partager une seule radio physique sans conflit de ports série. Outre le protocole standard, il prend en charge rigctld de même, le protocole de réponse étendu étendu, qui renvoie la commande reçue sous forme d'en-tête et les valeurs sous forme de paires clé:valeur - adapté aux clients qui accèdent directement au démon via un socket TCP sans la bibliothèque Hamlib.
Pour les programmeurs : les applications écrites avec l’API Hamlib C/C++ peuvent accéder aux démons via des modèles 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 nom d'hôte:port tels que les périphériques, le débit en bauds et les paramètres de bits d'arrêt lors du démarrage du démon.
Vidéos
La vidéo suivante (WA4EFS) présente un client GUI qui se connecte à l'écouteur TCP rigctld et permet des tests interactifs et l'utilisation de l'interface CAT de l'émetteur-récepteur :
Une vidéo d'AG7GN (Western Washington DX Club) traite de l'intégration de Hamlib, Fldigi et FLrig, notamment de la configuration de rigctld comme backend de contrôle commun pour plusieurs applications simultanément :
La vidéo montre l'installation de Hamlib 4.1 à partir des sources sur un Raspberry Pi - une procédure pertinente pour tous ceux qui souhaitent disposer de la dernière version du backend avant sa disponibilité dans le dépôt de distribution :
Nouveautés de Hamlib – modifications sélectionnées par rapport aux versions récentes
La version 4.6.4 (publiée le 18 juillet 2025, pour le 25e anniversaire du projet Hamlib) corrige la gestion des caractères non imprimables dans Kenwood.c, ce qui provoquait un dysfonctionnement des TM-D710 et TM-V71 utilisant EOM_TH (\r) comme terminateur de commande. Elle corrige également une fuite de mémoire dans rigctl_parse.ca et introduit un caractère de séparation unique pour chaque connexion rigctld. Cette version est dédiée à la mémoire de Michael Black, W9MDB (SK), contributeur de longue date et chef de projet de 2020 à 2025.
Parmi les modifications récentes apportées à la branche master (vers la version 4.7), les informations suivantes sont pertinentes selon le fichier NEWS :
Hamlib exécute un serveur multicast qui envoie des informations sur l'état de la radio (la réception des commandes n'est pas encore implémentée). La prise en charge a été ajoutée. --lier tout (-b) pour rigctld se lier à toutes les interfaces réseau disponibles – corrige les instances dupliquées rigctld sous Windows. Les émetteurs-récepteurs Yaesu peuvent être envoyer_Morse envoyer les messages de la clé 1 à 5 ou CW správu do 50 znakov. Príkaz niveau de l'appareil de forage MÈTRE accepte les arguments 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 obtenir/définir_GPIO dans Rigctl/rigctldFonction rigctld vous permet de commencer éventuellement par autopower_on=0, ce qui empêche les délais d'attente au démarrage lorsque l'émetteur-récepteur est éteint. Une protection par mot de passe optionnelle a été ajoutée pour rigctld via l'interrupteur - et , où le client s'authentifie avec la commande \mot de passe.
Où télécharger et comment contribuer
La version stable actuelle de Hamlib 4.7.1 est disponible à l'adresse suivante : GitHub et SourceForge. Les paquets pour Windows 32 et 64 bits sont disponibles au format ZIP ou EXE auto-extractible. Des instantanés quotidiens des branches master et stable sont disponibles sur hamlib.sourceforge.net/snapshots/. Les discussions et l'assistance technique sont assurées sur la liste de diffusion hamlib-developer (SourceForge) et sur le canal IRC #hamlib (irc.oftc.net). Les correctifs sont soumis via une demande d'extraction GitHub ou un patch à la liste de diffusion.
