BLUETOOTHCTL-SCAN(1)
π bluetoothctl-scan β the Scan Submenu, explained by your favorite Bluetooth bestie π
Okay so this is the bluetoothctl-scan page from the Linux System Administration manual set, and it's basically the discovery-filter control room for bluetoothctl. Let's go β¨
β¨ NAME β¨
bluetoothctl-scan β the Scan Submenu π«Ά
πΈ SYNOPSIS πΈ
bluetoothctl [--options] [scan.commands]
This submenu configures discovery filters using the org.bluez.Adapter(5) method SetDiscoveryFilter. Like, that's its whole personality π
π SCAN COMMANDS π
π¦ uuids
Set/Get the UUIDs filter.
Usage > uuids [all/uuid1 uuid2 ...]
Uses the org.bluez.Adapter(5) method SetDiscoveryFilter property UUIDs.
[all/uuid1 uuid2 ...]β the list of UUIDs to filter for during scanning (default: none, use"all"to scan for any UUID).
Examples:
- Show current UUID filter settings β
> uuids - Filter for Generic Access service only β
> uuids 0x1800 - Filter for Battery service only β
> uuids 0x180F - Filter for Generic Access and Battery services β
> uuids 0x1800 0x180F - Filter for Device Info, Battery, and Environmental Sensing β
> uuids 0x180A 0x180F 0x181A - Filter for Generic Access using full UUID β
> uuids 00001800-0000-1000-8000-00805f9b34fb - Filter using mixed short and long forms β
> uuids 00001800-0000-1000-8000-00805f9b34fb 0000180f-0000-1000-8000-00805f9b34fb - Remove UUID filtering (scan for all devices) β
> uuids all
π₯ rssi
Set/Get the RSSI filter β and it clears pathloss. Yes, they're mutually exclusive besties, we don't make the rules π
This sets the minimum RSSI value for reporting device advertisements.
The value is in dBm.
If one or more discovery filters have been set, the RSSI delta-threshold imposed by starting discovery by default will not be applied. No cap.
Usage > rssi [rssi]
Uses the org.bluez.Adapter(5) method SetDiscoveryFilter property RSSI.
[rssi]β minimum RSSI threshold value in dBm (optional, shows current if omitted).
Examples:
- Show current RSSI filter setting β
> rssi - Only report devices with RSSI β₯ -60 dBm (close range) β
> rssi -60 - Report devices with RSSI β₯ -80 dBm (medium range) β
> rssi -80 - Report devices with RSSI β₯ -90 dBm (extended range) β
> rssi -90 - Report only very close devices (RSSI β₯ -40 dBm) β
> rssi -40 - Report devices with very weak signals (maximum sensitivity) β
> rssi -100
π§ pathloss
Set/Get the Pathloss filter β and this one clears RSSI. Told you, mutual exclusion is the vibe π
This sets the maximum pathloss value for reporting device advertisements.
The value is in dB.
If one or more discovery filters have been set, the RSSI delta-threshold imposed by starting discovery by default will not be applied.
Usage > pathloss [pathloss]
Uses the org.bluez.Adapter(5) method SetDiscoveryFilter property Pathloss.
[pathloss]β maximum pathloss threshold value in dB (optional, shows current if omitted).
Examples:
- Show current pathloss filter setting β
> pathloss - Report devices with maximum 4 dB pathloss (very close) β
> pathloss 4 - Report devices with maximum 10 dB pathloss (close range) β
> pathloss 10 - Report devices with maximum 20 dB pathloss (medium range) β
> pathloss 20 - Report devices with maximum 30 dB pathloss (extended range) β
> pathloss 30 - Report devices with maximum 50 dB pathloss (maximum range) β
> pathloss 50
π transport
Set/Get the transport filter.
The transport parameter determines the type of scan. The default is auto.
Possible values:
"auto"β interleaved scan"bredr"β BR/EDR inquiry"le"β LE scan only
If "le" or "bredr" Transport is requested and the controller doesn't support it, an org.bluez.Error.Failed error will be returned. Rude but fair π
If "auto" transport is requested, the scan will use LE, BREDR, or both, depending on what's currently enabled on the controller. She's flexible like that β¨
Usage > transport [auto/bredr/le]
[auto/bredr/le]β transport type for scanning (optional, shows current if omitted).
Examples:
- Show current transport filter setting β
> transport - Use automatic transport selection (LE + BR/EDR) β
> transport auto - Scan only Low Energy devices β
> transport le - Scan only BR/EDR (Classic Bluetooth) devices β
> transport bredr
π duplicate-data
Set/Get the duplicate data filter.
Disables duplicate detection of advertisement data.
When enabled, PropertiesChanged signals will be generated for ManufacturerData and ServiceData every single time they are discovered. Like she never forgets, ever π«Ά
Usage > duplicate-data [on/off]
[on/off]β enable or disable duplicate advertisement data reporting (optional, shows current if omitted).
Examples:
- Show current duplicate data filter setting β
> duplicate-data - Enable reporting of duplicate advertisement data β
> duplicate-data on - Disable duplicate data reporting (filter duplicates) β
> duplicate-data off
β discoverable
Set/Get the discoverable filter.
Makes the adapter discoverable while discovering. Main character energy, honestly π
If the adapter is already discoverable, setting this filter won't have any effect. Nothing to do, she's already that girl π
Usage > discoverable [on/off]
[on/off]β make adapter discoverable during scanning (optional, shows current if omitted).
Examples:
- Show current discoverable filter setting β
> discoverable - Make adapter discoverable during scanning β
> discoverable on - Keep adapter non-discoverable during scanning β
> discoverable off
π pattern
Set/Get the pattern filter.
Discovers devices where the pattern matches either the prefix of the address or the device name, which is a convenient way to limit the number of device objects created during a discovery.
When set, it disregards device discoverable flags.
Note π The pattern matching is ignored if there are other clients that don't set any pattern, as it works as a logical OR. Also, setting an empty string "" pattern will match any device found.
Usage > pattern [value]
[value]β pattern to match device address prefix or name (optional, shows current if omitted).
Examples:
- Show current pattern filter setting β
> pattern - Discover devices with Samsung in the name β
> pattern Samsung - Discover devices with iPhone in the name β
> pattern iPhone - Discover devices with Headphones in the name β
> pattern Headphones - Discover devices with addresses starting with 00:11:22 β
> pattern 00:11:22 - Discover devices with addresses starting with AA:BB:CC β
> pattern AA:BB:CC - Clear pattern filter (match any device) β
> pattern ""
π§ββοΈ auto-connect
Set/Get the auto-connect filter.
Connect to discovered devices automatically if the pattern filter has been set and it matches the device address or name, and the device is connectable. She'll just walk up and say hi for you, no cap π₯
Usage > auto-connect [on/off]
[on/off]β automatically connect to discovered devices matching pattern filter (optional, shows current if omitted).
Examples:
- Show current auto-connect filter setting β
> auto-connect - Enable automatic connection to matching devices β
> auto-connect on - Disable automatic connection (manual connection required) β
> auto-connect off
π©· clear
Clears the discovery filter. The reset button, the "new year new me", the factory reset of vibes β¨
Usage > clear
[uuids/rssi/pathloss/transport/duplicate-data/discoverable/pattern/auto-connect]
[uuids/rssi/pathloss/transport/duplicate-data/discoverable/pattern/auto-connect]β specific filter(s) to clear (optional, clears all if omitted).
Examples:
- Clear all discovery filters β
> clear - Clear only UUID filter β
> clear uuids - Clear only RSSI filter β
> clear rssi - Clear only pathloss filter β
> clear pathloss - Clear only transport filter β
> clear transport - Clear only duplicate data filter β
> clear duplicate-data - Clear only discoverable filter β
> clear discoverable - Clear only pattern filter β
> clear pattern - Clear only auto-connect filter β
> clear auto-connect - Clear UUID and RSSI filters β
> clear uuids rssi - Clear transport and pattern filters β
> clear transport pattern - Clear pattern and auto-connect filters β
> clear pattern auto-connect - Clear RSSI, pathloss, and discoverable filters β
> clear rssi pathloss discoverable
π RESOURCES π
http://www.bluez.org β go touch grass on the official site, iykyk π¦
π REPORTING BUGS π
linux-bluetooth@vger.kernel.org β email the hive mind, they're nice fr fr π
π COPYRIGHT π
Free use of this software is granted under the terms of the GNU Lesser General Public Licenses (LGPL). Slay, legally speaking π
π« That's the whole page, bestie. This lovely little manual comes from BlueZ, dated July 2023 β signed, sealed, and delivered with love. Mwah π
π¦ where this page comes from
- centos-stream 9: bluez 5.87+2.git8750129efca8-1.el9 Β· GPLv2+
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms