{"id":1197,"date":"2026-08-23T12:36:28","date_gmt":"2026-08-23T10:36:28","guid":{"rendered":"https:\/\/www.i8zse.it\/en\/?p=1197"},"modified":"2026-08-23T12:38:31","modified_gmt":"2026-08-23T10:38:31","slug":"distributed-ham-radio-station","status":"publish","type":"post","link":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/","title":{"rendered":"Distributed ham radio station"},"content":{"rendered":"<p>A modern amateur radio station increasingly looks less like a collection of independent pieces of equipment and more like a small computer system. The radio naturally remains at the heart of the station, but around it revolve logging software, digital-mode applications, DX clusters, antenna control tools, SDRs, remote-control applications and, increasingly, services running on different machines.<\/p>\n<p>The problem arises when all these applications need to talk to the same radio.<\/p>\n<p>Once upon a time, it was enough to connect the radio to a computer and configure the program that was supposed to control it. Today it is quite common to have a logger that needs to know the frequency, operating mode and signal level, a digital-mode application that needs to read and set the VFO, a cluster application that needs to know where we are tuned, and perhaps another program that takes care of rotor control. But radios are not designed to be used simultaneously by all these programs.<\/p>\n<h2>One radio, one port, one master<\/h2>\n<p>The CAT connection of modern radios generally uses either a physical serial port or a USB port which, from the operating system&#8217;s point of view, behaves in much the same way as a serial port.<\/p>\n<p>And this is where the first limitation appears: a serial port is normally opened exclusively. If WSJT-X opens <code>\/dev\/ttyUSB0<\/code> (or <code>COM1<\/code>), a second program cannot simply open the same port and start listening to it. Even when the device and driver allow some form of sharing, we still have not solved the logical problem: two programs could try to change the frequency, mode, VFO or PTT at the same time without knowing what the other one is doing.<\/p>\n<p>The traditional model (<em>program -&gt; CAT -&gt; radio<\/em>) works perfectly only when there is one and only one <em>program<\/em>.<\/p>\n<p>But a real station today looks much more like this:<\/p>\n<pre>Logger ------&gt; |\r\nWSJT-X ------&gt; |\r\nDX-Cluster --&gt; | -&gt; CAT -&gt; Radio\r\nFLDIGI ------&gt; |\r\nSSTV --------&gt; |<\/pre>\n<p>The question, therefore, is no longer simply how to connect a program to the radio, but rather: <strong>how can we turn the CAT connection to the radio into a shared resource?<\/strong><\/p>\n<p>The answer is to introduce an intermediate layer, which we can call a <strong>HUB<\/strong>.<\/p>\n<pre>Logger ------&gt; |   |\r\nWSJT-X ------&gt; | <strong>H<\/strong> |\r\nDX-Cluster --&gt; | <strong>U<\/strong> | -&gt; CAT -&gt; Radio\r\nFLDIGI ------&gt; | <strong>B<\/strong> |\r\nSSTV --------&gt; |   |<\/pre>\n<p>The hub becomes the only component that actually <em>owns<\/em> the connection to the radio. The other applications no longer access the serial port directly: they talk to the hub. This simple change completely alters the architecture of the station.<\/p>\n<h2>Two different ways of building the hub<\/h2>\n<p>In amateur radio software, both GNU\/Linux and Windows offer several solutions for implementing this intermediate layer, but two of the most interesting are <strong>flrig<\/strong> and <strong>Hamlib\/rigctld<\/strong>. They are not, however, equivalent implementations of the same concept.<\/p>\n<p><a href=\"https:\/\/www.w1hkj.com\/flrig-help\/\">Flrig<\/a> was created as a radio-control application that provides various client programs with an XML-RPC interface (a method that allows two programs to exchange data). In this model, flrig maintains the connection to the radio and acts as a server for the applications that want to use it. The idea originated within the ecosystem of software developed by <a href=\"https:\/\/www.w1hkj.org\/\" target=\"_blank\" rel=\"noopener\">W1HKJ<\/a>.<\/p>\n<p>The model is therefore:<\/p>\n<pre>Application1 -(XML-RPC)-&gt; |\r\nApplication2 -(XML-RPC)-&gt; | -&gt; flrig -&gt; CAT -&gt; Radio\r\nApplication3 -(XML-RPC)-&gt; |<\/pre>\n<p>It is a simple and very effective solution when the applications that make up the station directly support the flrig interface.<\/p>\n<p>The <strong>Hamlib<\/strong> model is instead built around a more general idea: providing applications with a <em>uniform interface<\/em> capable of controlling a very large number of radios. <a href=\"https:\/\/hamlib.github.io\/\">Hamlib<\/a> is primarily a library made available to different software applications. It also has an associated application, <strong>rigctld<\/strong>, which acts as a bridge between the local radio equipment and Hamlib-compatible applications, which can exchange data over the network.<\/p>\n<p>In this case the model becomes:<\/p>\n<pre>application -&gt; network -&gt; rigctld -&gt; CAT -&gt; radio<\/pre>\n<p>The difference may seem subtle, but from an architectural point of view it is important: with flrig we have an application that exposes its own XML-RPC interface, while with <code>rigctld<\/code> we have a <strong>network service<\/strong> based on the Hamlib NET protocol; and it is precisely the standardized nature of Hamlib that makes this approach usable by a much larger number of programs.<\/p>\n<h2>Where flrig and Hamlib meet<\/h2>\n<p>The two worlds, however, are not completely separate: Hamlib can talk to flrig using <strong>model #4<\/strong>, which allows an application using Hamlib to use flrig as a radio device, with a configuration such as this:<\/p>\n<pre>application1 -&gt; network -&gt; rigctld -&gt; | -&gt; flrig -&gt; CAT -&gt; radio\r\napplication2 -(XML-RPC) ------------&gt; |<\/pre>\n<p>In other words, <strong>Hamlib can use flrig as a backend<\/strong>, but the reverse relationship does not apply: we cannot take <code>rigctld<\/code> and configure it as a NET client towards flrig, because flrig does not expose a Hamlib NET <code>rigctl<\/code> server to which <code>rigctld<\/code> can connect.<\/p>\n<p>This distinction is fundamental when designing more complex architectures, because the fact that two components are both capable of controlling a radio does not mean that they are interchangeable as client and server.<\/p>\n<h2>The computer is no longer the center of the station<\/h2>\n<p>The real leap forward comes when the connection between the application and the CAT service is no longer necessarily local: if <code>rigctld<\/code> listens on a TCP port accessible from the local network, the program using it no longer needs to be running on the same machine to which the radio is connected. This makes it possible to distribute the <strong>station across multiple devices, while applications continue to see the radio as a single CAT resource<\/strong>.<\/p>\n<p>This is particularly useful for modern technologies such as FT8: during a contact it is easy to have several applications open at the same time, many of them quite demanding from a graphical point of view: logger, WSJT-X, PSK Reporter, DX cluster, GridTracker. Instead of concentrating everything on a single PC, it can be more convenient and efficient to keep CAT control and WSJT-X on the device connected to the radio, while running the graphical applications &#8211; which often benefit from multiple monitors &#8211; on another PC in the shack.<\/p>\n<p>There is no need for every application to know where the radio is physically located: it only needs to know the address of the CAT service.<\/p>\n<p>This is an important consequence of introducing a network layer: the physical connection is separated from the application using it. It is therefore useful to consider CAT sharing as <strong>an infrastructure that can be used to build a distributed station<\/strong>.<\/p>\n<h2>A practical example<\/h2>\n<p>Once the model is understood, it is interesting to see it applied to a real-world situation.<\/p>\n<p>In my shack I have two main radios: an FT897D for VHF\/UHF and an FTdx1200 for HF, both interfaced to a ThinkCentre M91, a <em>Small Form Factor<\/em> PC that is more than twenty years old (I wrote about it <a href=\"https:\/\/www.i8zse.it\/en\/linux\/hardware\/\" target=\"_blank\" rel=\"noopener\">here<\/a>).<\/p>\n<p>With Linux it has more than enough performance to run both the main application (WSJT-X, Fldigi or whatever else I need) and the supporting applications (logger, PSK Reporter, GridTracker, etc.), but one limitation is the single display: to have all the software useful during a digital contact readily accessible, it is useful to have at least two monitors.<\/p>\n<p>Rather than adding a second monitor to the station controller, I chose to move the supporting applications to another PC that I already have in the <em>shack<\/em>, which is equipped with multiple displays.<\/p>\n<p>To interconnect the various applications I use <code>rigctld<\/code>, which I launch with different configurations depending on what I need. For example:<\/p>\n<pre>rigctld -m 1034 -r \/dev\/radio1200 -p CAT -s 38400 --port 4532<\/pre>\n<p>is the configuration I use for the FTdx-1200.<\/p>\n<p>WSJT-X is configured to use Hamlib over the network: the <em><strong>Server<\/strong><\/em> field can be left empty if <code>rigctld<\/code> is running locally; otherwise, it is enough to enter the IP address and port number, 4532 in the example above.<\/p>\n<p><a href=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/rignet.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3873\" src=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/rignet.png\" alt=\"\" width=\"640\" height=\"335\" \/><\/a><\/p>\n<p>To complete the integration, it is also necessary to share the data produced by WSJT-X via UDP. The configuration is as follows:<\/p>\n<p><a href=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/multicast.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3867\" src=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/multicast-1024x568.png\" alt=\"\" width=\"640\" height=\"355\" \/><\/a><\/p>\n<p>Checking <em><strong>Accept UDP requests<\/strong><\/em> allows the supporting applications to communicate in both directions, enabling a higher level of integration: for example, it is possible to update the DX callsign field in WSJT-X by clicking on one of the callsigns in the GridTracker roster.<\/p>\n<p>In my configuration, <strong>GridTracker<\/strong> and <strong>Log4OM<\/strong> run on the second PC, which, as mentioned, has two monitors.<\/p>\n<p><a href=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/gridtracker.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3868\" src=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/gridtracker-1024x410.png\" alt=\"\" width=\"640\" height=\"256\" \/><\/a><\/p>\n<p>In GridTracker, it is necessary to enter the multicast address (in my case 224.0.0.1, port 2237) that we previously configured in WSJT-X.<\/p>\n<p><a href=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/gridtracker2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3869\" src=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/gridtracker2.png\" alt=\"\" width=\"794\" height=\"359\" \/><\/a><\/p>\n<p>The same configuration must be made in Log4OM under <em>Software integration\/connections<\/em>:<\/p>\n<p><a href=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/log2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3874\" src=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/log2-300x269.png\" alt=\"\" width=\"300\" height=\"269\" \/><\/a><\/p>\n<p>while CAT is configured under <em>Hardware\/CAT<\/em>:<\/p>\n<p><a href=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/log4om2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3871\" src=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/log4om2-1024x521.png\" alt=\"\" width=\"640\" height=\"326\" \/><\/a><\/p>\n<p>Once the parameters have been configured, it is possible to use both remote CAT control and FT8 integration.<\/p>\n<p><a href=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/log4omjt.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-3875\" src=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/log4omjt-1024x661.png\" alt=\"\" width=\"640\" height=\"413\" \/><\/a><\/p>\n<p>The idea is to separate the functions as much as possible: the computer dedicated to the radio side can take care of the physical connection to the equipment and provide the CAT service. The applications can instead be distributed as needed, without each one having to know the details of the serial port used by the radio.<\/p>\n<p>The advantage is not only that it becomes possible to run more programs: it is that <strong>none of these programs needs to control the radio directly<\/strong>. The radio becomes a service, and that is a significant conceptual difference compared with the traditional configuration.<\/p>\n<p>In a station with multiple radios, as in my case, we can take this one step further: if the radios are not used simultaneously, there is no need to keep a separate instance of <code>rigctld<\/code> running for each one. It is enough to start the one associated with the radio we want to use:<\/p>\n<p><a href=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/rigctld.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3876\" src=\"https:\/\/www.i8zse.it\/wp-content\/uploads\/2026\/08\/rigctld.png\" alt=\"\" width=\"258\" height=\"136\" \/><\/a><\/p>\n<p>The other applications do not need to know which radio is currently active: they know that the data arrives through the multicast channel, so it is possible to switch from one radio to another in just a few moments without changing any other configuration.<\/p>\n<p>This makes it possible to build an infrastructure in which the choice of the physical radio becomes an internal matter of the system, while from the point of view of the client programs the station continues to provide a consistent CAT interface.<\/p>\n<h2>The radio as a service<\/h2>\n<p>The most important change, in the end, is not technological but conceptual: we have moved from the concept of <em><strong>one radio, one program<\/strong><\/em> to an ecosystem in which one or more radios interact with multiple applications in a simple and reliable way, while the computer to which the radio is physically connected no longer necessarily has to be the computer from which the radio is actually used.<\/p>\n<p>All of this works very well as long as we remain within our local network. But what happens if we want to move the control <em><strong>outside<\/strong><\/em> the network, over the Internet?<\/p>\n<p>In that case we are no longer talking about a <em><strong>distributed<\/strong><\/em> station, but about a <em><strong>remote station<\/strong><\/em>, and the transition is less immediate and straightforward than it might appear.<\/p>\n<p>I will discuss that in the next post.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A modern amateur radio station increasingly looks less like a collection of independent pieces of equipment and more like a small computer system. The radio naturally remains at the heart of the station, but around it revolve logging software, digital-mode applications, DX clusters, antenna control tools, SDRs, remote-control applications and, increasingly, services running on different [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1198,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[107,65,54],"tags":[109,110],"class_list":["post-1197","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-applications","category-serial","category-technology","tag-distributed","tag-remotized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Distributed ham radio station - I8ZSE<\/title>\n<meta name=\"description\" content=\"How to share the radio&#039;s CAT link with multiple applications (logger, WSJT-X, cluster, rotor) with flrig and Hamlib\/rigctld: architecture and practical setup.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Distributed ham radio station - I8ZSE\" \/>\n<meta property=\"og:description\" content=\"How to share the radio&#039;s CAT link with multiple applications (logger, WSJT-X, cluster, rotor) with flrig and Hamlib\/rigctld: architecture and practical setup.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/\" \/>\n<meta property=\"og:site_name\" content=\"I8ZSE\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-23T10:36:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-23T10:38:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/08\/distributed.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1445\" \/>\n\t<meta property=\"og:image:height\" content=\"1006\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"giorgio@i8zse.eu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"giorgio@i8zse.eu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/\"},\"author\":{\"name\":\"giorgio@i8zse.eu\",\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/#\\\/schema\\\/person\\\/b5b002dfac76285c57ab63e5fe76bf83\"},\"headline\":\"Distributed ham radio station\",\"datePublished\":\"2026-08-23T10:36:28+00:00\",\"dateModified\":\"2026-08-23T10:38:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/\"},\"wordCount\":1747,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/#\\\/schema\\\/person\\\/b5b002dfac76285c57ab63e5fe76bf83\"},\"image\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/distributed.png\",\"keywords\":[\"distributed\",\"remotized\"],\"articleSection\":[\"applications\",\"serial\",\"Technology\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/\",\"url\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/\",\"name\":\"Distributed ham radio station - I8ZSE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/distributed.png\",\"datePublished\":\"2026-08-23T10:36:28+00:00\",\"dateModified\":\"2026-08-23T10:38:31+00:00\",\"description\":\"How to share the radio's CAT link with multiple applications (logger, WSJT-X, cluster, rotor) with flrig and Hamlib\\\/rigctld: architecture and practical setup.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/distributed.png\",\"contentUrl\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/distributed.png\",\"width\":1445,\"height\":1006},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/distributed-ham-radio-station\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Distributed ham radio station\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/\",\"name\":\"I8ZSE\",\"description\":\"Hamradio\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/#\\\/schema\\\/person\\\/b5b002dfac76285c57ab63e5fe76bf83\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/#\\\/schema\\\/person\\\/b5b002dfac76285c57ab63e5fe76bf83\",\"name\":\"giorgio@i8zse.eu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/it-header.png\",\"url\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/it-header.png\",\"contentUrl\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/it-header.png\",\"width\":452,\"height\":150,\"caption\":\"giorgio@i8zse.eu\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/it-header.png\"},\"sameAs\":[\"https:\\\/\\\/www.i8zse.it\\\/en\"],\"url\":\"https:\\\/\\\/www.i8zse.it\\\/en\\\/author\\\/giorgioi8zse-eu\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Distributed ham radio station - I8ZSE","description":"How to share the radio's CAT link with multiple applications (logger, WSJT-X, cluster, rotor) with flrig and Hamlib\/rigctld: architecture and practical setup.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/","og_locale":"en_GB","og_type":"article","og_title":"Distributed ham radio station - I8ZSE","og_description":"How to share the radio's CAT link with multiple applications (logger, WSJT-X, cluster, rotor) with flrig and Hamlib\/rigctld: architecture and practical setup.","og_url":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/","og_site_name":"I8ZSE","article_published_time":"2026-08-23T10:36:28+00:00","article_modified_time":"2026-08-23T10:38:31+00:00","og_image":[{"width":1445,"height":1006,"url":"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/08\/distributed.png","type":"image\/png"}],"author":"giorgio@i8zse.eu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"giorgio@i8zse.eu","Estimated reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/#article","isPartOf":{"@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/"},"author":{"name":"giorgio@i8zse.eu","@id":"https:\/\/www.i8zse.it\/en\/#\/schema\/person\/b5b002dfac76285c57ab63e5fe76bf83"},"headline":"Distributed ham radio station","datePublished":"2026-08-23T10:36:28+00:00","dateModified":"2026-08-23T10:38:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/"},"wordCount":1747,"commentCount":0,"publisher":{"@id":"https:\/\/www.i8zse.it\/en\/#\/schema\/person\/b5b002dfac76285c57ab63e5fe76bf83"},"image":{"@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/#primaryimage"},"thumbnailUrl":"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/08\/distributed.png","keywords":["distributed","remotized"],"articleSection":["applications","serial","Technology"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/","url":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/","name":"Distributed ham radio station - I8ZSE","isPartOf":{"@id":"https:\/\/www.i8zse.it\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/#primaryimage"},"image":{"@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/#primaryimage"},"thumbnailUrl":"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/08\/distributed.png","datePublished":"2026-08-23T10:36:28+00:00","dateModified":"2026-08-23T10:38:31+00:00","description":"How to share the radio's CAT link with multiple applications (logger, WSJT-X, cluster, rotor) with flrig and Hamlib\/rigctld: architecture and practical setup.","breadcrumb":{"@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/#primaryimage","url":"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/08\/distributed.png","contentUrl":"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/08\/distributed.png","width":1445,"height":1006},{"@type":"BreadcrumbList","@id":"https:\/\/www.i8zse.it\/en\/distributed-ham-radio-station\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.i8zse.it\/en\/"},{"@type":"ListItem","position":2,"name":"Distributed ham radio station"}]},{"@type":"WebSite","@id":"https:\/\/www.i8zse.it\/en\/#website","url":"https:\/\/www.i8zse.it\/en\/","name":"I8ZSE","description":"Hamradio","publisher":{"@id":"https:\/\/www.i8zse.it\/en\/#\/schema\/person\/b5b002dfac76285c57ab63e5fe76bf83"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.i8zse.it\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/www.i8zse.it\/en\/#\/schema\/person\/b5b002dfac76285c57ab63e5fe76bf83","name":"giorgio@i8zse.eu","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/03\/it-header.png","url":"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/03\/it-header.png","contentUrl":"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/03\/it-header.png","width":452,"height":150,"caption":"giorgio@i8zse.eu"},"logo":{"@id":"https:\/\/www.i8zse.it\/en\/wp-content\/uploads\/2026\/03\/it-header.png"},"sameAs":["https:\/\/www.i8zse.it\/en"],"url":"https:\/\/www.i8zse.it\/en\/author\/giorgioi8zse-eu\/"}]}},"_links":{"self":[{"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/posts\/1197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/comments?post=1197"}],"version-history":[{"count":3,"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/posts\/1197\/revisions"}],"predecessor-version":[{"id":1201,"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/posts\/1197\/revisions\/1201"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/media\/1198"}],"wp:attachment":[{"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/media?parent=1197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/categories?post=1197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.i8zse.it\/en\/wp-json\/wp\/v2\/tags?post=1197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}