New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for an easy-to-integrate BLE stack #210

Open
fhunleth opened this Issue Oct 16, 2017 · 4 comments

Comments

Projects
None yet
2 participants
@fhunleth
Member

fhunleth commented Oct 16, 2017

Currently, if you want to use Bluetooth with Nerves you need to either integrate bluez in a custom system image or use nerves_uart against an RN42 or Adafruit Bluefruit. It would be really nice have a Elixir project that could be pulled in for BLE support that doesn't require all of bluez and yet would still work with a Raspberry Pi 3 BT chip or a USB BT dongle.

The end goal is to provide an API like what Adafruit does with their Bluefruit modules to BLE (except Elixir, not AT commands). The Raspberry Pi 3 BT module (and most other cheap BT modules/dongles) are connected via a UART connection to the main processor, but the interaction are pretty low level. There's a protocol called GATT and some other stuff that needs to be implemented or integrated. I "believe" that this is within range of us doing. It will look really hard in the beginning, but as we get more familiar, it will be ok. I think that the key is avoiding like the plague anything original Bluetooth and keeping the BLE parts simple. This will probably be limited to BLE devices at least initially.

This issue is to track work on a Nerves BLE projects. Please watch this issue if you're interested in helping. We'll still communicate on the elixir-lang slack, but important findings can be logged here so that they're easier to find. Once a prototype of this is available, we'll move discussion over to that project.

@fhunleth

This comment has been minimized.

Show comment
Hide comment
@fhunleth

fhunleth Oct 24, 2017

Member

This library may be useful: https://github.com/edrosten/libblepp. See the blog: https://deathandthepenguinblog.wordpress.com/2016/09/29/libble-simple-bluetooth-low-energy-on-linux/

If nothing else, this library has great documentation. The one caveat is that I believe that it only handles the host side of BLE and we really want to be a device.

Member

fhunleth commented Oct 24, 2017

This library may be useful: https://github.com/edrosten/libblepp. See the blog: https://deathandthepenguinblog.wordpress.com/2016/09/29/libble-simple-bluetooth-low-energy-on-linux/

If nothing else, this library has great documentation. The one caveat is that I believe that it only handles the host side of BLE and we really want to be a device.

@fhunleth

This comment has been minimized.

Show comment
Hide comment
@fhunleth
Member

fhunleth commented Oct 25, 2017

@HangingClowns

This comment has been minimized.

Show comment
Hide comment
@HangingClowns

This comment has been minimized.

Show comment
Hide comment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment