Skip to content

embassy-rs/trouble

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

trouble

CI

TrouBLE is a Bluetooth Low Energy (BLE) Host implementation written in Rust, with a future goal of qualification. The initial implementation was based on bleps but has been adopted to work with types and traits from bt-hci.

What is a Host?

A BLE Host is one side of the Host Controller Interface (HCI). The BLE specification defines the software of a BLE implementation in terms of a controller (lower layer) and a host (upper layer).

These communicate via a standardized protocol, that may run over different transports such as as UART, USB or a custom in-memory IPC implementation.

The advantage of this split is that the Host can generally be reused for different controller implementations.

Hardware support

TrouBLE can use any controller that implements the traits from bt-hci. At present, that includes:

Current status

The implementation has the following functionality working:

  • Peripheral role - advertise as a peripheral and accept connections.
  • Central role - scan for devices and establish connections.
  • Basic GATT server supporting write, read, notifications
  • L2CAP CoC (Connection oriented Channels) with credit management (for both central and peripheral)

See the issues for a list of TODOs.

Examples

See examples for example applications. Currently there are two examples:

  • nrf-sdc for the nRF52 based using the nrf-sdc crate.
  • serial-hci which runs on std using a controller attached via a serial port (Such as this Zephyr sample).

License

Trouble is licensed under either of

at your option.

About

A Rust Host BLE stack with a future goal of qualification.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages