Bluetooth headset disconnects every ~30 secs - IMD Networks 13d3:3570

I’ve been having a problem with my bluetooth connection. Since I’m newbie I’ve been trying to resolve this with Claude, so here’s the message it prepared for me to upload this post and look for any help. I’ll just paste it in here trusting that any of you will understand it ^^" thanks for ur attention!!! <33333

System info:

  • OS: EndeavourOS
  • Kernel: 7.0.12-arch1-1
  • WM: Hyprland (HyDE)
  • GPU: NVIDIA GeForce GTX 1080 Ti (nvidia-580xx-dkms)
  • Bluetooth adapter: IMC Networks Bluetooth Radio (13d3:3570)
  • Headset: Anker Soundcore Q30

Problem:
My bluetooth headset connects fine but disconnects automatically every ~30 seconds. The disconnect reason shown in bluetoothctl is org.bluez.Reason.Unknown, Unspecified. The headset reconnects on its own but then disconnects again after another ~30 seconds, making it unusable.

In journalctl bluetooth logs I see this repeating pattern:

bluetoothed: /org/bluez/hci0/dev_98_47_44_C9_86_9A/sep2/fd0: fd(31) ready
bluetoothed: src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107)

What I’ve tried:

  • Downgraded wireplumber from 0.5.14 to 0.5.12 (fixed a crash on bluetooth connect, but disconnections persist)
  • Disabled btusb autosuspend via /etc/modprobe.d/btusb.conf with options btusb enable_autosuspend=n
  • Added LE connection interval params to /etc/bluetooth/main.conf
  • Tried disabling HFP/HSP profile via Disable=Headset in main.conf
  • Cleared wireplumber cache and state

Notes:

  • wireplumber 0.5.14 was crashing (core dump) every time the headset connected. Downgrading to 0.5.12 fixed the crash but not the disconnections.
  • The disconnect seems related to the HFP (Hands-Free Voice gateway) profile failing, but I couldn’t find a way to force A2DP-only connection.
  • Audio works fine when connected via cable.