2015-10-12 22:10:55

by Qingtao Cao

[permalink] [raw]
Subject: Device class 0 read from Microsoft Designer Mouse (Bluetooth 4.0)

Hi community,

Recently I got a Microsoft Designer Mouse which supports bluetooth 4.0
but it doesn't work on Ubuntu 15.04 with bluez4-4.101-0ubuntu25.
Although I can pair with it, I can't connect with it.

I've noticed that the Class value read in relevant DeviceFound message
is 0 (full message in the bottom), and to my surprise there is no
"org.bluez.Input" interface exposed on relevant object created after
pairing therefore I can't invoke the Connect() method on such
interface.

Furthermore, after pairing its object path is contained in the Devices
property of local adapter, but the linkkeys file contains no relevant
entry.

Home come bluez reads class value 0 from this device? does this
attribute to no input interface exported by bluez? how can I better
attack this problem?

Many thanks for any advice.

Cheers,
Harry


2015-10-13 05:43:36

by Qingtao Cao

[permalink] [raw]
Subject: Re: Device class 0 read from Microsoft Designer Mouse (Bluetooth 4.0)

Thanks Simon for your timely information I really appreciate that!

I will upgrade Ubuntu to have bluez5 to test this mouse.

Cheers,
Harry

On Tue, Oct 13, 2015 at 3:20 PM, Simon Fels <[email protected]> wrote:
> Hey Harry,
>
>>> Recently I got a Microsoft Designer Mouse which supports bluetooth 4.0
>>> but it doesn't work on Ubuntu 15.04 with bluez4-4.101-0ubuntu25.
>>> Although I can pair with it, I can't connect with it.
>>>
>>> I've noticed that the Class value read in relevant DeviceFound message
>>> is 0 (full message in the bottom), and to my surprise there is no
>>> "org.bluez.Input" interface exposed on relevant object created after
>>> pairing therefore I can't invoke the Connect() method on such
>>> interface.
>
>
> The problem here seems to be that the mouse doesn't support HID but HOGP
> (see [1]). BlueZ 4.x doesn't support HOGP. Ubuntu 15.10 already has BlueZ
> 5.35 which has all needed things to support HOGP but I don't know for sure
> if it already works today. Someone else can give you more details here but
> you should definetely update to Ubuntu 15.10 to get the newer required BlueZ
> version.
>
> regards,
> Simon
>
> [1]: https://developer.bluetooth.org/TechnologyOverview/Pages/HOGP.aspx
>

2015-10-13 05:20:55

by Simon Fels

[permalink] [raw]
Subject: Re: Device class 0 read from Microsoft Designer Mouse (Bluetooth 4.0)

Hey Harry,

>> Recently I got a Microsoft Designer Mouse which supports bluetooth 4.0
>> but it doesn't work on Ubuntu 15.04 with bluez4-4.101-0ubuntu25.
>> Although I can pair with it, I can't connect with it.
>>
>> I've noticed that the Class value read in relevant DeviceFound message
>> is 0 (full message in the bottom), and to my surprise there is no
>> "org.bluez.Input" interface exposed on relevant object created after
>> pairing therefore I can't invoke the Connect() method on such
>> interface.

The problem here seems to be that the mouse doesn't support HID but HOGP
(see [1]). BlueZ 4.x doesn't support HOGP. Ubuntu 15.10 already has
BlueZ 5.35 which has all needed things to support HOGP but I don't know
for sure if it already works today. Someone else can give you more
details here but you should definetely update to Ubuntu 15.10 to get the
newer required BlueZ version.

regards,
Simon

[1]: https://developer.bluetooth.org/TechnologyOverview/Pages/HOGP.aspx


2015-10-12 22:12:00

by Qingtao Cao

[permalink] [raw]
Subject: Re: Device class 0 read from Microsoft Designer Mouse (Bluetooth 4.0)

Sorry, forgot to paste the DeviceFound message during scan operation
for this device:


signal sender=:1.2 -> dest=(null destination) serial=356
path=/org/bluez/969/hci1; interface=org.bluez.Adapter;
member=DeviceFound
string "E1:52:15:B9:F3:E4"
array [
dict entry(
string "Address"
variant string "E1:52:15:B9:F3:E4"
)
dict entry(
string "Class"
variant uint32 0
)
dict entry(
string "Icon"
variant string "input-mouse"
)
dict entry(
string "RSSI"
variant int16 -41
)
dict entry(
string "Name"
variant string "Designer Mouse"
)
dict entry(
string "Alias"
variant string "Designer Mouse"
)
dict entry(
string "LegacyPairing"
variant boolean false
)
dict entry(
string "Paired"
variant boolean false
)
dict entry(
string "Broadcaster"
variant boolean false
)
dict entry(
string "UUIDs"
variant array [
string "00001812-0000-1000-8000-00805f9b34fb"
]
)
]

On Tue, Oct 13, 2015 at 8:10 AM, Qingtao Cao <[email protected]> wrote:
> Hi community,
>
> Recently I got a Microsoft Designer Mouse which supports bluetooth 4.0
> but it doesn't work on Ubuntu 15.04 with bluez4-4.101-0ubuntu25.
> Although I can pair with it, I can't connect with it.
>
> I've noticed that the Class value read in relevant DeviceFound message
> is 0 (full message in the bottom), and to my surprise there is no
> "org.bluez.Input" interface exposed on relevant object created after
> pairing therefore I can't invoke the Connect() method on such
> interface.
>
> Furthermore, after pairing its object path is contained in the Devices
> property of local adapter, but the linkkeys file contains no relevant
> entry.
>
> Home come bluez reads class value 0 from this device? does this
> attribute to no input interface exported by bluez? how can I better
> attack this problem?
>
> Many thanks for any advice.
>
> Cheers,
> Harry