arduino / openwrt-packages-yun

66 stars 51 forks source link

[node-bleno / bluez] GATT server #10

Closed mtvg closed 10 years ago

mtvg commented 10 years ago

node-bleno doesn't seem to be fully functional as it needs a GATT server to expose Services and Characteristics once a bluetooth LE connection is made. It works great if you just want to create an iBeacon and don't need to pair devices.

It seems that bluez-libs doesn't include the GATT server (and gattool is missing in bluez-utils). I've tried to re compile bluez changing the configure arguments (adding --enable-maintainer-mode), but I'm not an expert, and it seems like some dependencies are missing, so I wasn't able to re compile it when changing those configure args.

edit: I might be wrong with the source and fix of the problem, I've opened a ticket on bleno's github.

ffissore commented 10 years ago

After a couple of attempts, I found out that building gatttool requires --enable-client. However command line tools link to a libreadline linked to ncurses. Unfortunately, libreadline is built with ncurses explicitly disabled, therefore gatttool can't be built. I close this issue as "invalid". If you come up with a workaround, please reopen it.

marcnicholas commented 10 years ago

Hi,

I've compiled gatttool and also bumped dbus to > 1.6 and ported Bluez-5.2.2. I'm happy to share my work or issue a pull request.

I am having an issue getting either hcitool or gatttool to connect to LE devices, but that seems to more systemic than my port (I had the same issue in the 5.1.2 port too -- which is what inspired me to update things).

-m

linusdong commented 9 years ago

Hi, there I was able to compile Bluez-5.13 and Bluez 4.101 ( Same version on Ubuntu ) with gatttool enabled. But it could not connect to the BLE device, the error message was

Connecting... connect error: Host is down (147)

I was using hcidump ( Bluetooth packet analyzer ) to compare packets. gatttool on ARM ubuntu is working , the message was shown

> HCI Event: Command Status (0x0f) plen 4
  LE Create Connection (0x08|0x000d) status 0x00 ncmd 1

gatttool on MIPS openwrt is NOT working , the message was shown

> HCI Event: Command Status (0x0f) plen 4
    Create Connection (0x01|0x0005) status 0x00 ncmd 1
> HCI Event: Connect Complete (0x03) plen 11
    status 0x04 handle 0 bdaddr BC:6A:29:AB:25:AD type ACL encrypt 0x00
    Error: Page Timeout

I am hoping these error messages could be useful to others. You can check my Git repo to see the steps for compiling bluez with gatttool.

Linus