Why are two different BLE adapters show different devices when scanning?
I will try to help you with this one.
It seems that there is something wrong with your PixiePro device, however information you’ve provided is not enough to diagnose the issue.
It could be a problem with either the device itself, or Bluez stack, or, simply because the devices are out of the detectable range of the PixiePro device.
In order to debug your issue you may try to do the following:
First of all check mac-addresses, uuid, major and minor values of
your devices. Usually you may find this information on the web-portal
of your iBeacon vendor;Ensure that all of the devices are turned on and working. The simplest way
is to check whether they are detected by a mobile phone. You may
install free iOS or Android application. You should be able to detect all of your devices. Also check the RSSI values of every iBeacon device. Please note that values will vary even though they can be at the same distance from the phone to the iBeacon. However, the behavior, while you are moving them further or closer to the receiving device, should be clearly recognized by the mobile application;Once you are 100% sure that all of the iBeacon devices are
working properly, you should be able to detect the mac-addresses on
your board devices. To do this, I’d recommend to run thehcitool
in
the first terminal window and thehcidump
tool in the second
without any additional parameters. Unlike thehcitool
command it
will also output the RSSI values of captured packets like this:HCI Event: LE Meta Event (0x3e) plen 42
LE Advertising Report
ADV_NONCONN_IND - Non connectable undirected advertising (3)
bdaddr 02:AB:26:D4:9A:EE (Public)
Flags: 0x1a
Unknown type 0xff with 25 bytes data
RSSI: -72
These values will help you to compare the behavior of scanning on different devices. DON’T expect them to be equal everywhere, these are simply relative values. Now try to move each of your devices close to your receiving board(s) and you should be able to see its mac-address in the output of the hcidump
tool.
In this case if you still don’t see your iBeacon devices then for
sure there is an issue somewhere in your boards. It could be either
hardware or software. This is where I’d recommend:- Install the
latest firmware, which may fix bugs in the BLE stack
implementation. - If this approach doesn’t help - then it means that the
issue lies somewhere in the hardware and, therefore, the only thing you
can do is to replace your board device.
- Install the
Good luck!
If any questions, feel free to ask!
Capture bluetooth beacons from a specific device
When a new device is discovered BlueZ indicates this with [NEW]
. When a property of an already discovered device CHanGes then it uses [CHG]
.
BlueZ allows discovery report to be filtered with SetDiscoveryFilter. More information at: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/adapter-api.txt
In bluetoothctl
this is accessed from commands under menu scan
.
If you want to do this with code I would generally recommend using the API's provided by BlueZ and documented at:
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc
I have posted a Python example before at:
bluetootctl scan on parsing
The BlueZ D-Bus APIs can be accessed from any programming language that has D-Bus bindings.
hcitool lescan does not work on Bluetooth version 5
gatttool and hcitool were both deprecated back in 2017.
D-Bus API is documented at: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc
And there are examples at: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test.
For exploration on the command line then either btmgmt
or bluetoothctl
should cover most situations.
Related Topics
Libpcap - Capture Packets from All Interfaces
How to Add Boost Library to Code::Blocks in Linux
How to Add an User and Re Set the Root User in Yocto
Shell Script for Process Monitoring
Find Value from One CSV in Another One (Like Vlookup) in Bash (Linux)
Capturing Display/Monitor Images, Sending Keyboard Input on Linux
Clear Screen in a Linux Terminal Using Assembly
Linux How to Add a File to a Specific Folder Within a Zip File
Passing Environment Variables Not Working with Docker
How to Create a Zip File Without Entire Directory Structure
Sshpass: Command Not Found Error
Perl: What Does Checkstack.Pl in Linux Source Do
Save Modifications in Place with Non Gnu Awk
How to Understand Diff -U in Linux
Triggering Autokey Script via Mouse Button - How To
Bash: How to Traverse Directory Structure and Execute Commands
How to Do a One Way Diff in Linux
Why Does Unitywebrequest Return Unkown Error When I Do a Get Request on Linux