{"id":823,"date":"2025-12-01T12:22:46","date_gmt":"2025-12-01T17:22:46","guid":{"rendered":"https:\/\/www.we8chz.org\/?p=823"},"modified":"2026-07-06T15:10:41","modified_gmt":"2026-07-06T20:10:41","slug":"yaesu-ft-710-audio-setup-and-troubleshooting-with-pipewire-on-linux","status":"publish","type":"post","link":"https:\/\/www.we8chz.org\/?p=823","title":{"rendered":"Yaesu FT-710 Audio Setup with PipeWire on Linux"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Updated 7.6.2026.<\/p>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-4a6a890\" id=\"why-it-doesnt-work\" data-block-id=\"4a6a890\"><h2 class=\"stk-block-heading__text\">Why It Doesn&#8217;t Work<\/h2><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The Yaesu FT-710 HF transceiver contains a non-standard and possibly emulated CM-108 USB audio interface that allows working digital modes without any need for an external sound card.  Simply plug the USB into your PC of choice and start going.  Unfortunately, on Linux, some required parameters aren&#8217;t passed through to the sound system which cause issues with using it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The primary issue is that PipeWire, the modern (as of 2025) default audio system on Linux distributions, defaults to a sample rate of 48000 Hz, which exceeds the capabilities of the built-in audio of the FT-710 at 44100 KHz. Unfortunately, the USB Audio Device reports that it&#8217;s compatible with 48 kHz, when that&#8217;s not the case.  When this happens, the USB Audio Device starts disappearing and reappearing rapidly in Gnome Control Panel until you close any programs attempting to use it. I haven&#8217;t tested this, but the same should occur in KDE or any other desktop environment.<\/p>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-d23f154\" id=\"lets-fix-it-temporary\" data-block-id=\"d23f154\"><h2 class=\"stk-block-heading__text\">Let&#8217;s Fix It (temporary)<\/h2><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The easiest fix is to force the global sample rate of the entire PipeWire system to 44100 Hz by entering the following in a command line:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># pw-metadata -n settings 0 clock.force-rate 44100<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">From here on out, you&#8217;ll have to select your USB Audio Device in Gnome Settings (or KDE Settings), then point your app to use &#8220;pipewire&#8221; as the input and output device.<\/p>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-d47a41e\" id=\"lets-fix-it-permanent-convoluted-fix\" data-block-id=\"d47a41e\"><h2 class=\"stk-block-heading__text\">Let&#8217;s Fix It (Permanent Convoluted Fix)<\/h2><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the fix if you never, ever want to deal with this issue again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Identify the device<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the radio connected and powered on:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">wpctl status<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Find your radio&#8217;s audio interface under&nbsp;<code>Audio \u2192 Devices<\/code>. Note that many radios present themselves as a generic-sounding device rather than under the radio&#8217;s brand name \u2014 the FT-710, for example, shows up as a plain&nbsp;<strong>&#8220;USB Audio Device&#8221;<\/strong>&nbsp;backed by a C-Media USB audio codec chip. Note its device ID, then look up its vendor\/product ID and its sink\/source node names:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">wpctl inspect &lt;device-id&gt; | grep -E \"vendor.id|product.id\"\nwpctl inspect &lt;sink-id&gt; | grep node.name\nwpctl inspect &lt;source-id&gt; | grep node.name<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Pin the sample rate, if your device needs one<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Skip this step if your device already negotiates a correct, stable rate on its own. Some radios&#8217; USB audio interfaces have a real hardware\/firmware limitation that only manifests at their advertised default rate. The FT-710 is one example: it advertises 48 kHz support in its USB descriptors, but has a clocking bug that causes the device to drop in and out of the OS roughly once a second when actually driven at 48 kHz \u2014 44.1 kHz is stable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your device needs a specific rate, two settings work together, and&nbsp;<strong>testing showed both are required<\/strong>&nbsp;\u2014 a per-device rate pin alone was not sufficient to keep the FT-710 stable:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Per-device rate pin.<\/strong>&nbsp;Add a WirePlumber rule matched by vendor\/product ID, e.g.&nbsp;<code>~\/.config\/wireplumber\/wireplumber.conf.d\/51-fixed-rate.conf<\/code>:<code>monitor.alsa.rules = [ { matches = [ { device.vendor.id = \"0x0d8c\", device.product.id = \"0x0013\" } ] actions = { update-props = { audio.rate = 44100 } } } ] <\/code>(substitute your own device&#8217;s vendor\/product ID and required rate \u2014&nbsp;<code>0x0d8c<\/code>\/<code>0x0013<\/code>&nbsp;above is the FT-710&#8217;s C-Media codec)<\/li>\n\n\n\n<li><strong>Permanent global clock-rate override.<\/strong>&nbsp;Add&nbsp;<code>~\/.config\/pipewire\/pipewire.conf.d\/44100-rate.conf<\/code>:<code>context.properties = { default.clock.rate = 44100 } <\/code>A&nbsp;<strong>temporary, session-only<\/strong>&nbsp;equivalent exists (<code>pw-metadata -n settings 0 clock.force-rate 44100<\/code>), but it does not survive a WirePlumber\/PipeWire restart or a reboot \u2014 it is only useful for a quick test. Use the permanent config file above so the fix actually persists; this was confirmed the hard way during testing, when a WirePlumber restart silently dropped a rate that had only been set via the temporary command, and the FT-710 promptly started dropping out again.Exact paths can vary by distribution \u2014 consult your distro&#8217;s PipeWire\/WirePlumber documentation if these drop-in locations don&#8217;t apply to your setup.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Pin RigControl Web&#8217;s Backend Input\/Output to the exact node<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create (or add to)&nbsp;<code>~\/.config\/alsa\/asoundrc<\/code>. Verify this is the path your system&#8217;s ALSA config actually loads \u2014 check the&nbsp;<code>@hooks<\/code>&nbsp;section of&nbsp;<code>\/usr\/share\/alsa\/alsa.conf<\/code>; some systems load&nbsp;<code>~\/.config\/alsa\/asound.conf<\/code>&nbsp;or plain&nbsp;<code>~\/.asoundrc<\/code>&nbsp;instead.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pcm.ft710_out {\n    type pipewire\n    playback_node \"alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo\"\n    hint {\n        show on\n        description \"FT-710 (pinned, 44.1k)\"\n    }\n}\nctl.ft710_out { type pipewire }\n\npcm.ft710_in {\n    type pipewire\n    capture_node \"alsa_input.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.mono-fallback\"\n    hint {\n        show on\n        description \"FT-710 (pinned, 44.1k)\"\n    }\n}\nctl.ft710_in { type pipewire }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Use the exact&nbsp;<code>node.name<\/code>&nbsp;values from Step 1&#8217;s&nbsp;<code>wpctl inspect<\/code>&nbsp;output for your own device \u2014 the strings above are the FT-710&#8217;s and will not match a different radio or a different machine.&nbsp;<code>playback_node<\/code>\/<code>capture_node<\/code>&nbsp;bind this PCM directly to that one hardware node, bypassing PipeWire&#8217;s &#8220;default&#8221; indirection entirely regardless of what PipeWire currently considers default. The&nbsp;<code>hint<\/code>&nbsp;block gives the device a friendly label in RigControl Web&#8217;s device dropdown; name the&nbsp;<code>pcm<\/code>\/<code>ctl<\/code>&nbsp;blocks and the&nbsp;<code>description<\/code>&nbsp;after your own device if it isn&#8217;t an FT-710.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Reload and verify<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl --user restart wireplumber pipewire pipewire-pulse\naplay -L | grep -A1 ft710\narecord -L | grep -A1 ft710<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Both should list your new pinned device with the friendly description from the&nbsp;<code>hint<\/code>&nbsp;block.  You can now use these devices in your apps.<\/p>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-1f657a9\" id=\"conclusion\" data-block-id=\"1f657a9\"><h2 class=\"stk-block-heading__text\">Conclusion<\/h2><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Do I know why it&#8217;s this difficult?  No.  Hopefully this can be resolved in the desktop environment UI in the future.<\/p>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-c265f68\" id=\"references\" data-block-id=\"c265f68\"><h2 class=\"stk-block-heading__text\">References<\/h2><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/interfacinglinux.com\/community\/linuxaudiosofware\/pipewire-how-to-set-the-audio-sample-rate-for-a-device-like-a-microphone\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Pipewire: how to set the audio sample rate for a device like a microphone<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pipewire.pages.freedesktop.org\/wireplumber\/daemon\/configuration\/alsa.html\" target=\"_blank\" rel=\"noopener\" title=\"\">Freedesktop.org: WirePlumber<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.reddit.com\/r\/amateurradio\/comments\/1oluzof\/ft710_with_ft8_in_linux_debiantesting_finally\/?share_id=fibyJxLKjr4yZ96dsnZcO&amp;utm_content=1&amp;utm_medium=android_app&amp;utm_name=androidcss&amp;utm_source=share&amp;utm_term=1\" target=\"_blank\" rel=\"noopener\" title=\"\">Reddit: FT-710 with FT8 in Linux (Debian\/testing) &#8211; finally solved<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Updated 7.6.2026. Why It Doesn&#8217;t Work The Yaesu FT-710 HF transceiver contains a non-standard and possibly emulated CM-108 USB audio interface that allows working digital modes without any need for an external sound card. Simply plug the USB into your PC of choice and start going. Unfortunately, on Linux, some required parameters aren&#8217;t passed through [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":960,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[34,6],"tags":[],"class_list":["post-823","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-modes","category-technical-articles"],"blocksy_meta":[],"rttpg_featured_image_url":{"full":["https:\/\/www.we8chz.org\/wp-content\/uploads\/2025\/12\/Yaesu-Logo.png",590,590,false],"landscape":["https:\/\/www.we8chz.org\/wp-content\/uploads\/2025\/12\/Yaesu-Logo.png",590,590,false],"portraits":["https:\/\/www.we8chz.org\/wp-content\/uploads\/2025\/12\/Yaesu-Logo.png",590,590,false],"thumbnail":["https:\/\/www.we8chz.org\/wp-content\/uploads\/2025\/12\/Yaesu-Logo-150x150.png",150,150,true],"medium":["https:\/\/www.we8chz.org\/wp-content\/uploads\/2025\/12\/Yaesu-Logo-300x300.png",300,300,true],"large":["https:\/\/www.we8chz.org\/wp-content\/uploads\/2025\/12\/Yaesu-Logo.png",590,590,false],"1536x1536":["https:\/\/www.we8chz.org\/wp-content\/uploads\/2025\/12\/Yaesu-Logo.png",590,590,false],"2048x2048":["https:\/\/www.we8chz.org\/wp-content\/uploads\/2025\/12\/Yaesu-Logo.png",590,590,false]},"rttpg_author":{"display_name":"Jay NT0Y","author_link":"https:\/\/www.we8chz.org\/?author=4"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/www.we8chz.org\/?cat=34\" rel=\"category\">Digital Modes<\/a> <a href=\"https:\/\/www.we8chz.org\/?cat=6\" rel=\"category\">Technical Articles<\/a>","rttpg_excerpt":"Updated 7.6.2026. Why It Doesn&#8217;t Work The Yaesu FT-710 HF transceiver contains a non-standard and possibly emulated CM-108 USB audio interface that allows working digital modes without any need for an external sound card. Simply plug the USB into your PC of choice and start going. Unfortunately, on Linux, some required parameters aren&#8217;t passed through&hellip;","_links":{"self":[{"href":"https:\/\/www.we8chz.org\/index.php?rest_route=\/wp\/v2\/posts\/823","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.we8chz.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.we8chz.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.we8chz.org\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.we8chz.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=823"}],"version-history":[{"count":5,"href":"https:\/\/www.we8chz.org\/index.php?rest_route=\/wp\/v2\/posts\/823\/revisions"}],"predecessor-version":[{"id":1015,"href":"https:\/\/www.we8chz.org\/index.php?rest_route=\/wp\/v2\/posts\/823\/revisions\/1015"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.we8chz.org\/index.php?rest_route=\/wp\/v2\/media\/960"}],"wp:attachment":[{"href":"https:\/\/www.we8chz.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=823"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.we8chz.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=823"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.we8chz.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}