4 releases
0.1.0 | May 8, 2020 |
---|---|
0.0.3 | Sep 16, 2018 |
0.0.2 | Sep 15, 2018 |
0.0.1 | Sep 4, 2018 |
#1416 in Embedded development
3,363 downloads per month
Used in ockam_transport_ble
395KB
5.5K
SLoC
BlueNRG
This crate provides the vendor-specific Bluetooth HCI for STMicro's BlueNRG family of Bluetooth RF modules. It extends bluetooth-hci with vendor-specific commands and events (and associated errors).
BlueNRG and BlueNRG-MS
This crate supports both the older BlueNRG version of the HCI, and the newer BlueNRG-MS version. By default, the crate implements BlueNRG-MS.
Work in Progress...
As you will notice, documentation is woefully lacking. This is still (as of April 2018) actively developed, so more is on the way!
lib.rs
:
Bluetooth HCI for STMicro's BlueNRG-MS Bluetooth controllers.
Note: This crate does not provide support for the BlueNRG-1 or BlueNRG-2 SoCs.
Design
The BlueNRG-MS is an external Bluetooth Radio Controller that communicates with the application processor over SPI and two dedicated pins:
- A SPI chip select pin, and
- A data ready signal.
This crate defines a public struct, BlueNRG
that owns the chip select and data ready
pins, and a receive buffer for the data that comes from the controller. It also defines a
private struct, ActiveBlueNRG
that borrows a handle to the SPI bus. ActiveBlueNRG
implements bluetooth_hci::Controller
, which provides access to the full Bluetooth HCI.
BlueNRG-MS implements parts of version 4.1 of the Bluetooth specification.
The fundamental way to use the BlueNRG
is its with_spi
function,
which invokes its closure on at ActiveBlueNRG
, so sending HCI commands and reading HCI
events can only be done from within that closure.
Vendor-Specific Commands
BlueNRG-MS provides several vendor-specific commands that control the behavior of the controller.
Vendor-Specific Events
BlueNRG-MS provides several vendor-specific events that provide data related to the controller. Many of these events are forwarded from the link layer, and these are documented with a reference to the appropriate section of the Bluetooth specification.
Example
TODO
Dependencies
~595KB