2004-11-09 00:03:38

by Scott W Gifford

[permalink] [raw]
Subject: [Bluez-users] Detecting RSSI without connecting

Hello again,

For a project I'm working on, I'd like to determine which of several
(possibly many) Bluetooth devices is closest. "Best RSSI" is a good
enough approximation of "closest" for my purposes, and since there may
be many devices and I don't have any other interest in them, I'd like
to get the RSSI without establishing a connection with each device.

It appears that "hcitool rssi <bdaddr>" requires that a connection is
established. Do any cards provide a way of getting RSSI that doesn't
require establishing a connection?

Thanks!

----ScottG.


-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users/listinfo/bluez-users


2004-11-30 06:41:37

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-users] Detecting RSSI without connecting

Hi Scott,

> > I maybe gonna change the complete interface to the inquiry stuff in the
> > future and so I haven't added support for inquiry with RSSI so far.
>
> OK. I can find time to help test this and perhaps help with the
> coding when you're ready to add this support.

right now I like to wait until I get access to the Extended Inquiry
Response (EIR) proposal. The Bluetooth 2.0 specification deprecated
another field of the inquiry result events and the next interface must
be a little bit more generic.

> > You don't need to hack something on hcidump, simply use the HCI raw
> > socket interface. Send the inquiry command and wait for the
> > events. You will find example code for this and listening on the 1.1
> > inquiry event in the mailing list archive. It should be easy to
> > adapt.
>
> Ah, this program:
>
> http://article.gmane.org/gmane.linux.bluez.user/1191
>
> looks like a great place to start. I'll hack at it for a bit over the
> next few days and post an update.

Exactly one of these (there are for examples).

Regards

Marcel




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-30 06:30:30

by Scott W Gifford

[permalink] [raw]
Subject: Re: [Bluez-users] Detecting RSSI without connecting

Marcel Holtmann <[email protected]> writes:

[...]

> I maybe gonna change the complete interface to the inquiry stuff in the
> future and so I haven't added support for inquiry with RSSI so far.

OK. I can find time to help test this and perhaps help with the
coding when you're ready to add this support.

> You don't need to hack something on hcidump, simply use the HCI raw
> socket interface. Send the inquiry command and wait for the
> events. You will find example code for this and listening on the 1.1
> inquiry event in the mailing list archive. It should be easy to
> adapt.

Ah, this program:

http://article.gmane.org/gmane.linux.bluez.user/1191

looks like a great place to start. I'll hack at it for a bit over the
next few days and post an update.

Thanks!

----ScottG.


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-30 05:31:30

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-users] Detecting RSSI without connecting

Hi Scott,

> > If you buy a CSR based Bluetooth 1.2 device it will support inquiry with
> > RSSI. Also the 1.2 Silicon Wave based and the AVM BlueFRITZ! USB v2.0
> > have this support. However both have a bug, but you can work around it.
> > Maybe the easiest way is a D-Link DBT-120 Rev. B3 and then put the Apple
> > firmware update on it.
>
> Thanks for the advice, I got a DBT-120 and put the Apple firmware on
> it (yet another reason I'm glad we bought a Mac for my wife), and I
> can now get the RSSI from an inquiry!
>
> That is to say, I can see it in hcidump. I don't see the results in
> "hcitool inq", and from a quick look at the source code it looks like
> that information isn't returned from the kernel. Are there plans to
> provide this information via the kernel and libraries, or should I
> plan on hacking something up with hcidump?

I maybe gonna change the complete interface to the inquiry stuff in the
future and so I haven't added support for inquiry with RSSI so far. You
don't need to hack something on hcidump, simply use the HCI raw socket
interface. Send the inquiry command and wait for the events. You will
find example code for this and listening on the 1.1 inquiry event in the
mailing list archive. It should be easy to adapt.

Regards

Marcel




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-30 04:44:37

by Scott W Gifford

[permalink] [raw]
Subject: Re: [Bluez-users] Detecting RSSI without connecting

Marcel Holtmann <[email protected]> writes:

[...]

> If you buy a CSR based Bluetooth 1.2 device it will support inquiry with
> RSSI. Also the 1.2 Silicon Wave based and the AVM BlueFRITZ! USB v2.0
> have this support. However both have a bug, but you can work around it.
> Maybe the easiest way is a D-Link DBT-120 Rev. B3 and then put the Apple
> firmware update on it.

Thanks for the advice, I got a DBT-120 and put the Apple firmware on
it (yet another reason I'm glad we bought a Mac for my wife), and I
can now get the RSSI from an inquiry!

That is to say, I can see it in hcidump. I don't see the results in
"hcitool inq", and from a quick look at the source code it looks like
that information isn't returned from the kernel. Are there plans to
provide this information via the kernel and libraries, or should I
plan on hacking something up with hcidump?

Thanks again!

----ScottG.


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-26 17:28:11

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-users] Firmware update & HID profile (Was: Detecting RSSI without connecting)

Hi Diego,

> > Maybe the easiest way is a D-Link DBT-120 Rev. B3 and then put the Apple
> > firmware update on it.
>
> BTW, any improvements in the new Apple firmware update?
>
> I used the previous one on two BT-120 (H/W: B2 and H/W: B3)
> and both of them now start with HID profile.
>
> I know that to have them back starting with hci I should change a PS key
> setting, but the only linux program I found is for serial modules only.
>
> Is the new update behaving the same way?

I think so, but changing the PS key is quite simply. However no public
tool for this exists and I am not going to write one.

Regards

Marcel




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-26 09:16:01

by Diego Liziero

[permalink] [raw]
Subject: [Bluez-users] Firmware update & HID profile (Was: Detecting RSSI without connecting)

On Thu, 2004-11-25 at 21:08 +0100, Marcel Holtmann wrote:
>[...]
> Maybe the easiest way is a D-Link DBT-120 Rev. B3 and then put the Apple
> firmware update on it.

BTW, any improvements in the new Apple firmware update?

I used the previous one on two BT-120 (H/W: B2 and H/W: B3)
and both of them now start with HID profile.

I know that to have them back starting with hci I should change a PS key
setting, but the only linux program I found is for serial modules only.

Is the new update behaving the same way?

(I know that I can use hid2hci each time I use them, but, unfortunately,
I don't use Bluetooth _only_ with Linux and with my up-to-date Linux
box).

Regards,
--
Diego Liziero <[email protected]>



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-25 20:11:54

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-users] Detecting RSSI without connecting

Hi Steven,

> > If this device doesn't support it,
> > can anybody recommend a device available in the US that does support
> > RSSI on inquiry?
>
> Modesty forbids.

all CSR chips with HCI 18.x firmware support inquiry with RSSI as
defined in the specification and without any bugs. So I said it ;)

> Marcel's page at http://www.holtmann.org/linux/bluetooth/features.html
> really needs updating to quote more features bits now that 1.2 devices
> are starting to appear.

I know, I know. Time is always against me :(

Regards

Marcel




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-25 20:08:41

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-users] Detecting RSSI without connecting

Hi Scott,

> >> For a project I'm working on, I'd like to determine which of several
> >> (possibly many) Bluetooth devices is closest. "Best RSSI" is a good
> >> enough approximation of "closest" for my purposes, and since there may
> >> be many devices and I don't have any other interest in them, I'd like
> >> to get the RSSI without establishing a connection with each device.
> >>
> >> It appears that "hcitool rssi <bdaddr>" requires that a connection is
> >> established. Do any cards provide a way of getting RSSI that doesn't
> >> require establishing a connection?
> >
> > starting with the Bluetooth 1.2 specification it is possible to get the
> > RSSI value from the inquiry results. Check the mailing list archives for
> > more details.
>
> I bought a Bluetooth 1.2 adapter (an IOGear GBU211), but it still
> doesn't seem to work. From what I found in the archives and the
> source code, it looks like I should set the inquiry mode to 1, then
> just use "hcitool scan". But it looks like the inquiry mode doesn't
> get set properly:
>
> [root@gifford tools]# /usr/local/sbin/hcidump -X &
> [1] 10382
> HCIDump - HCI packet analyzer ver 1.12
> device: hci0 snap_len: 1028 filter: 0xffffffff
> [root@gifford tools]# /usr/local/sbin/hciconfig hci0 inqmode
> < HCI Command: Read Inquiry Mode (0x03|0x0044) plen 0
> > HCI Event: Command Complete (0x0e) plen 4
> 0000: 01 44 0c 11 .D..
> Read inquiry mode on hci0 returned status 17
> [root@gifford tools]# /usr/local/sbin/hciconfig hci0 inqmode 1
> < HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1
> 0000: 01 .
> > HCI Event: Command Complete (0x0e) plen 4
> 0000: 01 45 0c 11 .E..

