Intel® Makers
Intel® Edison, Intel® Joule™, Intel® Curie™, Intel® Galileo
Announcements
Welcome - This is a Peer-to-Peer Forum only. Intel has discontinued these products but you may find support from other customers on this Forum
9868 Discussions

Bluetooth Low Energy Firmware

FMutt
Novice
1,618 Views

Hi everyone!

At this moment, I am doing some experiments with Edison Bluetooth low energy capabilities (also in terms of power consumption).

However, I have some problems to develop a bluetooth low energy (BT LE) "server".

Configuration

  • Edison acts as a peripheral device. It must both advertise its UUID (128 bit) and run a GATT Server (with generic -not yet defined- services/characteristics)
  • An Android phone must be able to scan LE devices, and connect to the GATT server. It acts as a central device.

Where I am

I have written an android app that is able to perform the required tasks.

On Edison Linux shell I have used the following commands to advertise a BT LE device:

rfkill unblock bluetooth

hcitool -i hci0 cmd 0x08 0x008 1e 02 01 1a 0b ff 48 45 4c 4c 4f 57 4f 52 4c 44

hciconfing -i hci0 leadv 0

 

where 48 45 4c 4c 4f 57 4f 52 4c 44 is "HELLOWORLD" in ASCII. To intepret the advertising data format, please refer to Bluetooth Core Specification 4.1 Vol. 3, Part C, 11

What help I think I need 

I would like to know if I could simplify the development of a BTLE firmware using a C/C++/Python/Java library (without looking inside the bluez source code! )

Thanks,

Flavio

0 Kudos
1 Solution
RDrag
New Contributor I
222 Views

Look at Bleno (https://github.com/sandeepmistry/bleno sandeepmistry/bleno · GitHub) - it's a Node.JS module and it works fine (at least in Debian / Ubilinux, I'm assuming it will work fine in the default Yocto firmware as well). I haven't looked into it much, but their example code worked great!

View solution in original post

3 Replies
RDrag
New Contributor I
223 Views

Look at Bleno (https://github.com/sandeepmistry/bleno sandeepmistry/bleno · GitHub) - it's a Node.JS module and it works fine (at least in Debian / Ubilinux, I'm assuming it will work fine in the default Yocto firmware as well). I haven't looked into it much, but their example code worked great!

FLab_
New Contributor II
222 Views

FlavioM,

I have put together a summary of my findings ...

FMutt
Novice
222 Views

Thank you for your reply, I will definitely go for the Bleno solution!

However, it sounds weird to me that there are no other libraries for Linux. I could be forced to write a piece of code in Python (mandatory for some parts of my projects) and a bluetooth server in Node.js.

Moreover, we have also to take into account the shell command rfkill unblock bluetooth at Edison startup.

I will go for the design of a Python framework for BT LE peripheral but I thought that BT LE was better supported.

Reply