Bluetooth: Higher power consumption w/o devices

Hey

I have a brand new NUC and found out that the overall power consumption will raise about 2 watts if I keep bluetooth adapter on but turn off my paired bluetooth devices (keyboard+mouse).
If I keep them turned on power consumption of the NUC is permanently 2 watts lower.

Did I miss something to configure to avoid bluetooth adapter from wasting energy when there is no paired bluetooth device to be found?

I measured the power consumption with an energy meter to plug in.

Thanks in advance!

My sys:

  Kernel: 6.3.12-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.1.1
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.3-x86_64
    root=UUID=82b93ba1-5a81-44f9-9b67-9b250a7f3720 rw quiet splash apparmor=1
    security=apparmor resume=UUID=997c70fe-4e20-449c-ab09-82b672e7358c
    udev.log_priority=3
  Console: pty pts/1 DM: LightDM v: 1.32.0 Distro: Manjaro Linux
    base: Arch Linux
Machine:
  Type: Mini-pc System: Intel Client Systems product: NUC13ANKi3 v: M89900-203
    serial: <filter> Chassis: Intel Corporation type: 35 v: 2.0 serial: N/A
  Mobo: Intel model: NUC13ANBi3 v: M89896-203 serial: <filter> UEFI: Intel
    v: ANRPL357.0027.2023.0607.1754 date: 06/07/2023
Battery:
  Message: No system battery data found. Is one present?
Memory:
  System RAM: total: 16 GiB available: 15.12 GiB used: 1.5 GiB (9.9%)
    igpu: 128 MiB
  Array-1: capacity: 64 GiB slots: 2 modules: 1 EC: None
    max-module-size: 32 GiB note: est.
  Device-1: Controller0-ChannelA-DIMM0 type: no module installed
  Device-2: Controller1-ChannelA-DIMM0 type: DDR4 detail: synchronous
    size: 16 GiB speed: 3200 MT/s volts: curr: 1.2 min: 1.2 max: 1.2
    width (bits): data: 64 total: 64 manufacturer: Kingston
    part-no: KF3200C20S4/16G serial: <filter>
CPU:
  Info: model: 13th Gen Intel Core i3-1315U socket: U3E1 bits: 64
    type: MST AMCP arch: Raptor Lake level: v3 note: check built: 2022+
    process: Intel 7 (10nm) family: 6 model-id: 0xBA (186) stepping: 3
    microcode: 0x4112
  Topology: cpus: 1x cores: 6 mt: 2 tpc: 2 st: 4 threads: 8 smt: enabled
    cache: L1: 544 KiB desc: d-4x32 KiB, 2x48 KiB; i-2x32 KiB, 4x64 KiB
    L2: 4.5 MiB desc: 2x1.2 MiB, 1x2 MiB L3: 10 MiB desc: 1x10 MiB
  Speed (MHz): avg: 2500 min/max: 400/1200:900 base/boost: 1089/4500 scaling:
    driver: intel_pstate governor: powersave volts: 0.6 V ext-clock: 100 MHz
    cores: 1: 2500 2: 2500 3: 2500 4: 2500 5: 2500 6: 2500 7: 2500 8: 2500
    bogomips: 39944
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat
    arch_capabilities arch_lbr arch_perfmon art avx avx2 avx_vnni bmi1 bmi2
    bts clflush clflushopt clwb cmov constant_tsc cpuid cpuid_fault cx16 cx8
    de ds_cpl dtes64 dtherm dts epb ept ept_ad erms est f16c flexpriority
    flush_l1d fma fpu fsgsbase fsrm fxsr gfni hfi ht hwp hwp_act_window
    hwp_epp hwp_notify hwp_pkg_req ibpb ibrs ibrs_enhanced ibt intel_pt
    invpcid lahf_lm lm mca mce md_clear mmx monitor movbe movdir64b movdiri
    msr mtrr nonstop_tsc nopl nx ospke pae pat pbe pclmulqdq pdcm pdpe1gb pebs
    pge pku pln pni popcnt pse pse36 pts rdpid rdrand rdseed rdtscp rep_good
    sdbg sep serialize sha_ni smap smep ss ssbd sse sse2 sse4_1 sse4_2 ssse3
    stibp syscall tm tm2 tpr_shadow tsc tsc_adjust tsc_deadline_timer
    tsc_known_freq umip vaes vme vmx vnmi vpclmulqdq vpid waitpkg x2apic
    xgetbv1 xsave xsavec xsaveopt xsaves xtopology xtpr
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Enhanced / Automatic IBRS, IBPB: conditional,
    RSB filling, PBRSB-eIBRS: SW sequence
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel Raptor Lake-P [UHD Graphics] driver: i915 v: kernel
    arch: Gen-13 process: Intel 7 (10nm) built: 2022+ ports: active: HDMI-A-1
    empty: DP-1, DP-2, DP-3, DP-4, HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:a7a9
    class-ID: 0300
  Display: x11 server: X.org v: 1.21.1.8 compositor: xfwm driver: X:
    loaded: modesetting alternate: fbdev,vesa dri: iris gpu: i915 tty: 80x24
  Monitor-1: HDMI-A-1 model: Samsung serial: <filter> built: 2010
    res: 1920x1080 dpi: 40 gamma: 1.2 size: 160x90mm (6.3x3.54")
    diag: 1388mm (54.6") ratio: 16:9 modes: max: 1920x1080 min: 720x400
  API: OpenGL Message: GL data unavailable in console and glxinfo missing.
Audio:
  Device-1: Intel driver: snd_hda_intel v: kernel
    alternate: snd_sof_pci_intel_tgl bus-ID: 00:1f.3 chip-ID: 8086:51ca
    class-ID: 0403
  API: ALSA v: k6.3.12-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 0.3.73 status: off tools: pw-cli
  Server-3: PulseAudio v: 16.1 status: active (root, process)
    with: pulseaudio-alsa type: plugin tools: pacat,pactl,pavucontrol
Network:
  Device-1: Intel driver: iwlwifi v: kernel port: N/A bus-ID: 00:14.3
    chip-ID: 8086:51f1 class-ID: 0280
  IF: wlo1 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Device-1: Intel driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s
    lanes: 1 mode: 1.1 bus-ID: 3-10:2 chip-ID: 8087:0033 class-ID: e001
  Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 465.76 GiB used: 45.92 GiB (9.9%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 980 PRO 500GB
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 5B2QGXA7 temp: 42.9 C
    scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 448.83 GiB size: 440.71 GiB (98.19%)
    used: 45.88 GiB (10.4%) fs: ext4 block-size: 4096 B dev: /dev/nvme0n1p2
    maj-min: 259:2 label: N/A uuid: 82b93ba1-5a81-44f9-9b67-9b250a7f3720
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 37.3 MiB (12.5%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p1
    maj-min: 259:1 label: N/A uuid: 9289-399A
Swap:
  Kernel: swappiness: 10 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: partition size: 16.64 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3 label: swap
    uuid: 997c70fe-4e20-449c-ab09-82b672e7358c
Unmounted:
  Message: No unmounted partitions found.
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 1 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-2: 2-0:1 info: super-speed hub ports: 3 rev: 3.1
    speed: 20 Gb/s (2.33 GiB/s) lanes: 2 mode: 3.2 gen-2x2 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-3: 3-0:1 info: hi-speed hub with single TT ports: 12 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 3-10:2 info: Intel type: bluetooth driver: btusb interfaces: 2
    rev: 2.0 speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 100mA
    chip-ID: 8087:0033 class-ID: e001
  Hub-4: 4-0:1 info: super-speed hub ports: 4 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 46.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 249 Uptime: 3h 16m wakeups: 11190 Init: systemd v: 253
  default: graphical tool: systemctl Compilers: gcc: 13.1.1 clang: 15.0.7
  Packages: pm: pacman pkgs: 1162 libs: 345 tools: pamac pm: flatpak pkgs: 0
  Shell: Bash (sudo) v: 5.1.16 running-in: pty pts/1 (SSH) inxi: 3.3.28 ```

You can power off the device using bluetoothctl

You could also set scanning off - it is likely the scanning for devices which causes the power consumption

1 Like

may you post the outpot of the mandatory inxi command described below ? this will show up what type of bluetooth-adapter you’re using. without knowing the type of hardware it’s very hard to imagine.
:+1: Welcome to Manjaro! :+1:

  1. Please read this:
    [HowTo] Provide System Information
    and press the three dots below your post and press the :pencil2: to give us more information so we can see what’s really going on.
    Now we know the symptom of the disease, but we need some more probing to know where the origin lies… :grin:
  2. An inxi --admin --verbosity=7 --filter --no-host --width would be the minimum required information for us to be able to help you. (Personally Identifiable Information like serial numbers and MAC addresses will be filtered out by the above command)
    Also, please copy-paste that output in-between 3 backticks ``` at the beginning and end of the code/text. (use the option “preformatted text”)

:+1:

@linux-aarhus I tried ‘scan off’ in bluetoothctl but got an error because there wasn’t any scan running :frowning:
@Olli thanks for info. I edited my inital post with the infos about my sys while bluetooth devices were turned off manually (which means +2 watts power consumption at the NUC)

strange, i searched for NUC13ANKi3 and if so this nuc should have a LAN and Wifi, but inxi shows just the wifi-bluetooth. this intel-ethernet-chipset is pretty new (Q 1/23). are i’m right that a physical LAN exists at your NUC ?

Right, there is a LAN port but I disabled it in BIOS because I don’t use it yet.

hello sad-stan,

this is an interesting behaviour .
the adapter needs power only for receiving and sending data to your devices as long as they are connected and paired. this is done periodical. if you switch your devices off the bluetooth adapter will check constant for reconnecting and will need a way more power because the sender/receiver is constant working for searching and reconnecting.

Thanks for your answer. That helped me a lot to find a solution and I think I’m very close :slight_smile:

Problem is that when I keep my BT mouse+keyboard always on they will disconnect automatically after a certain time and won’t reconnect until I touch them. And while they are idling power consumption is 2 watts higher at the NUC again.

So I found the “BTUSB.ENABLE_AUTOSUSPEND=N” parameter for the kernel which keeps the BT connection constantly alive but unfortunatly won’t reduce power consumption at the NUC. It seems that the BT adapter keeps talking to the paired devices non-stop.

Then I set USB_AUTOSUSPEND=1 and USB_EXCLUDE_BTUSB=0 in TLP.
And with this combo it finally seems that the BT connection stays awake while power consumption at the NUC is permanently 2 watts lower. The surface of the NUC is also way cooler.

Next step:
I just want to keep my keyboard permanently on and switch my mouse on and off whenever I need it without increasing power consumption at the BT modul again.
Therefor I want to remove the pairing between the BT adapter and my mouse whenever my display turns off to save power. And as soon as my display wakes up again I want to renew the BT pairing with my mouse so I can switch it on and use it whenever I need it.
I just need to find the right display on and off event to trigger the pairing :thinking:

but this depends on the behaviour of your keyboard and mouse. there are some vendors that provide their hardware with setup-utils but most common designed for ms-windows. .

Right, and it seems that my keyboard (HP 355) keeps the BT connection alive while my mouse (Logitech Anywhere 2S) turn itself off after an hour or so.
Now if I could pair the mouse automatically as soon as my display wakes up from standby and unpair again when the display goes to suspend mode that would be perfect.

End of the story:
I bought a new mouse :frowning:

It was a silly idea to renew the pairing everytime because my old Logitech mouse changes its MAC address on every new connection. Plus it always takes a lifetime to establish a successful pairing.

Now I have a HP 715 mouse with bluetooth 5.3 which doesn’t waste any energy at my NUC when idling.
Maybe it’s because of the different manufacturer or because of the different bluetooth protocol but everything works just fine with HP compared to Logitech. Now the power consumption of my idling NUC is constantly ridiculous low.

Meanwhile I left my HP 355 keyboard switched on for the past 7 days continuously and it didn’t drop a single percentage of battery level. I’m hopeful that my new HP mouse will show the same energy saving pattern.

1 Like

to be honest, that was the best solution in practice. it might be interesting for us to play around with settings back and forth but sometimes it’s just that simple: use modern hardware where the solution is built in out of stock.