Headset left side doesn't works in 2.4GHz Mode on Fedora 41 [ Havit Fuxi H3 ]

Hello everyone,

I need some help with my recently purchased Headset . It’s a trimode headset, and I’ve been struggling to get it working properly on my Fedora 41 system, which uses Pipewire.

When the headset is paired via 2.4GHz mode, it doesn’t work right away. Only the right side of the headset works. I can hear sound only on the right ear, while the left ear does not output audio. However, when I use the headset with a cable (USB-C or 3.5mm), both sides work perfectly fine.

I’ve also tested this same headset on windows with the 2.4GHz mode and it works fine.

  • Troubleshooting steps already taken:
    1. Pipewire settings: I’ve tried adjusting settings via alsamixer and Pipewire configurations, including changing profiles and balance settings, but it hasn’t helped.
    2. PulseAudio: I even tried switching back to PulseAudio (which didn’t work on my system)
    3. Other suggestions: I’ve gone through various solutions I found online, but nothing seems to fix the problem.
    4. System logs: I checked journalctl for any related error messages, but there was nothing useful that pointed to a clear cause of the issue.

I would appreciate it if anyone has faced a similar issue with this headset or with wireless headsets in general, especially when using the 2.4GHz mode with Pipewire on Fedora. I’d love to hear any suggestions or solutions that might resolve the audio issue in wireless mode.

Thank you in advance for your time and help! :blush:

System Info:

Operating System: Fedora Linux 41
KDE Plasma Version: 6.3.3
KDE Frameworks Version: 6.11.0
Qt Version: 6.8.2
Kernel Version: 6.13.6-200.fc41.x86_64 (64-bit)
Graphics Platform: Wayland

My guess is it’s somehow getting a mono signal when it’s expecting a stereo one.

1 Like

Mono audio signals usually route to the left channel (for reasons). But with a bug I guess anything is possible.

1 Like

If it is actually going out the left, I am also not personally above putting on headphones backwards as well. :sweat_smile:

2 Likes

In this case I used pactl to check info about the device and everything looks good…

Sink #624
        State: SUSPENDED
        Name: alsa_output.usb-XiiSound_Technology_Corporation_Fuxi-H3-00.analog-stereo
        Description: Fuxi-H3  Analog Stereo
        Driver: PipeWire
        Sample Specification: s16le 2ch 48000Hz
        Channel Map: front-left,front-right
        Owner Module: 4294967295
        Mute: no
        Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        Base Volume: 64562 /  99% / -0.39 dB
        Monitor Source: alsa_output.usb-XiiSound_Technology_Corporation_Fuxi-H3-00.analog-stereo.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        Properties:
                alsa.card = "0"
                alsa.card_name = "Fuxi-H3"
                alsa.class = "generic"
                alsa.components = "USB040b:0897"
                alsa.device = "0"
                alsa.driver_name = "snd_usb_audio"
                alsa.id = "USB Audio"
                alsa.long_card_name = "XiiSound Technology Corporation Fuxi-H3 at usb-0000:00:14.0-11, full speed"
                alsa.mixer_name = "USB Mixer"
                alsa.name = "USB Audio"
                alsa.resolution_bits = "16"
                alsa.subclass = "generic-mix"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.sync.id = "00000000:00000000:00000000:00000000"
                api.alsa.card.longname = "XiiSound Technology Corporation Fuxi-H3 at usb-0000:00:14.0-11, full speed"
                api.alsa.card.name = "Fuxi-H3"
                api.alsa.path = "front:0"
                api.alsa.pcm.card = "0"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                card.profile.device = "3"
                device.api = "alsa"
                device.class = "sound"
                device.id = "94"
                device.profile.description = "Analog Stereo"
                device.profile.name = "analog-stereo"
                device.routes = "1"
                factory.name = "api.alsa.pcm.sink"
                media.class = "Audio/Sink"
                device.description = "Fuxi-H3 "
                node.name = "alsa_output.usb-XiiSound_Technology_Corporation_Fuxi-H3-00.analog-stereo"
                node.nick = "Fuxi-H3"
                node.pause-on-idle = "false"
                object.path = "alsa:acp:FuxiH3:3:playback"
                port.group = "playback"
                priority.driver = "1009"
                priority.session = "1009"
                factory.id = "19"
                clock.quantum-limit = "8192"
                client.id = "46"
                node.driver = "true"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "92"
                object.serial = "624"
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "0"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio0"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.bus = "usb"
                device.bus-id = "usb-XiiSound_Technology_Corporation_Fuxi-H3-00"
                device.bus_path = "pci-0000:00:14.0-usb-0:11:1.0"
                device.enum.api = "udev"
                device.icon_name = "audio-card-analog-usb"
                device.name = "alsa_card.usb-XiiSound_Technology_Corporation_Fuxi-H3-00"
                device.nick = "Fuxi-H3"
                device.plugged.usec = "6964866440"
                device.product.id = "0x0897"
                device.product.name = "Fuxi-H3 "
                device.serial = "XiiSound_Technology_Corporation_Fuxi-H3"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11:1.0/sound/card0"
                device.vendor.id = "0x040b"
                device.vendor.name = "Weltrend Semiconductor"
                spa.object.id = "2"
                device.string = "0"
        Ports:
                analog-output: Analog Output (type: Analog, priority: 9900, availability unknown)
        Active Port: analog-output
        Formats:
                pcm

It’s been really hard to figure out whats up with this… Also the headset can change between Stereo and Surround (up to 7.1 or smth like this.) with a double click on the mic mute button, but this does nothing and the issue keeps with only the right side working.

If you are getting only the right channel with digital stereo output, I’d be tempted to blame the headphones. Isn’t it the chip in the headphones that decodes the stereo signal when the signal is digital? Do you have some other stereo bluetooth device you can test with?

I think Windows might be using different (proprietary) bluetooth audio codecs, so it might be possible that a bug in the headset’s chip/firmware would be decoding some signals/codecs correctly, but not others.

2 Likes

I do have another bluetooth device which is an earphone but sadly I can’t test with my pc as I dont have any bluetooth adapter or support.

Also remember I’m using it on 2.4ghz mode and I can confirm the headphone works perfectly on 2.4ghz on Windows, maybe because it was more tested there or even developed to work with Windows, but idk.

I’ll try another distro by a live ISO to see if the issue persists

Btw I just noticed that when it makes the connection it quickly makes sound at the left side (none at the right) and then no signal of sound, then to make it get back I need to adjust the volume through the plasma-pa panel some times, but it gets back only with the right side. :thinking:

Edit: Just tested this issue on a CachyOS live iso and its the same

If anyone wants to check this is the headset I’m trying out:

It probably lacks support on Linux for some reason

You got me. :person_shrugging: FWIW, I just tried to find some info about how all this works with bluetooth and I found this thread interesting/informative. The gist of it is that the signal is likely decoded and re-encoded several times. :confused:

Excerpted from linustechtips.com – I need help understanding the signal path of Bluetooth audio:

… Assuming the transmitter takes in a 3.5mm phono or RCA jack, the input is analog. It’s converted to digital inside the box before transmitted to the headphones. The headphones have a DAC in them to decode the data from the Bluetooth signal into an analog one to drive the headphones. …

… I wasn’t aware Bluetooth supports AAC as-is, because normally that’s what the music file is encoded as. However, this doesn’t mean the Bluetooth transmitter will take an AAC encoded music file and transfer it as-is, because by the time the transmitter gets it, it was decoded into some other format in the case of using TOSLINK or it’s in analog in the case of using 3.5mm.

So basically if you were playing an AAC encoded file, it’ll get decoded, then re-encoded. It’s the same thing as if you saved a JPEG as a PNG or BMP file, then resaved it as a JPEG.

Edit: Nevermind, you are using wireless (2.4GHz), so the bluetooth path/codecs wouldn’t apply.

1 Like

Well, just seems that this headset is borked for Linux drivers rn, it’s very buggy, when I adjust the volume through its buttons the sound stop working and it will only get back when I adjust through plasma on the plasma-pa, very weird behavior, using it with bluetooth instead 2.4GHz may be better, but I can’t test this rn unfortunately.

Got to solve it using alsamixer, when I tried it at the first I didnt notice I needed to select the device, I thought it would be already selected because it was the default device. :person_facepalming:

It’s a very common issue on linux with alot types of 2.4ghz headsets, and oddly you can only solve it with ALSA Mixer.

2 Likes