Bluetooth Source Layout

The Bluetooth System comprises many components, such as drivers, profiles, and client applications. This document provides an overview of where the various components live in the source tree.

garnet/bin/bluetooth/
    bt-gap/                                     # GAP daemon
    tests/integration/                          # integration tests
    tools/                                      # command-line tools
garnet/drivers/bluetooth/
    hci/                                        # bt-hci drivers
    host/                                       # bt-host driver
    lib/                                        # profiles (HCI, SDP, ...)
garnet/examples/bluetooth/
    ble_battery_service/                        # headless LE peripheral
    bt_beacon_reader/                           # reads from BLE Broadcasters
    bt-le-heart-rate-peripheral/                # HRM peripheral
garnet/lib/
    bluetooth/                                  # internal API
    rust/crates/fuchsia-bluetooth/              # internal API glue
garnet/public/fidl/bluetooth.*                  # public API
topaz/app/bluetooth_settings/                   # Bluetooth Settings UI
topaz/bin/bluetooth_settings/                   # Bluetooth Settings UI
topaz/examples/bluetooth/
    ble_rect/                                   # BLE peripheral w/GUI
    ble_scanner/                                # BLE device browser
    eddystone_advertiser/                       # [Eddystone](https://github.com/google/eddystone) advertiser
topaz/examples/eddystone_agent/                 # [Eddystone](https://github.com/google/eddystone)-based trigger
zircon/system/dev/bluetooth/                    # bt-transport drivers

See the HCI section of the Bluetooth System document for an explanation of how the drivers, such as bt-transport, bt-hci, and bt-host, relate to each other.

See the Host Bus section of the Bluetooth System document for more detail on bt-host.