this command returns with error code 0x11 which means unsupported
feature or parameter value. Actually I think this should return unknown
HCI command with error code 0x01.

> It looks like read and write are both returning 17 (hex 0x11), which
> seems to mean unsupported. hciconfig -a says:
>
> hci0: Type: USB
> BD Address: 00:02:72:C0:08:CB ACL MTU: 377:10 SCO MTU: 16:0
> UP RUNNING PSCAN ISCAN
> RX bytes:3340 acl:0 sco:0 events:135 errors:0
> TX bytes:728 acl:0 sco:0 commands:87 errors:0
> Features: 0xff 0xff 0x0d 0x38 0x00 0x00 0x00 0x00
> Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
> Link policy: RSWITCH HOLD SNIFF PARK
> Link mode: SLAVE ACCEPT
> Name: 'BlueZ (0)'
> Class: 0x000100
> Service Classes: Unspecified
> Device Class: Computer, Uncategorized
> HCI Ver: 1.2 (0x2) HCI Rev: 0x69 LMP Ver: 1.2 (0x2) LMP
> Subver: 0x694a
> Manufacturer: Broadcom Corporation (15)

Check with "hciconfig hci0 features" if the inquiry with RSSI feature
bit is set.

> Am I doing this wrong, or is it possible that a Bluetooth 1.2 device
> doesn't support RSSI on inquiry? If this device doesn't support it,
> can anybody recommend a device available in the US that does support
> RSSI on inquiry? Does the feature need to be supported on both the
> inquiring device and the inquired device to get RSSI information, or
> is support on the inquiring device enough?

It can be that Broadcom didn't implemented this, which is actually
somekind of stupid. Maybe they only added AFH.

If you buy a CSR based Bluetooth 1.2 device it will support inquiry with
RSSI. Also the 1.2 Silicon Wave based and the AVM BlueFRITZ! USB v2.0
have this support. However both have a bug, but you can work around it.
Maybe the easiest way is a D-Link DBT-120 Rev. B3 and then put the Apple
firmware update on it.

Regards

Marcel




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-24 20:44:34

by Scott W Gifford

[permalink] [raw]
Subject: Re: [Bluez-users] Detecting RSSI without connecting

Marcel Holtmann <[email protected]> writes:

> Hi Scott,
>
>> For a project I'm working on, I'd like to determine which of several
>> (possibly many) Bluetooth devices is closest. "Best RSSI" is a good
>> enough approximation of "closest" for my purposes, and since there may
>> be many devices and I don't have any other interest in them, I'd like
>> to get the RSSI without establishing a connection with each device.
>>
>> It appears that "hcitool rssi <bdaddr>" requires that a connection is
>> established. Do any cards provide a way of getting RSSI that doesn't
>> require establishing a connection?
>
> starting with the Bluetooth 1.2 specification it is possible to get the
> RSSI value from the inquiry results. Check the mailing list archives for
> more details.

Thanks Marcel,

I bought a Bluetooth 1.2 adapter (an IOGear GBU211), but it still
doesn't seem to work. From what I found in the archives and the
source code, it looks like I should set the inquiry mode to 1, then
just use "hcitool scan". But it looks like the inquiry mode doesn't
get set properly:

[root@gifford tools]# /usr/local/sbin/hcidump -X &
[1] 10382
HCIDump - HCI packet analyzer ver 1.12
device: hci0 snap_len: 1028 filter: 0xffffffff
[root@gifford tools]# /usr/local/sbin/hciconfig hci0 inqmode
< HCI Command: Read Inquiry Mode (0x03|0x0044) plen 0
> HCI Event: Command Complete (0x0e) plen 4
0000: 01 44 0c 11 .D..
Read inquiry mode on hci0 returned status 17
[root@gifford tools]# /usr/local/sbin/hciconfig hci0 inqmode 1
< HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1
0000: 01 .
> HCI Event: Command Complete (0x0e) plen 4
0000: 01 45 0c 11 .E..
[root@gifford tools]# /usr/local/sbin/hciconfig hci0 inqmode
< HCI Command: Read Inquiry Mode (0x03|0x0044) plen 0
> HCI Event: Command Complete (0x0e) plen 4
0000: 01 44 0c 11 .D..
Read inquiry mode on hci0 returned status 17
[root@gifford tools]# hcitool inq
Inquiring ...
< HCI Command: Inquiry (0x01|0x0001) plen 5
0000: 33 8b 9e 08 64 3...d
> HCI Event: Command Status (0x0f) plen 4
0000: 00 01 01 04 ....
> HCI Event: Inquiry Result (0x02) plen 15
0000: 01 a5 2b 19 17 00 08 01 00 00 10 01 32 6a 78 ..+.........2jx
> HCI Event: Inquiry Result (0x02) plen 15
0000: 01 a5 2b 19 17 00 08 01 00 00 10 01 32 6a 78 ..+.........2jx
> HCI Event: Inquiry Complete (0x01) plen 1
0000: 00 .
08:00:17:19:2B:A5 clock offset: 0x786a class: 0x320110

It looks like read and write are both returning 17 (hex 0x11), which
seems to mean unsupported. hciconfig -a says:

hci0: Type: USB
BD Address: 00:02:72:C0:08:CB ACL MTU: 377:10 SCO MTU: 16:0
UP RUNNING PSCAN ISCAN
RX bytes:3340 acl:0 sco:0 events:135 errors:0
TX bytes:728 acl:0 sco:0 commands:87 errors:0
Features: 0xff 0xff 0x0d 0x38 0x00 0x00 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'BlueZ (0)'
Class: 0x000100
Service Classes: Unspecified
Device Class: Computer, Uncategorized
HCI Ver: 1.2 (0x2) HCI Rev: 0x69 LMP Ver: 1.2 (0x2) LMP
Subver: 0x694a
Manufacturer: Broadcom Corporation (15)

Am I doing this wrong, or is it possible that a Bluetooth 1.2 device
doesn't support RSSI on inquiry? If this device doesn't support it,
can anybody recommend a device available in the US that does support
RSSI on inquiry? Does the feature need to be supported on both the
inquiring device and the inquired device to get RSSI information, or
is support on the inquiring device enough?

Thanks!

----ScottG.


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-25 12:24:23

by Steven Singer

[permalink] [raw]
Subject: Re: [Bluez-users] Detecting RSSI without connecting

Scott W Gifford wrote:
> Features: 0xff 0xff 0x0d 0x38 0x00 0x00 0x00 0x00
[...]
> Am I doing this wrong, or is it possible that a Bluetooth 1.2 device
> doesn't support RSSI on inquiry?

As far as I'm aware, it's not mandatory. There's a features bit that
tells you whether it's supported. If I've counted right, it's bit 6 of
byte 3 (numbering from 0 in both cases). That is, it's:

00 00 00 40 00 00 00 00

>From the features mask you've given, it looks like this device doesn't
support it.

> If this device doesn't support it,
> can anybody recommend a device available in the US that does support
> RSSI on inquiry?

Modesty forbids.

Marcel's page at http://www.holtmann.org/linux/bluetooth/features.html
really needs updating to quote more features bits now that 1.2 devices
are starting to appear.

> Does the feature need to be supported on both the
> inquiring device and the inquired device to get RSSI information, or
> is support on the inquiring device enough?

It needs to be supported just on the inquiring device.

It's worth noting that although the inquiring device can accurately
(one hopes) report the received signal strength, there's no
requirement for the inquired device to trasnsmit at any particular
power. This might be an issue if the inquired devices are a mix of
different power classes and from different manufacturers. You may
also have to watch the effects of fading (but if you get more than one
report for a different device then you can just take the highest
RSSI to eliminate fading effects).

However, devices that are closer will tend to have a higher RSSI than
devices that are further away, so it's often a good place to start.

- Steven



**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

http://www.mimesweeper.com
**********************************************************************



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2004-11-09 00:29:30

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-users] Detecting RSSI without connecting

Hi Scott,

> For a project I'm working on, I'd like to determine which of several
> (possibly many) Bluetooth devices is closest. "Best RSSI" is a good
> enough approximation of "closest" for my purposes, and since there may
> be many devices and I don't have any other interest in them, I'd like
> to get the RSSI without establishing a connection with each device.
>
> It appears that "hcitool rssi <bdaddr>" requires that a connection is
> established. Do any cards provide a way of getting RSSI that doesn't
> require establishing a connection?

starting with the Bluetooth 1.2 specification it is possible to get the
RSSI value from the inquiry results. Check the mailing list archives for
more details.

Regards

Marcel




-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users/listinfo/bluez-users