Bluetooth Add-Ons [SOLVED]
I'm trying to scan for several Onion Omega's that have the BT add-on configured as 'beacon'.
The beacons I configured like:
$ opkg install obluez-libs obluez-utils $ hciconfig hci0 -a $ hciconfig hci0 up $ hciconfig hci0 leadv 3 $ hciconfig hci0 noscan $ hciconfig hci0 -a hci0: Type: BR/EDR Bus: USB BD Address: 00:1A:7D:DA:71:13 ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING RX bytes:1182 acl:0 sco:0 events:67 errors:0 TX bytes:1107 acl:0 sco:0 commands:67 errors:0 Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH HOLD SNIFF PARK Link mode: SLAVE ACCEPT Name: 'OnionBLE' Class: 0x000000 Service Classes: Unspecified Device Class: Miscellaneous, HCI Version: 4.0 (0x6) Revision: 0x22bb LMP Version: 4.0 (0x6) Subversion: 0x22bb Manufacturer: Cambridge Silicon Radio (10)
I also have a raspberry pi (3 with built in BT) from which I scan.
$ sudo hcitool lescan LE Scan ... 38:01:95:01:5E:41 (unknown) 00:1A:7D:DA:71:13 (unknown) 00:1A:7D:DA:71:13 rpi2
This only shows me 1 of the 2 onion omega with BT add-ons plus the rpi entry for a second RPI that i also configured as 'beacon'.
The question is: what could be the cause of the missing second Onion w BT? They are both configured in the same way so I'd expect them both tho show up.
All devices are in my room (not next to each other). Does somehow the mac address, which is the same for all BT add-ons mess this up? How could I set a name in such a way it gets advertised? (All have their own name set with 'hciconfig hci0 name <unique name>')
Of course I could use 'hcitool lescan --duplicates' in order to not filter them but then I still cannot make a difference as all onions with BT add on seem to be reported as ''00:1A:7D:DA:71:13 (unknown)''
Thanks to anyone who would want to look into this.
Ok, found at least how to fiddle with the BD Address.
There is a utility specific to this brand of BLE dongles
bccmd. In order to change BD Address the following steps need to be taken:
$ hciconfig hci0 -a // check existing bd address $ bccmd -d hci0 psset bdaddr 04 00 06 05 03 00 02 01 // set new address $ bccmd -d hci0 warmreset // reset the device $ /etc/init.d/bluetoothd restart // reset bt deamon $ hciconfig hci0 -a // should show a different bd address.
To check scan from another device (RPI in my case)
$ sudo hcitool -i hci0 lescan LE Scan ... 38:01:95:01:5E:41 (unknown) 01:02:03:04:05:06 (unknown) // this is the new bd address.
So solved for now, although I still dont know why the local names are not shown in the scan.